
지난 3월 말에 개최했던 해커톤을 참여하면서 올해 상반기 목표 중 하나를 이루게 되었다.
현재 연구실에서 진행하던 와사비 프로젝트가 막바지에 이르면서 새로운 프로젝트를 진행하고 싶었다. 그 과정에서 새로운 개발자도 만나고, 동기부여도 얻고, 내가 어떤 게 부족하고 채워가야 할 지 등을 확인하고 싶었다. 그래서 이번 3월에 개최한 메트라이프 해커톤에 지원하게 되었다.
근데 이 해커톤은 다른 해커톤과는 좀 차별점이 있다.
하나는, 신청서 형식이 없다.
보통 해커톤을 참여하기 위해선 서너개의 질문에 대답하는 형식으로 이루어진다. 하지만 이 해커톤은 차별점을 나타낼 수 있는 자기 소개와 함께 Tech 역량 및 경력사항 을 자유롭게 기술하도록 되어 있었다.
두번째는, 기간이 너무 짧다.
대부분 2박3일로 이루어지는 해커톤을 많이 봐 왔는데, 이번 해커톤은 무박 2일간 진행되는 정말 짧은 해커톤이었다. 게다가 '채용' 을 목적으로 개최한 해커톤이었기에 '높은 기술력과 많은 경력을 가진 사람을 뽑겠다' 생각했다. 그래도 붙을 확신은 없었지만 도전하고 싶었다.

?? 내가 합격했다.
이제 막 졸업한 사람이고 프로젝트는 졸업작품과 연구실에서 진행하는 와사비가 다 인데, 붙었다는 것에 날아갈 듯 기뻤다. 그래서 더 열심히 하고 싶은 마음이 강했다.
OT 때 팀빌딩이 발표되면서 약 한 시간동안 아이스브레이킹 시간을 갖고 본격적으로 회의를 시작했다.
주어진 제약은 크게 두 가지였다.
- Azure 에서 제공하는 환경만 사용할 수 있다.
- 주제는 당일에 공개된다.
다행히 당일 전에 개발을 진행하는 것에 제한을 두지 않았기에 최대한 준비해가서 당일에는 '개발에만' 집중할 수 있는 환경을 만들기로 했다.

이 중 나는 JWT 인증/인가와 Swagger 적용을 맡아서 구현했다.
이때부터 뭔가 해커톤이 시작됐음을 실감할 수 있었다.
당일 네이버 코딩테스트가 있어서 호다닥 마치고 바로 서울로 올라갔다. 아슬아슬했는데 다행히 시작 전에 도착했다.😵💫

도착하자마자 명찰과 메트라이프 후드티로 갈아입음과 동시에 해커톤이 시작되었다.
해커톤 주제는 크게 세 가지였고 하위로 여러 주제가 공개됐다. 다행히 회의할 때 예상했던 주제와 크게 벗어나지 않았지만, 주제를 선정하고 구체화하는데 있어 약 2시간이 걸렸다.

우리팀의 핵심 기능은 채팅과 생성형 AI를 이용한 채팅 요약 이다.
졸업작품 때 채팅 기능을 구현했지만 완벽하지 않아 아쉬움이 많았다.
그래서 이번엔 좀 더 완벽한 채팅을 구현하고 싶은 욕심에 채팅파트를 자원했다.
그런ㄷ ㅔ... 내 욕심과 다르게 머리가 따라주지 않았다 ..🥲
오히려 채팅 구현이 처음이신 경훈님 덕분에 성공적으로 구현할 수 있었고, 구현 중에 발생한 웹소켓 간헐적 끊김 현상이나 웹소켓 핸들링 등 로직 구성에 대해 설명해 주셔서 많이 배울 수 있었다.
나는 여기서 일방적인 배움보다 의논하고 코딩하면서 성장하는 게 목적이었는데 그러지 못해 많이 아쉽고 속상했다. 그래도 채팅 조회와 종료를 맡아 구현할 수 있어서 다행이었다.
새벽 4시 30분 .. 모두가 제정신인 듯 아닌 듯 손이 분주해졌다.
깃 브랜치는 작업의 효율성을 위해 3개로 나뉘어 작업했다. → 배포용 main / 병합용 develop / 개발용 feat/GG-??
프론트와 맞춰보기 위해선 채팅 로직을 배포 브랜치인 main 에 날려야 했다. 채팅 브랜치에서 develop 에 PR 을 날린 뒤 develop 에서 main 과 merge 하는 작업을 진행하고자 했는데 어째서인지 모든 커밋 메시지가 뒤로 밀려나 있었고, 하나씩 병합할 때마다 또다른 conflict 가 발생했다.

이때 정말 피가 말라드는 기분이 들었다.
CI/CD 담당이었던 종명님과 같이 해결책을 찾아봤지만 문제는 여전했다 ...
결국 시간 관계상 모든 상태를 최신화 시킨 후 강제로 main 에 날렸다.
다행히 문제 없이 빌드되었다 ㅜㅜ
마감이 얼마남지 않은 시점에서 채팅과 OpenAI 사이에 의존성 버전 문제가 생겨 결국 AI 는 적용하지 못하게 되었다. 대신, 채팅기능이라도 보여주기 위해 당장 채팅방 초기 데이터가 필요했기에 서둘러 @PostConstruct 로 데이터를 초기화시켜 마감 1분 전에 간신히 push 를 날렸다.🫨
종료됨과 동시에 홀에 있던 모든 사람들이 소리를 질렀다. 후련하면서 아쉽고, 시원섭섭했다.
오후 2시부터 시작해 다음날 새벽 5시까지 몰두해 개발한 사람이 몇이나 있을까 .. 했는데 이 사람들이 있잖아 ?
그래도 회의 시간 제외하고 약 11시간을 개발에 몰두한 경험은 살면서 잊지 못할 거 같다.
아쉽게 모든 기능은 구현이 완료됐지만 병합하고 배포하는 과정에서 트러블이 생겨 완벽한 기능을 발표하지 못했다. 하지만 새로운 사람들과 의논하며 개발하고 결과물을 만들어 나가는 과정이 즐거웠고 동기부여도 많이 얻을 수 있었다.

그래서 더 많이 깨달을 수 있었다.
다음엔 꼭 더 많이 성장해서 팀에게 도움이 되는 팀원이 될 거다 !!!@@@!