Map vs Territory#
- Map(지도): Claude에게 제공하는 정보 — 프롬프트, 스킬, 컨텍스트.
- Territory(실제 지형): 실제 코드베이스와 현실의 제약.
- Unknowns: map과 territory 사이의 격차. Claude가 추측으로 메워야 하는 영역이다.
- 작업 결과가 틀리게 돌아오면 대개 모델을 탓할 게 아니라 unknowns 정의나 (적응 여지를 둔) 구현 계획에 시간을 더 써야 한다는 신호다.
Unknown의 4가지 유형 (Johari Window)#
- Known Knowns: 프롬프트에 명시한 요구사항. 예) “이 버튼을 추가해줘”.
- Known Unknowns: 아직 못 풀었지만 모른다는 건 아는 것. 예) “색상 그레이딩이 뭐지?”.
- Unknown Knowns: 너무 당연해서 명시하지 않고 넘어간 것. 코드베이스 관례, 도메인 상식.
- Unknown Unknowns: 아예 고려조차 못 한 것. 더 나은 아키텍처, 놓친 성능 최적화.
- 값싼 발견(구현 전 탐색)이 값비싼 수정(구현 후 되돌리기)보다 훨씬 효율적이라는 게 전체 워크플로의 전제다.
구현 전 (Pre-implementation)#
- 다루는 unknown: unknown unknowns · known unknowns · unknown knowns. 코드를 쓰기 전에 숨은 unknown 세 종류를 최대한 드러내고 명시화하는 단계다.
- Blind Spot Pass — unknown unknowns: 아예 인식조차 못 한 사각지대를 미리 캐낸다. 낯선 영역을 건드릴 때.
- 예) “auth 작업을 하는데 auth 모듈을 전혀 모른다. blind spot pass로 내 unknown unknowns를 짚어줘.”
- Brainstorms / Prototypes — known unknowns: 모른다는 건 아는 선택지를, 큰 변경이 비싸지기 전에 눈으로 보고 방향을 정한다.
- 예) “서로 확연히 다른 4가지 디자인 방향을 HTML 페이지 하나로 만들어줘. 보고 반응할 수 있게.”
- Interviews — unknown knowns: 내가 당연하다 여겨 안 말한 전제를, Claude가 한 번에 한 질문씩 되물어 끌어낸다. 아키텍처를 바꿀 답부터 우선.
- 예) “모호한 부분을 한 질문씩 인터뷰해줘. 내 답이 아키텍처를 바꾸는 지점을 우선으로.”
- References — unknown knowns: 말로 설명하기 어려운 암묵적 기준을 코드/디자인 예시로 넘긴다. 가장 강력한 형태는 소스 코드 자체.
- 예) Rust 라이브러리의 백오프 로직을 보여주고 TypeScript로 재구현하게 지시.
- Implementation Plans — 되돌리기 비싼 결정: 나중에 만질 가능성이 큰 결정을 앞으로 끌어와 미리 검토한다. 데이터 모델, 타입 인터페이스, UX 플로우에 초점.
- 예) “내가 가장 손댈 만한 결정부터 앞세워줘: 데이터 모델 변경, 새 타입 인터페이스, 사용자 대면 기능.”
구현 중 (During implementation)#
- 다루는 unknown: 구현 중 새로 튀어나오는 unknown unknowns. 계획엔 없던 엣지 케이스를 만나면 그 자리에서 기록해 known으로 전환한다.
- Implementation Notes: 계획에서 벗어난 선택을
implementation-notes.md에 기록해 다음 시도에 학습을 반영한다.- 엣지 케이스로 계획을 벗어나야 하면 보수적 옵션을 고르고 ‘Deviations’에 로그한 뒤 진행한다.
구현 후 (Post-implementation)#
- 다루는 unknown: 남은 known unknowns. 변경을 나와 리뷰어 모두에게 known known으로 만들어, 오해나 놓친 부분이 없는지 확인한다.
- Pitches / Explainers: 데모 GIF + 스펙 + 구현 노트를 Slack 한 장으로 패키징해 리뷰어 승인을 가속한다.
- Quizzes: 변경을 완전히 이해했는지 자가 검증. Claude에게 컨텍스트와 퀴즈를 만들게 하고 완벽히 통과해야만 머지.
- 예) “전부 이해했는지 확인하고 싶다. 컨텍스트와 내가 통과해야 할 퀴즈를 HTML 리포트로 만들어줘.”
실제 사례 — Fable 런칭 비디오 편집#
- Blind Spot Pass: Whisper 전사 정확도, ffmpeg 컷 가능성부터 조사.
- Prototype: Remotion 기반으로 타이밍 맞춘 UI를 프로토타입으로 검증.
- Unknown Known 발견: “색상 그레이딩이 뭐지?” → Claude에게 개념을 배우고,
- Iterative Refinement: 색상 그레이딩 변형본을 비교하며 “좋다"의 기준을 스스로 정의.
| 상황 | 기법 | 노리는 unknown |
|---|
| 낯선 영역 시작 | Blind Spot Pass | unknown unknowns |
| 여러 방향 고민 | Brainstorm / Prototype | known unknowns |
| 애매한 요구사항 | Interview + Reference | unknown knowns |
| 구현 직전 | Implementation Plan | 되돌리기 비싼 결정 |
| 편차 발생 | Implementation Notes | 축적된 학습 |
| 완성 후 | Quiz / Explainer | 이해도·승인 |
- 모델이 좋아질수록 올바른 접근으로 달성할 수 있는 범위가 넓어진다. 다음 프로젝트는 “내 unknowns를 찾게 도와줘"로 시작하는 게 저자의 최종 조언이다.
comments powered by