AI Docs

바이브 코딩과 새로운 SDLC

Google(Addy Osmani 외)이 펴낸 백서 The New SDLC With Vibe Coding의 정리. 즉흥적인 프롬프팅(ad-hoc prompting)에서 규율 있는 에이전틱 엔지니어링(agentic engineering)으로 넘어가는 흐름을 짚고, 코드 작성에서 의도(intent) 표현으로 개발자의 인터페이스가 바뀌면서 소프트웨어 생명주기 전체가 어떻게 재편되는지 다룹니다.

소프트웨어 엔지니어링의 가장 근본적인 전환은 새 언어도, 프레임워크도, 클라우드 서비스도 아니다.

코드를 작성하는 일에서 의도를 표현하고, 그 의도를 동작하는 소프트웨어로 번역하는 일을 지능형 시스템에 맡기는 방향으로의 이동 — 즉 구문(syntax)에서 의도(intent)로의 전환입니다.

구문에서 의도로

수십 년간 개발자의 1차 인터페이스는 구문이었습니다 — 중괄호, 세미콜론, 타입 주석, 그리고 언어의 엄밀한 문법. 그 시대가 저물고 있습니다. 이제 개발자는 무엇을 만들지(what)를 표현하고, 모델이 어떻게 만들지(how)를 구현합니다. 이 변화는 자동완성에서 시작해 자율 에이전트까지, 각 세대가 이전 세대를 보존하면서 한 명의 엔지니어가 해낼 수 있는 한계치를 끌어올려 온 결과입니다.

85%

전문 개발자 중 AI 코딩 에이전트를 정기적으로 사용하는 비율

51%

AI 코딩 에이전트를 매일 사용하는 비율

41%

새로 작성되는 코드 중 AI가 생성한 것으로 추정되는 비율

자동완성에서 자율성으로

자동완성

다음 몇 글자 예측

~2021

인라인 제안

시그니처로 함수 완성

~2022

챗 기반 생성

자연어로 기능 설명

~2023

코딩 에이전트

다중 파일 · 도구 호출 · 자가 수정

~2024-25

자율 에이전트

레포 클론 · 계획 · PR 제출

~2025-26

구문(More human effort) → 의도(More machine autonomy). 각 세대는 이전 세대를 지우지 않고 그 위에 천장을 높였습니다.

AI 에이전트, 다시 짚어보기

AI 에이전트는 목표를 인식하고(perceive), 단계를 계획하며(plan), 도구로 행동하고(act), 결과를 관찰해(observe) 목표가 달성되거나 종료 조건에 도달할 때까지 스스로 루프를 돈다는 점에서 챗봇과 다릅니다. 모든 에이전트는 단순하든 정교하든 다섯 개 부품으로 이루어집니다.

모델 (Model)

추론 엔진. 컨텍스트를 읽고 다음 생각 · 다음 도구 호출 · 다음 메시지를 만들어냅니다.

도구 (Tools)

모델을 세계와 연결합니다. 호출 가능한 API, 실행 가능한 코드, 질의할 DB, 위임할 다른 에이전트.

메모리 (Memory)

상태. 과거 상호작용 회상, 프로젝트 규칙 검색, 세션 간 컨텍스트 유지로 백지에서 다시 시작하지 않게 합니다.

오케스트레이션 (Orchestration)

루프를 돌리는 코드. 매 호출의 컨텍스트를 조립하고 도구 호출을 디스패치하며 계속 여부를 판단합니다.

배포 (Deployment)

프로토타입을 서비스로 바꾸는 부분 — 호스팅, 신원, 관측 가능성, 에이전트가 돌아가는 프로덕션 인프라. 이 부품들은 인식 → 계획 → 행동 → 관찰 → 반복이라는 하나의 연속 루프로 함께 작동하며, 이 루프가 모든 에이전트의 심장입니다.

스펙트럼: 바이브 코딩 → 에이전틱 엔지니어링

2025년 2월 Andrej Karpathy가 제안한 “바이브 코딩”은 너무 넓게 쓰이며 의미를 잃었고, 그 자신도 2026년 초 더 규율 있는 쪽을 가리키는 “에이전틱 엔지니어링”을 제안했습니다. 둘은 양자택일이 아니라 하나의 스펙트럼입니다. 핵심 구분선은 AI를 쓰느냐가 아니라, AI의 산출물을 어떻게 검증하느냐입니다.

