SPARCS
는 서비스 개발 및 프로그래밍 관련 행사를 운영하며 KAIST 학우 및 일반인을 대상으로 프로그래밍의 가치를 공유하는 비영리 단체이다.
많은 해커톤에서 이번 2024 SPARCS 과학 해커톤을 참가한 이유 크게 2가지가 있다.
개인으로 해커톤에 신청했기 때문에 팀 빌딩을 바로 시작하였다. 팀 빌딩은 스팍스 DISCORD에서 2일간 특정 채널에서 개인 신청자들이 개인 메시지를 통해서 팀을 만들고 시간이 지나면 스팍스에서 자체적으로 팀을 만든다고 하여 먼저 메시지를 보냈습니다.
일단 FE, 기획자, 디자이너 순으로 팀원을 구해야 되겠다고 생각하여 FE 먼저 구인을 했습니다. 일단 제일 처음으로 React의 경험이 있었기 때문에 React 경험을 가진 사람을 구하고 싶었지만 경험자들은 벌써 다 팀이 빌딩이 되어서 Flutter 개발자와 컨텍을 했었는데 운이 좋게도 Flutter 개발자분은 디자이너 기획자와 벌써 빌딩이 되어서 제가 참가만 하면 팀 빌딩이 완료가 되었습니다.
과학적인 원리를 쉽게 설명하는 서비스, 게임
을 생각하며 프로젝트를 고민을 하였고 최종적으로 저희 팀은 2개의 프로젝트 주제를 선정을 했습니다.대전으로 가는 버스가 다 매진이 되어서 6시 차를 타고 8시에 대전에 도착을 했습니다. 이후 스타벅스에서 가장 먼저 프로젝트를 세팅하고 간단한게 CI/CD 구축, API Spec을 정의하고 Mock Data를 넣는 작업, Spring AI를 통한 LLM 테스트를 진행을 하였습니다.
이후 시간이 되어서 대전 DCC에 도착해 처음으로 팀원들을 보면서 빠르게 프로젝트에 대해서 정리하고 보니 빠르게 개발할 수 있다는 생각을 가지게 되어서 저희 팀은 개막식이 끝나고 나서 점심을 먹기 위해서 성심당으로 바로 향했습니다...
성심당을 갔다 와서 빠르게 개발을 하다가 멘토님이 찾아와 빠르게 상담을 하면서 기술력을 더 높히는 것이 더 좋을 거 같다고 피드백을 듣고 팀원들과 고민을 하게 되었습니다.
팀원들 역시 기술력을 높히기 위해서 AI에 대한 고민이 있었고 langchain
을 도입하기로 생각하여 기획자분이 빠르게 langchain을 학습하여 추가하기로 결정이 되었습니다. 랭체인이 도입되면서 저희 기획에 많은 변화가 생기고 갑자기 일정이 바빠지게 되어 결국에는 밤샘 코딩을 하게 되었습니다....
기획이 바뀌면서 API의 Spec도 바뀌고 인프라 아키텍처에 대해서 고민이 생기며 BE의 업무가 늦어져서 FE분의 일정을 굉장히 타이트하게 가져가게 되었습니다. 그래서 심사 10분 전까지 저희는 프로젝트를 완성을 위해 코딩을 하고 있었습니다. 당시에도 그렇지만 현직자로 빠르게 BE 기능을 수행하고 FE에게 편하게 만들어야 했는데 미안함 감정이 생겼습니다.
그래도 새로운 기술을 도입하는 것을 후회하냐고 물어보면 후회는 하지 않습니다.
일단 이번 해커톤에서 제일 많이 배운 부분이 기획자 분이 새로운 것을 두려워하지 않고 빠르게 학습하여 결과를 만드는 부분에서 굉장히 생각을 많이 하게 되었습니다. 회사에서 일을 하다보니 새로운 기술에 대해서 신중하게 생각하는게 당연하게 생각했습니다. 하지만 너무 신중하기 보다는 결국 빠르게 학습하고 그 기술의 Trade Off를 발견하여 현재 서비스에 적절한지 팀원과 빠르게 결정하는 것
이 지금 저에게 필요한 부분이라고 생각이 들었습니다.
밤샘 코딩을 하고 피곤한 몸을 이끌고 DCC로 향하는 버스에서, 프로젝트의 방향성에 대한 고민이 많았습니다. 아직 완성되지 않은 프로젝트를 앞두고 서브 기능들을 과감히 포기하고 챗봇이라는 핵심 기능에 집중해야 할지 중요한 결정을 내려야 했습니다. 팀원들과의 논의 끝에 'Drop and Develop' 전략을 선택했고, 다행히 마감 시간에 맞춰 프로젝트를 제출 과 사용자들 앞에서 발표할 기회도 얻을 수 있었습니다.
이번 해커톤에서 가장 값진 경험은 바로 사용자들과의 직접적인 만남이었습니다. 개발자로서 프로젝트를 만드는 것도 중요하지만, 실제 사용자들의 피드백을 받는 것은 더욱 귀중한 경험이었습니다. 각 팀마다 부스를 운영할 수 있었던 것은 특별한 기회였고, 우리가 만든 서비스를 직접 설명하고 즉각적인 피드백을 받을 수 있었던 것은 매우 소중한 경험이었습니다.
마지막 순간까지 수상에 대한 기대감도 있었습니다. 비록 수상은 하지 못했지만, 수상한 다른 팀들의 재미있는 서비스들을 보면서 어떻게 저렇게 문제를 접근했지?라는 감탄을 했습니다. 어찌저찌 해커톤이 끝나고 피곤한 몸을 이끌고 바로 올라가는 버스를 타서 기절하듯이 잠들었던 기억이 지금까지 가장 기억에 남는 순간이었던 거 같습니다.
이번 해커톤에서 많은 부분을 배울 수 있었습니다. 기술적인 부분에서는 LangChain을 서브 모듈로 분리하고 Spring을 메인으로 사용하면서 발생한 Long Connection 문제와 사용자 접속으로 인한 네트워크 패킷 처리, 그리고 ngrok 사용 시 발생하는 연결 불안정 이슈를 해결하며 실제 서비스 운영에서 발생할 수 있는 기술적 문제들을 경험하고 해결하는 값진 시간이었습니다.
이 과정에서 새로운 기술 도입에 대한 중요한 깨달음을 얻었습니다. 아무래도 회사 업무를 하면서 새로운 기술의 Trade-Off를 신중하게 고민하다 보니 도전적인 시도를 망설이게 되었는데, 이번 해커톤을 통해 때로는 빠르게 도전하고 실험해보는 자세도 필요하다는 것을 배웠습니다. 기술을 실제로 적용해보면서 그 한계와 가능성을 직접 경험하고, 팀원들과 함께 현재 서비스에 적합한지를 판단하는 과정이 매우 값진 경험이었습니다.