How I work
AI 시대에 들어 제품을 만드는 일이 쉬워졌다. 코딩 에이전트가 다듬어지지 않은 아이디어를 받아 제품 형태로 옮겨 준다. 그러나 사용자에게 약속한 가치를 실제로 전달하면서 안정적으로 작동하는 제품을 만드는 일은 여전히 어렵다.
이 글에서 의도란 제품이 사용자에게 어떤 가치를 어떻게 전달할 것인가를 가리킨다.
빈틈을 AI가 임의로 채운다
다듬어지지 않은 아이디어에는 빈틈이 많다. 사용자에게 무엇을 보장할지가 정해지지 않은 부분, 입력이 잘못 들어왔을 때 제품이 어떻게 반응해야 할지가 정해지지 않은 부분, 한 기능에서 지키는 규칙이 다른 기능에서도 똑같이 지켜져야 하는지가 명시되지 않은 부분.
코딩 에이전트는 그 빈틈을 임의로 채운다. 프로토타입 단계에서는 잘 작동하는 것처럼 보인다. 그런데 정식 제품이 되어 갈수록, 임의로 채워진 부분이 약속한 가치를 흐트러뜨린다.
이 부분을 사후에 하나씩 정리하다 보면 코드의 복잡도가 누적된다. 의존성이 얽히고, 한 곳을 고치면 다른 곳에서 다른 행동이 나온다. 애초에 했어야 하는 결정이 부채가 되어 돌아온다.
세 가지 방향에서 이 문제를 다룬다
제품 의도를 정밀하게 깎는다. 사용자에게 무엇을 보장할지를 사람이 직접 결정한다. 에이전트는 초안을 쓸 수 있지만 의미 승인은 사람의 권한이다. 처음부터 모든 빈틈을 찾을 수는 없다. 그래서 빈틈을 발견할 때마다 안정적으로 채우는 절차를 시스템으로 갖춘다.
의도를 코드까지 그대로 전파한다. 사용자에게 무엇을 보장할지(약속)를 문서로 적고, 그 약속이 실제 코드와 출력에서 지켜지는지 두 갈래로 검증한다. 하나는 정해진 조건이 코드에서 통과되는지 보는 결정적 검사. 다른 하나는 사용자가 받는 결과가 약속한 의미를 담고 있는지 보는 의미 검사. 여러 기능에 공통으로 지켜져야 하는 규칙은 모든 관련 기능에 일관되게 적용한다. 출시 판정은 통과/미통과 한 줄이 아니라, 어느 측면이 통과했고 어느 측면이 미통과인지 항목별로 보여 준다.
제작 과정에서 코드 복잡도가 누적되지 않게 통제한다. 앞 두 항목을 누적하면 검증 코드와 “이건 하지 말라"는 금지 규칙도 같이 쌓인다. 그 방향으로만 가면 시간이 갈수록 코드의 구조가 의도를 직접 담지 못하고, 외부에 쌓아 둔 가드가 의도를 대신 지키는 모양이 된다. 그래서 가드를 더 쌓기 전에, 잘못된 행동이 코드 구조 자체로 표현 불가능해지도록 구조를 다시 잡을 수 있는지 먼저 본다.
AI 시대의 100배 생산성
AI 시대의 제작자는 제품 의도를 고도화하는 일에 집중한다. AI가 그 자리를 마련해 준 셈이다.
100배 생산성이라는 말의 진짜 의미도 거기에 있다. AI가 기획이나 코딩 작업을 대체한다는 뜻이 아니다. 더 중요하고 더 어려운 일 — 의도를 정밀하게 깎고, 그것이 제품 전반에서 사용자에게 일관된 가치로 전달되도록 설계하는 일 — 을 사람이 훨씬 효과적으로 수행할 수 있는 환경을 AI가 마련해 준다는 뜻이다.
표본은 lighthouse
이 작업법은 lighthouse — 연구 리서치를 위한 문서 워크스페이스 — 의 운영에서 자랐다. 작업법의 배경 아이디어를 짧게 정리한 글이 Agentic Engineering — 간단 소개에 있다.
각 방향을 깊게 다루는 챕터는 순차적으로 채운다.