본 글은 글쓴이의 개인적인 생각이 담겨있을 수 있습니다.
PICK 프로젝트 - pick-server-Saturn
https://github.com/DSM-PICK/pick-server-Saturn
프로젝트 PICK은 대덕소프트웨어마이스터고등학교 방과 후 출석 시스템의
불편한 점을 개선하기 위해서 만든 온라인 야간 자율 학습 출석부 서비스입니다.
현재 방과 후 출석 시스템을 담당하고 있는 서비스로 운영되고 있습니다.
현재는 방과 후 출석 시스템을 담당하고 있는 서비스가 되어 운영되고 있지만,
시작부터 이렇게 순탄하지는 않았습니다.
처음에는 백엔드 개발자 3명, 프론트엔드 개발자 2명으로 시작해서 디자인을 담당할 사람도 없는 입장이었습니다.
이렇게 시작해서 디자이너가 없다는 치명적인 약점에 방학이라는 소통의 단절까지 겹쳐져
그렇게 프로젝트가 망하나 싶었는데...
이런 실패와 고생을 겪고 디자이너의 필요성을 느껴 디자이너를 영입하고,
개발자의 부담을 줄이기 위해 프론트엔드 개발자와 데브옵스 한 명씩을 영입하여
지금처럼 안정적으로 PICK을 운영할 수 있었습니다.
PICK의 실제 개발 기간은 2020. 08. 01부터 2020. 11. 09까지? 라고 생각하고 있습니다.
사실 기획은 2019년도부터 했고 개발하기 시작한 건 2019년에서 2020년으로 넘어가는 방학이었습니다.
하지만 선생님들의 권유로 여러 가지 기능이 추가 되고 (1)번의 이유로,
실제 개발이 시작된 건 2020년 하반기였습니다.
그래서 작년 8월에 짠 코드와 지금 짠 코드를 살펴보면 코드를 짠 제가 봐도 못봐줄 정도였습니다.
제가 개발한 서버 파트는 Java
로 짜여있었는데 이후 Kotlin
을 공부하면서
Kotlin
으로의 이전을 시도하였습니다.
결과는 성공적이었고 자바로 된 모든 레거시 코드를 코틀린으로 교체하는데 성공하였습니다.
그럼에도 코드나 기술적인 측면에서 불만이 많았습니다.
Spring Security
를 사용하지 못한 점.Refresh Token
을 Redis
나 데이터베이스 없이 프론트에게 모두 맏긴 점.Mockk
의 이해 부족으로 Kotlin Extension
테스팅을 하지 못한 점.Service
레이어를 기능 단위로 적절하게 나누지 못한 점.이러한 불만은 개인 프로젝트인 꼬리별
에서 해결할 수 있었습니다.
PICK의 PM(Project Manager)은 꽤 자주 바뀌었습니다.
팀은 하나인데 두 번이나 바뀌어 역대 PM이 3명이나 있죠.
물론 제가 PM을 맡은 것은 아니지만 함께 개발했던 팀원으로써 이 상황을 지켜봤을 때 되게 불안했습니다.
마치 회사에서 대표가 계속 바뀌는 느낌이었죠.
하지만 다행이게도 프로젝트 인원을 구성할 때 처음부터 친한 친구들끼리 구성했다보니
단합이 잘 되어 프로젝트 진행에는 큰 차질이 없었습니다.
PICK은 주로 선생님을 대상으로 하는 서비스인 만큼 선생님들의 요구 사항이나 불만 사항에 대해
대처하는 일이 많았습니다.
처음에는 "음 이런 기능이 있어야겠구나." 하면서 개발에 임했는데
이런 요구 사항들을 모두 받아들이다 보니 본질적인 출석부 라는 틀에서 벗어난 아이디어도 나오고
그에 따라 기존의 데이터베이스가 따라갈 수 없는 지경에 이르렀습니다.
그래서 우리들은 최대한 할 수 있는 부분에 대하여 개발하고
선생님들과 타협하는 방향으로 나아갔습니다.
그리고 필요하지만 현재 데이터베이스 구조로는 도저히 힘든 경우는 다음 세대에 넘기기로 하였습니다.
사실 처음 PICK 프로젝트를 시작할 때는 서비스가 이렇게 커질지 몰랐습니다.
비록 회사에서 진행하는 프로젝트에 비하면 작디 작은 토이 프로젝트에 불가할지 몰라도
처음 이 프로젝트를 시작할 때는 이런 개발을 할 수 있을 것이라고도 생각 못 했고,
제가 이정도로 성장할 수 있는 계기가 된 프로젝트가 될 것이라고도 생각 못 했습니다.
이런 프로젝트가 끝을 내고 계속 서비스 된다는 것이 매우 뿌듯했습니다.
이젠 벌써 고등학생 3학년이 되어 취업을 결정해야할 나이가 되었습니다.
이런 경험을 회사에서도 꼭 느낄 수 있었으면 좋겠습니다.
PICK 프로젝트를 위해 함께 개발해왔던 팀원들에게도 정말 감사합니다.
PICK 프로젝트는 2학년 학생들이 이어나갈 예정입니다.