본문 바로가기

성장의 발자취

바이브 코딩으로 앱 출시하기 (feat. 기억해달)

요즘 AI의 발달로 바이브 코딩을 통해 서비스를 만드는 사람들이 많아졌다.

앱 개발자로써 트렌드에 뒤쳐지지 않고자 도전해본 경험을 공유하려 한다.


📌 프로젝트 소개: 소중한 사람을 위한 '기억해달'

기억해달은 소중한 사람들의 생일을 기록하고,

선물 교환 여부를 추적하며,

푸시 알림으로 생일을 놓치지 않도록 도와주는 유틸리티 앱이다.

 

이 앱을 만들기 전 GPT의 이미지 생성 기능이 점점 좋아지는 걸 느끼고

제대로 활용해보고 싶어 꼭 앱에 캐릭터를 넣고 싶었다는 생각을 했었다.

 

그래서 어떤 캐릭터를 넣을까 고민하다가 해달은 자기가 좋아하는 소중한 돌을 평생 주머니에 간직하는 습성이 있고,

이 컨셉을 "소중한 사람의 생일을 마음속에 간직한다"는 앱의 핵심 가치와 연결하면 좋겠다는 생각으로

"기억해달라"는 메시지와 동물 " 🦦 해달"을 조합한 기억해달로 네이밍을 했다ㅎㅎ

 

 

기억해달 - 생일 관리 캘린더 앱 - App Store

App Store에서 Gyeongbin Im의 기억해달 - 생일 관리 캘린더 앱을 다운로드하십시오. 스크린샷, 평가 및 리뷰, 사용자 팁 및 기억해달 - 생일 관리 캘린더 앱과 비슷한 다른 앱을 볼 수 있습니다.

apps.apple.com

 

 

기억해달 - 생일 관리 캘린더 - Google Play 앱

소중한 사람의 생일, 해달이 기억해드려요

play.google.com

 

🎯 만들게 된 이유

그동안 협업 중심으로 앱을 개발을 해왔다면,

이번에는 기획, 디자인, 개발, 출시까지 전 과정을 혼자 힘으로 완주해 보고 싶어

AI를 활용한 1인 개발에 도전하게 되었다.

 

이번 프로젝트의 시작은 바로 '여자친구의 니즈'였는데,

평소 주고받은 선물 내역을 기록하고 관리하는 데 불편함을 겪었고

문득 둘러보니 우리가 매일 쓰는 구글 캘린더나 카카오톡 같은 대형 플랫폼 어디에도

'선물 이력을 체계적으로 관리하는 기능'은 부재하다는 점을 깨달았다.

 

이처럼 기존 서비스들이 놓친 시장의 빈틈을 발견하고,

대형 플랫폼의 무거운 기능 대신 오롯이 '선물 이력 관리'라는 핵심 기능만 명확히 존재하는 심플한 앱을 만들고 싶었다.

 

💡 기술 선택

사이드 프로젝트에 쏟을 수 있는 리소스는 한정되어 있고,

안드로이드 스토어쪽은 출시 경험이 없었기에

양대 스토어(iOS, Android)에 출시하는 경험을 해보고 싶어서

이번 프로젝트의 메인 프레임워크로는 Flutter를 선택했다.

 

✨ AI와 함께한 작업 방식

역할 분담은 철저하게 [내가 방향을 잡고 ➔ AI가 실행하는] 구조로 진행했다.

서비스 기획과 캐릭터 이미지 생성은 ChatGPT,

디자인과 실제 개발 및 코드 구현은 Claude Code를 활용했다.

내가 한 것 (Pilot) AI가 한 것 (Copilot)
• 서비스 상세 컨셉 및 방향성 설정

• 디자인 시스템 규칙 정의 (색상, 폰트) - 핑크 계열

• 전체 아키텍처 및 폴더 구조 설계

• 코드 리뷰 및 최종 방향 수정

• 기능 테스트

• 스토어 심사 대응 및 거절 사유 해결
[ ChatGPT ]

