해커톤 참여 계기
2023년에 나는 우리 대학교 (한성대학교)에서 멋쟁이사자처럼 11기 백엔드 아기사자로 활동을 했고, 2024년에는 백엔드 팀장을 맡게 되었다. 이번에 우리 학교 대표가 운영진 해커톤을 주최한다고 하여 다른 학교 사람들을 더 만날 수 있는 좋은 기회이기도 했고 더 좋은 서비스 개발 경험을 기대하면서 설레는 마음으로 신청을 하게 되었다.
대략적인 일정
2024.1.20~1.24 : 팀빌딩 기간
2024.1.25~2.2 : 팀 별 아이디어 회의 및 기획안 작성
2024.2.3~2.11 : 디자인 기간 및 백엔드,프론트엔드 기초 작업
2024.2.12~2.23 : 프로덕트 개발 진행, 배포 및 통신 작업
2024.2.24 : 본행사 (오전 10:00~오후 5:00)
해커톤 진행 일정은 밀리지 않았고 딱 기간에 맞춰 진행되었다. 마음에 들었던 것이, 기획과 디자인 마감날이 명확했다는 것이다. 노션에 언제까지 기획과 디자인을 제출해야 한다는 것이 있었기에 전체적인 일정이 밀리지 않았던 것 같았다.
팀 빌딩
팀 빌딩은 각자 구글폼에 개인정보와 원하는 주제(3순위까지 선택할 수 있었던 것 같다), 참여 분야, 기술 스택을 작성하는 것이였다. 주제는 총 4개로, 도파밍/분초사회/스핀오프 프로젝트/육각형 인간 이 있었다. 나는 키워드를 보자마자 바쁘게 살아가는 현대인들을 위한 서비스를 개발해보고 싶다는 생각으로 분초사회를 선택했다. 참여 분야는 백엔드였고, 기술 스택은 스프링을 작성했다. 팀 빌딩 결과로, 우리 팀은 기획(=팀장) 1명, 프론트엔드 3명, 백엔드 2명이 배정되었다. 디자인 인력이 부족해 기획을 맡은 언니가 디자인까지 했다.
아이디어 회의, 와이어프레임, 디자인
아이디어 회의는 다 같이 진행했다. 트렌디톤에서는 기획이 아이디어부터 기획까지 하는 것이 아니라, 개인이 원하는 주제를 고른 후 같은 주제를 선택한 사람들끼리 같은 팀이 되어 (물론 기술 스택, 참여 분야도 고려해서!) 해당 주제 내에서 팀원들의 회의 후 세부 주제로 좁혀가는 방식으로 진행되었다.
1차 기획 회의 전까지 팀원 각자가 원하는 더 구체적인 아이디어를 노션에 간단히 작성해오기로 했다. 한 분은 일정이 있어서 참여하지 못했고 나머지 5명이서 회의를 진행했다. 회의 때는 아이디어를 낸 이유와 함께 본인이 만들고 싶은 서비스는 어떤 것인가 설명하는 시간을 가지고 기술적 한계와 일정을 고려하여 서비스를 결정했다. 각자 너무 설명을 잘 해줬고 열심히 준비한게 느껴졌었다. 이 중 우리는 이동 시간 중 낭비되는 시간을 줄이고 그 시간에 학습을 효율적으로 할 수 있도록 돕는 서비스를 주제로 결정했다.
2차 와이어프레임 회의 전까지 기획을 담당한 언니가 와이어프레임을 짜서 톡방에 보내주었고, 해당 와이어프레임을 기반으로 어떤 기능이 있고, 어떤식으로 개발이 되었으면 좋겠는지 설명해 주었다. 와이어프레임이 깔끔했어서 알아보기 쉬었다. 핵심 기능으로는 출발지, 도착지 설정 후 시간 계산, 사용자가 선택한 카테고리에 따른 영상 추천, 서브 기능으로는 로그인, 회원가입, 스크랩, 출석, 목적지 도착에 임박하면 알림을 띄워주는 기능 등이 있었다.
3차 디자인 회의에서는 피그마를 보면서 개선되었으면 하는 부분을 함께 논의하고 결정하는 하는 시간을 가졌다. 나는 개인사정으로 회의에 참여하지 못해 개선 사항을 톡방에 남겨두었고, 피그마에 일부 수정한 디자인을 올려놓기도 했다.
(팀장언니 노션을 쓰다가 블록이 다 차서.. 내 노션으로 옮겼는데, 개발 시작 전 회의 기록은 팀장언니 노션에 있어서 캡쳐본으로 대체한다.)
디자인이 나오고 얼마 지나지 않아 백엔드는 바로 DB 설계, API 명세서 작성을 하기 시작했다. 해커톤 당일에 개발 시간이 없었기에 무조건 해커톤 전날까지 모든 것을 끝내고 가야겠다는 생각에 빨리 시작했다. 백엔드는 회의를 많이 했던 것 같다. (특히 2월 셋째 주에는 무슨 일이.. ㅎ) 매일 할 일을 정하고 서로 어디까지 진행되었는지 확인하는 식으로 같이 백엔드를 한 동생과는 소통을 많이 했다. 모르는 것이 있으면 서로 많이 물어보고 역할 분담도 확실하게 해서 수월하게 진행이 되었다.
DB 설계는 다음과 같이 했고 (개발하면서 일부 수정된 부분이 있을 수 있는데 반영이 안되어 있을 수도..?)
API 명세서는 다음과 같이 작성했다.
내가 했던 프로젝트 중 제일 본격적(?) 이였던 것 같다.
개발
나는 프로젝트 초기 세팅 (자바 17버전, 필요한 의존성 설정, 기본 뼈대 코드 작성)을 하고, 같이 백엔드를 맡은 동생과 커밋룰을 정하며 gitmoji에 대해 알려주었다. branch를 파서 작업하기로 했다. 동생이 스프링으로 프로젝트를 한 번 밖에 해보지 않았다고 해서 내가 개발하는 방식과 많이 다르거나 개발 속도가 조금 느리면 어떡하지 싶은 걱정이 있었지만, 동생이 나보다 더 빨리 개발했다.. ㅋㅋㅋㅋㅋ (혹시 하루종일 개발만 했어...?) 나는 API 개발을 많이 맡진 않았던 것 같다. 개발이 끝나고 배포와 API 문서화에 힘을 조금 더 썼다. 이 프로젝트에서는 docker로 배포를 해보고 싶었는데 아직 강의 영상 커리큘럼을 다 따라가지 못해서 기존에 하던 방식으로 진행했다.. (이 부분이 많이 아쉬웠다. 빨리 docker 마스터 해야지!!) 대신 그 만큼 배포 과정을 더 명확히 이해하고 정리하는 시간을 가졌다. API 문서화 같은 경우에, 자바 11 버전과 17 버전의 문서화 방법이 달랐다..... 나는 swagger만 해봤는데 새로운 지식을 습득하고 사용해 보았다.
자바 11 버전에서는 swagger를 사용했고
implementation group: 'io.springfox', name: 'springfox-swagger-ui', version: '2.9.2'
implementation group: 'io.springfox', name: 'springfox-swagger2', version: '2.9.2'
자바 17 버전에서는 springdoc을 사용했다.
implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.0.2'
아래는 작성한 API 명세서이다. 완벽하지는 않지만 응답 형식이 깔끔하다는 것을 보여주고 자랑하고(?) 싶었다. ㅎㅎ
서비스 구조도도 만들었다.
개발 마무리와 해커톤 당일
배포까지 진행하여 백엔드는 생각했던 것 보다 일찍 마무리가 되었다. 프론트 측의 진행상황을 알 수 없었어서 조금 힘들었지만 신뢰하고 기다렸고, 해커톤 당일까지 UI 구성과 API 연결이 잘 되어있는 것을 확인했다! (프론트 분들은 아마.. 거의 밤 새신 것 같았다) 나는 해커톤 전날 놀다가 다쳐서 행사에 오전부터 참여하진 못했고 병원에 갔다가 조금 늦게 점심시간이 끝날 때 쯔음 도착했다. 오전에 팀별로 발표를 했다고 들었고, 오후에는 팀별 서비스 전시회를 한다고 했다. 우리팀은 노트북 2개, 아이패드 1개를 사용했다. 노트북 1개에는 서비스를 시연할 수 있는 QR, API 명세서 QR, 깃허브 QR, 노션 QR을 띄워놓았다. 다른 노트북 1개로는 실제 서비스를 보여드리며 어떤 기능들이 있는지 소개해 드렸다. 출발지/도착지를 설정하고 그것을 기반으로 소요 시간을 계산하는 것에 다들 신기해했다. 아이패드 1개로는 API 문서를 띄워놨다. 생각보다 많은 사람들이 API 문서를 보시고 칭찬을 많이 해주셔서 뿌듯했다. ^__^
서비스 전시회가 끝나고 구글폼으로 상호 평가를 했고 이후 점수가 집계될 때 까지 슬랙으로 해커톤 회고 시간을 가졌다. 두근두근 결과는 대상을 받았다 ^__^ 열심히 준비한 보람이 있었다! ㅎㅎ 프론트엔드 분들과 소통이 조금 더 잘 되었으면 하는 아쉬움이 살짝 있었지만!! 결과는 좋았다.
그 이후
생각보다 해커톤 당일 일정이 빨리 끝나서 조금 기다렸다가 뒷풀이를 갔다. 원래 갈 생각 없었는데 1등 하기도 했고 팀원들 다 간다고 해서 나도 갔다!! 가서 좋은 사람들을 많이 만날 수 있었고, 각 학교의 멋사의 체계나 활동 등을 알 수 있었다. 회식에서 마지막까지 남은 사람들끼리 단톡방도 만들었는데, 다다음주에 또 보기로 했다! (근데 나는 불참... 🥹) 이번 해커톤으로 여러 학교의 운영진들과의 친목도 쌓을 수 있었고 개발면에서 새로운 것들도 알아갈 수 있었다.
각종 자료들
Notion : 일정 정리, API 명세서 등을 볼 수 있습니다.
Github : 개발한 코드와 서비스에 대한 설명을 볼 수 있습니다.
'Projects' 카테고리의 다른 글
온라인 칠판 편지 개발과 서비스 오픈까지(3) (0) | 2024.03.05 |
---|---|
온라인 칠판 편지 개발과 서비스 오픈까지(2) (1) | 2024.03.05 |
온라인 칠판 편지 개발과 서비스 오픈까지(1) (0) | 2024.03.03 |