지난 9월 5일~6일 열린 Amazon Q Developer 해커톤에
AUSG (AWS 사용자 그룹 대학생 모임) 동료들과 함께 참석했습니다.
그리고! 해당 대회에서!

대상을 수상했습니다!!
올해 두 번째 참가한 해커톤이었는데,
첫 수상을 할 수 있어 너무 좋았습니다!
팀이 만든 서비스를 소개해보자면

"보고, 대화하고, 읽고 nova와 함께하는 이미지 기반 영어 회화 학습
SPEAK-SEE-PIC!"
사용자가 원하는 카테고리를 고르고

카테고리에 맞는 랜덤한 이미지를 보고
음성으로 nova tutor와 함께 대화를 하며
이미지에 대한 묘사를 진행 합니다.
내가 말한 음성은 실시간으로 채팅에 기록되고,
동시에 그림으로 그려지면서
내가 앞으로 어떤 파트를 더 묘사하면 좋을지 확인할 수 있습니다!

대화가 끝나면
사용자는 보고서 형태로 피드백을 받을 수 있습니다!

저는 해당 해커톤 및 서비스 개발에서
- Amazon nova canvas를 활용해 실시간 대화 이미지 변환
- 아이디어 도출 및 세부 디자인
- 발표
를 중심으로 맡아 기여할 수 있었습니다
수상 뿐만 아니라 너무 좋았던 해커톤 경험이라,
어떻게 해커톤을 진행했는지 기록해보고자 합니다.
Q Developer 란?
https://aws.amazon.com/ko/q/developer/
Amazon Q Developer
Amazon Q Developer provides inline code suggestions, vulnerability scanning, and chat in popular integrated development environments (IDEs), including JetBrains, IntelliJ IDEA, Visual Studio, VS Code, and Eclipse (preview).
aws.amazon.com

Q developer에 대해 잠깐 설명하자면,
Q Developer 생성형 AI 기반 대화형 어시스턴트로
코딩 에이전트에서 한 발 더 나아가
AWS 애플리케이션을 이해하고, 구축, 확장 및 운영하는데 도움이 되는
어시스턴트 도구 입니다.
개인적으로 매력이 있었던 부분은
Agent 답게 여러 MCP를 연결하여 코드 개발뿐만 아니라
유닛 테스트, 문서 생성 및 업데이트까지 가능하다는 점이었으며,
추가로 AWS에서 제공하는 클라우드 인프라를
자연어로 실행할 수 있다는 것이 가장 큰 장점이라고 생각합니다.
대회 전!
8월 중순부터 참가자 모집을 시작하긴 했지만,
사실 대회 이틀 전인 9월 3일에 참가자 확정이 발표됐고,
일찍 신청을 해도 확정은 안될 수도 있다! 는 이야기를 들었습니다.

그래서 대회 전에 아이디어나 많은 준비를 하기 보다는
1. Q Developer 본인 환경에 맞게 세팅해오기
2. 기본적인 사용법 공부해보기
3. 붙이고 싶은 MCP 있으면 생각해보기
4. 하고 싶은 아이디어 있으면 생각해보기
정도로 기본 세팅과 대략적인 아이디어만 생각해오고,
참가 확정 이후 9월 5일에 모여
열심히 개발을 진행해보기로 했습니다.
대회 시작!
대회 첫 날에는 장소가 제공되지 않았기 때문에
서울시에서 제공하는 공익활동지원센터에 오전 9시 반까지 모였고,
해당 장소에선 오후 9시까지 개발을 진행했습니다!
해커톤에서는 기술 개발도 당연히 중요하지만,
짧은 시간에 하나의 서비스를 완성해내는만큼
결국 "아이디어"가 가장 중요하다는 것을 팀원 모두가 알고 있었고,
1차적으로 18시 이전까지 아이디어 회의를 진행해보기로 했습니다.
AWS에서 개최하는 해커톤이고,
해커톤 기간 동안은 AWS에서 제공하는 다양한 기능들의
토큰을 무한대로 사용(!) .. 지원을 해주신다는 이야기를 들어
평소 자주 사용해보지 못했던
Amazon의 멀티모달 모델들을 활용한 서비스나(음성-이미지 / 이미지 -텍스트 등)
Q를 활용하여 프로젝트 개발 생산성을 높일 수 있는 방향으로
아이디제이션을 시작했습니다.
동시에 전략을 하나 세웠는데요,
참가자의 직무, 연령의 제한이 없었던만큼
주니어로 구성된 우리 팀보다 훨씬 실력이 뛰어난 분들이 많을 것이라고 생각했고,
그래서 우리만 할 수 있는 생각, 좀 더 개성있고 재미있는 아이디어를
주제로 삼아 경쟁력을 가져가보자는 전략이었습니다!

