‘감’만으로는 안 되는 바이브 코딩, 사양 주도 개발 4대 툴로 극복하기
컨텐츠 정보
- 조회 109
본문
AI 개발자 안드레이 카파시는 2025년 2월 “바이브 코딩”이라는 용어를 처음 사용하며 SNS에 다음과 같은 글을 올렸다.
“바이브 코딩”은 새로운 종류의 코딩이다. 감(vibe)에 충실하고 기하급수적인 발전을 받아들이며 코드가 존재한다는 사실조차 잊어버리는 방식이다. LLM(예를 들어 소넷을 탑재한 커서 컴포저)의 성능이 너무 좋아지고 있다. 나는 슈퍼위스퍼(SuperWhisper)를 통해 컴포저에 말을 하기 때문에 키보드에는 거의 손도 대지 않는다. “사이드바의 패딩을 절반으로 줄여”와 같은 아주 사소한 작업도 직접 하기가 귀찮아서 LLM에 시킨다. 나는 항상 LLM의 작업을 “모두 수락”하며, 더 이상 diff도 읽지 않는다. 오류 메시지가 표시되면 별도의 언급 없이 그냥 복사해서 붙여넣는데, 그렇게 하면 보통 해결된다. 코드가 나의 일상적인 이해 범위를 넘어 성장하기 때문에 이해하기 위해서는 한참 동안 코드를 들여다봐야 한다. 가끔 LLM이 버그를 수정하지 못할 때는 그냥 그 부분을 우회하거나 버그가 사라질 때까지 무작위로 변경을 요청한다. 주말에 하는 일회성 프로젝트로는 나쁘지 않으면서 재미도 꽤 있다. 이렇게 프로젝트나 웹 앱을 구축하지만 진정한 의미의 코딩은 하지 않는다. 그저 보고 말하고 실행하고 복사해서 붙여넣을 뿐이다. 대부분의 경우 잘 작동한다.
카파시가 바이브 코딩을 본업이 아닌 “주말용 일회성 프로젝트”에 사용했다는 점에 주목할 필요가 있다. 카파시는 또한 “귀찮다”는 이유로 “아주 사소한 작업”까지 요청하는 스스로를 폄하하기도 했다. 카파시는 바이브 코딩이 가능해진 것은 “LLM(예를 들어 소넷을 탑재한 커서 컴포저)이 너무 좋아져서”라고 말했다. 또한 “대부분의 경우 잘 작동한다”고 말했다
“대부분의 경우 잘 작동한다”는 말은 열정적으로 추천하는 표현은 아니다. 직무와 관련된 프로젝트에 바이브 코딩을 적용하는 것은 바람직하지 않다. 나중에 큰 문제가 될 숨은 버그와 같은 심각한 위험을 초래하기 때문이다. 또한 기술 부채도 필연적으로 발생한다.
유능하고 숙련된 개발자가 LLM이 생성한 코드를 정리하고 리팩터링한다면 최악의 결과는 피하고 기술 부채를 줄일 수 있지만, 이 경우 직접 아키텍처를 설계하고 코드를 작성할 때보다 더 많은 시간이 걸린다. AI가 생성한 수준 낮은 결과물을 인간이 정리하는 방식은 프로그래머 생산성 저하로 이어진다. 애초에 LLM을 사용해 코드를 생성함으로써 달성하고자 했던 목적과 정반대의 결과다.
사양 주도 개발이란?
사양 주도 개발(SDD)은 완전히 수동 코딩으로 돌아가지 않으면서도 바이브 코딩의 혼란을 피할 수 있는 방법이다. SDD에는 폭포수 모델 계획이나 철저한 요구사항 문서 개발이 포함되지 않는다. 그보다 더 가볍고 가독성이 높고 간결하다.
마이크로소프트의 덴 델리마스키는 스펙 킷에 대한 소개에서 “생각을 위한 버전 제어”라면서 “코드가 어떻게 움직여야 하는지에 대한 계약으로, 툴과 AI 에이전트가 코드를 생성, 테스트, 검증하는 데 사용하는 단일 진실 공급원이 된다. 결과적으로 막연한 추측이 줄어들고 예상 외의 상황에 맞닥뜨리는 경우가 감소하고 코드 품질은 더 높아진다”고 말했다.
소트웍스(Thoughtworks)의 버지타 보켈러는 사양 주도 개발을 사양 우선, 사양 고정, 사양 소스화의 세 가지 구현 단계로 나눈다. 사양 우선은 “먼저 세심하게 계획된 사양을 작성한 다음 AI 지원 개발 워크플로우에 사용해 작업을 처리하는 것”을 의미하며, 사양 고정은 “작업이 완료된 후에도 사양을 그대로 유지해서 각 기능의 발전과 유지보수에 계속 사용하는 것”을 의미한다. 사양 소스화는 “사양이 장기간 동안 주 소스 파일이 되며, 인간은 사양만 편집하고 코드에는 손을 대지 않음”을 의미한다.
현재 사양 소스화를 구현한 툴이 있는지는 확신할 수 없다. 가치 있는 소망이지만 아직 그 단계에 도달하지는 못했다.
현재 사양 주도 개발을 지원하는 네 가지 툴과 프레임워크를 간략히 살펴보자.
키로
AWS의 설명에 따르면 키로는 소프트웨어 개발 작업을 독립적으로 수행하면서 맥락을 유지하고 시간 경과에 따라 학습하는 자율 에이전트다. AWS 내에서 개발된 키로는 IDE(코드 OSS 기반)와 CLI 툴, 두 가지 형태로 사용할 수 있다. 키로 IDE는 바이브 코딩과 사양 주도 개발을 모두 명시적으로 지원한다. 키로 CLI는 현재로서는 사양을 다루지 않지만 플래너 에이전트와 에이전트 스티어링 기능이 있다.
키로 SDD는 사양을 구성하는 다음과 같은 3개의 마크다운 파일을 생성한다.
- 요구사항(requirements.md) – 구조화된 EARS 표기법으로 사용자 스토리와 수락 기준을 명시한다.
- 설계(design.md) – 기술 아키텍처, 시퀀스 다이어그램, 구현 고려 사항을 문서화한다.
- 작업(tasks.md) – 개별적이고 추적 가능한 작업이 포함된 상세한 구현 계획을 제공한다.
다른 시스템에서 사양을 가져오거나 사양을 반복적으로 개선할 수 있으며 바이브 코딩 세션을 기반으로 사양을 생성할 수도 있다. 이상적으로는 각 프로젝트 기능에 대해 사양을 생성하는 것이 좋다.
EARS(Easy Approach to Requirements Syntax) 표기법은 사용자 스토리를 포착하는데, 패턴은 다음과 같다.
WHEN [조건/이벤트]
THE SYSTEM SHALL [예상되는 동작]
명확하고 테스트가 가능한 형식이다. 키로는 EARS 형식의 요구사항을 기반으로 속성 기반 테스트(PBT)를 생성할 수 있으며, 이는 일반적인 단위 테스트보다 더 포괄적이다.
또한 키로는 에이전트 스티어링을 정의하는 3개의 마크다운 파일을 생성할 수 있다. 스티어링은 키로에 사용자 작업 공간과 그 규칙에 대한 영구적 지식을 제공한다.
- 제품 개요(product.md) – 제품의 목적과 대상 사용자, 주요 기능, 비즈니스 목표를 정의한다. 이는 겉으로 드러나지 않는 기술적 의사결정의 ‘이유’를 키로가 이해하고 제품 목표에 부합하는 솔루션을 제안하도록 돕는다.
- 기술 스택(tech.md) – 선택한 프레임워크, 라이브러리, 개발 툴, 기술적 제약을 문서화한다. 키로는 구현을 제안할 때 사용자가 확립해둔 스택을 다른 대안보다 우선시한다.
- 프로젝트 구조(structure.md) – 파일 조직, 명명 규칙, 가져오기 패턴, 아키텍처 결정을 개략적으로 설명한다. 생성된 코드가 기존 코드베이스에 원활하게 들어맞도록 하는 역할을 한다.
필자가 사용 중인 무료 요금제에서 키로 IDE는 현재 소넷 4.5, 소넷 4, 하이쿠 4.5까지 3개의 클로드 모델을 지원한다. 키로가 자동으로 모델을 선택하도록 할 수 있다. 문서에는 오푸스 4.5도 언급돼 있는데 프로 요금제(월 20달러) 이상에서 활성화되는 것으로 보인다.
키로 IDE는 바이브 코딩과 사양 주도 개발 워크플로우, 두 가지 모두 지원한다.
스펙 킷
스펙 킷은 마이크로소프트에서 만든 사양 주도 개발용 오픈소스 툴킷이다. 코딩 에이전트 워크플로우에 사양 주도 개발을 도입하기 위한 4단계의 구조화된 프로세스를 제공하며 30여개의 코딩 에이전트와 통합된다.
영구 설치하려면 uv를 사용해 specify CLI를 설치한다(권장). uvx로 단발성 실행도 가능하다. specify 명령은 스펙 킷 프로젝트를 초기화하고 선택적으로 AI 에이전트를 지정하고 설치된 툴을 확인할 수 있다. 프로젝트를 초기화하면 AI 코딩 에이전트(깃허브 코파일럿 또는 클로드 코드 등)는 구조화된 개발을 위한 다음과 같은 다양한 슬래시 명령에 액세스할 수 있다.
/speckit.constitution– 프로젝트를 관장하는 원칙/speckit.specify– 요구사항 및 사용자 스토리/speckit.clarify– 모호한 부분 명확히 지정/speckit.plan– 기술 스택을 포함한 기술 구현 계획/speckit.tasks– 구현을 위한 실행 가능한 작업 목록/speckit.analyze– 일관성 및 커버리지 분석/speckit.implement– 모든 작업 실행/speckit.checklist– 요구사항을 검증하는 체크리스트
스펙 킷은 프로젝트를 새로 생성하거나(그린필드) 레거시 코드를 현대화하거나(브라운필드), 다양한 옵션을 병렬로 탐색할 수 있다. 스펙 킷을 사용하는 최선의 방법, 그리고 스펙 킷이 사양 고정 방식인지 여부에 대해서는 얼마간의 논의는 있지만 통용되는 공감대는 아직 없다. 출시된 스펙 킷은 전체 프로젝트에 대한 대규모 사양보다는 기능별로 작은 사양에 집중한다.
테슬
테슬의 슬로건은 “테슬을 사용해 에이전트의 정상 상태를 유지하라”다. 이를 위해 프레임워크와 패키지 레지스트리, 평가를 사용하며, 이러한 모든 요소가 CLI로 지원된다. 테슬 CLI는 프로젝트에서 종속성을 스캔하고 클로드 코드, 코덱스, 제미나이와 같은 AI 코딩 에이전트를 위한 모델 컨텍스트 프로토콜(MCP) 서버를 구성할 수 있다.
또한 CLI는 이름, PURL 또는 HTTP URL로 패키지 레지스트리에서 “타일”을 검색할 수 있다. 타일에는 스킬(에이전트를 위한 절차적 워크플로우), 문서(에이전트가 필요에 따라 쿼리할 수 있는 라이브러리 및 프레임워크용), 규칙(필수 코딩 표준과 규칙)이 포함된다. 기존 레지스트리를 사용할 수도 있고 자신만의 스킬과 타일을 만들 수도 있다.
테슬 SDD 타일을 사용해서 사양 주도 개발을 할 수 있다. 설치한 다음 프롬프트에 “사양 주도 개발 사용”이라는 문구만 포함하면 된다. 그러면 에이전트가 코드를 작성하기 전에 질문을 하고 사양을 작성한다. 또한 테슬 스킬 레지스트리에서 현재 자신이 사용하는 툴을 문서화하는 타일을 추가로 설치하는 방법으로 결과를 개선할 수 있다.
젠플로우
젠플로우는 AI 에이전트를 조율해 소프트웨어를 구축하기 위한 무료 플랫폼이다. 젠플로우의 특징은 “사양 주도 워크플로우, 내장된 검증 기능, 멀티 에이전트 실행”이다. 조율과 같은 뜻으로 오케스트레이션이라는 용어도 사용되는 만큼 젠플로우를 오케스트레이션 계층이라고도 한다.
젠코더 팀이 개발한 젠플로우는 젠코더 플러그인과 함께 작동한다(가이드 워크플로우와 같은 젠플로우 기능이 젠코더에 추가됨). 젠코더의 CEO인 앤드류 필레브는 젠코더가 프로덕션 코드에 사용할 수 있는 수준인지 묻는 필자의 질문에 숙련된 엔지니어로 구성된 젠코더 팀이 자체 제품 개발에 1년 이상 젠플로우를 사용해 왔다고 답했다.
젠코더와 젠플로우의 관계를 대략적으로 설명하면, 젠플로우가 워크플로우 두뇌이며 젠코더가 작업을 실행한다는 것이다. 명칭이 다소 혼란스러울 수 있다. 젠코더는 회사 이름인 동시에 IDE를 위한 이 회사의 AI 플러그인의 이름이고, 젠코더 내부 코딩 에이전트의 이름이기도 하다. 이 에이전트는 젠플로우를 위한 4가지 에이전트 옵션 중 하나이며(나머지 3개는 클로드 코드, 코덱스, 제미나이), 젠코더 플러그인에서 사용할 수 있는 최소 9가지 모델 중 하나다.
젠플로우 프로젝트를 시작하면 범위에 따라 빠른 변경, 버그 수정, 사양 및 빌드, 또는 전체 SDD 워크플로우 중에서 선택할 수 있다. 범위가 넓어질수록 구현이 요구사항에서 벗어나지 않도록 워크플로우에 더 많은 구조가 필요하다. 자신이 속한 회사의 표준에 부합하도록 자신만의 워크플로우를 정의할 수도 있다.
젠플로우는 격리된 환경에서 여러 작업을 병렬로 실행할 수 있다. 에이전트는 코드베이스를 손상시키지 않고 워크플로우 내에서 조율한다.
젠플로우는 변경 사항에 대한 검증을 자동화한다. 모든 워크플로우는 자동화된 테스트와 크로스 에이전트 코드 리뷰를 실행한다. 테스트에 통과하지 못하면 자동 수정이 트리거된다. 코드는 모든 검증 관문을 통과한 후에만 전달된다.
젠플로우 프로젝트는 작업으로 세분화되고, 작업은 다시 하위 작업과 채팅으로 분할된다. 각 작업은 자체적으로 격리된 깃 워크트리 내에서 실행된다. 칸반 보드나 목록 보기에서 모든 작업의 상태를 확인할 수 있다.
이것이 바이브
사양 주도 개발은 어떤 상황에 적합할까? 대략적으로 말하자면 개인 프로젝트, 소소한 기능, 버그 수정의 경우 사양 없이도 AI 보조 코딩을 할 수 있다. 중대한 기능과 주요 리팩토링, 엔터프라이즈급 프로젝트에서는 AI 코딩 에이전트를 정상 궤도 위에 유지하기 위해 사양이 필요하다.
어떤 사양 주도 개발 툴을 사용해야 할까? 그 질문에 대한 답은 전적으로 각자의 환경과 목표, 그리고 개인과 팀의 선호도에 따라 달라진다. 키로, 스펙 킷, 테슬, 젠플로우 모두 시작하기에 좋은 선택지다.
dl-itworldkorea@foundryco.com
관련자료
-
링크
-
이전
-
다음







