9 minute read

8월의 더운 여름날, 고려대에서 주관하는 2022 KU 해커톤에 개발자 포지션으로 참가했습니다 ⛵ 팀빌딩 사전행사와 2박 3일의 해커톤, 그리고 네트워킹 행사까지 거를 타선 없이 모두 재밌었고, 행복했습니다 😁

왜 해커톤에 참가하였는가

작년부터 회사 데이터팀에서 일을 하면서 데이터를 분석하고, 모델을 만드는 일을 주로 했습니다. 그런데 어느 순간 서비스 개발에 점점 소홀해져서 새로운 스택, 새로운 서비스와 아이디어를 뽑아내지 않는 제 자신을 보게 되었습니다. 대학원에 진학하지 않고, IT산업기능요원의 길을 마음 먹은 이유가 서비스 개발이 재밌어서 였는데, 점점 그 열정을 잃고 있었습니다.

해커톤은 개발 동아리 톡방에 누가 올린 홍보글을 보고 지원하게 되었습니다. 동아리 활동은 3년이나 했지만, 정작 해커톤을 해본 경험이 없었고, 포항 바깥은 어떤 세상인지 궁금한 마음에 참가를 결심했습니다.

해커톤에 참가하면서 세웠던 목표가 몇 가지 있었는데,

  • 밤샘 코딩을 해보자.
  • 포항 바깥을 경험하고 배워서, 포항에 가져가자.
  • 새로운 사람들을 만나자.

후기를 적는 지금 생각해보면… 밤샘 코딩을 빼고는 전부 200% 달성한 것 같습니다 😁

어떤 서비스를 만들었는가: 페테랑(Peteran)

제가 속한 PARTY LAB🥳팀은 “반려동물 정보공유 플랫폼, 페테랑” 서비스를 기획하고 개발하였습니다. 해커톤의 대주제는 “함께하는 사회를 위한 서비스“였고, 저희 팀은 이것을 “반려동물과 건강하게 함께하는 사회를 위한 서비스”로 해석하였습니다.

어떤 서비스인지 쉽게 설명해보자면, 법률 상담 서비스인 로톡과 원격 비대면 진료 서비스인 닥터나우의 대상을 사람에서 반려동물로 전환한 서비스라고 이해하면 편할 것 같습니다.

반려동물을 기르면서 마주하는 고민들과 궁금증을 모아서 도움이 필요한 상황에서 서비스를 제공하고, 수의사와 훈련전문가를 대면/비대면으로 연결해 상담 서비스를 제공합니다. 이를 통해 반려동물과 건강하고 올바르게 함께하는 길잡이가 되는 서비스가 기획하였습니다.

개발은요?

저는 백엔드 개발자로 참가했…지만 결국 풀스택 개발을 하고 왔습니다💀 개발3-디자인1-기획1의 5인팀 체제에서 개발자 한분이 코로나 때문에 중도 하차 하셨고, 저희 팀은 2인 개발자 체제로 서비스를 개발해야 했습니다😢

우선 백엔드에서 기획과 디자인 내용을 살펴보고, 테이블 구조와 관계를 구성하고, API 엔드포인트와 Swagger 명세, 서버 인스턴스를 구성하였습니다. 사실 익숙한 NestJS로 서버를 구성하고, AWS를 사용했기 때문에 백엔드를 개발하고 올리는데는 큰 어려움이 없었습니다. 그저 버그가 없기를 바랄 뿐…

예상했듯이 병목은 프론트에서 발생했는데, 프론트 담당자 한 분이 서비스의 프론트를 모두 개발하는 건 시간적으로 불가능했습니다. 기획 단계에서 서비스 방향이 “웹 서비스”로 결정되어 React로 프론트를 짜게 되었는데, 프론트 분이 원래 모바일 개발을 하시던 분이라 ReactJS가 익숙하지 않는 상황이었습니다. 저는 동아리 프로젝트에서 풀스택으로 프론트까지 개발했던 경험이 있어서 ReactJS가 익숙했기에 빠르게 백엔드를 끝내고 2명이서 함께 프론트를 개발했습니다.

전체 페이지 구성 중 마감까지 개발할 수 있을 다섯 페이지를 정해두고, 2명의 프론트가 나눠서 개발을 진행했습니다. 떼깔은 그럴듯한 상태로 제출 했지만… 그대로 완성도에서 많이 아쉬웠습니다. 😥

무엇이 부족했는가

이번 해커톤으로 어떤 부분이 부족하고 어떤 방향으로 더 공부해야 할지 깨닫게 되었습니다. 생각나는 대로 적으면,

대세는 모바일이다 📱

이번 해커톤 수상한 서비스들은 모두 모바일📱 앱 서비스였습니다. 모바일 환경에서 새로운 서비스를 접하는 사람이 많고, 또 강력한 접근성과 카메라/마이크와 같이 상호작용 가능한 요소가 이미 있기 때문에 모바일 앱을 기획하는 것이 더 매력적인 것 같습니다.