차원바이브 코딩구조화된 AI 보조에이전틱 엔지니어링
의도 명세캐주얼한 자연어 프롬프트예시·제약이 담긴 상세 프롬프트정식 스펙·아키텍처 문서·메모리 파일
검증“되는 것 같은데?”수동 테스트·스팟 체크자동 테스트·CI/CD 게이트·LM 심사
코드베이스 이해최소한; 생성 코드를 안 읽기도핵심 경로만 선택적 리뷰아키텍처 전반 리뷰; 구현은 AI가
에러 처리에러 메시지 복붙해 AI에 전달개발자가 원인 진단, AI가 수정에이전트가 경계 내 자가 진단; 사람은 구조 이슈
적정 범위프로토타입·스크립트·해커톤기존 코드베이스 내 기능프로덕션 시스템·팀 단위 개발
리스크 프로파일높음; 폐기 가능한 코드에 한해 허용중간; 핵심 지점에 사람 판단낮음; 모든 단계에서 체계적 검증

적용 팁: 스펙트럼에서의 올바른 위치는 이해관계(stakes)에 달려 있습니다. 주말 프로토타입은 순수 바이브 코딩으로 충분하지만, 금융 거래를 처리하는 프로덕션 API는 에이전틱 엔지니어링을 요구합니다. 진짜 실력은 각 작업마다 선을 어디에 그을지 아는 것입니다. 테스트는 결정론적 부분을, 평가(eval)는 비결정론적 부분을 검증합니다 — 둘 다 없으면 프롬프트가 아무리 정교해도 그것은 결국 바이브 코딩입니다.

컨텍스트 엔지니어링: 진짜 실력

AI 생성 코드의 품질은 프롬프트의 영리함보다 제공된 컨텍스트의 질에 달려 있습니다. 개발자는 여섯 가지 컨텍스트를 다뤄야 합니다.

지시 (Instructions)

에이전트의 역할 · 목표 · 운영 경계

지식 (Knowledge)

검색된 문서 · 아키텍처 다이어그램 · 도메인 데이터

메모리 (Memory)

단기 세션 로그(방금 무슨 일이) · 장기 영속 상태(프로젝트가 무엇인지)

예시 (Examples)

퓨샷 행동 시연 · 코드베이스 참조 패턴

도구 (Tools)

에이전트가 호출할 API · 스크립트 · 외부 서비스의 정확한 정의

가드레일 (Guardrails)

하드 제약 · 포매팅 규칙 · 안전성 검증

정적 컨텍스트 (Static)

항상 로드됩니다 — 시스템 지시, 규칙 파일 (AGENTS.md, CLAUDE.md, GEMINI.md), 글로벌 메모리, 페르소나. 모든 상호작용에 존재하므로 비싸지만 에이전트가 핵심 규칙을 절대 잊지 않습니다.

동적 컨텍스트 (Dynamic)

필요할 때 로드됩니다 — 작업 매칭으로 트리거되는 스킬, 실행 중 검색된 도구 결과, RAG로 가져온 문서, 윈도잉된 세션 히스토리.필요할 때만 토큰 비용을 내므로 효율적입니다.

동적 컨텍스트를 다루는 가장 강력한 패턴은 에이전트 스킬(Agent Skills)입니다. 절차적 지식을 담은 이식 가능한 패키지로, 작업이 요구할 때만 로드됩니다. 점진적 공개(progressive disclosure)를 통해 에이전트는 가벼운 제너럴리스트로 남으면서도 수십 개의 전문 능력을 짊어지고, 그중 실제로 쓰는 하나의 토큰 비용만 지불합니다. — “프롬프트 엔지니어링”에서 “컨텍스트 엔지니어링”으로의 이동은, AI를 속여 좋은 코드를 짜게 하는 게 아니라 “새 팀원이 일을 잘하려면 무엇을 알아야 하는가”를 묻는 일입니다.

새로운 소프트웨어 개발 생명주기

