Claude Code를 실제로 유용하게 만든 습관: 일부러 '버릴 버전'부터 만들기
The habit that made Claude Code actually useful for me: build the throwaway version first, on purpose
핵심 요약
Claude로 코딩할 때 완벽을 기하기보다 빠르게 버릴 프로토타입을 먼저 만들어 요구사항을 검증하는 전략입니다.
- 버릴 버전 작성 — 빠르게 프로토타입을 만들어 실제 원하는 기능인지 검증함
- 비용 절감 효과 — 잘못된 아이디어를 구현하는 데 시간을 낭비하지 않게 됨
- 경험 기반 개발 — 첫 번째 시도에서 얻은 교훈으로 두 번째 버전을 정교하게 설계함
- 심리적 장벽 극복 — 처음부터 완벽한 코드를 짜야 한다는 강박을 버리는 것이 핵심임
한동안 나는 Claude가 내 머릿속에 있는 것과 다른 결과물을 내놓을 때마다 씨름했음. 수정하고, 다시 방향을 잡고, 기능이 작동하는 걸 보기도 전에 '올바른' 아키텍처를 뽑아내려고 한 시간씩 쏟아붓곤 했지.
지금은 정반대로 함. 첫 번째 패스에서는 그냥 빠르고, 엉망이고, 아마 틀렸을 버전을 만들게 함. 하드코딩된 값, 거대한 파일 하나, 테스트도 없음. 그중 무엇 하나 남길 생각이 없음. 그냥 코드가 돌아가는 걸 보고 내가 애초에 올바른 기능을 요청한 게 맞는지 확인하고 싶을 뿐임.
절반 정도는 코드가 돌아가는 걸 보면 내가 원한 기능이 아니었다는 걸 깨달음. 내가 설명한 기능은 내가 원한 기능이 아니었음. 직접 써봐야만 그걸 알 수 있는데, 버릴 버전은 10분이면 만들 수 있으니까.
그러고 나서 다 지워버림. 전부 다. 그리고 첫 번째 버전이 무너지는 걸 보면서 배운 모든 걸 담아 두 번째 버전을 설명함. 그 버전은 보통 거의 정확하게 들어맞음. 왜냐하면 이제는 상상이 아니라 경험을 바탕으로 명시하고 있으니까.
내가 극복해야 했던 건 '낭비'라는 느낌이었음. 버릴 코드를 200줄이나 쓰게 하는 게 멍청하게 느껴졌거든. 하지만 그 200줄은 애초에 비싼 부분이 아니었음. 무엇을 만들지에 대한 내 잘못된 생각이 비싼 부분이었고, 버릴 버전은 그걸 조기에 제거하는 가장 저렴한 방법이었음.
예전 방식대로라면 잘못된 기능을 하루 종일 다듬다가 뒤늦게 알아차렸을 거임. 지금은 10분 만에 무너져 내리는데, 그게 바로 내가 이 방식을 만든 이유임.
다들 의도적으로 버릴 버전을 먼저 만들어봄? 아니면 첫 번째 시도를 바로 믿고 가는 편임?


