18년 동안 사이드 프로젝트를 한 번도 출시 못 했는데, Claude 덕분에 해냈습니다. Ticketmappr 개발 120일간의 데이터 공개.
In 18 years I never shipped a side project, until Claude. Here's the data from 120 days building Ticketmappr.
핵심 요약
Claude를 활용해 18년 만에 처음으로 사이드 프로젝트를 성공적으로 출시한 개발자의 120일간의 개발 기록과 데이터.
- 개발 생산성 — Claude를 통해 기능 추가와 폐기가 쉬워져 빠른 반복 개발이 가능함
- 코드 성장 — 120일 동안 36,159줄의 코드를 작성하며 웹과 안드로이드 앱을 출시함
- 경험의 중요성 — Claude의 도움에도 불구하고 아키텍처 설계와 인프라 최적화에는 숙련된 개발자의 판단이 필수적임
- 수익 모델 — 제휴 파트너십을 통한 티켓 판매 수수료 모델을 채택함
소프트웨어 개발자로 18년 굴렀는데, Ticketmappr가 내 생애 처음으로 프로덕션까지 출시해 본 사이드 프로젝트임. Claude 덕분에 가능했다. 여러 티켓 판매처의 실시간 이벤트를 하나로 합쳐서 중복 제거된 지도로 보여주는 서비스고, 웹이랑 안드로이드 앱 둘 다 지원함.
Sonnet 3.5로 혼자 다 만들었음. 아래 수치는 전부 git이랑 세션 로그에서 그대로 긁어온 거임.
진짜 놀랐던 건 Claude가 기능을 얼마나 빨리 추가하느냐가 아니라, 기능을 버리는 게 얼마나 부담 없었냐는 거임. 보통은 매몰 비용 때문에 별로인 아이디어도 억지로 붙잡고 있게 되잖아? 근데 Claude를 쓰니까 뭘 만들었다가 나중에 갖다 버려도 정신적 타격이 1도 없음. 오히려 반대 문제가 생기더라. 기능 추가가 너무 쉬우니까 정신 똑바로 안 차리면 코드베이스에 온갖 잡동사니가 다 쌓임. 주기적으로 가지치기 안 해주면 그냥 쓰레기장 됨.
규모
- 120일 (4월 1일 ~ 7월 30일), 빈 레포에서 웹/안드로이드 앱 출시까지
- 코드 총 36,159줄
- 파일 286개, DB 마이그레이션 19회
- 커밋 86회, 실제 작업일 49일
- 커밋당 평균 8.6개 파일 수정
코드 증가 체크포인트
- 4월 8일: ~6,200줄
- 4월 30일: ~11,600줄
- 5월 31일: ~23,200줄
- 6월 14일: ~43,500줄
- 7월 25일: ~49,800줄
언어별: Kotlin 7,906줄, TypeScript/TSX 12,671줄, CSS 6,282줄, SQL 344줄.
얼마나 갖다 버렸나
- 커밋 32회 (37%): 순수 신규 기능
- 커밋 13회 (15%): 이미 배포한 기능 수정
- 커밋 8회 (9%): 이미 배포한 기능 아예 삭제
- 커밋 3회 (3%): 기존 시스템 아키텍처 전면 재작성
- 전체 커밋의 28%가 새로운 걸 만든 게 아니라, 기존 작업을 수정, 삭제, 재구축하는 데 쓰임
- 온보딩 플로우만 최종 버전 나오기 전까지 5번을 갈아엎음
- 핵심 시스템 중 최소 한 번 이상 바닥부터 다시 짠 것들: 백그라운드 임포트 모델, 모바일 데이터 페칭 아키텍처 등
경험이 여전히 중요했던 이유
Claude랑 머리 맞대고 씨름해야 했던 순간이 한두 번이 아님. 여러 소스에서 실시간 이벤트를 긁어와서 지도 이동 속도에 맞춰 합치는 건 진짜 인프라 한계랑 직결되는 문제였음. 배포 한 번 잘못하면 백그라운드 임포트 작업이 서버 자원 다 잡아먹어서 서비스 터지는 상황도 있었고, 실제 데이터 양이 늘어나니까 배치 쓰기(batch write) 속도가 안 나와서 아키텍처를 다시 짜야 했음. 이런 건 프롬프트 잘 쓴다고 해결되는 게 아님. 어떤 질문을 던져야 할지, 어떤 아키텍처 제약은 절대 타협하면 안 되고 어떤 건 그냥 초안이니까 다시 봐도 되는지 판단하는 건 결국 내 짬밥이었음.
Claude Code 사용 내역 (최근 구간)
- 24개 세션, 트랜스크립트 51MB, 총 6,172턴