AI는 생명주기를 극적으로, 그러나 불균등하게 압축합니다. 몇 주 걸리던 구현이 몇 시간으로 줄지만, 요구사항 · 아키텍처 · 검증은 여전히 사람의 속도에 묶여 있습니다. 결과는 더 빠른 옛 SDLC가 아니라 다른 워크플로우입니다 — 단계의 경계가 흐려지고, 반복 주기가 주에서 분으로 줄며, 개발자의 역할이 1차 구현자에서 시스템 설계자이자 품질 결정자로 이동합니다.

01

요구사항 · 계획

AI가 제품 브리프에서 유저 스토리를 만들고, 사람이 놓친 엣지 케이스를 찾고, 명세에서 인터랙티브 프로토타입을 생성합니다. 요구사항은 팀 간 넘기는 문서가 아니라 사람과 AI의 대화가 됩니다.

02

설계 · 아키텍처

트레이드오프 판단이 필요한 가장 인간 중심적인 단계. AI는 결정이 내려진 뒤 그것을 일관되게 구현합니다. 개발자는 보일러플레이트를 짜는 대신 구조적 결정을 내리고 문서화합니다.

03

구현

자연어 설명에서 다중 파일 기능을 생성합니다. 생산성은 25~39% 향상 보고가 있지만, METR 연구는 검증·디버깅·교정 시간 때문에 숙련 개발자가 오히려 19% 더 걸린 경우도 보고합니다. AI는 구현을 없애기보다 '작성'에서 '리뷰·유도·검증'으로 바꿉니다.

04

테스트 · QA

산출물(output)뿐 아니라 도달 과정(trajectory)도 평가해야 합니다. 검증 단계를 건너뛴 매끄러운 출력이 눈에 보이는 에러보다 더 위험합니다. 테스트·평가는 AI에 의도를 전달하는 1차 수단이 됩니다.

05

코드 리뷰 · 배포

AI가 1차 리뷰어로서 버그·스타일·보안·성능 이슈를 사람보다 먼저 잡아냅니다. 배포 파이프라인도 AI를 인지해 헬스 모니터링, 자동 롤백, 리스크 예측을 수행합니다.

06

유지보수 · 진화

가장 과소평가된 전환. 한때 '건드리면 안 되는' 레거시 코드를 AI가 읽고 패턴을 이해해 안전하게 리팩터링·현대화합니다. 너무 지루하고 위험해 미뤄지던 일이 가능해집니다.

팩토리 모델 (The Factory Model)

이 전환들을 묶는 멘탈 모델. 개발자의 1차 산출물은 코드가 아니라 코드를 생산하는 시스템입니다 — 무엇을 만들지 정의하는 명세·컨텍스트, 명세를 구현으로 옮기는 에이전트, 정확성을 검증하는 테스트·품질 게이트, 실패를 에이전트에 되돌리는 피드백 루프, 안전하고 예측 가능한 행동으로 가두는 가드레일. 공장 관리자가 위젯을 직접 조립하지 않고 조립 라인을 설계하듯, 현대 개발자는 개발 시스템을 설계하고 그 산출물이 기준을 충족하게 합니다.

하네스 엔지니어링: 모델을 둘러싼 것

빌더들이 흔히 빠지는 함정은 모델을 시스템으로 착각하는 것입니다. 모델은 돌아가는 에이전트에 들어가는 하나의 입력일 뿐입니다. 프롬프트, 도구, 컨텍스트 정책, 훅, 샌드박스, 서브에이전트, 관측 가능성 — 모델이 무언가를 실제로 끝내게 해주는 이 모든 비계(scaffolding)가 하네스입니다.

Agent = Model + Harness

모델은 엔진이고, 하네스는 자동차이자 도로이자 교통 법규입니다. Claude Code · Cursor · Codex · Antigravity를 쓸 때 경험하는 동작의 대부분은 어떤 모델이냐보다 하네스가 무엇을 하느냐가 좌우합니다.

구체적으로 하네스는 다음을 포함합니다.

지시 · 규칙 파일

에이전트가 누구이고 무엇을 금지당하는지 정의 (AGENTS.md, CLAUDE.md, 스킬, 서브에이전트 프롬프트)

도구

호출 가능한 함수·MCP 서버·API, 그리고 언제·어떻게 부를지 알려주는 산문

