//
바이브 코딩 너머 개발자 생존법 · 애디 오스마니
바이브 코딩의 다음 단계는 개발자가 직접 프롬프트를 입력하고 결과를 확인하는 방식을 넘어, 백그라운드에서 자율적으로 작업을 수행하는 코딩 에이전트다. 개발자가 작업을 지시하면 에이전트가 독립적으로 코드를 작성하고, 테스트하고, 수정하며, 완료 후 결과를 보고한다.
이 방식은 개발자의 역할을 "코드를 작성하는 사람"에서 "작업을 지시하고 결과를 검토하는 사람"으로 한 단계 더 이동시킨다. 개발자는 에이전트가 작업하는 동안 다른 업무에 집중할 수 있다.
백그라운드 코딩 에이전트의 작동 방식은 네 단계로 이루어진다.
에이전트는 주어진 작업을 분석하고 실행 계획을 수립한다. 코드베이스를 탐색하여 관련 파일을 식별하고, 수정해야 할 부분과 영향 범위를 파악한다. 복잡한 작업은 여러 하위 작업으로 분할한다.
계획에 따라 코드를 수정한다. 파일 편집, 새 파일 생성, 의존성 추가 등의 작업을 수행한다. 필요한 경우 쉘 명령을 실행하여 빌드나 설치를 진행한다.
수정한 코드가 올바른지 검증한다. 린트 검사, 타입 체크, 유닛 테스트 실행 등을 수행하며, 검증에 실패하면 실행 단계로 돌아가 수정을 반복한다. 이 자기 수정 루프가 에이전트의 핵심 역량이다.
작업이 완료되면 변경 사항을 요약하고, 수정된 파일 목록과 테스트 결과를 보고한다. 개발자는 이 보고를 검토하고 머지 여부를 판단한다.
효과적인 코딩 에이전트는 단일 AI 모델에 의존하지 않고, 여러 모델을 결합하여 각 모델의 강점을 극대화한다.
| 단계 | 적합한 모델 특성 | 이유 |
|---|---|---|
| 계획 수립 | 심층 추론 모델 | 복잡한 작업 분석과 전략 수립에 강점 |
| 코드 생성 | 빠른 응답 모델 | 대량의 코드를 빠르게 생성 |
| 코드 리뷰 | 심층 추론 모델 | 잠재적 문제를 꼼꼼히 발견 |
| 테스트 생성 | 빠른 응답 모델 | 반복적 패턴의 테스트 코드를 효율적으로 생성 |
계획과 검증에는 정확도가 높은 모델을, 실행에는 속도가 빠른 모델을 사용하면 비용과 품질의 균형을 맞출 수 있다.
복잡한 작업을 에이전트에게 맡기려면 체계적인 오케스트레이션이 필요하다. 대표적인 오케스트레이션 시스템들이 등장하고 있다.
Claude Code의 에이전트 시스템은 터미널 기반으로 동작하며, 코드베이스를 탐색하고, 파일을 수정하고, 명령을 실행하는 전 과정을 자율적으로 수행한다. 개발자가 자연어로 작업을 지시하면 에이전트가 계획을 세우고 실행한다.
이 외에도 GitHub Copilot Workspace, Devin 등 다양한 에이전트 시스템이 경쟁하고 있으며, 각각의 접근 방식과 강점이 다르다.
오케스트레이션의 핵심 과제는 다음과 같다.
백그라운드 코딩 에이전트와 IDE에 통합된 AI 어시스턴트는 비슷해 보이지만 근본적으로 다르다.
| 구분 | IDE AI 어시스턴트 | 백그라운드 코딩 에이전트 |
|---|---|---|
| 동작 방식 | 개발자의 요청에 반응 | 자율적으로 계획하고 실행 |
| 범위 | 현재 파일 또는 선택 영역 | 전체 코드베이스 |
| 개발자 참여 | 실시간, 지속적 | 지시 후 결과 검토 |
| 검증 | 개발자가 직접 수행 | 자체 검증 루프 보유 |
| 적합한 작업 | 코드 완성, 인라인 수정, 설명 | 기능 구현, 리팩터링, 버그 수정 |
IDE 어시스턴트는 개발자의 실시간 동반자라면, 백그라운드 에이전트는 독립적으로 움직이는 팀원에 가깝다. 두 방식은 상호 보완적이며, 작업의 성격에 따라 적절한 도구를 선택해야 한다.
백그라운드 코딩 에이전트를 효과적으로 활용하려면 작업 지시의 명확성이 핵심이다. "로그인 기능을 고쳐 줘"보다 "JWT 토큰 만료 시 자동 갱신 로직이 동작하지 않는 문제를 수정하되, 기존 테스트를 모두 통과시켜 줘"와 같이 구체적인 지시를 제공해야 한다.
백그라운드 코딩 에이전트는 AI 보조 개발의 다음 단계다. 계획-실행-검증-보고 루프를 자율적으로 수행하며, 여러 AI 모델을 결합하여 강점을 극대화한다. 다만 에이전트가 자율적으로 코드를 수정하더라도, 최종 검토와 머지 결정은 여전히 개발자의 책임이다.