아이디어 회의 중 나온 약 20가지의 아이디어들..!
정말 자유롭게 서로의 아이디어를 공유하다,
평소 우리가 고민하는 "영어"에 관한 이야기가 나왔고,
그렇다면?
"영어 학습을 위한 게이미피케이션 서비스"를 만들어보자
는 생각을 시작으로 아이디어를 확장했습니다!
평소 AWS 서비스에 대해 많은 지식을 가지고 계시던 팀원분이
최근 Amazon에서 나온
nova sonic : 실시간 양방향 음성 스트리밍 서비스
모델에 대해 이야기를 해주면서 아이디어는 구체화되었고,
이미지 - 음성 - 대화 모두를 결합한 서비스를 만들기로 결정했습니다!

이 아이디어를 확정하고 났을 때 시간이 오후 12시였는데요,
팀원 모두가 흥미를 갖고 재밌어 하며,
실제 해커톤의 방향성과 적합하고,
우리만의 개성을 드러낼 수 있는 아이디어를
상대적으로 빠르게 정했다는 점이 이번 해커톤에서 좋은 결과를
얻을 수 있었던 이유 중 하나라고 생각합니다!
본격적으로 개발을 진행하기에 앞서
1. AWS Partyrock을 통한 아이디어 검증
2. MCP를 연결하여 Q Developer와 함께 아이디어 구체화
3. 프로젝트 개발에 도움을 줄 커스텀 에이전트 생성
을 진행했습니다.
1. AWS Partyrock을 통한 아이디어 검증
멀티 모달 기능이 서비스의 핵심이었고,
AI 모델들을 활용하는만큼 + 실시간으로 가능해야하는만큼
이게 가능한가? 라는 의문이 있었습니다.
그래서 Playground와 같은 기능을 하는
AWS Partyrock 을 이용하여 미리 검증을 진행했습니다

아래 링크에서 저희 서비스의 MVP를 체험해보실 수 있습니다!
https://partyrock.aws/u/sookidayo/F3A3_aa2D/Image-Generate
https://partyrock.aws/u/sookidayo/F3A3_aa2D/Image-Generate
partyrock.aws
생각보다 빠르게 AI 모델들이 반응한다는 것을 확인했고,
음성 모델로 nova sonic을 채택한만큼
텍스트 분석 기능에는 nova pro,
이미지 생성에는 nova canvas를 채택하여
nova family 를 서비스에 사용했습니다
(정성적인 성능도 괜찮았습니다)
2. MCP를 연결하여 Q Devloper 사용

첫 번째로 Notion MCP를 Q Developer와 연결하여
아이디어를 바탕으로 API 명세서 / 개발 가이드 / 프로젝트 명세서 등을
뽑으면서 개발 문서화에 효율성을 가져 갔습니다 ㅎㅎ
가장 놀랐던 점은 바로
draw.io MCP와 Q Developer를 연결했을 때의 성능이었는데요,