• 서비스 기획 및 아이디어 구체화

• 해달 캐릭터 이미지 생성


[ Claude Code ]

• UI 코드 및 디자인 시스템 맞춤형 공통 위젯 구현

• 반복적인 CRUD 및 데이터 레이어 코드 작성

• 버그 수정 및 리팩토링 제안

실제 작업 예시: 캘린더 화면을 만들 때, "무한 스크롤이 되는 세로형 캘린더를 만들고, 생일이 있는 날짜에 마커를 표시해 줘. 그리고 날짜를 탭 하면 바텀시트로 해당 날짜의 생일자 목록이 뜨게 해줘." 이런 식으로 요구사항을 명확히 던지면, Claude Code가 코드를 짜고 저는 이를 리뷰 및 테스트하며 디테일을 잡아가는 사이클을 반복했습니다.

 

🔨 개발 타임라인: 압도적인 속도의 경험

전체 개발 기간은 2025년 11월부터 2026년 4월까지, 약 5개월입니다.

 

프로젝트 초기 세팅은 작년 11월에 했는데,

당시 본업이 너무 바빠서 정신 없이 지내다가 

2026년 2월 한 달 동안 거의 모든 기능을 구현했다.

2025.11  ██░░░░░░░░░░░░░░░░░░  7 commits   — 프로젝트 초기 세팅 및 첫 캘린더 UI
2026.01  █░░░░░░░░░░░░░░░░░░░  2 commits   — (본업에 집중하며 잠시 숨 고르기)
2026.02  ████████████████████  86 commits  — 핵심 기능 몰아서 전부 구현! 🔥
2026.03  ███░░░░░░░░░░░░░░░░░  12 commits  — 양대 스토어 출시 및 초기 버그 수정
2026.04  ███░░░░░░░░░░░░░░░░░  11 commits  — 홈 화면 위젯 추가 및 안정화 작업

 

생일 CRUD, 선물 내역 관리, 로컬 알림, 디바이스 연락처 연동, 온보딩 흐름, 설정 및 스플래시 화면까지

이 모든 과정을 한 달 남짓한 시간 안에 끝내고 출시 빌드까지 뽑아냈다는 건,

다시봐도 바이브코딩의 속도가 아니었다면 불가능했을 것 같다.

 

🌱 개발자의 Figma 없는 디자인

디자이너 없이 앱을 디자인하는 건 처음 경험해보았지만,

지금까지 어깨 너머로 경험했던 기억을 살려서

