데모는 되는데 런칭만 하면 무너지는 이유 5가지

데모는 되는데 런칭만 하면 무너지는 이유 5가지
AI, RAG, ML 프로젝트 공통 — 왜 "잘 되던 게" 프로덕션에서 터질까
데모 vs 런칭
데모: 좋은 입력 + 한 번 실행 + 옆에서 지켜봄
런칭: 나쁜 입력 + 반복 + 예외 + 운영 + 책임
이 차이를 인식하지 못하면, 데모에서 박수받은 프로젝트가 런칭 1주일 만에 롤백됩니다.
1. 입력 분포가 달라진다
데모셋 vs 현실
데모할 때는 "잘 되는 예시"를 골라서 보여줍니다. 현실에서는 오타, 줄임말, 이상한 포맷, 악의적 입력이 들어옵니다.
증상: 특정 케이스에서만 급격히 망가짐. "평균 정확도 90%인데 왜 컴플레인이 쏟아지지?"
처방:
- Shadow traffic으로 실제 입력 분포 파악
- Canary 배포로 일부 트래픽만 먼저 노출
- 실패 케이스 자동 수집 루프 구축
2. 의존성이 늘어난다
도구 / 검색 / 외부 API / 권한 / 네트워크
데모에서는 모든 외부 서비스가 정상 동작합니다. 프로덕션에서는 API가 느려지고, 토큰이 만료되고, 네트워크가 끊깁니다.
증상: 재시도 폭증, 타임아웃, 부분 실패. "어제까지 됐는데 오늘 갑자기 안 돼요"
처방:
- Time budget 설정 (전체 요청에 상한선)
- Circuit breaker로 장애 전파 차단
- Graceful degradation (외부 실패 시 대체 경로)
3. 평가 기준이 바뀐다
정확도 → 신뢰 / 책임 / 설명가능성
데모에서는 "맞으면 성공"입니다. 프로덕션에서는 "맞아도 문제"이고 "틀리면 큰 사고"입니다.
증상: 정확한 답변인데 클레임 발생. 법무팀에서 연락 옴. "이거 누가 책임져요?"
처방:
- 정책/가드레일 적용 (민감 주제, 개인정보)
- Abstain 옵션 (확신 없으면 답변 거부)
- Evidence-first (근거 먼저, 결론은 나중에)
4. 상태/캐시/동시성이 들어온다
현업은 '반복'이 기본
데모는 한 번 실행하고 끝입니다. 프로덕션에서는 같은 질문이 1000번 들어오고, 캐시되고, 동시에 처리됩니다.
증상: 같은 질문인데 답이 달라짐. 캐시 오염. 경쟁 상태(race condition).
처방:
- Deterministic path 확보 (temperature=0, seed 고정)
- Caching policy 명확히 (언제 캐시, 언제 재생성)
- Idempotency 보장 (같은 요청 = 같은 결과)
5. 운영이 시작된다
모니터링 / 알람 / 롤백 / 핫픽스
데모에는 운영이 없습니다. 프로덕션에서는 새벽 3시에 알람이 오고, 조용히 망가지고 있었던 걸 일주일 뒤에 발견합니다.
증상: Silent failure (에러 로그 없이 잘못된 결과). 비용 폭발 (무한 재시도).
처방:
- SLO/SLI 정의 (성공률, 레이턴시, 비용 상한)
- Error budget 설정 (허용 가능한 실패율)
- 로그 설계 (0-hit, retry, fallback 추적)
런칭 전 체크리스트
10개 중 3개 이상 ☐라면, 아직 런칭할 준비가 안 된 겁니다.
다음 편 예고
- 2편: 바이브코더를 위한 실전 가이드 — "로컬에서 되던 게 왜 안 되지?"
- 3편: 조직/팀을 위한 가이드 — "런칭에서 망하는 진짜 이유: 합의·책임·운영"