또, 2박 3일이라는 해커톤의 짧은 기간을 생각하면 웹 보다는 모바일 서비스가 더 빠르게 개발하는 서비스인 것 같습니다. 웹은 화면이 넓기에 화면을 채우고 풍부한 느낌을 주기 위해 개발할 요소들이 많습니다. 또, 웹은 모바일 반응형을 고려해야 하기에 사실상 웹 서비스 개발은 PC/모바일 모두를 개발해야 하므로 개발 사이즈가 2배인 것과 같습니다.

이런 점 때문에 이젠 Flutter를 배워야 하는 걸까?라고 생각하고 있었습니다만… 1등 수상팀이 Next JS로 개발 & 오직 모바일만 고려한 PWA 웹앱을 개발한 것을 보고 아직 부족한 프론트엔드 실력과 모바일로 빠질 뻔한 편협한 사고를 반성했습니다.

boilerplate와 코드 아카이브가 필요하군

백엔드와 프론트 모두에 해당하는 생각이었습니다. bolierplate나 상황별로 쓸 아카이브한 코드가 있었다면, 장애물을 마주했을 때 적은 시행착오로 더 빠르게 나아갈 수 있었을 것 같습니다. 완성도가 높았던 다른 팀의 얘기를 들어보면, 그들의 서비스와 비슷한 것을 개발한 경험이 있고, 아카이브 해둔 코드를 최대한 활용한 것이 도움이 되는 것 같습니다.

아카이브 한다면 아래 내용들이 도움이 될 것 같습니다.

  • Auth 인증
  • DB Data Initialization: 더미 데이터 구성 및 저장
  • MediaQuery CSS
  • Random Pick

이런 기능을 구현하는 능력이 필요하군

다른 팀의 발표와 데모를 거치면서, 어떤 기능들이 개발 트랜드인지 그리고 어떤 걸 배워야 할지 메모해 보았습니다. 기획 단계에서 아래와 같은 기능을 구현하는 기획이 나왔을 때, 문제 없이 개발할 수 있다면 더 재밌는 서비스를 구현할 수 있을 것 같습니다.

  • Socket.io/WebRTC를 사용한 기능들
    • 채팅
    • 실시간 화상 회의
  • 음성, 비디오 데이터 처리
    • 이미지 데이터 처리하는 것과 비슷한지 아닌지
  • 결제: 부트페이
  • 위치기반 서비스
  • 온라인 강화학습
  • FastAPI 사용한 python 마이크로서비스 API 서버
  • 고-급 검색 알고리즘
    • ElasticSearch를 사용?
    • 자연어 질의를 처리할 수 있는 검색 알고리즘
  • PWA 웹앱

페테랑 서비스에 대해

페테랑이라는 서비스의 강점은 (1) 119 기능을 하는 응급콜 (2) 전문가와의 상담 (3) 반려동물에 대한 풍부한 지식들, 3가지가 강점이라고 생각 합니다. 그런데 마감 때 제출한 서비스의 퀄리티는 이 3가지 강점을 보여주지 못 했습니다. 서비스의 강점이 무엇인지 정확히 알고, 강점 중 하나라도 실제로 구현했다면… 이라는 아쉬움이 있습니다.

또, 막판 제출에 좀 급해져서 QA와 데모 시나리오를 신경쓰지 못한 것도 아쉬운 부분 입니다.

좋은 팀원, 좋은 사람

이번 해커톤, 많은 것을 둘러보고 배웠지만 가장 큰 수확은 좋은 팀원과 좋은 사람들을 많이 만난 것 입니다 🥰

2박 3일 동안 한 테이블에서 1인분 이상을 해주신 PARTY LAB 팀원 분들 모두 정말 고생하셨고 또 고맙습니다 😭 서로 배려하고 신경 쓴 덕분에 해커톤 기간 동안 재밌고 행복 했습니다. 팀원 중 2명이 포항의 한동대였는데, 언젠가 포항을 간다면 포항에서도 꼭 뵙고 싶네여. 1년째 말로만 내려간다고 하고 있다 해커톤을 한번 더 참가하겠다는 결심을 하게 된 제1이유도 좋은 팀원들 덕분입니다! 해커톤 기간 동안 팀원으로 함께 해주어 정말 감사하고 인연이 닿는다면 또 볼 수 있길 🙏

본인이 꼬셔서 같이 해커톤에 오게된 후배 K군도 다른 팀에서 개발자로 고생을 꽤 했습니다. 흠… ㅋㅋㅋ 해커톤 끝나고 맛있는 술로 보상을 했으니 ㅎㅎ 다음 학기 복학이라는데 마찬가지로 포항에서 볼 수 있길 ㅋㅋㅋ

마지막으로, 이 정도 퀄리티의 행사를 기획하고 운영한 KU 해커톤 운영진의 수고에 너무 감사합니다. 덕분에 해커톤이 너무 재밌었고 아주 만족합니다! 😁

맺음말

인생 첫 해커톤! 정말 너무 재미 있습니다!! 이번 해커톤의 모토는 “함께하는 항해⛵” 였습니다. 해커톤이 끝나고 마음 속에 새로운 물결이 생겼는데, 이 마음 잘 간직해서 새로운 서비스, 새로운 도전, 새로운 사람들을 만나러 가고자 합니다. 내 앞에 펼쳐진 새로운 날들을 기대하며

Categories:

Updated: