본문 바로가기
개발자/사이드프로젝트 창업

앱 하나 출시까지, 현실 타임라인

by 나무011 2026. 6. 20.
사이드 프로젝트 솔직 경험담 ⏱ 읽는 시간 약 9분

기획부터 앱스토어 등록까지 — 개발자가 쓴 솔직한 사이드 프로젝트 분투기. 예상 일정은 항상 틀렸다.

처음 아이디어가 떠올랐을 때 나는 노션을 열고 "예상 출시일: 3개월 후"라고 적었다. Next.js로 웹앱, 모바일은 PWA로 감싸면 되니까 빠를 거라 생각했다. 기획 2주, 개발 6주, QA 2주, 출시. 완벽한 계획이었다.

실제로는 7개월이 걸렸다.

이 글은 그 7개월을 있는 그대로 기록한 것이다. 성공담이 아니다. 오히려 "왜 이렇게 오래 걸렸지?"를 돌아본 반성문에 가깝다. 비슷한 여정을 준비 중인 분들에게 솔직한 참고서가 됐으면 한다.

 

앱 하나 출시까지
앱 하나 출시까지
3개월
최초 예상 기간
7개월
실제 소요 기간
2회
방향 전환 (피벗)
1건
앱스토어 심사 반려

Phase 0. 아이디어 — 가장 들뜨고, 가장 위험한 시간

Day 1–7
1주
💡
아이디어 → 노션 기획서 v0.1
기획
"이런 앱이 없네? 내가 만들자." 출퇴근길 지하철에서 떠오른 아이디어를 노션에 쏟아냈다. 기능 목록은 두 페이지. 차별점도 써 내려갔다. 이 단계가 사실 제일 위험하다. 아직 아무것도 힘들지 않아서 무한히 기능을 추가하게 된다. 현실 체크

아이디어 단계에서 내가 기획한 기능은 총 23개였다. MVP를 만들어야 한다는 걸 머리로는 알면서도, "이것도 있어야 하고, 저것도 넣으면 좋겠고"가 멈추질 않았다. 퇴근 후 피자 시키며 혼자 기획서 보는 그 시간이 사이드 프로젝트에서 제일 행복한 순간인 것 같다. 아직 코드를 한 줄도 안 짰으니까.

⚠️
아이디어 단계의 함정: "이미 비슷한 앱이 있어도 내 게 더 나을 것"이라는 확신. 앱스토어 조사를 해보니 유사 앱이 세 개 있었다. 다운로드 수를 보고 잠깐 멈칫했다가, "UI가 별로니까 내가 이긴다"라고 합리화했다. 이게 나중에 꽤 중요해진다.

Phase 1. 기술 스택 선택 — 이것도 생각보다 오래 걸린다

Day 8–21
2주
🗂️
스택 결정 + 프로젝트 셋업
기획
Next.js App Router + Supabase + Tailwind CSS + Expo(모바일). 결정까지 5일 걸렸다. "React Native로 해야 하나, Flutter도 보이는데"로 시작해서 기술 스택 비교 글을 10개 넘게 읽었다. 시간 낭비 포인트
 
 
 
최종 결정한 스택 — 처음 구상과 두 번 바뀐 흔적
// 최초 구상 (Day 1)
// Next.js + Firebase + styled-components + React Native

// 1차 변경 (Day 8) — "Firebase 비용이 무서워"
// Next.js + Supabase + Tailwind + React Native

// 최종 결정 (Day 13) — "React Native 러닝커브 지금 감당 안 됨"
const finalStack = {
  frontend: 'Next.js 14 (App Router)',
  backend:  'Supabase (Auth + DB + Storage)',
  styling:  'Tailwind CSS + shadcn/ui',
  mobile:   'PWA (Capacitor로 앱 래핑)', // 타협
  deploy:   'Vercel',
};

스택 결정이 끝나고 나서도 보일러플레이트 세팅에 4일이 더 갔다. ESLint, Prettier, Husky, 폴더 구조, 환경변수 관리, Supabase 로컬 세팅. 이 단계를 가볍게 보면 나중에 더 힘들다는 걸 알지만, 그래도 예상보다 항상 오래 걸린다.

Phase 2. 개발 — 처음 2주와 나머지 6주가 완전히 다르다