샌드박스 · 실행 환경

에이전트 코드가 실제로 돌아가는 곳, 접근 가능한 것과 닿을 수 없는 것

오케스트레이션 로직

서브에이전트 스폰, 모델 라우팅, 전문가 간 핸드오프 규칙

가드레일 · 훅

특정 생명주기 시점에 도는 결정론적 코드 (도구 호출 전, 파일 편집 후, 커밋 전)

관측 가능성

로그·트레이스·평가·비용/지연 계측. 없으면 에이전트가 잘하는지 조용히 망가지는지 알 수 없습니다

공개 벤치마크가 하네스 효과의 크기를 보여줍니다. Terminal Bench 2.0에서 한 팀은 모델을 전혀 바꾸지 않고 하네스만 바꿔 코딩 에이전트를 Top 30 밖에서 Top 5로 끌어올렸고, LangChain의 한 연구는 고정된 모델 주위의 시스템 프롬프트·도구·미들웨어만 조정해 점수를 13.7점 높였습니다. 대부분의 에이전트 실패는, 솔직히 들여다보면 모델 실패가 아니라 설정 실패입니다 — 빠진 도구, 모호한 규칙, 없는 가드레일, 노이즈로 가득 찬 컨텍스트.

개발자의 진화하는 역할: 지휘자와 오케스트레이터

AI가 구현을 떠맡으면서 개발자는 유동적으로 오가는 두 모드 사이에서 일하게 됩니다.

지휘자 (Conductor)

실시간 · 동기 · IDE 안

IDE 안에서 코드가 나타나는 걸 지켜보며 프롬프트와 교정으로 AI를 이끕니다. 키 입력 수준의 통제, 즉각 피드백, 단일 파일 범위. 복잡한 로직·디버깅·낯선 코드베이스에 적합 (Copilot, Gemini Code Assist, Cursor, Windsurf).

오케스트레이터 (Orchestrator)

비동기 · 고수준 · 다중 에이전트

목표를 정의해 에이전트에 위임하고 결과를 리뷰합니다. 키 입력이 아니라 산출물을 검토. 명세 · 분해 · 평가 · 시스템 설계 능력을 요구합니다. 버그 수정·기능 구현·마이그레이션·테스트 생성에 적합 (Jules, Copilot agent, Cursor background agents, Claude Code).

80% 문제 (The 80% Problem)

AI는 기능 코드의 약 80%를 빠르게 만들지만, 나머지 20% — 엣지 케이스, 에러 처리, 통합 지점, 미묘한 정확성 요구 — 는 현재 모델이 자주 결여한 깊은 맥락 지식을 요구합니다. AI 에러는 단순 구문 실수에서 코드가 “맞아 보이고” 기본 테스트도 통과하는 더 음흉한 개념적 실패로 진화했습니다. 가장 잘 헤쳐나가는 개발자는 AI를 잘하는 일(잘 명세된 작업의 빠른 구현)에 쓰고, 자신의 주의력은 AI가 약한 일(모호한 요구, 아키텍처 트레이드오프, 정확성 검증)에 남겨둡니다.

실전의 코딩 에이전트

코딩 에이전트는 일상에서 세 곳에 나타나며, 대부분의 개발자는 하루에 셋을 모두 씁니다. 올바른 출발점은 작업에 달려 있지, 어느 범주가 자율성 사다리에서 가장 높은지가 아닙니다.

에디터 안에서

타이핑하는 동안 다음 줄을 제안하는 인라인 완성, 코드를 설명·수정하는 챗 패널. 흐름을 유지한 채 작업할 때 (Copilot, Cursor, Windsurf, JetBrains AI).

터미널에서

명령줄에서 띄워 자연어로 목표를 건네면 코드베이스 전반을 다룹니다. 다중 파일 작업·낯선 코드 탐색에 적합 (Antigravity CLI, Claude Code, Codex CLI, Open Code, Cline).

백그라운드에서

작업을 받아 클라우드 샌드박스에서 수 시간 자율 실행하고 PR을 산출. 알려진 버그 수정·테스트 생성·프레임워크 마이그레이션에 적합 (Jules, Copilot agent, Cursor background agents, AlphaEvolve).