'디자인 시스템'을 먼저 정의하니 혼자서도 충분히 헤쳐 나갈 수 있었다.

  1. 코드 레벨의 디자인 시스템 정의 (내가 직접)
    • Color: 메인은 편안한 라벤더(#B8A3E6), 포인트는 톡 튀는 핑크(#EC4899)
    • Font: 귀여운 맛을 살릴 '메이플스토리체' (폰트가 생명인 거 같다ㅋㅋㅋ)
    • Rule: 모든 주요 인터랙션은 모바일 한 손 조작이 쉬운 바텀시트 중심으로, FAB 버튼 스타일 통일.
  2. UI 구현 및 실시간 피드백 (with Claude Code)
    • 정의한 시스템을 AppColors, ScreenUtil 등으로 코드화해 AI에게 학습.
    • 이후 *"우리가 정의한 색상 팔레트와 폰트 규칙을 기반으로 설정 페이지를 만들어줘"*라고 요청.
    • 뼈대가 나오면 실기기로 확인하며 코드 개선.
    • Figma를 켜지 않고 [머릿속 구상 ➔ 디자인 시스템 코드 ➔ AI 구현 ➔ 기기 확인] 루프
  3. AI로 캐릭터 에셋 뽑기 (with ChatGPT)
    • 앱의 마스코트인 해달 캐릭터는 ChatGPT로 제작.
    • "스티커 일러스트 스타일, 선명한 흰색 외곽선, 라벤더 색상의 동글동글한 해달 캐릭터" 같은 프롬프트를 깎아가며 스플래시 화면, placeholder, 에러 화면 등에 쓸 상황별 이미지를 통일감 있게 확보.

앱 서비스 스크린샷

🚀 스토어 심사 대응

 

- iOS

경험이 많아 큰 문제 없이 진행되었으나,

심사 과정에서 "연락처 권한을 통해 수집한 데이터를 서버에 저장하느냐"는 개인정보 관련 문의가 한 차례 있었고

이에 데이터를 외부 서버에 저장하지 않고 로직 내부에서만 활용한다는 점을 명확히 설명하여 안전하게 승인을 받아냈다.

 

- Android 

처음으로 안드로이드 출시를 진행하다 보니 구글의 정책을 미처 다 파악하지 못했었다.

특히 신규 개발자 계정에 적용되는 '20인 비공개 테스트' 규정을 전혀 생각지도 못하고 있다가 직면하게 되어

테스트 인원을 모으고 기간을 채우는 과정이 가장 고되고 까다로웠다.

 

 

🤔 개발자가 바이브 코딩 했을 때

비개발자도 코딩을 할 수 있는 시대지만,

엔지니어링 지식이 있는 개발자가 AI라는 도구를 쥐었을 때,

그것을 더 잘 활용할 수 있다고 느껴졌다.

  1. 방향성과 아키텍처를 잡을 수 있다
  2. AI는 돌아가는 코드를 짜지만, 방치하면 유지보수가 불가능한 스파게티 코드가 된다.
    개발자가 중심을 잡고 "이 로직은 Repository 패턴으로 분리해 줘", "이 상태는 Controller 구조 안으로 캡슐화해" 라고 구조적 지시를 내려야 코드 품질이 유지된다.
  3. 코드 리뷰와 리팩토링이 가능하다
  4. AI가 짠 코드를 읽으며 비효율적인 부분을 찾아내고 수정을 지시하는 것은 개발자만의 무기다. (실제로 Hive에서 Drift(SQLite)로 DB를 마이그레이션할 때도, AI가 초안을 잡으면 제가 데이터 스키마를 꼼꼼히 검토하며 방향을 수정했다.)
  5. 에러 로그를 해석하는 디버깅 감각이 있다
  6. "R8 난독화 때문에 알림이 터진다"는 걸 에러 로그만 보고 눈치채는 건 개발자의 몫입니다. AI에게 문제를 해결해 달라고 요청하기 전에, '어떤 에러 로그와 기술적 맥락을 던져주어야 하는지' 아는 것 자체가 개발자의 핵심 역량입니다.
  7. 소통의 속도 자체가 다르다
    • 비개발자: 요구사항 장황하게 설명 ➔ AI가 코드 생성 ➔ 적용해 보니 안 됨 ➔ 뭐가 원인인지 몰라 헤맴 ➔ 다시 장황하게 설명 (도돌이표)
    • 개발자: 요구사항 + 명확한 기술 컨텍스트 제시 ➔ AI가 코드 생성 ➔ 개발자가 코드 리뷰 ➔ 정확하고 깔끔한 수정 지시 ➔ 완료

솔직히 AI라는 든든한 파트너가 없었다면 혼자서 이렇게 빠른 속도로 앱을 출시하지 못했을 것 같다.

그렇다고 바이브코딩이 마법의 단추는 아닌 것도 느꼈다.

"어떤 가치를 가진 서비스를 왜 만들 것인가"를 기획하고, 설계하고, 코드를 검증하고, 유저 피드백을 반영하는 일련의 책임은 오롯이 서비스를 개발한 사람의 몫이기 때문이다.

 

'기억해달'은 아직 걸음마 단계의 작은 앱이지만,

내 손으로 기획한 아이디어를 세상에 온전히 내놓았다는 이 경험 자체는

앞으로 제 개발 인생에 큰 자산이 될 것 같다.

읽어주셔서 감사합니다!