
코파일럿을 넘어서: AI 에이전트가 내 일하는 방식을 바꾼 이유
똑똑한 자동완성은 시작에 불과했다. 터미널에서 자율적으로 움직이는 AI 에이전트로 넘어오면서 소프트웨어를 만들고, 디버깅하고, 출시하는 방식이 바뀌었다.
2021년 GitHub Copilot이 처음 나왔을 때는 마법 같았다. 모델이 다음 코드 한 줄을 예측하거나 간단한 유틸리티 함수를 실시간으로 만들어주니, 엄청나게 빠른 자동완성과 함께 코드를 쓰는 기분이었다.
하지만 시간이 지나면서 우리는 익숙해졌다. 그리고 '코파일럿'이 본질적으로 조금 더 똑똑한 Tab 키 기능이라는 것을 알게 됐다. 코드 줄을 제안해주기는 해도 문제를 해결해주지는 않는다. 코드를 쓰고, 검토하고, 문법을 정리하는 세세한 작업에서 계속 벗어나지 못하게 만든다. 코파일럿이 버그 있는 함수를 만들어내면 직접 컴파일러를 돌리고, 오류를 찾고, 그것을 복사해서, 코드를 다시 써야 한다.
2026년 중반에 이르러 우리는 새로운 시대로 넘어왔다. 바로 자율 AI 에이전트의 시대다.
코파일럿과 에이전트의 차이는 단순히 능력의 차이가 아니다. 인지적인 일을 맡길 수 있느냐의 차이다. 코파일럿은 매 순간 지켜봐야 하는 조수이고, 에이전트는 목표를 주고 맡길 수 있는 동료다. 에이전트가 백그라운드에서 루프를 돌리는 동안 나는 시스템 아키텍처에 집중할 수 있다.
이 글에서는 이런 워크플로의 변화가 왜 내 하루하루의 개발 경험을 바꿨는지, 그리고 이 방식을 뒷받침하려면 내 시스템을 어떻게 맞춰가야 하는지 정리한다.
자동완성이 만드는 인지 부하
에이전트 방식 워크플로의 위력을 이해하려면, 먼저 초기 AI 코딩 도구가 우리 머리에 얼마나 큰 부담을 줬는지 살펴봐야 한다. 인라인 자동완성을 쓰면 주의가 끊임없이 끊긴다.
[코드 작성] ---> [멈춤: 자동완성 읽기] ---> [판단: 수락 / 수정]
^
(흐름이 끊김)
몇 초마다 모델이 한 줄을 제안한다. 그때마다 멈추고, 제안을 읽고, 맞는지 판단하고, 수락하고, 다음 줄을 쓰고, 이를 반복해야 한다. 이렇게 끊임없이 맥락을 전환하다 보면 몰입 상태가 무너진다. 생성된 텍스트를 실시간으로 하나하나 검토하는 역할을 떠맡게 되니 지칠 수밖에 없다.
게다가 코파일럿은 실행 환경과 단절돼 있다. 자신이 만든 코드가 실제로 빌드되는지, 테스트 스위트를 통과하는지, 데이터베이스 스키마에 맞는지 모른다. 컴파일이 되는지 확인하는 부담은 고스란히 사람에게 남는다.
자율 에이전트 루프
자율 코딩 에이전트(Claude Code, Devin, 터미널 기반 에이전트 스크립트 등)는 도구를 쓰면서 루프를 돌리는 방식으로 이 문제를 해결한다.
에디터 앞에 앉아 코드가 자동완성되는 것을 지켜보는 대신, 한 단계 더 높은 추상화 수준에서 일하게 된다.
- 목표 설정: 엔지니어링 작업을 평범한 말로 정의한다(예: "API 클라이언트에 재시도 지연 파라미터를 추가하고 테스트 목도 업데이트해줘").
- 에이전트 루프 실행: 에이전트가 코드베이스를 읽고, 테스트 스위트를 돌리고, 소스 파일을 수정하고, 컴파일 오류를 처리하면서 목표 조건을 충족할 때까지 루프를 반복한다.
- diff 리뷰: 최종 git diff나 풀 리퀘스트를 검토한다. 이때 보는 것은 포맷의 세부 사항이 아니라 로직이다.
자율 에이전트 루프가 오류를 처리하는 방식을 개념적으로 그려보면 다음과 같다.
graph TD
Goal[목표 정의] --> Plan[에이전트가 파일 변경 계획]
Plan --> Edit[코드베이스 수정]
Edit --> Build[빌드 명령 실행]
Build -->|컴파일 오류| ReadLog[컴파일러 로그 읽기]
ReadLog --> Edit
Build -->|빌드 성공| RunTest[테스트 스위트 실행]
RunTest -->|테스트 실패| ReadTestLog[테스트 실패 내용 읽기]
ReadTestLog --> Edit
RunTest -->|테스트 통과| Complete[완료: diff 리뷰]
style Build fill:#333,stroke:#666,stroke-width:1px
style RunTest fill:#333,stroke:#666,stroke-width:1px
style Edit fill:#111,stroke:#666,stroke-width:2px
모델이 컴파일러와 bash 실행 환경에 직접 접근하게 하면 "파일 저장 -> 컴파일러 경고 읽기 -> 타입 수정 -> 파일 저장"으로 이어지는 사이클 전체를 에이전트에게 맡길 수 있다. 이것이 소프트웨어 엔지니어링의 반복적인 잡일이고, 바로 모델이 가장 잘하는 일이다.
지금 바로 도입할 수 있는 에이전트 워크플로
일상적인 작업 방식을 자동완성에서 에이전트 루프로 옮기고 싶다면 다음 세 단계를 따라 해보자.
- 선언적으로 목표 쓰기: "이 파일 열고, 이 줄 바꿔줘" 같은 세세한 단계로 에이전트에게 지시하는 것을 멈춘다. 대신 목표와 성공 기준을 말한다.
- 예시:
"checkin API에 사용자 역할 검증을 추가해줘. src/test/auth.spec.ts의 테스트가 통과하는지 확인하고, npm run build를 실행해서 검증해."
- 예시:
- 빠른 테스트 스위트 갖추기: 에이전트는 피드백 루프가 빠를수록 잘 일한다. 테스트를 돌리는 데 10분이 걸린다면 에이전트 루프도 느려지고 토큰 비용도 커진다. 에이전트가 수정 사항을 빠르게 검증할 수 있도록 로컬 유닛 테스트는 빠르게(5초 이내로) 유지한다.
- 깨끗한 상태로 커밋해두기: 에이전트를 저장소에서 마음껏 움직이게 하기 전에, 작업 공간을 git 기준으로 깨끗한 상태로 만들어둔다. 그래야 에이전트가 루프에 갇혔을 때
git reset --hard로 작업을 버릴 수 있고,git diff로 수정 내용을 쉽게 검토할 수 있다.
앞으로의 전망: 에이전트 네이티브 저장소
앞으로 저장소는 사람만이 아니라 에이전트를 위해서도 설계될 것이다.
에이전트 네이티브 저장소가 등장할 것이다. 이런 코드베이스에는 AI 에이전트를 위한 구조화된 설정 맵(고도화된 agents.config.json 파일이나 표준화된 MCPMCP모델 컨텍스트 프로토콜: LLM과 외부 데이터 소스 또는 도구 간의 안전하고 일관된 연결을 지원하기 위해 Anthropic이 개발한 개방형 표준 프로토콜입니다.Read More → 서버 같은 것)이 들어 있어서, 코드베이스 아키텍처, 모듈별 책임, 빌드 스크립트, 테스트 대상을 설명해준다.
엔지니어가 새로 합류한 동료에게 코드베이스 구조를 설명하는 대신, 설정 매니페스트가 새로 투입된 에이전트에게 시스템을 어떻게 탐색하고, 빌드하고, 확장해야 하는지 정확히 알려주게 된다.
관련 글
- 터미널 기반 에이전트와 비주얼 에디터를 자세히 비교한 내용은 Claude Code vs Cursor: 빌더 관점의 심층 비교에서 확인할 수 있다.
- 에이전트를 코드베이스 맥락과 연결하는 표준 프로토콜은 MCP는 AI 애플리케이션의 USB-C가 될 것이다에서 다뤘다.
- 자율 코드 루프를 쓰면서도 품질과 기준을 지키는 규칙은 AI가 짠 코드의 품질을 의심하는 법: 1인 개발자를 위한 8가지 검증 원칙에 정리했다.
외부 참고 자료
- 자율 에이전트 루프와 연구 벤치마크에 관해서는 OpenAI Research Blog에서 읽을 수 있다.
- 터미널 도구와 에이전트 설정은 GitHub Developer Docs에서 살펴볼 수 있다.
- 상태 관리와 파이프라인 실행 루프는 Anthropic Developer Portal을 참고하면 된다.
내 생각을 바꾼 계기
나는 오랫동안 코드를 쓰는 일의 장인 정신을 옹호해왔다. 기계식 키보드로 코드를 타이핑하는 손맛, 변수를 하나하나 다듬는 감각, 에디터가 문법을 하이라이트하는 모습을 지켜보는 것에 자부심을 느꼈다. 코드 실행을 에이전트에게 맡기면 내가 코드베이스에서 멀어지고 게으른 빌더가 될 거라고 생각했다.
그러다 레거시 코드베이스 전반에서 API 엔드포인트 30개를 새로운 테넌트 ID 파라미터에 맞게 고쳐야 하는 일이 생겼다. 반복적이고 지루한 작업이었다.
나는 claude를 열고 목표를 정의한 다음 커피를 가지러 갔다.
3분 뒤 돌아와 보니 에이전트는 이미 일을 끝낸 뒤였다. git diff를 실행해 변경 사항을 살펴봤다. 에이전트는 파일 32개를 수정하고, 라우트 파라미터를 업데이트하고, 데이터베이스 쿼리를 조정하고, 엔드포인트마다 목 테스트를 추가해두었다. 모든 코드 줄이 포맷돼 있었고, 타입도 정확했고, 컴파일 검증까지 끝나 있었다.
그때 깨달았다. 타이핑에 대한 내 자부심은 마찰에 대한 집착일 뿐이었다는 것을. 진짜 엔지니어링은 코드 줄을 타이핑하는 일이 아니라, 테넌트 격리를 지원하기로 한 아키텍처 결정에 있었다. 구현 세부 사항을 에이전트에게 맡기면서 나는 몇 시간 분량의 반복적인 키보드 작업을 아꼈고, 시스템 설계에 계속 집중할 수 있었다. 나는 코드를 타이핑하는 일을 멈추고 에이전트를 지휘하기 시작했다.
연결된 글
같은 시리즈, 직접 링크, 주제 모음, 태그로 이 글과 이어진 글입니다.
수정 이력
코파일럿에서 터미널 AI 에이전트로의 전환을 기록했다.
- •에이전트 워크플로 변화에 관한 노트 발행
DailySay에 묻기
이어서 읽기

업무 속 게이미피케이션의 중요성: 《호모 루덴스》로 다시 읽는 놀이와 일
하위징아는 《호모 루덴스》에서 문화가 놀이 속에서, 놀이로서 생겨났다고 봤습니다. 놀이의 특징을 일과 온보딩에 겹쳐 보고, 포인트와 배지에 그치지 않는 게이미피케이션을 정리했습니다.




