바이럴 데모에는 내장된 치트 코드가 있습니다
morluto/rea와 같은 바이럴 데모는 AI 에이전트가 기존 애플리케이션을 검사하고 그 동작을 재현할 수 있다고 약속하며, 소프트웨어 엔지니어링이 거의 해결되었다는 주장에 힘을 실어줍니다. "Reverse Engineer Anything"과 같은 도구에서 입증된 이 기능은 인간 코더가 쓸모없어지거나, 적어도 AI를 위한 단순한 "육체적 대리인(meat proxies)"이 되는 미래를 확인시켜 주는 듯합니다.
하지만 이러한 놀라운 시연에는 내장된 치트 코드가 포함되어 있습니다. 바로 원본 애플리케이션 그 자체입니다. 이 작동하는 참조는 의도된 기능과 결과를 관찰 가능하게 만들어, 에이전트가 모호한 요청이 무엇을 의미하는지 추측하는 대신 자신의 결과물을 구체적인 목표와 비교할 수 있게 합니다. 애플리케이션 자체가 곧 의도(intent)입니다.
이 결정적인 이점 덕분에 에이전트는 100%의 신뢰성으로 자신의 작업을 지속적으로 검증할 수 있습니다. 그들은 자신이 무엇을 만들고 있는지 확인하고 이를 기존 제품의 기능 및 동작과 일치시킬 수 있습니다. Cole Medin이 언급했듯이 이러한 작업이 "놀라울 정도로 잘 작동하는" 이유가 바로 이것입니다.
그러나 이러한 성공은 명확한 경계를 긋습니다. 알려진 제품을 리버스 엔지니어링하는 것은 새로운 것을 만드는 것과는 근본적으로 다릅니다. 에이전트가 기존 시스템을 완벽하게 복제할 수 있음을 보여주는 데모가 새로운 제품이 '무엇이 되어야 하는지'를 독립적으로 발견할 수 있다는 것을 증명하지는 않습니다. 의도 엔지니어링(intent engineering) 기술은 여전히 인간의 영역으로 남아 있습니다.
인간 복사-붙여넣기 버튼이 되지 마십시오
개발자에게 닥친 즉각적인 위험은 도태가 아니라, Cole Medin이 냉혹하게 표현한 "육체적 대리인(meat proxy)"이 되는 것입니다. 이는 Jira 요청을 생각 없이 에이전트에게 전달하고 그 응답을 Slack에 붙여넣는 것을 의미합니다. 그러한 행동은 의미 있는 판단을 전혀 제공하지 않으면서도, 결과물인 코드에 대한 책임은 인간에게 남깁니다.
언어 모델은 뛰어난 능력에도 불구하고 마음을 읽을 수는 없습니다. 요구 사항, 엣지 케이스, 제약 조건 또는 사용자 기대치가 명확하게 정의되지 않았다면, 아름답게 구현된 기능이라도 완전히 잘못된 문제를 해결할 수 있습니다. LLM의 세련된 결과물이 올바른 의도를 보장하지는 않습니다.
Medin은 중요한 차이점을 강조합니다. 구현을 위임하는 것이 책임을 위임하는 것은 아닙니다. 그는 1년 넘게 코드를 한 줄도 직접 작성하지 않았지만, 사전 계획과 최종 검증에는 깊이 관여하고 있습니다. 이것이 자동화와 직무 유기를 구분 짓는 것이며, 비판적 사고와 감독이 그 어느 때보다 중요하다는 것을 강조합니다.
이 새로운 패러다임의 진정한 가치는 의도 엔지니어링(intent engineering), 즉 요구 사항을 구조화하고 검증 체계를 설계하는 세심한 과정에 있습니다. 이러한 인간의 계층이 없다면, 가장 진보된 에이전트라도 기술적으로는 건전하지만 근본적으로는 어긋난 솔루션을 만들어낼 것입니다. 개발자는 코더에서 의도의 설계자로 역할을 격상시켜, AI가 단순히 '무언가'가 아니라 '올바른 것'을 만들도록 보장해야 합니다.
다음 기술은 브리프와 검사 항목을 작성하는 것입니다
진정한 기술은 코드를 작성하는 것이 아니라 의도 엔지니어링(intent engineering), 즉 초기 아이디어를 에이전트를 위한 정확하고 실행 가능한 참조로 변환하는 것입니다. 이는 상세한 PRD, 포괄적인 계획, 구체적인 예시, 명확한 제약 조건 및 명시적인 결정을 작성하는 것을 의미하며, 이 모든 것은 에이전트가 구축할 수 있을 만큼 충분히 구체적이어야 합니다. 이것이 없다면 가장 진보된 모델조차도 기술적으로는 건전하지만 결과적으로는 어긋난 코드를 생성할 것입니다.
강력한 harness는 양방향으로 작동합니다. 코드 생성 전, 초기 단계에서는 명확한 질문을 통해 범위와 요구 사항을 조정합니다. 구현 후에는 테스트, 비교 또는 검토 단계를 통해 결과물이 원래 의도와 정확히 일치하는지 엄격하게 확인하는 중요한 검증 과정을 제공합니다. 이 피드백 루프야말로 인간의 판단력이 필수적인 기여를 하는 지점입니다.
Cole Medin의 경험을 고려해 보십시오. 에이전트에게 게임 프로토타입 작업을 맡겼을 때 처음에는 2D 결과물이 나와 그의 목표에 미치지 못했습니다. 돌파구는 더 강력한 모델이 아니라 그의 더 명확한 지침이었습니다. 원하는 3D 스타일에 대한 시각적 참조를 제공하고 결과에 대한 비교 메커니즘을 설정함으로써, 에이전트는 훨씬 더 근접한 결과물을 만들어냈습니다. 이러한 개선은 단순한 생성 능력이 아니라 더 나은 지침과 효과적인 평가에서 비롯되었습니다. Medin은 에이전트가 오류를 범한다면, 그것은 대개 인간의 의도 명시가 실패했기 때문이라고 강조합니다. 에이전트 기능에 대한 추가 탐색은 morluto/rea: Reverse engineer anything with agents와 같은 프로젝트를 참조하십시오.
이 글이 마음에 드셨나요? 매일 아침 이런 글을 메일로 받아보세요.
하루 한 통 · 두 번의 클릭으로 구독 취소 · 제3자 추적 없음
코드 생성이 대체할 수 없는 판단력을 배우십시오
그렇다면 어떤 기술이 여전히 가치 있는지 어떻게 구분할까요? 실용적인 테스트를 적용해 보십시오. 어떤 기술이 문제를 정의하고, trade-offs를 탐색하고, 신뢰할 수 있는 참조를 제공하거나, 답변이 틀렸을 때 이를 감지하는 데 도움이 됩니까? 그렇다면 AI는 그 기술을 덜 중요하게 만드는 것이 아니라 더욱 중요하게 만듭니다. 단순히 기계의 결과물을 전달하는 사람이 아니라, 기계를 지시하고 검증할 수 있는 사람에게 이점이 돌아갑니다.
개발해야 할 지속 가능한 기술로는 요구 사항 분석, 시스템 설계, 도메인 지식, 분해, 테스트, 그리고 에이전트의 작업을 검토하는 비판적 능력이 포함됩니다. 구문(syntax) 지식은 여전히 도움이 되지만, 더 이상 구현을 위한 유일한 경로는 아닙니다. 이제 빌더들은 의도와 검증을 우선시해야 합니다.
1년 넘게 직접 코드를 한 줄도 작성하지 않은 Cole Medin은 여전히 계획과 검증에 많은 시간을 할애합니다. 그는 에이전트가 실수를 한다면, 그것은 종종 의도를 전달하거나 harness를 설계하는 과정에서의 실패 때문이라고 지적합니다.
에이전트가 코딩의 더 많은 부분을 담당할 수 있지만, 무엇을 만들지 결정하고 그것이 작동하는지 판단하는 것은 여전히 빌더의 몫입니다. 미래는 코드 생성이 대체할 수 없는 판단력을 마스터하고, AI를 자율적인 대체재가 아닌 강력한 도구로 활용하는 사람들의 것입니다. 이는 소프트웨어 제공의 인간 중심적 측면에 집중해야 함을 의미합니다.
자주 묻는 질문
AI 시대에도 소프트웨어 개발을 배우는 것이 여전히 가치가 있을까요?
네. AI는 코드를 생성할 수 있지만, 여전히 사람이 문제를 정의하고, 설계 결정을 내리며, 결과물이 실제 요구 사항을 충족하는지 검증해야 합니다.
Intent engineering이란 무엇인가요?
Intent engineering은 요구 사항을 명확히 하고, AI 에이전트가 올바른 것을 구축할 수 있도록 충분한 맥락, 예시 및 제약 조건을 제공하는 작업입니다.
왜 AI 에이전트가 앱을 효과적으로 리버스 엔지니어링할 수 있나요?
작동하는 앱은 그 동작과 외관에 대한 구체적인 참조를 제공하므로, 에이전트가 자신의 결과물을 눈에 보이는 목표와 비교할 수 있게 합니다.
AI 소프트웨어 개발에서 harness란 무엇인가요?
harness는 에이전트를 안내하고, 요구 사항을 수집하며, 피드백을 제공하고, 작업 결과를 확인하는 주변 프로세스 및 도구 모음입니다.

