AI가 당신의 계획을 은근히 망치는 것을 막는 습관
요약
AI 에이전트와 협업할 때 프로젝트의 범위를 벗어난 불필요한 기능 추가를 방지하는 '비목표(non-goals)' 설정 습관을 제안합니다. 에이전트가 스스로 추가할 법한 기능을 미리 나열하고, 이를 명시적인 규칙으로 고정하여 개발 범위를 보호하는 방법을 다룹니다.
핵심 포인트
- AI에게 무엇을 할지뿐만 아니라 '무엇을 하지 말아야 할지' 명시해야 함
- 에이전트가 스스로 추가할 유혹을 느끼는 기능을 미리 파악하고 목록화할 것
- 비목표(non-goals)를 프로젝트 지침이나 규칙 파일에 고정하여 지속적으로 참조하게 함
- 비목표는 영구적 금지가 아니라 현재의 개발 범위를 보호하기 위한 전략적 선택임
이것은 작은 시리즈의 세 번째이자 마지막 부분입니다. 1부에서는 AI에게 혼자 작성하게 하는 대신, 당신과 함께 계획을 짜도록 워크플로우를 만들었습니다. 2부에서는 에이전트가 당신과 함께 계획하도록 만드는 실제 프롬프트를 공유했습니다. 이번 글은 모든 것 중에서 가장 큰 차이를 만든 단 하나의 습관에 관한 것이며, 제가 오랫동안 저항했던 것입니다.
그것은 앱이 무엇을 하지 말아야 하는지 적는 것입니다.
왜 저는 이것을 오랫동안 무시했나
오랫동안 제 본능은 간단했습니다. AI에게 무엇을 만들고 어떻게 작동해야 할지 알려주면 끝이라고 생각했습니다. 무엇을 만들지 않을지 설명하는 것은 의미가 없다고 느꼈습니다. 내가 만들지도 않는 기능에 왜 단어를 낭비해야 할까요?
그러다가 저는 패턴을 발견했습니다. 에이전트와 함께 깔끔하고 작은 계획에 동의합니다. 그러고 나서 몇 개의 프롬프트를 더 입력하면서, 전혀 관련 없는 것을 만들 때도 그것은 제가 요청한 적 없는 관리자 패널을 아무렇지 않게 추가하곤 했습니다. 또는
이 계획을 바탕으로, 내가 요청하지 않았음에도 불구하고 당신이 추가하고 싶은 유혹을 느낄 만한 모든 것들 — 추가 기능, 추가 구조, 추가 통합 사항 — 을 나열하세요. 각 항목에 대해, 우리가 지금 그것을 구축해야 하는지 아니면 이번 버전에서는 명시적으로 제외해야 하는지 알려주세요.
이것은 매우 시사하는 바가 큽니다. 에이전트(Agent)는 인증 시스템(Auth systems), 대시보드(Dashboards), 캐싱 레이어(Caching layers)와 같이 자신이 몰래 추가했을 법한 것들을 정확히 나열할 것이며, 이제 당신은 그 일이 발생한 후가 아니라 발생하기 _전_에 "아직은 안 돼"라고 말할 수 있게 됩니다.
그것들을 고정시키세요 (Lock them in):
우리가 제외하기로 합의한 모든 것을 '비목표(non-goals)'의 짧은 목록으로 작성하세요. 각 항목을 "이번 버전에서는 X를 추가하지 마세요"와 같이 명확한 규칙으로 표현하세요. 나는 프로젝트가 끝날 때까지 이 규칙들을 당신의 눈앞에 계속 둘 것입니다.
그런 다음 정확히 그렇게 하세요. 에이전트가 매번 읽을 수 있는 곳(프로젝트 지침, 규칙 파일, 또는 당신이 사용하는 도구의 설정 등)에 그 목록을 보관하여, 경계선이 향후 모든 프롬프트와 함께 전달되도록 하세요.
언제 그것들을 버려야 하는가
사람들은 비목표(non-goals)가 영구적인 것인지 묻곤 합니다. 그렇지 않습니다. 제품이 실제로 출시되거나, 당신이 진심으로 그것을 구축하기로 결정할 때까지 각 항목을 유지하세요. 비목표는 영구적인 금지가 아니라, 현재의 범위(Scope)를 보호하기 위한 "지금은 아님"입니다. "지금은 아님"이 "지금"이 되었을 때, 당신은 실수로가 아니라 의도적으로 그 줄을 삭제하는 것입니다.
전체 여정, 세 줄 요약
- 혼자서 계획을 쓰지 마세요 — 계획을 만들어내는 대화를 진행하세요.
- 에이전트가 단순히 복종만 하는 것이 아니라, 당신에게 질문하고 당신과 논쟁하게 만드는 프롬프트를 사용하세요.
- 무엇을 구축하지 않을 것인지 적어두고, 그것이 지켜질 수 있도록 에이전트의 눈앞에 두세요.
돌이켜보면, 이것은 결코 계획에 관한 것이 아니었습니다. 이것은 제가 에이전트와 함께 작업할 때 어디에서나 계속 마주치는 것과 같습니다. 어려운 부분은 코드가 아니라, 에이전트가 무엇을 알게 할 것인지 — 그리고 무엇을 알지 못하게 할 것인지 — 결정하는 것입니다. 계획은 시작 단계에서의 그 결정입니다. 비목표(Non-goals)는 그 경계에 대한 결정입니다. 저는 이러한 투쟁에 대해 더 써 내려갈 것이 몇 개 더 있습니다. 그것들은 모두 같은 종류의 투쟁입니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기