사내 해커톤에 참가했다.
평소 같이 일하지 않던 동료들과 짧은 시간에 결과를 만들어낸 협업의 경험이었다. AI 도구를 활용하기 시작한 시점이기도 했다.
아이디어
법인카드를 쓰면 그룹웨어에 전표를 작성해야 한다. 회사의 전표 작성 가이드가 있고, 매번 그 가이드를 찾아 양식을 채우는 게 반복적인 부담이었다. 작은 점심 한 끼만 결제해도 분류, 적요, 세금 코드 같은 항목을 정해진 규칙대로 입력해야 했다.
이 부담을 LLM Agent 로 자동화하자는 아이디어를 제안했다. 사용자가 결제 적요를 입력하면 Agent 가 회사 전표 작성 가이드를 참조해 양식을 자동으로 채워준다. 해커톤 동안 만들 수 있는 범위로도 가치가 보이는 시도였다.
형태 전환 — Slack Bot 에서 Chrome Extension 으로
처음에는 Slack Bot 으로 시작하려고 했다. 사내에서 이미 익숙한 인터페이스니까. 그런데 동료가 Chrome Extension 으로 가자는 의견을 냈다. 사용자가 그룹웨어를 보면서 그 화면 위에서 바로 챗봇을 쓸 수 있다면 흐름이 끊기지 않는다. 사용자 친화성 측면에서 결정적인 변화였다.
평소 같이 일하지 않던 다른 팀 개발자와 비개발자 동료들이 함께였다. Chrome Extension UI, 백엔드 Agent 응답 형식, 사내 가이드를 LLM 에 어떻게 주입할지, 사용자 검토용 흐름 — 각자의 강점이 다른 사람들이 짧은 시간에 한 결과물을 향해 모이는 경험이 신선했다. 평소 같으면 메신저로 한참 주고받았을 의사결정이 옆에 앉아 한두 마디로 정리되는 상황이 자주 있었다.
만든 것
Chrome Extension 챗봇과 백엔드 LLM Agent 를 결합한 구조였다.
사용자가 그룹웨어 페이지에서 챗봇을 열고 결제 적요를 입력하면, 백엔드 Agent 가 회사 전표 작성 가이드를 참조해 양식을 채운 응답을 돌려준다. 사용자는 그 결과를 검토해 그룹웨어에 반영하면 된다.
도구 조합도 이번 해커톤에서 정리됐다. 개발에는 Claude Code 를 활용하기 시작했고, Agent 의 백엔드 LLM 으로는 ChatGPT 의 structured output 을 사용했다. 둘 다 내게는 첫 활용이었다.
AI 도구를 적극 쓰기 시작한 시점
Claude Code 가 짧은 시간에 결과물을 낼 수 있게 해줬다. 평소 손으로 짜야 했던 분량을 빠르게 통과시키고 다음 결정으로 넘어갈 수 있었다.
단, 작업 단위를 충분히 분할하지 않으면 실수가 누적된다는 것을 직접 체감했다. 한 번에 큰 변경을 도구에 맡기면 의도한 부분과 의도하지 않은 부분이 함께 바뀌었고, 그 차이를 다시 따라가는 시간이 결국 더 걸렸다. 결과적으로 유지보수가 쉽지 않은 코드도 남았다.
해커톤이 끝난 뒤 후속 작업 중에 AI 도구가 작성한 코드를 다시 정리하는 task 가 별도로 잡힐 정도였다. 빠르게 만든 결과물이 실서비스로 옮겨가는 과정에서 치러야 하는 비용이었다. 이건 다음 단계로 가는 학습이라고 봤다.
발표와 런칭
전사 발표를 맡았다. 평소 발표 경험이 많지 않았는데, 짧은 시간에 정리해서 말하는 자극이 좋은 경험이었다. 팀이 1등을 했다.
해커톤 자체보다 이후가 더 길었다. 사내 런칭으로 이어졌고, 실서비스로 다듬는 데 2개월 정도의 후속 개선이 필요했다. Chrome Extension 안정화(TypeScript 포팅 포함), Agent 응답 형식 정합성, 일괄 처리 기능, 사용자 검토용 흐름 — 해커톤 POC 가 실서비스 형태로 다듬어지는 과정이었다.
여전히 개선할 부분이 남아 있는 단계지만, 해커톤 결과물이 실제로 사내에서 쓰이고 있다 는 점이 가장 큰 성과라고 생각한다.
출발점의 의미
1등이라는 결과보다 그 안에서 시작된 것이 더 본질적이었다. 평소 같이 일하지 않던 동료들이 짧은 시간에 한 결과물을 향해 모이는 경험은 회사 안에서 흔치 않다. 그리고 이 해커톤이 내게는 Claude Code 를 본격 활용하기 시작한 출발점이었다. 한계도 같이 봤지만, 다음 단계로 가는 재료가 그 자체로 쌓인 시간이었다.