프로덕션 에이전트를 바이브 코딩하기

만들어야 할 것이 에이전트 자체일 때 — 환불 요청을 처리하는 고객지원 봇, 근거 있는 리포트를 내는 리서치 어시스턴트 — 그것은 터미널에서 푸는 작업이 아니라 자체 도구·메모리·평가·배포 인프라가 필요한 제품입니다. 프로토타입을 만들던 같은 터미널 워크플로우가 이제 영속 메모리·거버넌스·관측 가능성을 갖춘 실서비스 에이전트까지 만들어냅니다. 예컨대 Google의 Agents CLI는 선호하는 코딩 에이전트와 함께 동작하며, 한 번 설치하면 스캐폴딩 → 코드 작성 → 평가 → Agent Runtime 배포 → 관측 연결까지 ADK 전체 생명주기를 스킬로 제공합니다. 개발자는 새 SDK를 배우지 않고, 원하는 바를 말하면 코딩 에이전트가 각 단계에서 알맞은 스킬을 씁니다.

AI 개발의 경제학

AI의 영향을 논할 때 흔히 개발 속도(velocity)에서 시작해 거기서 끝나지만, 엔지니어링 리더에게 더 중요한 지표는 총소유비용(TCO)입니다. AI 시대에는 운영비(OpEx)가 토큰 경제에 크게 좌우됩니다.

바이브 코딩 — 낮은 CapEx, 높은 OpEx

진입 장벽은 사실상 0이지만 복리로 쌓이는 운영비가 숨어 있습니다. 토큰 소각률(비정형 파일을 컨텍스트에 쏟아붓고 같은 실수를 반복 수정), 유지보수 세금(구조 없는 스파게티 코드의 역공학 비용), 보안 교정(설계 단계가 아닌 프로덕션에서 잡는 비용은 기하급수적). 복잡한 시스템에서는 경제적 막다른 길에 이릅니다.

에이전틱 엔지니어링 — 높은 CapEx, 낮은 OpEx

API 스키마 설계, 결정론적 테스트 스위트 구축, 에이전트 컨텍스트 구조화에선투자합니다. 초기 비용은 높지만 기능을 출시·유지하는 한계비용이 급감합니다. 엄격히 통제된 “공장” 안에서 산출물이 구조적으로 건전하고 사전 테스트되며 회사 표준에 정렬됩니다. 성숙한 코드베이스일수록 경제적으로 지속 가능합니다.

재무 레버로서의 컨텍스트 엔지니어링

LLM은 보내는 모든 정보에 과금합니다. 10만 토큰 레포 전체를 매 프롬프트에 넣는 것은 규모에서 재정적으로 불가능합니다. 정밀한 AGENTS.md와 가드레일처럼 밀도 높은 고신호 페이로드를 올바르게 제공하면 1차 성공률이 올라가 바이브 코딩을 괴롭히는 시행착오 루프를 피합니다.

지능형 모델 라우팅

잘 설계된 팩토리 모델은 고난도 작업(요구사항·아키텍처·초기 구현)에만 크고 강력한 모델을 쓰고, 결정론적 저난도 작업(테스트 생성·코드 리뷰·CI/CD 모니터링)은 더 작고 빠르고 저렴한 모델로 자동 라우팅합니다. 다중 모델 생태계를 오케스트레이션해 품질을 유지하면서 운영 토큰 비용을 체계적으로 낮춥니다.

어디서 시작할 것인가

구문에서 의도로의 전환은 미래가 아니라 오늘의 일입니다. 핵심 원리는 하나입니다 — AI는 그것이 안착한 엔지니어링 문화를 증폭한다.

개인 개발자

  • 프로젝트에 AGENTS.md(또는 동등물)를 둔다. 열 줄로 시작하고, 에이전트가 또 실수할 때마다 규칙을 한 줄씩 추가한다.
  • 코딩 에이전트용 스킬 세트를 설치하고, 반복 워크플로우 하나를 골라 첫 에이전트로 만든다. 끝까지 하나 만들어보는 것이 백 번 읽는 것보다 낫다.
  • 코드를 생성하기 전에 테스트와 평가를 먼저 쓴다. 둘은 AI와 맺는 계약이며, 어떤 프롬프트보다 의도를 정확히 전달한다.
  • 출시될 모든 줄을 리뷰한다. 영리해 보이는 것을 의심하고, import가 실제 패키지인지 확인하고, 에러 처리가 현실적 실패를 덮는지 검증한다. 기초 실력(디버깅·시스템 설계·성능 직관)을 날카롭게 유지한다.

