개발/프로젝트

바이브코딩으로 하루 만에 팀 프로젝트 완성하기 — Clean Email 회고

cedis 2026. 3. 12. 12:49
바이브코딩으로 하루 만에 팀 프로젝트 완성하기 — Clean Email 회고
크래프톤 정글 × 오픈AI 워크숍 회고

바이브코딩으로
팀이 같이 달리려면
어떻게 해야 할까

AI가 코드를 짜주는 시대, 협업은 오히려 더 어려워졌다.
하루 동안 세 명이 부딪히며 찾아낸 방법.

📅 2026.03 👥 3인 팀 ⏱️ 하루 📦 Clean Email
Prologue

사실 이 글을 쓰기가 조금 쑥스럽다.

하루 만에 만든 프로젝트다. 내놓기엔 허술한 구석도 있다. 그런데 이 하루가 생각보다 많은 것을 남겼다. 특히 "AI랑 같이 코딩하는데, 팀이 어떻게 협업하지?" 라는 물음. 그 고민의 과정을 기록해두고 싶었다.

· · ·

🌿 시작은 크래프톤 정글 오픈AI 워크숍

크래프톤 정글에서 오픈AI 워크숍이 진행됐다. 단순히 "ChatGPT 이렇게 쓰세요" 수준이 아니었다. API를 직접 다뤄보고, AI를 서비스에 녹여내는 흐름을 체험하는 시간이었다.

워크숍이 끝날 즈음, 기획안 하나가 나왔다. "Gmail 받은편지함, 위험 메일을 자동으로 걸러주는 서비스 어때?" 막연하게 "재밌겠다" 하고 끝낼 수도 있었다. 그런데 우리 세 명은 이걸 그날 안에 실제로 만들어보기로 했다.

"우리가 쓸 서비스를 우리가 직접 만들어보자." — 워크숍이 끝나고 세 명이 모였을 때
💡 우리의 기획 방향
😤
문제 인식 — 받은편지함은 이미 전쟁터다 스팸인지 아닌지 모르는 메일, 수상하지만 확인은 해야 할 것 같은 메일. 실제로 우리가 매일 겪는 불편함이었다.
🎯
방향 — 쓰고 싶은 서비스를 만든다 거창한 B2B 솔루션이 아니라, 우리 자신이 실제로 쓰고 싶은 것. Gmail을 더 안전하고 빠르게 확인할 수 있게 해주는 웹 서비스.
제약 — 단, 하루 안에 워크숍에서 나온 아이디어를 그날 구현까지 해보는 것. 빠르게 만들고, 빠르게 부딪혀보는 것이 목표였다.
3
팀원 수
1
전체 개발 기간
34
commits
하루 동안
6
기능
기획 → 구현
· · ·

🤖 바이브코딩, 처음엔 마냥 신기했다

바이브코딩(Vibe Coding)은 AI에게 자연어로 의도를 전달하면 AI가 코드를 만들어주는 방식이다. "Flask로 Gmail OAuth 만들어줘", "MongoDB에 토큰 저장하는 코드 짜줘" 하면 뚝딱 나온다.

처음에는 솔직히 신기했다. 내가 직접 한 줄 한 줄 치지 않아도 코드가 나온다. 이 속도면 혼자 하루 만에 다 만들 수 있겠다는 생각이 들었다. 그리고 거기서 문제가 시작됐다.

고뇌 시작

"그냥 한 명이 AI로 다 돌리면 금방 끝나는 거 아니야?"
나머지 두 명은 그럼 뭐 해? 저거 될 때까지 옆에서 구경만 해?

실제로 느꼈다. AI가 코드를 생성하는 속도가 빨라질수록, 한 사람이 "AI 드라이버"가 되어 혼자 달리고 나머지는 대기하는 상황이 만들어질 수 있다는 걸. 협업의 의미가 사라지는 구조.

기존 협업 방식이라면 각자 코드를 짜고, 서로 리뷰하고, 충돌을 해결하는 흐름이 자연스럽게 만들어진다. 그런데 바이브코딩 환경에선 "내가 맡은 파트"라는 경계가 흐릿해진다. AI는 경계 없이 코드를 뱉으니까.

· · ·

💡 우리가 찾아낸 협업 방식

고민 끝에 우리는 하나의 흐름을 만들었다. 거창한 방법론이 아니다. 당장 써먹을 수 있는, 현실적인 약속이었다.

