2022.09.07. ~ 2022.10.30. (약 8주)
감사하게도 공군참모총장상을 받았다. Github
OSAM 해커톤이란?
매년 국방오픈소스아카데미(OSAM)에서는 군 장병을 위한 해커톤을 개최한다. 말이 해커톤이지, 가뜩이나 근무하느라 바쁜 군인들이기에 팀 빌딩부터 마감까지 무려 두 달의 시간을 준다.
선발되려면 이론평가, 코딩테스트, 프로젝트 계획서 세 가지를 보는데, 코딩테스트도 이후 스코어보드를 보니 한 문제만 풀어도 붙을 정도였다. 필자도 비전공자에 군대에서 솔브닥 스트릭만 쌓았지 웹 개발은 CSS, 바닐라 JS 겨우 짜던 실력으로 지원했는데 매우 수월하게 붙었으니 겁먹지 말고 관심있으면 지원해보길 바란다.
팀 빌딩
지원할 때 작성했던 프로젝트 계획서로 팀을 빌딩한다. 다른 아이디어가 더 좋으면 자신의 아이디어를 버리고 다른 팀에 팀원으로 참여할 수 있다. 감사하게도 필자의 아이디어에 관심있어하는 분들이 꽤 있어서 웹 개발 1도 못하던 실력으로 팀장을 맡아 감히 사람을 선발해버렸다. FE 셋, BE 한 명, AI 한 명으로 팀을 구성했다.
우리 팀의 프로젝트를 잠시 소개하자면, 밀리루틴은 군인끼리 함께 같은 루틴에 참여하도록 하여 습관 형성을 도와주는 웹사이트다. 추가로 AI 팀원 분을 모집할 수 있어서 유저가 좋아할만한 추천 루틴 기능을 메인 화면에 띄워 서비스의 정체성을 돋보이게 할 수 있었다. 개발과 관련된 자세한 내용은 깃허브에 자세하게 써놓았으니 참고 바란다.
개발 과정
모두 부대가 달라서 연락 잡는 것부터 일이었다. 1주일에 한번씩 Slack 허들로 각자 파트에서 한 일과 이번 주 할 일을 정하는 식으로 간소하게 진행했다. 멘토님이 있긴 한데 깃허브 Issue, Fork & PR을 활용해야 점수를 잘 준다... 라는 말만 해주셔서 실질적으로는 팀 내에서 다 개발해야 한다.
개발 환경은 깃허브 Codespace와 Azure를 제공해주셨다. 이제는 깃허브에서 Codespace를 월 60시간 무료로 제공하기 때문에 다들 당연히 쓰고 있는진 모르겠지만, 당시에는 싸지방에 깔려있는 되도 않는 HamoniKR 우분투를 쓰던 입장에서 정말 귀했다.
배운 점과 아쉬운 점
마감은 사람을 성장하게 한다.
Figma도 처음 써봤고, Github Issue & PR도 처음 해보고, 백엔드와 API 규약을 맞춰 통신하는 것도 처음이었고, docker-compose로 빌드하는 것도 처음이었다. 마감 직전에는 실제 배포까지 해보겠다고 AWS 인스턴스도 프리 티어보다 좋은 걸로 구입하고 도메인도 사서 채점 기간 동안 몇 주 띄웠었던 기억이 있다. 역시 팀장이라는 책임과 마감의 긴장은 사람을 뭐라도 하게 만드는 듯하다.
솔직히 말하면 루틴 인증이라는 마지막 핵심 기능 하나를 구현하지 못하고 제출했다. 팀장으로서 팀원간의 유대감 형성, 명확한 업무 배분, 시간 압박 등에 미숙했던 것 같다. Feature & BugFix에 급급해서 코드 리뷰와 리팩토링은 사실상 거의 못했다. 두달이라는 시간이 군인에게는 그렇게 많은 일을 할 수 있는 시간은 아닌데, 너무 편하게 생각한 건 아닌가 싶다.