정보기술 · 인공지능 ·
스펙 기반 개발, 대규모 적용 시 한계 드러나..."계층적 명세와 대화형 검증이 해법"
AI 에이전트의 코드 생성 능력이 향상되면서 등장한 스펙 기반 개발 방식이 주목받고 있다. 그러나 전체 제품 명세를 자연어로 작성할 경우 모호성 문제로 한계에 부딪히며, 이를 해결하기 위한 새로운 접근법이 제시됐다.
[한국정보기술신문] 2021년 깃허브 코파일럿 출시 이후 AI 코드 자동완성 기술이 급속도로 발전했다. 이후 바이브 코딩을 거쳐 최근에는 스펙 기반 개발이 새로운 트렌드로 자리잡고 있다. 스펙 기반 개발은 코드 변경 전에 명세 문서를 먼저 작성하고 이를 가이드로 AI가 변경사항을 구현하도록 하는 방식이다.
그러나 아크투루스 랩스가 17일 발표한 블로그 포스트에 따르면, 이러한 접근법은 대규모 프로젝트에 적용할 때 심각한 한계에 직면한다. 전체 제품 명세를 작성하고 AI 에이전트에게 전체 웹사이트 구축을 맡길 경우, 자연어의 모호성으로 인해 개발자가 의도한 것과 다른 결과물이 나올 수 있다는 것이다.
자연어 명세의 근본적 한계
자연어로 작성된 명세의 모호성을 완전히 제거하려면 세부 항목과 하위 항목을 계속 추가해야 하는데, 이 과정에서 명세 문서가 지나치게 방대해져 오히려 코드를 직접 작성하는 것만 못한 상황이 발생한다. 자연어를 충분히 정밀하게 만들려면 형식화된 언어 수준으로 작성해야 하며, 그렇다면 차라리 코드라는 형식화된 언어를 사용하는 것이 낫다는 분석이다.
반면 인간 개발자들은 자연어 명세로도 효과적으로 협업할 수 있다. 이는 팀원들이 회사와 코드베이스에 대한 공유된 맥락을 가지고 있으며, 모호한 부분에 대해 질문하고 명확히 하는 과정을 거치기 때문이다. 특히 인간은 모두가 알아야 할 기본적인 사항은 묻지 않고 진짜 중요한 모호성만 다루는 효율성을 보인다.
계층적 명세와 대화형 검증
아크투루스 랩스는 이러한 문제를 해결하기 위해 두 가지 핵심 방안을 제시했다. 첫째, AI 에이전트가 명세의 모호한 부분에 대해 질문할 수 있는 대화형 시스템이 필요하다. 작은 작업의 경우 AI가 명세를 여러 번 구현하게 하여 서로 다른 구현 결과를 비교함으로써 모호성을 드러낼 수 있다.
둘째, 전역 명세에서 하위 명세 문서로 연결되는 계층적 구조를 활용해야 한다. 각 파일이나 디렉토리마다 명세를 두거나, 위키 형태의 자유로운 구조를 만드는 방식이 가능하다. 이전 연구에 따르면 AI 에이전트는 이러한 링크 구조를 탐색하는 데 상당히 능숙한 것으로 나타났다.
코드 자체가 궁극의 명세
저수준 가정을 인코딩하는 최선의 방법은 결국 코드 자체를 사용하는 것이다. 자연어에는 모호성이 있지만 코드에는 모호성이 없기 때문이다. 이는 철학적 변화를 의미한다. 일부는 명세가 매번 동일한 결과물을 생성해야 한다고 주장하지만, 자연어로는 이것이 불가능하다. 기존 코드를 기반으로 변경사항을 적용하면 명세 모호성 문제가 해결된다.
살아있는 문서로의 진화
제안된 시스템에서는 코드 변경이 명세 변경으로 이어진다. 코드가 변경될 때마다 기존 제품 명세와 비교하여 불일치가 발견되면 전역 명세가 수정되고 코드 변경사항과 함께 풀 리퀘스트에 제출된다.
이를 통해 엔지니어는 자신의 코드 변경이 전역 명세에 미치는 영향을 쉽게 파악할 수 있으며, 제품 관리자도 명세 변경 내용을 읽고 풀 리퀘스트에 참여할 수 있다. 또한 AI 보조자를 통해 제품의 현재 상태와 진화 과정을 파악할 수 있어 경영진에게도 유용하다.
아크투루스 랩스는 대규모 스펙 기반 개발의 미래는 자연어 명세를 완벽하게 만드는 것이 아니라, 대화와 맥락을 통해 모호성을 탐색할 수 있는 시스템을 구축하는 것이라고 강조했다. 계층적 명세와 대화형 명확화를 결합하고 기존 코드에 에이전트를 기반으로 함으로써 강력하고 일관된 AI 개발 워크플로를 만들 수 있다는 것이다.
한국정보기술신문 인공지능분과 김서현 기자 news@kitpa.org