1
뼈대를 먼저, 빠르게, 다 같이
프로젝트의 디렉터리 구조, 핵심 모델, 라우팅 뼈대를 먼저 함께 잡는다. AI로 빠르게 초안을 만들고, 다 같이 리뷰해서 확정한다. 이게 "공통 언어"가 된다.
2
뼈대 = 메인 GitHub 레포
확정된 뼈대를 main 브랜치에 올린다. 이게 기준점이 된다. 이후 누구도 main에 직접 푸시하지 않는다는 게 첫 번째 약속.
3
기능별로 나눠 바이브코딩
각자 담당 기능을 정한다. 맡은 기능 브랜치에서 자유롭게 AI와 함께 개발한다. "저거 될 때까지 나는 뭐하지"가 아니라, 각자의 AI가 각자의 기능을 동시에 만든다.
4
PR로 메인에 합치기
기능이 완성되면 main에 PR을 보낸다. 다른 팀원이 리뷰하고 머지한다. AI가 생성한 코드도 사람이 한 번 보게 되는 것. 이게 두 번째 약속.
핵심 인사이트

바이브코딩 협업의 핵심은 "AI에게 무엇을 시킬지" 나누는 것이다.
코드를 나누는 게 아니라, 기획과 역할을 나눈다. AI는 각자의 손발이 된다.

· · ·

📬 그래서 하루 만에 나온 것: Clean Email

Gmail 받은편지함을 빠르고 안전하게 확인할 수 있는 웹 필터링 서비스다. 위험 점수를 자동으로 계산해서 메일을 일반 · 보류 · 격리 세 가지로 분류한다.

🛠️ 기술 스택

🐍 Flask 3
🍃 MongoDB
🔐 Google OAuth 2.0
📬 Gmail API
🔒 cryptography
🧹 bleach
🎨 Tailwind CSS
🪟 Windows 11 UI
🧪 pytest

📋 구현한 기능들

Google OAuth 로그인, Gmail 메일함 실시간 조회 & 무한 스크롤, 위험도 기반 자동 분류, 키워드 기반 숨김 규칙, 일괄 휴지통 이동, 설정 페이지. 기능 하나하나를 각자 바이브코딩으로 만들고, PR을 통해 메인에 합쳤다.

중간에 Google OAuth Redirect URI 오류, Gmail API Rate Limit 에러, HTML 메일 본문 XSS 이슈 같은 것들이 터졌다. 각자 AI와 함께 부수고, 해결된 것만 PR로 올렸다. 덕분에 main은 항상 동작하는 상태를 유지했다.

· · ·

💬 남은 생각들

Lesson 01

바이브코딩은 개인 도구가 아니라 팀 전략이다

AI가 내 코드를 대신 써준다고 해서 팀이 필요 없어지는 게 아니다. 오히려 "무엇을 만들지", "어디서 나눌지", "어떻게 합칠지"를 결정하는 사람의 역할이 더 중요해졌다. 바이브코딩을 잘 쓰는 팀은 기획력이 강한 팀이다.

Lesson 02

뼈대를 먼저 잡으면 AI끼리 충돌하지 않는다

각자 AI로 코딩했는데 머지할 때 충돌이 생각보다 적었다. 처음에 디렉터리 구조와 인터페이스를 같이 합의해뒀기 때문이다. 뼈대 = 공통 언어. 이게 없으면 세 개의 AI가 세 개의 다른 프로젝트를 만들어버린다.

Lesson 03

PR 리뷰가 새로운 의미를 가진다

예전엔 PR 리뷰가 "이 코드 맞아?" 를 확인하는 과정이었다. 바이브코딩 환경에선 "AI가 이 방향으로 짰는데 우리 의도랑 맞아?" 를 확인하는 과정이 된다. 리뷰어가 도메인 이해를 더 갖춰야 한다. 코드를 아는 것보다 맥락을 아는 것이 중요해졌다.

Lesson 04

"저거 될 때까지 나는 뭐하지"는 기획 실패다

누군가 대기하는 시간이 생긴다는 건, 그 사람의 역할이 명확하지 않다는 신호다. 바이브코딩으로 개발 속도가 빨라질수록, 팀은 오히려 더 촘촘하게 역할을 나눠야 한다. 기획을 더 잘게 쪼갤수록 팀이 동시에 달릴 수 있다.

· · ·

🤝 마치며

하루짜리 프로젝트였지만, 이 물음은 하루로 끝나지 않을 것 같다. AI가 더 똑똑해질수록, 협업은 어떻게 달라져야 하는가. 아직 답을 다 찾은 건 아니다.

그래도 하나는 알게 됐다. AI는 내 손발이 되어줄 수 있지만, 팀이 어디로 달릴지는 여전히 우리가 결정해야 한다. 그리고 그 방향을 같이 잡는 것, 그게 바이브코딩 시대의 협업이 아닐까.

AI가 코드를 짜준다.
근데 같이 달리려면 결국 약속이 필요하더라.
— 하루가 끝나고 나서야 느껴진 총평
#바이브코딩 #VibeCoding #크래프톤정글 #오픈AI워크숍 #CleanEmail #Flask #GmailAPI #협업 #팀프로젝트회고 #AI개발