AI와 함께 만드는 삶

PM으로 일하며 AI와 함께 무언가를 만들어가는 삶을 기록합니다.

1인개발 2

완성 그 이후 — 운영이라는 두 번째 산, 방치된 버그와 흔적 청소기 (6장)

"완성"이라 부른 지 한 달, 아무도 몰랐던 500 에러7월 2일 유료화 전환까지 마치고, MVP v2는 문서상 "완성"이었다. 그런데 7월 31일, 무심코 시스템 상태를 확인하는 API(/api/config/status)를 호출했다가 500 에러를 받았다.원인은 어이없을 만큼 단순했다. claude_available()이라는 함수를 호출하는 코드는 있는데, 그 함수를 import하는 줄이 빠져 있었다. NameError. 배포된 지 오래됐지만, 이 엔드포인트를 실제로 호출해본 사람이 아무도 없어서 아무도 몰랐다. 서비스가 "완성"됐다는 건 화면에 보이는 기능이 다 돌아간다는 뜻이지, 한 번도 안 눌러본 구석까지 다 멀쩡하다는 뜻은 아니었다.로컬에서 그냥 켜는 것조차 순탄하지 않았다같은 날, 로컬 개발 ..

PM을 위한 AI 실무 사전 1편 — MVP, 그리고 스택 선택

누구나법률 1장(출발 — 법 앞에 누구나)에서 나온 이야기를 이해하는 데 필요한 개념들을 정리했다. 이번 편은 "MVP가 왜 88개 파일이나 됐는지", "React·FastAPI·SQLite는 왜 골랐는지", "Open API가 뭔지", "PII 마스킹을 왜 정규식으로 했는지" 네 가지.MVP인데 왜 하루 만에 88개 파일이 나왔나MVP(Minimum Viable Product)는 원래 "최소 기능 제품"이다. PM 시절에 흔히 쓰던 정의는 "핵심 가설을 검증할 수 있는 가장 작은 버전"이었다. 그런데 누구나법률 1장에서 첫 커밋이 벌써 88개 파일, 19,209줄이었다. 이게 정말 "최소"였을까.결론부터 말하면 — AI 코딩 도구를 쓰면 "최소"의 기준선 자체가 달라진다. 예전 기준으로 "MVP"라고 ..