본 프로젝트는 한국디지털미디어고등학교에서 주최된 제 9회 창의 IT 공모전 참여를 위해 제작되었습니다.
1. 개요
한국디지털미디어고등학교에 재학하면서 학교 차원에서의 학생 인원 관리가 매우 중요시 된다는 것을 느꼈습니다.
이를 계기로 인원 확인이 필요한 기관에서 이를 보다 간편하게 진행할 수 있는 시스템을 제작하면 좋을 것 같다고 생각하여 이를 주제로 프로젝트를 개발하였습니다.
학교 차원에서 생각해보았을 때, 본 프로젝트를 통해 방과 후, 야간 자율 학습 등 다양한 시간에 인원 체크를 이전보다 적은 인력과 시간을 소요하여 할 수 있다고 보았습니다.
또한 학생 차원에서도 교실 밖으로 이동하는 인원들이 자신의 위치를 변경하기 위해서 타인에게 이를 부탁하거나, 장소 이동에 대한 기록은 잊는 경우의 문제 등으로 발생하는 정확한 위치 이동 및 사유 파악이 어려워 지는 문제를 해결할 수 있다고 생각하였습니다.
2. 시스템 구성
React Native를 통해 앱을 구축하였으며, Firebase를 활용하여 변경되는 위치 정보를 저장하였습니다. 그리고 Context API를 사용하여 클라이언트 상태 관리를 진행하였습니다.
incheck는 아래와 같은 화면들로 구성되어 있습니다.
| 화면명 | 역할 |
|---|---|
| 홈 화면 | 현재 사용자의 위치 및 사용자가 즐겨찾기 해놓은 위치 확인 |
| 위치 선택 화면 | 사용자가 있는 위치를 선택하거나, 즐겨찾기에 추가 |
| 인원 확인 화면 | 사용자가 속해 있는 그룹(교실)의 인원 현황 확인 |
| 설정 화면 | 사용자와 관련된 설정 및 정보 확인 |
3. 프로젝트 회고
EYESAM 이후 두 번째로 React Native를 프로젝트였습니다. 개발 당시 React Native에 충분히 익숙해지지 못했고, Expo를 사용하지 않고 조금 더 Native 기능과 Context API 등 전에 접해보지 않은 것들을 접해보려 노력하였습니다.
프로젝트를 제작할 수 있는 기간이 약 10일 정도 였기 때문에, 익숙하지 않은 스택과 다양한 기술들 활용이 쉽지 않았지만, 학기 말 사용할 수 있는 시간을 최대한 효율적으로 운용하여 다행히 기간 내에 프로젝트 개발을 완수해낼 수 있었습니다.
또한 Figma 사용도 익숙치 않아 앱의 UI 디자인이 미숙했던 것이 현재로써는 아쉽지만, 당시에 최선을 다했던 점과, Figma를 통한 첫 UI 디자인이었던 점, 고등학교 1학년이었던 점, 개발 초기 단계 학습을 병행하고 있었던 점을 참작한다면 당시 제가 할 수 있었던 최선의 디자인이라고 생각합니다.
그리고 공모전이었기 때문에 심사위원 분들 앞에서 진행될 발표와 이를 위한 발표자료를 열심히 준비하였습니다.
공모전이 진행되기 약 10분 전, 갑작스럽게 심사위원 분들만이 아닌 전교생이 대상이라는 부분을 고지 받고 갑작스러움에 당시 많이 당황하였지만, 최선을 다해 준비한 내용을 발표하여, 재학생 분들께도 좋은 반응을 얻을 수 있었습니다.
발표 이후 교내 개발자 분들과 더욱 가까워질 수 있었으며, 이를 바탕으로 대회 및 공모전이 단순히 수상 뿐만 아니라 네트워킹 및 PR의 기회가 될 수 있다는 것을 알고, 이후 대회 및 공모전에 더 적극 참여하게 되었습니다.