엔지니어링 리더

  • 컨텍스트 엔지니어링을 팀의 1급 실천으로 만든다. AGENTS.md·시스템 프롬프트·평가 스위트·스킬 라이브러리를 코드처럼 리뷰·버전 관리하고 담당자를 둔다.
  • 데모가 아니라 평가에 기준을 둔다. 데모는 한 번 성공을, 평가 스위트는 안정적 성공을 증명한다. 명확한 루브릭과 함께 평가 커버리지를 출시 전제 조건으로 요구한다.
  • AI 생성 코드에 맞게 코드 리뷰를 재설계한다. 환각된 의존성·부실한 에러 처리·맞아 보이는 미묘한 정확성 결함에 특히 주의하도록 리뷰어를 훈련한다.
  • 프로토타이핑 작업과 프로덕션 작업을 팀 규범에서 구분한다. 경계가 흐릿한 팀은 프로토타입을 사고로 출시한다. 하네스 컴포넌트를 공유 자산으로 투자한다.

조직

  • AI 보조 개발을 생산성 기능이 아니라 엔지니어링 투자로 취급한다. 비계 없이 에이전트만 도입하면 품질 없는 속도가 기술 부채로 복리 누적된다.
  • 규모보다 프로덕션 기반을 먼저 투자한다. CI의 trajectory·최종 응답 평가, 모든 실행의 트레이스, 에이전트별 스코프 권한, 생성 코드 실패 모드에 맞춘 보안 리뷰를 첫 프로덕션 에이전트 출시 전에 갖춘다.
  • 도구·에이전트 간 통신에 열린 표준을 채택한다. 도구 접근의 MCP, 교차 위임의 A2A는 멀티 에이전트 시스템의 연결 조직으로 수렴 중이다.
  • 채용과 역량 개발을 구현이 아니라 판단 중심으로 재구성한다. 앞으로 가장 가치 있는 엔지니어는 코드를 가장 많이 쓰는 사람이 아니라 에이전트를 잘 지휘하는 사람이다.

결론: 의도가 새로운 인터페이스다

구문에서 의도로의 전환은 미래 예측이 아니라 현재의 현실입니다. SDLC는 이미 AI 역량을 중심으로 압축·재구조화되고 있습니다. 질문은 이 전환이 일어날 것이냐가 아니라, 개인 · 팀 · 조직이 얼마나 효과적으로 헤쳐나갈 것이냐입니다. 세 가지 원리가 오래 유효합니다.

01

구조는 확장되고, 바이브는 그렇지 않다

바이브 코딩은 탐색·프로토타이핑·개인 프로젝트엔 유효하지만, 조직이 의존하는 소프트웨어에는 에이전틱 엔지니어링의 규율(명세·테스트·가드레일·아키텍처에 대한 사람의 감독)이 선택이 아니다. '되는 것 같다'와 '모든 조건에서 정확히 동작한다' 사이의 간극에 프로덕션 장애·보안 취약점·유지보수 악몽이 산다.

02

AI는 당신의 엔지니어링 문화를 증폭한다

강한 테스트 관행·명확한 아키텍처 표준·건강한 코드 리뷰를 가진 조직은 그렇지 않은 곳보다 AI에서 훨씬 더 큰 가치를 얻는다. AI는 힘의 증폭기이며 강점과 약점을 모두 증폭한다.

03

인간의 역할은 줄지 않고 진화한다

아키텍처를 이해하고, 정밀한 명세를 정의하며, 출력을 비판적으로 평가하고, 제약·피드백 루프 시스템을 설계하는 빌더가 그 어느 때보다 가치 있다. 중요한 기술이 구현에서 판단으로, 코드 작성에서 코드를 생산하는 시스템 설계로 이동한다.

“생성(generation)은 풀렸다. 검증 · 판단 · 방향 설정이 새로운 기예(craft)다.”