Day 22–35
2주
허니문 기간 — 하루에 커밋 10개
개발 순항
인증, 메인 페이지, 핵심 기능 1개 완성. GitHub 잔디가 예쁘게 채워졌다. "이 속도면 다음 달 출시도 가능하겠는데?" 하는 생각이 들기 시작했다. 지금 돌이켜보면 이때가 제일 경계해야 하는 순간이었다.
Day 36–70
5주
🔥
현실의 벽 — 예상 못 한 것들의 연속
블로커 등장
Supabase RLS 정책 삽질 3일, 모바일 뷰포트 이슈 4일, Next.js App Router 캐싱 버그 2일, 소셜 로그인 콜백 처리 2일... 블로커 하나 풀리면 다음 블로커가 기다리고 있었다. 멘탈 최저점

개발 5주 차쯤에 커밋 히스토리를 보다가 충격을 받았다. 일주일 전 커밋 메시지가 fix: 진짜로 고쳐짐이었다. 그 전 커밋은 fix: 제발이었다. 그리고 그 전은 fix: 왜 안 돼. 아마 그 주에 Supabase의 Row Level Security 정책이랑 씨름하던 것 같다.

"사이드 프로젝트는 세 번 포기하고 싶을 때 버티면 완성된다. 나는 다섯 번 포기하고 싶었다."

— 개발 6주 차 일기
🚨
가장 오래 막혔던 이슈 TOP 3
1. Supabase RLS + Next.js 서버 컴포넌트 — 서버에서 인증된 유저로 DB 접근하는 패턴을 이해하는 데 3일
2. Capacitor + Next.js PWA 빌드 — iOS Safari 뷰포트 높이 버그. 100vh가 주소창 포함 계산되는 문제. 해결법이 dvh 단위 하나였는데 이걸 찾는 데 이틀
3. 이미지 업로드 + Supabase Storage + CORS — 로컬에서는 되는데 프로덕션에서 안 되는 CORS 이슈. 원인은 Storage 버킷 정책 설정 한 줄이었다

Phase 3. "기능은 다 됐는데" — 디자인이 발목을 잡다

Day 71–98
4주
🎨
디자인 & UI 폴리싱
UX 작업
기능 구현이 끝나고 실제 폰에서 앱을 켜봤다. "이게 내 앱이라고?" 싶은 UI였다. shadcn 기본 컴포넌트만 쓴 결과였다. 4주를 디자인 개선에 투자했는데, 이게 예상에 없던 시간이었다. 예상 외 공수

개발자 입장에서 제일 과소평가하는 게 디자인 공수다. "shadcn 쓰면 예쁘게 나오겠지"라고 생각했는데, 컴포넌트가 예쁜 것과 앱 전체가 예뻐 보이는 것은 완전히 다른 문제였다. 간격, 색상 체계, 타이포그래피, 빈 상태(empty state) 화면, 로딩 스켈레톤. 이것들을 하나하나 잡는 데 4주가 걸렸다.

작업 항목 예상 공수 실제 공수 차이
색상 시스템 / 다크모드 2일 5일 +3일
모바일 반응형 조정 3일 7일 +4일
로딩 / 에러 / 빈 상태 UI 1일 4일 +3일
앱 아이콘 / 스플래시 스크린 반나절 3일 +2.5일
온보딩 플로우 2일 2일 예상 적중

온보딩 플로우만 예상 적중이었다. 나머지는 전부 초과였다. 특히 다크모드는 "그냥 CSS 변수 바꾸면 되지"라고 생각했다가 크게 당했다. 이미지, 그림자, 반투명 레이어가 모두 다크모드에서 다시 손봐야 했다.

Phase 4. QA — 혼자 하는 테스트의 한계

Day 99–119
3주
🔍
QA + 베타 테스트 (지인 5명)
테스트
직접 테스트로는 못 잡은 버그를 지인 베타에서 첫날에 7개 발견했다. "다들 나랑 다르게 쓰네"가 제일 큰 충격이었다. 예상 2주가 3주로 늘었다. 인사이트 폭발 구간
💡
베타 테스트에서 배운 것
개발자는 앱의 올바른 사용법을 알고 쓴다. 실제 사용자는 내가 상상도 못 한 순서로 화면을 탐색한다. 지인 베타 5명이 찾아낸 버그 중 3개는 "이 버튼을 왜 저 타이밍에 누르지?"라고 생각한 케이스였다. 그게 실제 사용자였다.

Phase 5. 앱스토어 등록 — 여기서 또 막힌다

Day 120–142
3주
📦
앱스토어 / 플레이스토어 제출 + 반려
스토어 등록
App Store 첫 번째 심사: 반려. 사유는 "앱 내 개인정보 처리방침 링크가 작동하지 않음". 링크는 작동했는데, 심사 환경에서 안 됐던 것. 재제출 후 6일 만에 승인. Play Store는 상대적으로 순탄했지만 스크린샷 규격에서 두 번 반려.

