"우리는 각자의 경계를 허물기로 했다"
이번 구름톤 DEEP DIVE 해커톤의 키워드는 크로스펑셔널(Cross-Functional) 이었다. PM, 디자이너, 프론트엔드, 백엔드, AI가 각자의 자리에만 머무는 대신 서로의 영역으로 한 발씩 넘어 들어가 하나의 팀이 되는 방식. 나는 12조에 PM으로 합류했고, 해커톤 당일에는 PM·발표자료 준비와 함께 프론트엔드 개발까지 여러 모자를 바꿔 쓰며 움직였다.
우리가 만든 것 — CoChat
이번 프로젝트의 씨앗은 우리 12조 조장이 예전부터 품고 있던 아이디어였다. 오래 마음에 담아둔 그 구상을 이번 해커톤에서 실제로 구현해보자는 데서 CoChat이 시작됐다.
CoChat은 "여러 업무 채널의 알림을 한 페이지로 통합하고, AI가 중요도 분류와 한 줄 요약을 붙여 사용자의 딥워크(deep work) 시간을 보호하는 서비스" 다. Slack·Jira 등 흩어진 알림을 대시보드 하나로 모으고, AI가 "지금 꼭 봐야 할 것"만 골라 요약해준다.
- Frontend — Next.js 15 · TypeScript · Tailwind · Zustand, 실시간 알림은 SSE로
- Backend — FastAPI · LangGraph · Claude API로 중요도 분류·요약 파이프라인
- Infra — Docker · AWS ECS · Terraform · PostgreSQL(pgvector) · Redis
해커톤 주제가 "DEEP DIVE"였는데, 정작 우리가 만든 서비스도 사용자의 딥워크(몰입)를 지켜주는 것이었다는 점이 지나고 보니 꽤 마음에 든다.
PM이면서 프론트엔드였던 하루
PM으로서는 짧은 시간 안에 "무엇을 버리고 무엇을 남길지" 계속 결정해야 했고, 동시에 프론트엔드로 화면을 직접 붙였다. 조장의 아이디어를 팀의 언어로 옮기고, 그것을 다시 실제 화면으로 구현하는 과정에서 기획의 언어와 구현의 언어 사이 간극을 몸으로 체감했다. 그게 이 해커톤이 말한 "경계 허물기" 였다고 생각한다.
아쉬움이 남긴 배움
솔직히 결과는 아쉬웠다. 나는 발표자료도 맡았는데, 마감을 약 7시간 앞둔 시점까지 프론트엔드 작업에 매여 있느라 발표 준비가 미흡했다. 좋은 프로덕트를 만들고도 그것을 설득력 있게 전달하지 못했고, 심사위원에게 좋은 평가를 받지 못한 것도 결국 여기서 갈렸다.
가장 크게 남은 교훈은 시간과 역할을 더 세밀하고 명확하게 나눴어야 했다는 것이다. "경계를 허문다"는 말이 곧 "한 사람이 다 떠안는다"는 뜻은 아니었다. 개발·기획·발표에 각각 언제, 누가, 어디까지 책임질지 미리 못박아뒀다면 마지막 몇 시간이 그렇게 쫓기지 않았을 것이다.
그럼에도
수상은 못 했지만, 오래 품어온 아이디어를 여러 사람이 한 공간에 모여 단시간에 하나의 프로덕트로 실제로 만들어내는 경험은 피곤했던 것 이상으로 즐거웠고, 동작하는 화면을 마주한 순간엔 분명한 희열이 있었다. 혼자서는 절대 만들 수 없는 것을, 서로 다른 전문성이 연결됐기에 만들 수 있었다. 다음엔 이 감각에 더 나은 시간·역할 설계를 더해, 결과로도 이어보고 싶다.