크래프톤 정글 입소 직후 시작된 3일 간의 미니 웹 프로젝트입니다.
동기들끼리 서로의 교육장 입실 여부와 공부 시간을 확인하며 공부 의지를 북돋우자는 취지로 만든 웹서비스입니다.
Flask, Jinja2, Bulma
굳이 수고롭게 들어와 주기적으로 출석을 체크해야하는 유인이 가장 중요하다고 생각해, 기능을 추가했으나 그것만으로는 부족했습니다.
프로젝트 취지가 동기들이 어디있는지 확인하고 서로 공부 시간을 경쟁하는 것이므로
어떻게 해야 공부시간을 측정할 수 있을까 고민했습니다.
강의실에서 하는 공부의 형태가 정보검색, 교과서, 코딩, 동료학습 등 다양했으므로
간단히 공부하는 강의실에 있는 시간을 공부시간으로 했습니다.
출석/출근 기록처럼 강의실에 들어올 때 입실체크, 나갈 때 퇴실체크를 하도록 해 그 사이 시간을 기록합니다.
중간에 자리를 비우거나 퇴실체크를 하지 않는 경우를 위해 주기적으로 연장처리를 하여야 시간을 기록할 수 있도록 했습니다.
이를 위해서는 사용자가 강의실에 있는지 알 수 있어야 했습니다.
GPS를 사용하고자 했으나 실내에서 정확도가 떨어지고 HTTPS가 필요했습니다.
지식과 시간의 부족으로 HTTP를 사용했으므로, 대안으로 강의실 ap의 ip주소를 서버에 기록, 해당 ap로 접근했을 때에만 입실을 체크할 수 있도록 하였습니다.
SSR
코치님들의 프로젝트 요구사항은 ssr을 이용할 것이었습니다.
이 서비스의 메인 화면이 사용자 별 상태(입/퇴실 여부, 공부시간)를 보여주는 것이었으므로, 이부분을 서버에서 렌더링해 보내주었습니다.
주기 작업
장기간 부재시 퇴실처리, 일주일 종료 시 랭킹 집계 등 정해진 시간이 되면 수행해야하는 작업들의 처리 방법이었습니다.
웹서버 프로세스에서 db에도 접근하고 있었으므로, 멀티 스레드로 작업 처리 함수를 실행하는 방식으로 구현했습니다.
사용을 유도하기 위해 노력했지만 불충분해 며칠이 지나자 동기들의 외면을 받고 말았습니다.
실제 훈련 출석부와 연계 및 웹 푸시 사용으로 좀 더 편하게 사용할 수 있도록 만들었으면 하는 아쉬움이 남습니다.