직접 아키텍쳐를 하나하나 그리지 않아도,
프로젝트를 분석하여 아키텍처를 자동으로 그려줬습니다!
앞으로도 자주 사용할 거 같아요
3. 프로젝트 개발에 도움을 줄 커스텀 에이전트 생성
Q Developer CLI에서는
직접 커스텀 에이전트를 생성할 수 있습니다.
사용자 지정 에이전트 정의 - Amazon Q Developer
이 페이지에 작업이 필요하다는 점을 알려 주셔서 감사합니다. 실망시켜 드려 죄송합니다. 잠깐 시간을 내어 설명서를 향상시킬 수 있는 방법에 대해 말씀해 주십시오.
docs.aws.amazon.com
개발자가 본인이 원하는 워크플로우에 맞게
AI 어시스턴트를 지정할 수 있는데요,
예를들어 개발에 AWS 인프라 배포가 필요하다면,
AWS 인프라 관리 및 개발에 최적화 되어 있는 에이전트를 만들면 되는데요,
- 설명이 포함된 이름
- 관련된 컨텍스트 포함
- 도구 포함 및 범위 제한
등을 포함한 에이전트를 생성하면
추후 예를들어
"AWS EC2를 이용해 배포를 진행해줘" 라고 대화를 시작하면,
따로 툴 콜링 없이 해당 에이전트가 호출되어
해당 에이전트의 설명 내에서 동작하게 됩니다.
저희는 PM, Devloper, CloudOps 등 6명의 전문가 에이전트
를 최초에 생성하였고,
이후 Q 사용시 해당 에이전트들이 자동으로 호출되면서
팀원 5명 + 에이전트 6명 = 11명!
이 개발을 하는 효과를 냈습니다
이렇게 세팅을 시작으로
서비스 개발 / 인프라 두 파트로 나누어
개발을 진행했고,
9월 6일 오전 7~ 9시 2시간을 제외하고
밤을 새며 모두 개발에 몰두했습니다!

두 번째 날에는 센터필드 18층 AWS에서 대회를 이어 진행했는데요,

분명히 초반 아이디어 확정이 빠르게 진행되어서,
발표도 여유롭게 준비할 수 있을줄 알았으나?
5시 제출 마감 2분 전에 ppt와 데모 영상을 마무리하면서
발표 대본은 하나도 작성하지 못했던 기억이 납니다..
심사위원 분들을 기다리면서 급하게 작성했다는 후문이..

발표는 평소 발표하는 것을 나름 좋아했던(?)
제가 맡아서 진행했으며,
사실 너무 급하게 진행했던 발표라 걱정이 많았는데
팀원들이 많이 으쌰으쌰 해주고 응원해줘서 용기를 얻을 수 있었습니다.
팀원분들께 감사를 전합니다..
1차 2분의 심사위원 발표 > 선정된 4팀의 최종 2차 발표
두 단계의 프로세스를 통해 수상작이 선정되었는데요,
1차 발표 이후 2차 발표를 하는 4팀에 선정되었고,
모든 참가자들 앞에서 저희 서비스를 소개하고 Q&A 진행 이후
대상 수상작으로 선정되게 되었습니다!
2차 발표 시 라이브 데모를 함께 진행했었는데,
데모가 잘 진행되어 좋은 인상을 줄 수 있었던 거 같습니다.
Q&A 시에 받은 "해당 서비스를 얼마에 팔것인가" 라는
질문이 가장 기억에 남네요!

이번 해커톤을 통해 느낀 점은 다음과 같습니다!
1. 해커톤은 역시 아이디어가 중요하다!
2. 도움이 안되는 경험은 없다
이전에 경험한 LLM Chaining, AI 멀티모달 모델 활용 경험 등이
이번 해커톤 서비스 개발에 나름 큰 도움이 되었다고 생각합니다.
3. 빠르게 결정하고, 빠르게 우회하기
개발 과정에서 당연히 결과값이 이상하거나, 잘못 나온 경우도 많았는데
이때 최대 시간을 정해놓고(ex 2시까지만 하자)
해당 시간이 지날 경우 빠르게 다른 방식, 다른 프롬프트 등으로
도전해보면서 최선의 결과물을 선택했던 것이
완성도 높은 결과물을 얻을 수 있었던 방법 중 하나인 거 같습니다.
평소 관심 있었던 AI 기능을 활용해 다시 한 번 서비스를 개발할 수 있어 좋았고
좋은 성과도 거둘 수 있어 즐거웠던 해커톤이었습니다.
특히 에이전트를 통한 개발 뿐만 아니라
인프라까지 자연어로 처리할 수 있는 Q Developer의 성능에 너무 감탄했고,
실제로 앞으로 개발 시에 적극적으로 활용할 예정입니다!
좋은 해커톤을 열어주신 AWS, 메가존 클라우드 관계자분들께도 너무 감사드립니다!