앱스토어 등록을 준비하면서 처음 알게 된 것들이 생각보다 많았다. 개인정보 처리방침 페이지 따로 만들기, 앱 심사용 계정 제공, 특정 기능 사용 이유 명시(카메라, 알림 등 권한별로), 스크린샷은 기기별로 최소 3장씩. Play Store는 앱 카테고리별로 추가 서류가 붙는 경우도 있었다.

⚠️
스토어 등록 예상 못 한 준비물
• 개인정보 처리방침 URL (별도 웹페이지 필요)
• 이용약관 URL
• 앱 심사용 테스트 계정 (ID/PW)
• 각 권한 사용 이유 문구 (NSCameraUsageDescription 등)
• 기기별 스크린샷: iPhone 6.9인치, 6.5인치, iPad — 각각 따로
• 앱 프리뷰 영상 (선택이지만 없으면 노출 불이익)

실제 시간 분배 — 예상과 현실

기획 / 설계
21일
13%
핵심 기능 개발
45일
28%
버그 수정 / 삽질
35일
22%
디자인 / 폴리싱
28일
18%
QA / 베타
21일
12%
스토어 등록 / 기타
14일
9%

한 가지 놀라운 점은, 버그 수정과 삽질이 전체 기간의 22%를 차지했다는 것이다. 처음 계획에서 이 항목은 "개발 기간 안에 포함"으로 0% 취급했다. 그리고 디자인 폴리싱도 별도 항목으로 잡지 않았다. 이 두 개가 내 일정 예측을 완전히 무너뜨렸다.

Phase 6. 출시 당일 — 기대보다 조용했다

Day 143
출시일
🚀
드디어 출시
LIVE
오전 11시에 앱스토어 상태가 "판매 중"으로 바뀌었다. X(트위터)에 출시 글을 올렸다. 리트윗 4개, 좋아요 31개. 첫날 다운로드 38건. 솔직히 좀 허무했다.
Day 144–
현재
📊
출시 이후 — 진짜 일이 시작됐다
운영
버그 제보 2건, 기능 요청 5건, 별점 3.8점 (리뷰 12개). 출시가 끝이 아니라 시작이라는 말이 이제야 체감된다. 그리고 기획 단계에서 조사했던 유사 앱 중 하나가 이미 내 핵심 기능을 업데이트로 추가해 있었다.

결국 배운 것들 — 다음 프로젝트에 적용할 것

다음엔 이렇게 할 것
① 기능 목록에서 60%를 지운 뒤 시작하기 — MVP는 생각보다 훨씬 작아야 한다
② 디자인 공수를 개발 공수의 30%로 별도 산정하기
③ "삽질 버퍼"를 전체 기간의 25%로 예산에 포함시키기
④ 스토어 등록 준비물 체크리스트 미리 만들어두기
⑤ 베타 테스트를 개발 완료 전(기능 70% 시점)에 시작하기

그리고 한 가지 더. 출시 후 조용한 게 실패가 아니라는 것. 38건 다운로드 중 실제로 매일 쓰는 사람이 11명 있다는 통계를 보고 처음엔 실망했다가, 11명이 매일 내가 만든 걸 쓴다는 게 오히려 신기하고 뿌듯해졌다. 이 감각이 없었으면 다음 프로젝트도 없었을 것이다.

출시하는 순간보다, 누군가가 처음으로 "이거 좋네요"라는 리뷰를 남겼을 때가 훨씬 더 기뻤다.

— 출시 2주 후, 앱스토어 리뷰 알림을 받던 새벽 1시

7개월이 걸렸고, 예상은 전부 빗나갔다. 그래도 후회는 없다. 다만 솔직하게 말하면 — 혼자서 앱 하나를 처음 출시하는 건 "3개월이면 되겠지"라고 생각할 때의 두 배 이상 걸린다. 이 글을 읽는 분이 지금 사이드 프로젝트를 준비 중이라면, 일정표의 오른쪽 끝을 조금만 더 늘려두시길 권한다.


🚀 여러분의 출시 타임라인은 어땠나요?

사이드 프로젝트를 완성해서 출시한 경험이 있으신가요? 예상 기간과 실제 기간이 얼마나 차이 났는지, 어느 단계에서 제일 막혔는지 댓글로 이야기해 주세요. 반대로 아직 기획 단계에서 시작도 못 하고 있다면 — 그것도 댓글로 남겨주시면 같이 이야기해 봐요. 저도 시작은 그랬으니까요. 💬


소개 및 문의 · 개인정보처리방침 · 면책조항

© 2026 나무핀