비개발자가 Claude Code로 Flutter 앱 3개 만든 과정 (바이브 코딩)
코딩 경험 없이 Claude Code(바이브 코딩)로 Flutter 앱 3개를 완성한 실전 후기. GentleDo, GentleFast, GentleStudy 개발 과정과 노코드 대비 장단점을 솔직하게 공유합니다.
바이브 코딩이란? — AI로 코딩하는 새로운 방식
"바이브 코딩(Vibe Coding)"이라는 말이 있다. AI에게 자연어로 지시해서 코드를 생성하는 방식이다. Andrej Karpathy가 처음 쓴 표현인데, 요즘은 하나의 개발 방법론이 됐다.
나는 이걸 매일 한다. 코딩 경험 없이, Claude Code와 대화하며 Flutter 앱 3개를 동시에 만들고 있다.
왜 Claude Code를 선택했는가 — 노코드 도구와의 차이점
노코드 툴(FlutterFlow, Bubble 등)도 써봤다. 빠르지만 한계가 명확했다.
| 항목 | 노코드 (FlutterFlow 등) | 바이브 코딩 (Claude Code) |
|---|---|---|
| 진입 장벽 | 매우 낮음 | 낮음 (자연어) |
| 커스터마이징 | 제한적 (플랫폼 내) | 무제한 (코드 직접 생성) |
| 복잡한 로직 | 어려움 | 가능 (알고리즘도 짜줌) |
| 소유권 | 플랫폼 종속 | 내 레포에 코드 보유 |
| 비용 | 월 구독 ($$) | Claude 구독만 |
| 네이티브 기능 | 제한적 | 전부 가능 (위젯, 알림 등) |
결정적으로, GentleDo의 모멘텀 감쇠 알고리즘이나 에너지 기반 태스크 필터링 같은 커스텀 로직은 노코드에서 구현이 불가능했다.
비개발자의 Flutter 앱 개발 과정 — 실제 워크플로우
나는 회사에서 기획을 한다. 코드를 읽을 줄은 알지만, 빈 파일에서 앱을 만들어본 적은 없었다.

실제 작업 흐름은 이렇다.
- PROJECT_BRIEF.md에 만들고 싶은 기능을 한국어로 쓴다
- CLAUDE.md에 코딩 규칙을 정의해둔다 (Riverpod 쓸 것, 빨간색 금지, ARB로 다국어 등)
- Claude Code에게 "오늘 할일 탭의 타임라인 뷰를 만들어줘"라고 말한다
- Claude가 코드를 생성하고, 나는 시뮬레이터에서 확인한다
- "이 부분 간격이 좀 좁아" "다크모드에서 안 보여" 같은 피드백을 주고받는다
한 마디로, 설계는 내가 하고, 구현은 Claude가 한다.
GentleDo, GentleFast, GentleStudy — 3개 앱 개발 현황
GentleLab이라는 브랜드 아래 3개 앱을 만들고 있다. 전부 Flutter 기반이고, 같은 디자인 철학(빨간색 금지, 모멘텀 시스템, 에너지 체크인)을 공유한다.
| 앱 | 설명 | 상태 | 테스트 |
|---|---|---|---|
| GentleDo | 에너지 기반 할일 관리 | TestFlight 베타 | 158개 통과 |
| GentleFast | 간헐적 단식 트래커 | MVP 완성 | 69개 통과 |
| GentleStudy | 학습 플래너 | MVP 완성 | 진행 중 |
GentleDo 기준으로, Claude Code와 함께 만든 기능들이다.
- 에너지 체크인 시스템 (Low/Mid/High)
- 모멘텀 점수 (0-100, 감쇠 알고리즘 — 하루 최대 -3)
- 24시간 타임라인 뷰 + 주간 타임블록 뷰
- 집중 모드 (타이머 + 단일 태스크)
- 새 출발 (밀린 태스크 일괄 정리, 죄책감 없이)
- 반복 태스크 (매일/매주/매월) + 서브태스크
- 드래그 앤 드롭 시간 배치
- 미루기 로그 (5가지 사유 + 패턴 분석)
- 온보딩 8페이지 + 알림 5종
- iOS 홈 위젯 (WidgetKit) + Android 위젯 (AppWidget)
- 다크 모드 + 한국어/영어 다국어
- 데스크톱 지원 (macOS, Windows)
테스트 케이스 158개. 전부 통과한다.
Claude Code 사용 팁 — 비개발자가 알아야 할 프롬프트 전략
CLAUDE.md를 먼저 쓰세요
바이브 코딩을 시작하려는 사람에게 하나만 조언한다면 이거다. 내가 쓰는 CLAUDE.md에는 이런 것들이 들어있다.
- 프로젝트 개요 (한 줄)
- 기술 스택 테이블
- 코드 컨벤션 (네이밍, 임포트 순서, 상태 관리 방식)
- 절대 하지 말 것 목록 (빨간색 금지, 하드코딩 금지, 특정 패키지 금지)
- Phase별 범위 (지금 단계에서 뭘 하고, 뭘 하면 안 되는지)
이 문서가 있으면 Claude가 맥락을 이해한 상태로 일한다. 없으면 매번 처음부터 설명해야 한다.
잘 되는 것
반복 작업이 빠르다. 한국어 ARB 파일에 문자열 50개를 추가하고, 영어 번역까지 만들고, 코드에서 참조하는 작업 — 사람이 하면 2시간, Claude는 3분이다.
테스트를 잘 쓴다. "이 provider에 대한 테스트를 작성해줘"라고 하면 정상 케이스, 경계 케이스, 에러 케이스를 다 커버하는 테스트를 만든다.
안 되는 것
복잡한 UI 레이아웃에서 삽질한다. "타임라인 뷰에서 드래그하면 시간이 바뀌는데, 동시에 스크롤도 되어야 해" 같은 요구사항은 한 번에 안 된다. 3~4번 수정을 거친다.
전체 아키텍처를 미리 잡아야 한다. Claude는 시키는 것은 잘 하지만, 앱 전체 구조는 내가 결정해야 한다. 설계 없이 기능만 요청하면 나중에 전부 엎어야 한다. 실제로 두 번 엎었다.
노코드 vs 바이브 코딩 — 솔직한 비교와 한계점
바이브 코딩이 만능은 아니다.
바이브 코딩이 나은 경우:
- 커스텀 알고리즘이 필요할 때 (모멘텀 감쇠, 에너지 필터링)
- 네이티브 기능이 필요할 때 (WidgetKit, 로컬 알림)
- 코드 소유권이 중요할 때
노코드가 나은 경우:
- MVP를 하루 만에 테스트해야 할 때
- UI가 단순하고 CRUD만 있을 때
- 개발 자체에 시간을 못 쓸 때
나는 "앱 3개를 장기적으로 운영할 것"이기 때문에 코드 소유권이 중요했다. 그래서 바이브 코딩을 선택했다.
1인 빌더로서 배운 것들
개발자가 아니어도 앱은 만들 수 있다. 다만, 설계자는 되어야 한다. 무엇을 만들지, 왜 만드는지, 어떤 규칙으로 만들지 — 이건 아직 사람의 몫이다.
블로그도 직접 만들었다. 그 이야기는 이전 글에서 썼다.
다음 글에서는 GentleDo의 아이콘을 7번 바꾼 이야기 — Concept A에서 D까지의 디자인 과정을 공유할 예정이다.