1회차 · 1교시 Agentic Engineering 실무 · 2026-11-03
AI는 어떻게 코딩을 맡게 되었나
다음 줄을 제안하던 AI가 며칠짜리 일을 끝까지 해내기까지, 5년 동안 무엇이 쌓였는지 봅니다.
2021 자동완성
2023 IDE 채팅
2025 터미널 에이전트
2026 에이전트 팩토리
오늘은 5년 동안의 변화를 한 번에 훑습니다. 아래 네 장은 모두 그 시기의 실제 화면입니다. 2021년 Copilot의 회색 제안 글씨, 2023년 IDE(Integrated Development Environment, 통합 개발 환경) 안의 채팅, 2025년 터미널에서 혼자 일하는 Claude Code, 2026년 여러 에이전트를 동시에 돌리는 Orca입니다. 각 단계가 앞 단계의 문제를 풀려고 나왔다는 점을 눈여겨봐 주시면 좋겠습니다. 이 1교시는 과정 전체를 훑어 소개하는 시간이고, 장마다 몇 교시에서 자세히 다루는지 표시해 두었습니다.
2021 → 2026 검증한 연표 · 공식 발표문 · CHANGELOG
AI 코딩 5년은 제안·일·오래 일함·공장, 네 시대로 나뉜다
제안하는 AI 2021 Copilot 자동완성 2022 ChatGPT 2023 IDE 채팅 · Aider 일하는 AI 2025 상반기 Claude Code · Codex CLI 승인 피로 · 자동 압축 2025 하반기 Plan 모드 · SDD · 서브에이전트 스킬 · Superpowers 오래 일하는 AI 2026 상반기 워크트리 · 1M 컨텍스트 자동 승인 · /goal 공장이 된 AI 2026 하반기 에이전트 팩토리 · Orca CI 폭증 · 스모크 · 페르소나
연표는 네 시대로 나뉩니다. 제안하는 AI, 일하는 AI, 오래 일하는 AI, 공장이 된 AI입니다. 시대마다 앞 시대의 병목이 다음 장치를 불렀습니다. 날짜는 공식 발표문과 Claude Code CHANGELOG로 확인했습니다. 과정의 1회차부터 4회차까지가 이 네 시대를 차례로 따라가고, 5회차에는 여러분이 만든 하네스를 발표합니다.
읽는 법 이 과정의 모든 장치는 두 축 중 하나에 놓입니다
모든 장치는 ‘실수를 막는 축’과 ‘계속을 넘기는 축’ 중 하나에 놓인다
축 1 · 실수를 막는 장치 축 2 · ‘계속’을 누가 누르나 권한 승인 스펙·Plan 테스트(TDD) 도메인 경계(DDD) ADR·이슈 원장 스모크·페르소나 사람이 Tab·붙여넣기 에이전트 루프 자동 승인 /loop · /goal 코디네이터가 깨어나 점검
위 축은 에이전트의 실수를 막는 장치 가 하나씩 더해진 역사, 아래 축은 사람이 누르던 ‘계속’ 이 사라진 역사입니다.
앞으로 나올 스무 개 남짓한 장치는 모두 두 축 중 하나로 읽을 수 있습니다. 첫째 축은 에이전트가 실수하지 못하게 막는 장치입니다. 권한 승인, 스펙, 테스트, 도메인 경계, ADR(Architecture Decision Record, 아키텍처 결정 기록), 스모크와 페르소나 평가가 여기에 있습니다. 둘째 축은 사람이 ‘계속’을 누르던 일이 기계로 넘어간 과정입니다. Tab을 누르고 붙여넣던 사람에서, 에이전트 루프, 자동 승인, /loop와 /goal, 그리고 제가 지금 쓰는 코디네이터 패턴까지 옵니다. 두 축이 함께 자라야 오래 맡길 수 있습니다.
2025-02-02 → 2026-02-25 Andrej Karpathy의 X 게시물 두 개
‘바이브 코딩’이라는 말이 나온 지 1년, 코딩 에이전트가 제대로 일하기 시작했다
x.com/karpathy/status/1886192184808149383
2025-02-02 · ‘vibe coding’이라는 말의 시작
Karpathy의 X 게시물. 코드가 있다는 것도 잊고 분위기(vibe)에 맡기는 코딩을 ‘바이브 코딩’ 이라 부르겠다는 내용.
x.com/karpathy/status/2026731645169185220
2026-02-25 · “지난 12월부터 코딩 에이전트가 제대로 동작”
1년 뒤 게시물. 지난 12월 전에는 코딩 에이전트가 사실상 제대로 동작하지 않았다 고 말한다.
코드를 잊고 맡기던 바이브 코딩 에서, 장치를 설계해 맡기는 에이전틱 엔지니어링 으로. 이 과정의 이름이기도 합니다.
‘바이브 코딩’이라는 말은 2025년 2월 Andrej Karpathy의 이 게시물에서 시작됐습니다. 코드가 있다는 사실조차 잊고 분위기에 맡긴다는 뜻이었고, 주말 장난감 프로젝트에 어울리는 방식이라고 본인도 덧붙였습니다. 1년 뒤인 2026년 2월, 같은 사람이 오른쪽 게시물에서 코딩 에이전트가 지난 12월부터 실제로 동작하기 시작했다고 썼고, 이 무렵부터 ‘에이전틱 엔지니어링’이라는 말이 퍼졌습니다. 맡기는 것은 같지만, 이제는 맡겨도 되도록 장치를 설계한다는 점이 다릅니다. 이 과정의 이름이 바로 그것입니다. 화면은 X의 공식 임베드를 강사 브라우저에서 저장한 것입니다.
1부 · 1회차
제안에서 일로
2021 자동완성
2023 IDE 채팅
2023 터미널 AI
2025 승인 피로
1부는 1회차 강의 범위입니다. AI가 코드를 제안만 하던 시절에서, 직접 명령을 실행하며 일을 하게 되기까지를 봅니다. 2교시에 자동완성과 IDE 채팅을, 3교시에 터미널 에이전트와 승인 피로를 자세히 다룹니다.
2021-06-29 GitHub Copilot 기술 미리보기 · 2022-06-21 정식 출시
자동완성은 함수명과 주석을 보고 다음 줄을 제안했다
github.blog/news-insights/product-news/introducing-github-copilot-ai-pair-programmer
공식 발표 화면 캡처
Copilot 발표 화면. 에디터에 코드를 치면 회색 제안 이 따라 붙는 모습.
“When you type code or comments, GitHub Copilot suggests the next line of code.”코드나 주석을 입력하면 Copilot이 다음 코드 줄을 제안한다. GitHub Blog · 2022-06-21
함수명·주석을 보고 다음 줄과 함수 본문 을 바로 제안한다.
보는 범위는 열린 파일·커서 앞뒤. 실행과 검증은 전부 사람 몫.
제안 단계의 기준선 . 이후 장치는 사람 몫이던 실행·검증을 차례로 넘긴다.
→ 2교시에서 자세히
자동완성의 핵심은 함수 이름이나 주석이 곧 프롬프트였다는 점입니다. 정식 출시 글은 코드나 주석을 입력하면 다음 줄을 제안한다고 설명합니다. 하지만 AI가 보는 범위는 열린 파일, 커서 주변이었고, 코드를 실행해 보거나 테스트하는 일은 전부 사람이 했습니다. 장점은 쓰던 흐름 안에서 다음 줄을 바로 얻는다는 점이고, 단점은 열린 파일만 보고 실행과 검증은 사람이 한다는 점입니다. 이후 장치들은 이 사람의 몫을 하나씩 넘기는 과정입니다.
2022-11-30 · 2023-03-22 ChatGPT 공개 · Copilot Chat(Copilot X) 발표
IDE 채팅은 묻고 답을 받게 했지만, 옮기고 실행하는 일은 사람 몫이었다
github.blog/news-insights/product-news/github-copilot-x-the-ai-powered-developer-experience
공식 시연 영상 캡처
IDE(Integrated Development Environment, 통합 개발 환경) 안 Copilot Chat 시연 영상. 왼쪽 채팅창에서 코드 설명·테스트 생성·버그 수정 을 요청할 수 있다.
선택한 코드와 오류를 맥락으로 설명·테스트 생성·수정안 까지 받는다.
한 파일·한 클래스 수준. 붙여넣고 실행하고 다시 묻는 루프는 사람 이 돈다.
묻고 답하는 쪽으로 한 단계 올랐지만 ‘계속’은 여전히 사람. 터미널 에이전트의 출발점.
→ 2교시에서 자세히
ChatGPT 이후 채팅은 IDE 안으로 들어왔습니다. 화면처럼 코드를 선택하고 물으면 설명과 수정안을 받습니다. 한 파일, 한 클래스 정도는 만들어 줬습니다. 하지만 답을 붙여넣고, 실행하고, 오류를 다시 복사해 묻는 루프는 여전히 사람이 돌렸습니다. 사람이 계속이라고 입력해야 다음으로 넘어갔습니다. 장점은 코드와 오류를 보고 설명과 수정안을 준다는 점이고, 단점은 한 파일 수준이며 루프를 사람이 돈다는 점입니다. 이 한계가 터미널 에이전트로 이어집니다.
2023-06-08 · 2025-02-24 Aider 첫 릴리스 · Claude Code 리서치 프리뷰
터미널 에이전트는 읽고, 고치고, 실행하고, 커밋까지 스스로 한다
aider.chat
2023 · 터미널 AI를 먼저 한 도구
Aider 첫 화면. ‘터미널에서 하는 AI 페어 프로그래밍’ 을 내세운다.
anthropic.com/news/claude-3-7-sonnet
2025 · 터미널 에이전트를 주류로 만든 도구
Claude Code 리서치 프리뷰 시작 화면. 터미널에서 로그인하면 바로 시작한다.
코드 검색→편집→테스트→커밋을 에이전트가 스스로 이어 가고, 실패하면 다시 고친다.
편집·명령마다 승인을 구해 승인 피로 가 쌓였다(다음 장들).
Claude Code는 시초가 아니다. 2023년 Aider가 먼저 했고 2025년에 주류로 만든 도구다. 3교시에서 본다.
터미널에서 AI가 저장소를 고치고 git에 커밋하는 방식은 2023년 Aider가 먼저 했습니다. 2025년 2월 Claude Code가 리서치 프리뷰로 나오면서 이 방식이 주류가 됐습니다. 차이는 루프입니다. 코드를 찾고, 고치고, 테스트를 돌리고, 실패하면 다시 고치는 일을 에이전트가 스스로 이어 갑니다. Claude Code를 시초라고 말하기보다 주류로 만든 도구라고 보는 것이 정확합니다. 장점은 루프를 에이전트가 스스로 돈다는 점이고, 단점은 승인을 계속 구한다는 점입니다. 의미는 Aider가 열고 Claude Code가 주류로 만든 방식이라는 것입니다.
권한 구조 IDE 확장 vs 터미널 에이전트
터미널 에이전트는 사용자와 같은 셸 권한으로 움직여서 루프를 혼자 돈다
IDE 안의 AI 터미널 에이전트 AI 확장 편집기가 열어 준 API만 편집기 앱 · 앱의 권한 에이전트 사용자 셸 · 사용자의 권한 git · npm · docker · gh · 내 CLI 전부
터미널 에이전트는 사용자의 셸 권한 으로, 사용자가 이미 쓰던 git · 빌드 · 테스트 명령을 그대로 실행합니다. 대신 무엇을 허락할지가 새 문제가 됩니다. → 3교시
IDE 확장은 편집기가 열어 준 API(Application Programming Interface, 응용 프로그램 인터페이스) 안에서만 움직입니다. 터미널 에이전트는 사용자의 셸에서 사용자와 같은 권한으로 git, npm, docker, gh 같은 도구를 그대로 씁니다. 그래서 코드를 고치고 직접 실행해 결과를 확인하는 루프를 에이전트가 혼자 돌릴 수 있게 됐습니다. 파이프로 연결하거나 CI(Continuous Integration, 지속적 통합) 안에서 비대화식으로 돌리기도 쉽습니다. 같은 권한이라는 장점이 곧 위험이 됩니다. 다음 장이 그 이야기입니다.
2025-03 → 2026-03 편집·명령마다 승인 → 권한 모드 → 자동 승인
승인 요청이 너무 잦아, 사용자는 요청의 93%를 그냥 눌렀다
code.claude.com/docs/en/permission-modes
공식 문서 화면 캡처 · 2026-10-28 확인
Claude Code 권한 모드 표. 모드마다 묻지 않고 실행하는 범위 가 다르다(default는 읽기만).
93%
수동 승인 요청 가운데 사용자가 읽지 않고 그대로 승인한 비율
Anthropic Engineering, 2026-03-25 “Claude Code auto mode”
→ 3교시: 권한 모델 · 9교시: 자동 승인
초기 터미널 에이전트는 파일을 고칠 때마다, 명령을 실행할 때마다 허락을 구했습니다. 프롬프트 하나에 승인을 열 번 누르는 일이 흔했습니다. 컨텍스트 창은 작고 모델은 미숙해서, 이때까지는 코드 자동 작성 수준에 머물렀습니다. Anthropic은 사용자가 수동 승인 요청의 93%를 그냥 승인했다고 밝혔습니다. 확인하지 않고 누르는 승인은 안전장치가 아닙니다. 이 문제가 권한 모드와 자동 승인 모드로 이어집니다.
2부 · 2회차
딴길로 새지 않게
2025 SDD
2025 압축의 한계
2025 서브에이전트
2026 워크트리
2부는 2회차 범위입니다. 에이전트가 일을 하기 시작하자 새 문제가 생겼습니다. 시킨 일에서 벗어나 딴길로 새는 문제입니다. 스펙, 테스트, 도메인 경계, 서브에이전트, 워크트리가 이 문제에 대한 답으로 차례로 붙었습니다.
2025-06 · 07-14 · 09-02 SDD(Spec-Driven Development, 스펙 주도 개발) → Kiro · Spec Kit · Plan 모드
스펙과 Task 목록이 에이전트가 딴길로 새는 것을 붙잡는다
github.blog/ai-and-ml/generative-ai/spec-driven-development-with-ai-get-started-with-a-new-open-source-toolkit
GitHub Blog 화면 캡처 · 2025-09-02
GitHub 블로그의 Spec Kit 소개 글. 제목은 ‘AI와 함께하는 스펙 주도 개발’ (SDD).
요구사항을 스펙(명세서)으로 쓴다
스펙을 계획과 Task(할 일 한 단위) 목록으로 쪼갠다
Task마다 스펙과 대조하며 구현한다
요구사항→스펙→Task→스펙 대조 구현으로 에이전트가 딴길로 새는 것 을 붙잡는다.
스펙은 길어지고 금방 낡는다 . 에이전트는 낡은 스펙도 믿는다(30번 장).
같은 문제를 푸는 두 갈래: 도구 안의 Plan 모드 와 문서 중심의 SDD .
→ 5교시에서 자세히
에이전트가 한 번에 많은 일을 하자, 중간에 목표를 잊고 딴길로 새는 일이 잦아졌습니다. 답은 먼저 쓰고 나중에 구현하는 것이었습니다. SDD라는 약어는 1987년 IEEE(Institute of Electrical and Electronics Engineers, 전기전자공학자협회) 1016의 소프트웨어 설계 기술서, Software Design Description에서 먼저 쓰였습니다. 사람에게 설계를 전하는 문서였습니다. 지금 말하는 스펙 주도 개발, Spec-Driven Development는 2004년 같은 이름의 애자일 논문을 거쳐 2025년 에이전트 도구와 함께 퍼진 말입니다. 5교시에 이 변화를 따로 소개합니다. 지금의 SDD는 요구사항을 스펙으로 쓰고, 계획과 Task 목록으로 쪼갠 뒤, Task마다 스펙과 대조하며 구현합니다. Claude Code의 Plan 모드가 2025년 6월, Kiro가 7월, GitHub Spec Kit이 9월에 나왔습니다. 명세 우선 개발이라는 생각 자체는 오래됐고, AI가 그것을 다시 필요하게 만들었습니다. 5교시에 SDD의 세 수준까지 자세히 봅니다. 장점은 스펙으로 에이전트를 붙잡는다는 점이고, 단점은 스펙이 길어지고 낡는다는 점입니다. 의미는 Plan 모드와 SDD가 같은 문제를 푸는 두 갈래라는 것입니다.
2025-03-18 · 2025-07-14 Claude Code 자동 압축(0.2.47) · Chroma ‘Context Rot’
대화를 압축할 때마다 정보가 사라지고, 입력이 길수록 성능도 떨어진다
research.trychroma.com/context-rot
Chroma 기술 보고서 화면 캡처
Chroma 기술 보고서 ‘Context Rot’ 첫 화면. 입력이 길어질수록 모델 성능이 달라지는지 18개 모델로 쟀다.
자동 압축(요약해 다시 시작)으로 작은 창(AI가 한 번에 보는 분량)에서도 일을 이어 간다 .
요약할 때마다 결정 이유·실패한 시도 가 빠진다. 입력이 길수록 성능도 떨어진다.
압축에 기대지 않는 장치(테스트·서브에이전트·큰 창)가 뒤따르는 이유 .
→ 5교시에서 자세히
스펙을 쓰고 Task를 쪼개도, 일이 길어지면 컨텍스트 창이 찹니다. Claude Code는 2025년 3월부터 대화를 자동으로 요약해 이어 가는 자동 압축을 넣었습니다. 문제는 요약할 때마다 정보가 빠진다는 점입니다. 왜 그렇게 결정했는지, 무엇을 이미 시도했다 실패했는지가 사라지면 에이전트는 같은 실수를 반복합니다. Chroma의 보고서는 입력이 길어질수록 모델 성능이 떨어진다는 것을 측정했습니다. 참고로 날짜로는 자동 압축이 Plan 모드보다 먼저였습니다. 장점은 창이 작아도 일을 이어 간다는 점이고, 단점은 요약할 때마다 정보가 빠지고 입력이 길수록 성능이 떨어진다는 점입니다. 그래서 압축에 기대지 않는 장치가 뒤따릅니다.
SDD + TDD 사람은 분량 때문에 못 하던 TDD를 AI에게 시킨다
TDD(Test-Driven Development, 테스트 먼저 쓰기)를 AI에게 시키면 ‘테스트 통과’가 곧 완료 기준이 된다
DDD · 도메인 경계 안에서 프롬프트에 수준을 명시 스펙 (무엇을) Task 목록 (어떤 순서로) 실패하는 테스트 (완료 기준) 구현 (통과할 때까지) PoC · MVP 최소 구현, 계층 없음 엔터프라이즈 클린 아키텍처·경계 빨강 → 초록 범위를 정한다
스펙을 실패하는 테스트 로 바꾸고, 테스트 통과를 완료 기준으로 삼습니다. 스펙과 테스트의 이중 방어입니다. → 6교시
압축으로 맥락이 사라져도 남는 것이 있습니다. 테스트입니다. 사람은 작성 분량 때문에 TDD(Test-Driven Development, 테스트 주도 개발)를 잘 하지 못했지만, AI에게는 분량이 문제가 되지 않습니다. 스펙을 먼저 실패하는 테스트로 바꾸고, 그 테스트가 통과할 때까지 구현하게 합니다. 완료 여부를 에이전트의 말이 아니라 테스트 결과로 판정하게 됩니다. 다만 에이전트가 테스트를 고쳐서 통과시키는 꼼수도 생깁니다. 6교시에 그 대응까지 다룹니다.
SDD + TDD + DDD 도메인 경계로 범위를 묶는다 · 강사 운영 방식
도메인 경계로 범위를 묶고, 프롬프트에 개발 수준을 적는다
PoC(Proof of Concept, 시험용 시제품) · MVP(Minimum Viable Product, 최소 기능 제품)
“이건 PoC입니다”
최소 구현, 계층 나누지 않음 목적을 확인할 기능만 명시하지 않으면 에이전트가 엔터프라이즈급으로 키운다
엔터프라이즈
“클린 아키텍처로”
도메인 · 응용 · 인프라 경계 경계 안에서만 고치게 해 범위를 묶는다 스펙과 테스트도 도메인 단위로
코드와 스펙이 커지면 범위가 너무 넓어집니다. DDD(Domain-Driven Design, 업무 영역별로 경계를 나누는 설계)로 묶고 프롬프트에 수준을 적는 것 이 기초 중의 기초입니다. → 6교시
스펙과 테스트를 갖춰도 코드가 커지면 한 번에 건드리는 범위가 너무 넓어집니다. 그래서 DDD(Domain-Driven Design, 도메인 주도 설계)를 함께 씁니다. 도메인 경계를 나누고 그 안에서만 고치게 하면 에이전트가 볼 범위가 줄어듭니다. 엔터프라이즈 규모라면 프롬프트에 클린 아키텍처를 명시합니다. 반대로 PoC(Proof of Concept, 개념 증명)나 MVP(Minimum Viable Product, 최소 기능 제품)라면 저는 반드시 그렇게 적습니다. 적지 않으면 에이전트는 계층과 추상화를 잔뜩 만든 과잉 개발을 합니다. 제 경험상 이것이 기초 중의 기초입니다.
2025-07-24 Claude Code 커스텀 서브에이전트
서브에이전트는 맥락을 나눠 써서 메인 창을 아낀다
code.claude.com/docs/en/sub-agents
공식 문서 화면 캡처
Claude Code 문서 ‘커스텀 서브에이전트 만들기’. 서브에이전트는 자기만의 컨텍스트 창 에서 일하고 요약만 돌려준다.
탐색한 파일 목록·긴 로그는 서브에이전트 창 에 남고 요약만 돌아와 메인 창을 아낀다.
메인에는 요약만 오므로 세부 과정은 서브에이전트 창에 남는다.
창이 한정되면 나눠 쓴다 . 압축 대신 맥락을 분리하는 해법. 7교시.
→ 7교시에서 자세히
창이 한정돼 있다면 나눠 쓰면 됩니다. 서브에이전트는 자기만의 컨텍스트 창을 가진 별도 에이전트입니다. 코드베이스를 뒤지거나 긴 테스트 로그를 읽는 일을 맡기면, 그 과정은 서브에이전트 창에 남고 메인에는 요약만 돌아옵니다. 메인 에이전트의 창을 계획과 판단에 아껴 쓸 수 있습니다. Claude Code는 2025년 7월에 사용자가 직접 정의하는 서브에이전트를 넣었습니다. 장점은 메인 창을 계획과 판단에 아낀다는 점이고, 단점은 세부 과정이 서브에이전트 창에 남는다는 점입니다. 의미는 압축 대신 맥락을 분리하는 해법이라는 것입니다.
2025-05-15 · 2026-02-19 Cursor 백그라운드 에이전트 · Claude Code --worktree(2.1.49)
워크트리로 작업마다 폴더를 나누면 병렬 에이전트가 서로 덮어쓰지 않는다
code.claude.com/docs/en/common-workflows
공식 문서 화면 캡처
Claude Code ‘공통 워크플로’ 문서. 목록에 워크트리로 병렬 세션 실행 (저장소 하나에 작업 폴더 여러 개)이 있다.
$ git worktree add ../app-login -b feat/login
$ git worktree add ../app-search -b feat/search
$ claude --worktree feat/login
✓ 작업마다 폴더와 브랜치가 따로
✓ 에이전트끼리 파일을 덮어쓰지 않음
! 합칠 때 충돌은 사람이 판단
→ 7교시에서 자세히
작업마다 폴더·브랜치가 따로 라 병렬 에이전트가 파일을 덮어쓰지 않는다.
합칠 때 충돌은 사람이 판단 한다. 합치는 비용은 15교시 머지 큐에서 본다.
병렬 에이전트의 전제 조건 . Cursor(2025-05)와 Claude Code(2026-02)가 공식 지원했다.
더 큰 프로젝트에서는 여러 작업을 동시에 돌리고 싶어집니다. 같은 폴더에서 에이전트 두 개가 일하면 서로 파일을 덮어씁니다. git worktree는 한 저장소에서 브랜치마다 별도의 작업 폴더를 만들어 줍니다. 에이전트마다 워크트리 하나씩 주면 서로 간섭하지 않고 병렬로 일합니다. Cursor는 2025년 5월 백그라운드 에이전트로, Claude Code는 2026년 2월 --worktree 옵션으로 이것을 공식 지원했습니다. 나중에 합치는 비용은 15교시 머지 큐에서 다시 봅니다. 장점은 병렬 에이전트가 서로 덮어쓰지 않는다는 점이고, 단점은 합칠 때의 충돌을 사람이 판단한다는 점입니다. 의미는 병렬 작업의 전제 조건이라는 것입니다.
질문 시간 · 약 5분
여기까지, 질문 받습니다
지금까지 다룬 것: 1부 자동완성 · IDE 채팅 · 터미널 에이전트 · 승인 피로 · 2부 SDD와 Plan 모드 · 압축의 한계 · TDD · DDD · 서브에이전트 · 워크트리
3부로 넘어가기 전에 잠시 멈추고 질문을 받겠습니다. 1부와 2부에서 본 도구나 날짜 가운데 이해가 안 된 곳, 자기가 쓰는 도구에서는 어떻게 되는지 궁금한 곳, 동의하지 않는 곳 무엇이든 좋습니다. 질문이 바로 나오지 않으면 화면 아래 썸네일 가운데 다시 보고 싶은 장을 말해 달라고 합니다.
3부 · 3회차
더 오래 맡기고, 패키징하다
2026 자동 승인
2025 Ralph 루프
2026 1M
2025 스킬
3부는 3회차 범위입니다. 에이전트가 딴길로 새지 않게 되자, 이제는 더 오래 맡기고 싶어졌습니다. 승인을 자동화하고, 계속을 자동화하고, 창을 키우고, 반복하는 방법론을 스킬로 묶었습니다. 이 장치들을 통틀어 하네스라고 부르기 시작한 것도 이 시기입니다.
2026-03-24 Claude Code auto mode · 2026-07 정식
자동 승인은 사람이 누르던 승인을 분류기 모델이 대신한다
claude.com/blog/auto-mode
공식 발표 화면 캡처
‘Claude Code의 auto mode’ 발표 글 첫 화면. 부제: 권한 건너뛰기 옵션보다 안전한 장시간 실행 대안 .
분류기가 도구 호출마다 판단 해, 권한 건너뛰기보다 안전하게 오래 돌린다.
시키지 않은 위험한 행동(과잉 행동) 100번 중 약 17번은 놓친다 (개발사 공개).
사람의 승인을 모델이 대신 한다. ‘계속’ 판단이 사람에서 모델로. 9교시.
→ 9교시에서 자세히
사용자들은 승인 피로를 ‘항상 허용’이나 권한 건너뛰기 플래그로 버텼습니다. 운영 데이터베이스를 지우는 사고도 그래서 났습니다. 2026년 3월 Claude Code는 auto mode를 내놓았습니다. 사람이 누르던 승인을 별도의 분류기 모델이 도구 호출마다 판단합니다. 개발사는 동기로 앞의 93% 수치를 들었고, 동시에 분류기가 실제 과잉 행동의 17%를 놓친다는 한계도 밝혔습니다. 사람의 승인을 모델이 대신한다, 이것이 정확한 표현입니다. 장점은 도구 호출마다 판단해 오래 돌릴 수 있다는 점이고, 단점은 과잉 행동의 17%를 놓친다는 점입니다. 의미는 사람의 승인을 모델이 대신하게 되었다는 것입니다.
축 2 ‘계속’을 누가 판단하나
채팅에서는 사람이, 에이전트에서는 에이전트가 ‘계속’
IDE 채팅 · 사람이 도는 루프 터미널 에이전트 · 에이전트가 도는 루프 질문 답 받기 붙여넣기·실행 오류 복사 맥락 수집 행동(도구 호출) 결과 확인 도구 호출 없음 → 멈춤 사람이 ‘계속’ 에이전트가 ‘계속’
에이전트 루프는 도구를 더 부르지 않을 때 멈춥니다. 언제 멈출지를 사람이 아니라 에이전트가 정합니다. → 3교시 · 9교시
두 번째 축을 다시 봅니다. IDE 채팅에서는 답을 받고, 붙여넣고, 실행하고, 오류를 다시 넣고, 계속이라고 입력하는 일을 사람이 했습니다. 터미널 에이전트에서는 맥락을 모으고, 도구를 부르고, 결과를 확인하는 루프를 에이전트가 돕니다. 도구를 더 부르지 않으면 멈춥니다. 문제는 에이전트가 너무 일찍 ‘다 했다’고 멈춘다는 것입니다. 다음 장이 그 해결입니다.
2025-07-14 → 2026-05-11 Ralph · 공식 플러그인 · /loop · Codex /goal · Claude Code /goal
‘계속’을 자동화해, 반복에서 목표 달성까지 도는 장치로 발전했다
날짜 장치 멈추는 기준
2025-07 반복 실행 루프(Ralph) 같은 프롬프트를 무한 반복
2026-03 주기 반복(/loop) 정해진 간격마다 반복
2026-04·05 목표 달성형 반복(/goal) 목표와 성공 기준 충족
→ 9교시에서 자세히
ghuntley.com/ralph
원문 블로그 화면 캡처 · 2025-07-14
Geoffrey Huntley의 블로그 글 ‘소프트웨어 엔지니어로서의 Ralph Wiggum’ . Ralph 루프의 출처.
/goal 은 목표와 성공 기준을 채울 때까지 이어 가, 몇 시간~며칠짜리 일을 맡길 수 있다.
Ralph 는 같은 프롬프트를 무한 반복할 뿐이고, /loop 는 간격마다 반복할 뿐이다.
‘계속’할지의 판단 기준이 완결된 목표 로 바뀌었다. 9교시에서 자세히.
너무 일찍 멈추는 에이전트를 붙잡는 방법은 커뮤니티 꼼수에서 시작했습니다. 2025년 7월 Geoffrey Huntley가 소개한 Ralph 루프는 같은 프롬프트를 셸 루프로 계속 다시 넣는 방식이었습니다. 11월 Anthropic이 Stop 훅으로 이것을 공식 플러그인으로 만들었고, 2026년 3월 /loop가 나왔습니다. /loop는 정해진 간격으로 반복하는 기능입니다. 목표가 끝날 때까지 계속하는 것은 /goal입니다. Codex가 4월, Claude Code가 5월에 넣었습니다. 계속할지를 판단하는 기준이 ‘완결된 목표’로 바뀌면서 몇 시간, 며칠짜리 일을 맡길 수 있게 됐습니다. 장점은 /goal이 목표 달성까지 이어 간다는 점이고, 단점은 Ralph와 /loop는 멈추는 기준이 반복뿐이라는 점입니다. 의미는 계속할지의 기준이 완결된 목표로 바뀌었다는 것입니다.
개념 · 코드 인텔리전스(LSP) · 문서 조회 대표 도구 Serena · Context7 (2025-03)
코드는 언어 서버(LSP)로, 최신 문서는 문서 조회로 필요한 만큼만 가져온다
github.com/oraios/serena
LSP의 대표 도구 · Serena
Serena 저장소. LSP(Language Server Protocol, 언어 서버 프로토콜) 로 심볼 단위 검색·편집을 주는 MCP(Model Context Protocol, 모델 컨텍스트 프로토콜) 서버.
context7.com
문서 조회의 대표 도구 · Context7
Context7 첫 화면. 라이브러리·버전에 맞는 최신 문서 를 찾아 에이전트에 넣어 주는 MCP 서버. LSP와는 다른 방식.
파일 전체 대신 필요한 심볼(LSP)과 최신 문서(문서 조회) 만 가져와 토큰을 아낀다.
MCP 서버마다 도구 정의가 창을 차지 하고, 도구 설명에 숨은 지시가 섞일 위험도 있다(→ 10교시).
오래 일하려면 창을 아껴야 한다. 압축·큰 창과 함께 쓰는 토큰 절약 수단. 10교시.
오래 일하려면 창을 아껴 써야 합니다. 여기서 개념 두 가지를 먼저 잡습니다. 첫째는 LSP(Language Server Protocol, 언어 서버 프로토콜)입니다. 2016년 마이크로소프트가 내놓은 규약으로, 편집기가 언어 서버에게 정의로 이동, 참조 찾기, 오류 진단을 묻는 표준입니다. 에이전트도 이것을 쓰면 파일 전체 대신 필요한 함수와 클래스만 읽습니다. 대표 도구가 Serena입니다. 둘째는 문서 조회입니다. 모델이 모르는 최신 라이브러리 문서를 버전에 맞게 찾아 필요한 부분만 넣어 줍니다. 대표 도구가 Context7이고, LSP와는 다른 방식입니다. 두 도구 모두 2025년 3월에 나왔고 MCP(Model Context Protocol, 모델 컨텍스트 프로토콜)라는 표준으로 에이전트에 연결합니다. 2026년 1월에는 rtk가 테스트 로그 같은 CLI(Command-Line Interface, 명령줄 인터페이스) 출력을 압축하는 방식으로 토큰을 줄였습니다. Claude Code의 검색 도구가 ripgrep 기반인 것도 같은 맥락입니다. 10교시에 자주 쓰는 MCP 도구를 하나씩 소개합니다. 장점은 필요한 코드와 문서만 가져와 토큰을 아낀다는 점이고, 단점은 MCP 서버로 따로 연결해야 하고 쓰임이 나뉜다는 점입니다. 의미는 오래 일하기 위한 토큰 절약 수단이라는 것입니다.
2026-03-13 Claude 1M 컨텍스트 정식 출시 · 할증 없음
Claude의 창이 10만에서 100만 토큰으로 커져, 압축 없이 더 오래 일한다
claude.com/blog/1m-context-ga
공식 발표 화면 캡처
Claude 블로그 발표. 1M 컨텍스트 가 Opus 4.6·Sonnet 4.6에서 정식 출시, 긴 입력 할증도 없다.
100K
10만 토큰 · 2023-05 · Claude
1M
100만 토큰 · 2026-03 정식 · Claude · Gemini
압축 횟수가 줄어 결정 이유·실패 기록 이 덜 사라지고, 긴 입력 할증도 없다.
Codex는 40만 토큰이라 ‘모두 1M’은 아니다 . 창이 크다고 성능이 그대로인 것도 아니다.
창을 키우는 길과 나눠 쓰는 길(서브에이전트)은 함께 쓰는 해법. 9교시.
창 자체를 키우는 길도 있었습니다. 2023년 100K였던 Claude의 창이 2026년 3월 1M으로 정식 출시됐고, 긴 입력에 붙던 할증도 없앴습니다. 압축 횟수가 줄면 결정의 이유나 실패 기록이 덜 사라집니다. 다만 모든 에이전트가 1M은 아닙니다. Claude와 Gemini는 1M, Codex는 400K입니다. 창이 크다고 성능이 그대로인 것도 아니라는 점은 앞의 Context Rot 보고서와 함께 봐 주세요. 장점은 압축이 줄고 할증이 없다는 점이고, 단점은 모든 에이전트가 1M은 아니며 성능이 그대로도 아니라는 점입니다. 의미는 창 키우기와 나눠 쓰기를 함께 쓴다는 것입니다.
2025-09-29 → 2026-02-11 Agent SDK(Software Development Kit, 소프트웨어 개발 키트) 글 · Anthropic 장기 실행 하네스 · OpenAI Harness engineering
‘하네스’는 모델을 둘러싼 장치 전부를 가리키는 말이 되었다
anthropic.com/engineering/effective-harnesses-for-long-running-agents
Anthropic Engineering 화면 캡처 · 2025-11-26
Anthropic 글 ‘장시간 실행 에이전트를 위한 효과적 하네스’ . 여러 컨텍스트 창에 걸친 긴 작업을 다룬다.
에이전트 = 모델 + 하네스
권한, 스펙, 테스트, 루프, 도구, 메모리… 지금까지의 장치 전부
Claude Code 출시 때는 없던 말
같은 모델도 하네스에 따라 결과가 달라진다
→ 10교시 · 내 하네스 만들기
여기까지 나온 장치들, 권한 규칙, 스펙, 테스트, 루프, 도구 연결, 진행 기록을 통틀어 하네스라고 부릅니다. 말에 씌우는 마구에서 온 말입니다. 2025년 2월 Claude Code가 나올 때는 이 말이 쓰이지 않았고, 공식 글에서는 2025년 9월 Agent SDK(Software Development Kit, 소프트웨어 개발 키트) 글에서 처음 확인됩니다. 11월 Anthropic의 장기 실행 하네스 글, 2026년 2월 OpenAI의 하네스 엔지니어링 글이 이어졌습니다. 이 과정의 실습에서는 여러분이 원하는 기능과 스펙의 하네스를 직접 만들어 봅니다. 형태나 구조는 정해 두지 않습니다.
2025-10-09 · 10-16 · 12-18 Superpowers · Agent Skills 발표 · 오픈 표준
스킬은 방법론을 폴더 하나로 묶어 필요할 때만 읽게 한다
blog.fsck.com/2025/10/09/superpowers
개발 방법론을 스킬 묶음으로 → 대표 예 Superpowers (브레인스토밍 → 계획 → 서브에이전트 실행 · TDD)
블로그 ‘Superpowers: 2025년 10월 나는 코딩 에이전트를 이렇게 쓴다’. 작업 방식을 도구 꾸러미로 정리.
claude.com/blog/skills
Agent Skills · 필요할 때만 읽히는 지침 폴더
Anthropic의 ‘Agent Skills 소개’ 글(2025-10-16).
방법론을 폴더 하나 (지침+스크립트)로 묶어, 필요할 때만 읽혀 매번 설명하지 않는다.
스킬도 에이전트가 그대로 따르는 지침이라 출처 확인 이 필요하고, 설명(description)이 나쁘면 아예 불리지 않는다(→ 11교시).
2025-12 오픈 표준 이 되어 다른 에이전트에서도 쓴다. 11교시에서 자주 쓰는 스킬을 본다.
지금까지의 방법론을 매번 프롬프트로 설명하기는 번거롭습니다. 스킬은 지침과 스크립트를 폴더 하나에 묶어, 필요할 때만 에이전트가 읽게 하는 방식입니다. 개발 방법론 자체를 스킬 묶음으로 만든 대표 예가 Jesse Vincent의 Superpowers입니다. 브레인스토밍, 계획, 서브에이전트 실행, TDD를 꾸러미로 묶었고, Anthropic이 Agent Skills를 발표하기 1주 전인 2025년 10월 9일에 나왔습니다. 12월에는 스킬이 오픈 표준이 되어 다른 에이전트에서도 쓸 수 있게 됐습니다. 11교시에 자주 쓰는 스킬을 소개합니다. 장점은 방법론을 폴더로 묶어 필요할 때만 읽힌다는 점이고, 단점은 맞는 스킬을 골라 써야 한다는 점입니다. 의미는 오픈 표준이 되어 다른 에이전트에서도 쓸 수 있다는 것입니다.
2026-01-27 · 2026-06-12 Karpathy guidelines(제3자 제작) · Ponytail
과열을 막는 스킬은 코드를 쓰기 전에 ‘정말 필요한가’부터 묻는다
github.com/DietrichGebert/ponytail
Ponytail README 그림
‘코드를 쓰기 전, 통하는 첫 단계에서 멈춰라 ’. 필요한가 → 이미 있나 → 표준 라이브러리로 되나 순의 7단계.
코드 전에 “필요한가? 이미 있나? 표준 라이브러리로 되나?” 를 물어 불필요한 기능을 줄인다.
Karpathy guidelines는 본인이 아닌 제3자 가 관찰을 정리한 스킬이다.
에이전트의 과열 버릇 을 스킬로 막는다. 앞의 DDD에서 PoC를 명시하라는 것과 같은 방향. 11교시.
→ 11교시에서 자세히
에이전트의 또 다른 버릇은 과열입니다. 시키지 않은 기능, 필요 없는 추상화를 만듭니다. Karpathy guidelines 스킬은 Karpathy 본인이 아니라 제3자가 그의 X 게시물에 적힌 관찰을 스킬로 정리한 것입니다. Ponytail은 코드를 쓰기 전에 사다리를 오르게 합니다. 이게 필요한가, 이미 코드베이스에 있나, 표준 라이브러리로 되나, 한 줄로 되나를 묻고, 그래도 안 될 때만 최소 구현을 합니다. 앞의 DDD에서 PoC라고 명시하라는 것과 같은 방향입니다. 장점은 쓰기 전에 필요한지부터 묻게 한다는 점이고, 단점은 Karpathy guidelines가 본인이 아닌 제3자의 정리라는 점입니다. 의미는 에이전트의 과열을 스킬로 막는다는 것입니다.
4부 · 4회차
병렬 개발과 품질
2026 에이전트 팩토리
2011 ADR
2026 CI 폭증
2025 페르소나
4부는 4회차 범위입니다. 한 개발자가 여러 에이전트를 동시에 돌리는 공장이 되자, 문제는 다시 바뀌었습니다. 무엇을 만들지 기록하는 법, 쏟아지는 PR(Pull Request, 병합 요청)을 검증하는 법, 그리고 테스트가 틀렸을 때 무엇을 믿을지가 문제입니다.
2025-10-28 → 2026-04-02 GitHub Agent HQ · Codex 앱 · Orca · Cursor 3
한 개발자가 여러 에이전트를 병렬로 돌리는 ‘에이전트 팩토리’가 나왔다
github.com/stablyai/orca
워크트리 기반 병렬 에이전트 관리 → 대표 도구 Orca · 2026-03 첫 커밋
Orca 화면. 작업 목록 옆에서 여러 에이전트 터미널 이 동시에 돈다.
github.blog/news-insights/company-news/welcome-home-agents
Agent HQ · 여러 회사의 에이전트를 한곳에
GitHub Agent HQ 발표 글. 제목은 ‘어떤 에이전트든, 원하는 방식으로’ .
작업마다 맞는 에이전트를 골라 여러 개를 병렬로 돌려, 한 개발자가 큰 프로젝트를 맡는다.
합칠 때 충돌 은 사람이 판단하고 PR(Pull Request, 병합 요청)·CI(Continuous Integration, 지속적 통합) 부담이 커진다(앞뒤 장).
도구가 아니라 운영 방식의 변화 . 하네스 여러 개를 동시에 돌린다. 13교시에서 Orca를 시연.
모델마다 가격과 성능이 다르다는 것이 드러나고, 한 개발자가 큰 프로젝트를 맡게 되면서 여러 하네스를 동시에 돌리는 방식이 나왔습니다. 저는 이것을 에이전트 팩토리라고 부릅니다. GitHub Agent HQ는 여러 회사의 에이전트를 한 화면에 모았고, Codex 앱과 Cursor 3도 여러 에이전트를 나란히 돌리는 창을 넣었습니다. 워크트리 기반 병렬 에이전트 관리라는 방식이 있고, 대표 도구가 Orca입니다. 워크트리마다 에이전트를 하나씩 붙여 병렬로 돌립니다. 13교시에 Orca를 자세히 시연합니다. 장점은 작업마다 맞는 에이전트를 병렬로 돌린다는 점이고, 단점은 합칠 때의 충돌과 CI 부담입니다. 의미는 하네스 여러 개를 동시에 돌리는 운영 방식의 변화라는 것입니다.
최근 동향 · 강사 운영 방식 /batch 2026-02-28 · agent teams 02-05 · /loop 깨우기 2026-04~
코디네이터가 일을 나눠 주고, 주기적으로 깨어 점검하며 며칠간 완주한다
코디네이터(조율만 맡는 세션)는 직접 코딩하지 않고, 일을 배치(한 묶음)로 나눠 주고 상태만 본다
주기적으로 깨어나 PR · CI · 이슈를 읽고 다음 배치를 보낸다
최종 목표에 닿을 때까지 수일 동안 멈추지 않는다
→ 13교시에서 실제 화면으로
코디네이터 세션 목표 · 완료 조건 워커 A · B · C /batch · 워크트리별 이슈 원장 PR · CI 나눠 줌 기록 깨어나 점검
제가 지금 Claude Code로 쓰는 방식을 소개합니다. 코디네이터-배치 패턴입니다. 코디네이터 세션은 직접 코드를 쓰지 않습니다. 최종 목표와 완료 조건을 들고, 일을 여러 워커에게 배치로 나눠 줍니다. 워커는 각자 워크트리에서 일하고 결과를 PR과 이슈에 남깁니다. 코디네이터는 주기적으로 깨어나 그 상태를 읽고, 다음 배치를 보내거나 막힌 것을 정리합니다. 이렇게 며칠 동안 멈추지 않고 목표까지 갑니다. 2026년 2월의 /batch와 agent teams, 4월부터 쓸 수 있게 된 /loop 자기 깨우기가 이것을 가능하게 했습니다. 13교시에 실제 운영 화면으로 보여 드립니다.
2011-11-15 → 지금 Nygard ‘Documenting Architecture Decisions’ · 강사 운영 기준
스펙은 금방 낡으니, 결정은 ADR에 할 일은 이슈에 남긴다
cognitect.com/blog/2011/11/15/documenting-architecture-decisions
ADR 원문 화면 캡처
Michael Nygard의 2011년 글 ‘아키텍처 결정 문서화’ . ADR(Architecture Decision Record, 아키텍처 결정 기록)의 출처. 큰 문서는 안 읽히니 작은 문서로 남기자는 내용.
왜 그렇게 정했는지 만 짧게(배경·대안·선택과 이유·다시 판단할 조건) 남긴다.
ADR은 이유만 담는다. 할 일 은 GitHub 이슈·프로젝트로 따로 관리해야 한다.
스펙은 금방 낡는다. 그래서 SDD 대신 ADR+이슈 를 쓴다(강사 방식). 14교시.
→ 14교시에서 자세히
병렬로 일하면 SDD만으로는 전체 흐름을 다루기 어렵습니다. 스펙 문서는 길어지고, 금방 낡고, 에이전트는 낡은 스펙도 그대로 믿습니다. 그래서 저는 최근 SDD 대신 ADR을 씁니다. 결정과 근거를 남긴다는 생각은 1992년 Perry와 Wolf의 아키텍처 정의에도 있었고, 2005년 Tyree와 Akerman이 결정 서식을 냈습니다. 아키텍처 결정 기록, ADR이라는 지금의 형태는 2011년 11월 15일 Michael Nygard가 제안한 짧은 문서로, 무엇을 왜 그렇게 정했는지, 어떤 대안이 있었는지, 언제 다시 판단할지를 남깁니다. 할 일은 GitHub 프로젝트와 이슈, 태그로 관리합니다. 이슈가 곧 설계도가 되고, 에이전트는 이슈를 하나씩 도장 깨듯 처리합니다. 14교시에 제 ADR 서식과 이슈 흐름을 그대로 보여 드립니다. 장점은 이유만 짧게 남겨 낡지 않는다는 점이고, 단점은 할 일은 이슈로 따로 관리해야 한다는 점입니다. 의미는 SDD 대신 ADR과 이슈를 쓰는 방식이라는 것입니다.
2026-10-06 · 2026-10-13 GitHub Actions 실행량 · Anthropic Scion
CI 비용 폭증의 원인은 단가가 아니라 실행량이 4배 넘게 늘어난 것이다
anthropic.com/engineering/redesigning-source-control
Anthropic Engineering 차트 · 2026-01~09
Anthropic 저장소의 하루 머지(합쳐진 변경) 수 . 연초 대비 9월 9일 30,401건으로 치솟았다.
4배+
GitHub Actions(CI 실행) 월 실행 수, 전년 대비 (2026-09, 32.6억 회)
30,401
Anthropic 하루 머지 수(2026-09-09). 결국 자체 소스 관리 Scion을 만들었다
→ 15교시에서 자세히
에이전트가 PR을 쏟아내자 CI가 터졌습니다. 흔히 GitHub Actions 요금이 올랐다고 말하지만, 단가는 2026년 1월 오히려 최대 39% 내렸습니다. 늘어난 것은 실행량입니다. GitHub은 2026년 9월 Actions 실행이 32.6억 회로 전년 대비 4배를 넘었다고 밝혔습니다. Anthropic은 하루 머지가 3만 건을 넘자 기존 소스 관리로는 버틸 수 없어 Scion이라는 자체 시스템을 만들었습니다. 차트 오른쪽 끝의 급증이 에이전트 시대의 모습입니다.
2023-07-12 GitHub merge queue 정식 출시 · 머지 트레인
머지 큐는 PR을 줄 세워 묶어서 한 번에 검증해 CI를 줄인다
docs.github.com/…/managing-a-merge-queue
GitHub Docs 화면 캡처
GitHub Docs ‘머지 큐 관리하기’. 머지 큐는 PR을 줄 세워 합쳐도 브랜치가 깨지지 않게 자동 병합한다.
PR을 줄 세워 묶어서 한 번에 검증 해 CI를 줄이고, 합쳐도 브랜치가 깨지지 않게 한다.
큐는 검증을 묶을 뿐이라, 캐시·변경분만 테스트·이슈 단위 병합 을 함께 쓴다.
앞 장의 CI 실행량 4배 에 대한 대응. 양을 줄이는 쪽의 해법. 15교시.
→ 15교시에서 자세히
CI 분량을 줄이는 방법은 세 가지입니다. 첫째, 머지 큐나 머지 트레인으로 여러 PR을 줄 세워 묶어서 한 번에 검증합니다. 둘째, 캐시로 이미 빌드한 것은 다시 빌드하지 않습니다. 셋째, 바뀐 부분과 관련된 테스트만 돌립니다. 저는 여기에 PR 자체를 이슈 단위로 합쳐 개수를 줄이는 방법을 더합니다. 15교시에 실제 설정을 봅니다. 장점은 묶어서 검증해 CI를 줄인다는 점이고, 단점은 큐만으로는 부족해 캐시와 이슈 단위 병합을 함께 쓴다는 점입니다. 의미는 실행량 폭증에 대한 대응이라는 것입니다.
2024-10-22 → 2025-09-23 브라우저 자동화 → 대표 Playwright MCP · Chrome DevTools MCP
테스트가 틀릴 수 있으니, 스모크 테스트는 AI가 직접 눌러 확인한다
developer.chrome.com/blog/chrome-devtools-mcp
Chrome for Developers 화면 캡처
글 ‘AI 에이전트를 위한 Chrome DevTools(MCP)’. 에이전트가 자기 코드의 실행 결과를 직접 보게 한다.
에이전트가 브라우저를 띄워 클릭하고 콘솔 오류를 읽어 , 실행 결과를 직접 본다.
동작하는지 는 보지만, 쓸 만한지(사용성)까지는 보지 못한다(다음 장).
테스트 통과만 믿던 완료 기준을 직접 실행 확인 으로 보강한다. 15교시.
→ 15교시에서 자세히
테스트를 완료 기준으로 삼았더니 새 문제가 생겼습니다. 에이전트가 쓴 테스트 자체가 틀린 경우입니다. 테스트가 불량이면 통과해도 구현은 불량입니다. 결국 사람이 직접 앱을 띄워 눌러봐야 확정됐습니다. 이 스모크 테스트를 이제 AI가 합니다. 브라우저 자동화라는 방식으로, 2024년 10월 computer use가 먼저 나왔고 2025년에는 Playwright MCP(페이지를 접근성 트리 스냅샷으로 읽어 조작)와 Chrome DevTools MCP가 대표 도구로 쓰입니다. 에이전트가 브라우저를 띄우고, 클릭하고, 콘솔 오류를 읽습니다. 장점은 에이전트가 실행 결과를 직접 확인한다는 점이고, 단점은 동작 여부만 보고 쓸 만한지는 못 본다는 점입니다. 의미는 완료 기준이 직접 실행 확인으로 보강된다는 것입니다.
2025-02 → 지금 LLM 페르소나 시뮬레이션 → UXAgent · TinyTroupe
가상 고객이 된 에이전트가 화면을 눌러보고, 피드백으로 스스로 고친다
arxiv.org/abs/2502.12561
arXiv 화면 캡처 · 연구 근거
UXAgent 논문 초록. LLM(Large Language Model, 대규모 언어 모델) 에이전트가 시뮬레이션 사용자 가 되어 웹사이트 사용성 테스트를 한다.
실제 고객 페르소나(가상 인물상)를 주입한다
그 사람처럼 화면을 눌러보게 한다
피드백을 이슈로 남기고 다시 고친다
논문은 수천 명의 시뮬레이션 사용자 로 사용성 평가를 하는 방법을 제안했다.
시뮬레이션 사용자라, 실제 고객의 반응과 같다고 볼 수는 없다.
동작 확인(스모크) 다음의 ‘쓸 만한가’ 까지 에이전트에 넘긴다. 16교시.
스모크 테스트는 동작하는지를 봅니다. 그다음 질문은 쓸 만한지입니다. 저는 실제 고객 페르소나를 에이전트에게 주입해 그 사람처럼 화면을 눌러보게 하고, 그 피드백을 이슈로 남겨 다시 고치게 합니다. 자기 개선 루프입니다. LLM(Large Language Model, 대규모 언어 모델) 페르소나 시뮬레이션이라는 방식으로, 연구 쪽에서는 2025년 2월 UXAgent 논문이 수천 명의 시뮬레이션 사용자로 사용성 평가를 하는 방법을 제안했습니다. 16교시에 제 페르소나 평가 흐름을 보여 드립니다. 장점은 쓸 만한지까지 에이전트가 평가한다는 점이고, 단점은 시뮬레이션 사용자라 실제 고객과 같지 않다는 점입니다. 의미는 동작 확인 다음 단계까지 넘긴다는 것입니다.
정리 각 장치는 앞 단계의 실패에서 나왔다
각 장치는 앞 단계의 실패를 풀려고 차례로 쌓였다
제안하는 AI 자동완성 · IDE 채팅 일하는 AI 터미널 에이전트 · 권한 승인 SDD·Plan · TDD·DDD 서브에이전트·워크트리 공장이 된 AI 팩토리·코디네이터 ADR·이슈 원장 머지 큐·CI·스모크 오래 일하는 AI 자동 승인 · /loop · /goal MCP·토큰 절약·1M 하네스·스킬 옮기기 딴길·압축 규모
오늘 본 것을 묶으면 이렇습니다. 제안하는 AI에서는 사람이 옮기는 일이 병목이었고, 그래서 일하는 AI가 나왔습니다. 일하는 AI는 딴길로 새고 맥락을 잃었고, 그래서 스펙, 테스트, 도메인 경계, 서브에이전트가 붙었습니다. 오래 일하는 AI는 승인과 계속을 자동화하고 하네스와 스킬로 묶였습니다. 규모가 커지자 공장이 된 AI가 나왔고, ADR, 머지 큐, 스모크와 페르소나 평가가 품질을 지킵니다. 매달 여러 장치가 동시에 쌓였다는 점도 덧붙입니다. 순서는 날짜보다 문제와 해결의 논리입니다.
2021 → 2026 개발자의 일은 어디로 갔나
코드를 쓰던 사람에서, 장치를 설계하는 사람으로
2021 · 코드를 쓰는 사람 2026 · 장치를 설계하는 사람 타이핑 실행·디버깅 리뷰 목표와 완료 조건 정하기 권한·스펙·테스트 설계 하네스 조립 결과 판정
이 과정에서 함께 다뤄 볼 것은 에이전트에게 일을 맡기고, 결과를 믿을 수 있게 만드는 능력 입니다.
그러면 개발자는 무엇을 하게 됐을까요. 2021년의 개발자는 코드를 쓰고, 실행하고, 리뷰했습니다. 2026년의 개발자는 목표와 완료 조건을 정하고, 권한과 스펙과 테스트를 설계하고, 하네스를 조립하고, 결과가 맞는지 판정합니다. 코드를 덜 쓰는 대신 판단할 일이 늘었습니다. 이 과정에서는 에이전트에게 일을 맡기고, 그 결과를 믿을 수 있게 만드는 능력을 함께 다뤄 보려고 합니다.
2026-11-03 → 12-01 5회 × 4교시 · 실습 ‘나만의 하네스 만들기’
5회차 일정: 회차마다 내 하네스를 한 번씩 키운다
회차 강의 (1~3교시) 4교시 · 하네스에 더해 볼 것 (예)
1 · 11-03 큰 흐름 · 자동완성과 IDE 채팅 · 터미널 에이전트와 승인 최소 루프 + 권한 규칙
2 · 11-10 SDD·Plan과 압축 · TDD와 DDD · 서브에이전트와 워크트리 스펙 · 테스트 완료 기준 · 진행 파일
3 · 11-17 자동 승인·/goal·1M · 하네스와 MCP · 스킬 MCP 하나 · 스킬 하나 · 긴 작업
4 · 11-24 팩토리·Orca·코디네이터 · ADR과 이슈 원장 · CI와 스모크 · 페르소나·REA(Reverse Engineer Anything, 역공학 도구) 코디네이터 · 브라우저 스모크
5 · 12-01 자유 형식으로 나누고 이야기한다: 내 하네스 · 돌려 본 기록 · 막혔던 곳 · 스터디로 이어 간다
강의는 4회차까지입니다. 회차마다 마지막 교시에 실습을 하고, 각자 하네스 하나를 조금씩 키웁니다. 무엇을 하는 하네스인지, 어떤 형태로 만들지는 각자 정합니다. 표의 4교시 칸은 그 회차에 소개한 장치 가운데 고를 수 있는 예입니다. 오늘은 최소 루프와 권한 규칙, 다음 주에는 스펙과 테스트, 그다음 주에는 MCP와 스킬, 마지막 주에는 코디네이터와 스모크 테스트를 소개합니다. 필요한 것만 골라 쓰시면 됩니다. 5회차에는 각자 만든 하네스를 형식 없이 자유롭게 나누고 이야기하며, 이야기가 스터디로 이어지면 좋겠습니다. 하네스를 이해하는 가장 좋은 방법은 직접 만들어 보는 것입니다.
1회차 · 2교시
자동완성과 IDE 채팅
이전 문법 자동완성
2021 생성형 자동완성
2023 IDE 채팅
2024 코드베이스 채팅
2교시에서는 AI 코딩의 첫 두 단계를 천천히 봅니다. 자동완성이 무엇을 보고 무엇을 돌려주는지, 채팅이 IDE(Integrated Development Environment, 통합 개발 환경) 안으로 들어오면서 무엇이 달라졌는지를 다룹니다. 오늘 소개할 내용을 한 문장으로 말하면 이렇습니다. 자동완성과 채팅이 어떤 맥락을 보고 어떤 결과를 돌려주는지, 그리고 왜 실행과 검증은 계속 사람 몫이었는지입니다. 아래 네 장은 모두 실제 공식 문서와 발표 화면입니다.
1교시에서 이어서 오늘은 연표의 첫 두 단계를 확대합니다
이번 시간 순서: 제안 → 대화 → 남은 문제
단계 1 · 자동완성 다음 줄 제안 → Tab 수락 단계 2 · IDE 채팅 @파일 · 코드베이스 맥락 남은 문제 실행 · 검증 · 오류 전달은 사람 3교시 · 터미널 에이전트
1교시에서 본 ‘사람이 옮기는 일’ 이 정확히 어디서 생기는지 오늘 함께 봅니다. IDE(Integrated Development Environment, 통합 개발 환경)는 코드를 쓰는 편집기 프로그램입니다. → 3교시
1교시에서 제안하는 AI에서 일하는 AI까지 큰 흐름을 봤습니다. 오늘은 그 앞쪽 두 단계를 확대합니다. 첫 번째는 자동완성입니다. 사람이 쓰면 AI가 다음 줄과 함수 본문을 제안하고, 사람은 Tab으로 받아들입니다. 두 번째는 IDE 채팅입니다. 묻고 답을 받는 방식이 에디터 안으로 들어왔습니다. 그런데 두 단계 모두 코드를 적용하고 실행하고 결과를 판단하는 일은 사람이 했습니다. 이 남은 문제가 3교시 터미널 에이전트로 이어집니다.
자동완성 이전 VS Code 공식 문서 · IntelliSense
예전 자동완성은 문법 규칙으로 이름 후보를 보여 줄 뿐이었다
code.visualstudio.com/docs/editing/intellisense
공식 문서 화면 캡처 · 2026-10-28 확인
VS Code 공식 문서의 IntelliSense (코드 자동완성 기능) 설명 페이지. 타이핑하면 이름 후보 목록 이 뜨는 방식을 소개.
언어 규칙과 소스 분석으로 계산해, 글자를 칠수록 후보가 좁혀진다 .
내놓는 것은 이름 하나 뿐. 어떤 함수를 짜야 하는지는 알지 못한다.
다음 장 Copilot과 비교할 기준선 . 입력은 같고 돌려주는 것 이 다르다.
→ 다음 장: 무엇이 달라졌나
먼저 비교 기준을 잡겠습니다. 여러분이 이미 쓰고 있는 IntelliSense 같은 자동완성은 언어 서비스가 만듭니다. 문서에 따르면 언어 의미와 소스 코드 분석을 바탕으로 가능한 멤버를 계산해서 목록으로 보여 줍니다. 점을 찍으면 메서드가 나오고, 글자를 더 치면 목록이 좁혀집니다. 이 방식이 내놓는 것은 이름 하나입니다. 어떤 함수를 짜야 하는지는 알지 못합니다. 이 차이를 염두에 두고 다음 장으로 넘어가겠습니다. 정리하면 장점은 규칙에서 나온 후보가 빠르게 좁혀진다는 것이고, 단점은 이름 하나밖에 내놓지 못한다는 것입니다. 이 장은 다음 장의 Copilot과 비교하기 위한 기준선입니다.
2021-06-29 VS Code 문서 vs GitHub Copilot 발표
생성형 자동완성은 이름이 아니라 함수 전체를 제안한다
code.visualstudio.com/docs/editing/intellisense
문법 기반 · 이름 후보를 고른다
VS Code 문서: 이름 후보 목록 에서 고른다.
github.blog/…/introducing-github-copilot-ai-pair-programmer
생성형 · 줄과 함수를 통째로 제안
Copilot 발표문: AI가 줄과 함수 전체 를 제안한다.
입력은 같아도 돌려주는 것 이 다릅니다. 앞은 목록에서 고르고, 뒤는 AI가 쓴 코드를 검토합니다.
두 화면을 나란히 보겠습니다. 왼쪽은 문법 기반입니다. 규칙에서 나온 후보 중에 사람이 고릅니다. 오른쪽은 생성형입니다. Copilot 발표문은 지금 작업 중인 코드를 바탕으로 한 줄, 또는 함수 전체를 제안한다고 설명합니다. 그래서 사람의 역할도 바뀝니다. 목록에서 고르는 사람이 아니라, AI가 쓴 코드를 읽고 맞는지 판단하는 사람이 됩니다. 검토라는 새 일이 이때 생겼습니다.
2021-06-29 GitHub Copilot 기술 미리보기 · OpenAI Codex 기반
생성형 자동완성은 코드 생성 모델을 에디터 안으로 가져왔다: 2021년 Copilot
github.blog/news-insights/product-news/introducing-github-copilot-ai-pair-programmer
공식 발표 화면 캡처 · 2021-06-29
GitHub Copilot 첫 공식 발표문. 코드를 생성하는 AI를 에디터에 붙인 기술 미리보기 시작을 알린다.
Codex 모델이 한 줄부터 함수 전체 까지 제안하고, 타이핑에 맞춰 바뀐다.
신청해서 받는 제한된 미리보기 . 누구나 쓰는 도구는 아니었다.
AI가 이름이 아니라 코드를 쓰기 시작 한 출발점. 사람은 고르는 쪽에서 검토하는 쪽으로.
→ 다음 장: 정식 출시
2021년 6월 29일 GitHub가 Copilot의 기술 미리보기를 시작했습니다. 엔진은 OpenAI와 함께 만든 Codex 모델이고, 발표문은 GPT-3보다 코드 생성 능력이 훨씬 뛰어나다고 설명합니다. 작업 중인 코드를 보고 줄이나 함수를 제안하며, 타이핑에 맞춰 제안이 바뀝니다. 이때는 신청해서 받는 미리보기였고, 누구나 쓰는 도구는 아니었습니다. 대중적으로 퍼진 것은 다음 장의 정식 출시부터입니다. 장점은 한 줄부터 함수 전체까지 제안한다는 점이고, 단점은 신청자만 쓰는 미리보기였다는 점입니다. 의미는 AI가 이름이 아니라 코드를 쓰기 시작했다는 것입니다.
2022-06-21 GitHub Copilot 정식 출시 발표
2022년 Copilot은 월 10달러짜리 정식 개발 도구가 되었다
github.blog/…/github-copilot-is-generally-available-to-all-developers
공식 발표 화면 캡처 · 2022-06-21
Copilot을 모든 개발자에게 정식 공개 한다는 공식 발표문. 개인 요금과 무료 대상이 함께 적혀 있다.
$10
개인 월 요금(연 100달러) 학생·인기 오픈소스 관리자는 무료
GitHub Blog, 2022-06-21
→ 다음 장: 함수명과 주석
개인 월 10달러 에 학생·인기 오픈소스 관리자는 무료. VS Code·JetBrains·Neovim 등에서 쓴다.
개인은 유료 (월 10달러, 연 100달러). 무료는 인증된 학생·관리자뿐이다.
미리보기 1년 만에 실험 도구가 일상 도구 로. 지금 학생 인증으로 쓸 수 있는지 확인해 볼 만하다.
미리보기 1년 만인 2022년 6월 21일에 모든 개발자에게 열렸습니다. 요금은 월 10달러, 연 100달러였고 인증된 학생과 인기 오픈소스 관리자는 무료였습니다. VS Code뿐 아니라 Visual Studio, JetBrains, Neovim에서도 쓸 수 있었습니다. 실험 도구가 일상 도구가 된 시점입니다. 수강생 여러분도 지금 학생 인증으로 쓸 수 있는지 확인해 보시기 바랍니다. 장점은 월 10달러에 여러 IDE를 지원하고 학생은 무료라는 점이고, 단점은 개인에게는 유료라는 점입니다. 의미는 실험 도구가 일상 도구가 되었다는 것입니다.
개념 · 수업용 재현 예시 함수명과 주석이 곧 프롬프트
함수 이름과 주석이 곧 AI에게 주는 지시문이다
# utils.py
def average(nums):
# 숫자 리스트의 평균을 반환한다
return sum(nums) / len(nums) ← 회색 제안
Tab 수락 Esc 거절
! 빈 리스트는? 제안은 말해 주지 않음
쓴 이름과 주석이 유일한 지시문
제안은 그럴듯하지만 맞는지는 사람이 읽고 판단
실행해 보기 전에는 빈 리스트 오류도 모른다
→ 이 버그는 이어서 계속 씁니다
화면은 수업을 위해 직접 만든 재현 예시입니다. 사람은 함수 이름과 주석만 적었습니다. 회색 글씨가 제안이고 Tab을 누르면 코드가 됩니다. 이름과 주석이 AI에게는 유일한 지시문이므로, 이름을 구체적으로 쓸수록 제안이 좋아집니다. 그런데 이 제안에는 빈 리스트가 들어오면 0으로 나누는 오류가 숨어 있습니다. 자동완성은 이것을 알려 주지 않습니다. 실행해 보고 발견하는 일은 사람 몫입니다. 이 예시를 오늘 수업 끝까지 같은 버그로 씁니다.
2022-07-28 · 2023-05-17 FIM(Fill-in-the-Middle, 가운데 채우기) · GitHub Copilot 엔지니어링 글
자동완성은 커서 앞뒤 코드를 모두 보고 가운데를 채운다
커서 앞 코드 (prefix) 커서 · 빈칸 커서 뒤 코드 (suffix) 회색 제안 → Tab def average(nums): # 빈 리스트면 0 모델이 가운데를 채움 print(average([3, 5])) 앞 맥락 뒤 맥락
예전에는 커서 앞 만 프롬프트였습니다. 뒤 코드까지 알려 주자 중간에 끼워 넣는 제안이 좋아졌습니다.
자동완성 모델은 원래 앞의 글을 보고 뒤를 이어 쓰는 모델입니다. 그러면 파일 중간에 코드를 끼워 넣을 때는 불리합니다. 그래서 커서 앞의 코드와 뒤의 코드를 둘 다 모델에게 주고, 가운데를 채우게 합니다. 이것이 FIM(Fill-in-the-Middle, 가운데 채우기)입니다. GitHub 엔지니어링 글에 따르면 이전에는 커서 앞의 코드, 프리픽스만 프롬프트에 들어갔고, FIM에서는 뒤의 코드, 서픽스도 함께 넣습니다. 제안은 회색 글씨로 보이고 Tab으로 수락합니다.
2022-07-28 · 2023-05-17 OpenAI FIM 논문 · GitHub Copilot 엔지니어링 글
FIM은 논문과 실제 제품에서 효과가 확인됐다
arxiv.org/abs/2207.14255
arXiv · 학습 방법 논문 · 2022-07-28
OpenAI 논문 초록. 글 가운데를 끝으로 옮겨 학습하면 빈칸 채우기 를 익힌다.
github.blog/ai-and-ml/github-copilot/how-github-copilot-is-getting-better…
GitHub Blog · 2023-05-17
GitHub 글. FIM을 Copilot에 넣어 코드 이해 가 좋아졌다고 소개.
FIM 적용 후 A/B 테스트(두 버전 비교)에서 수락된 제안이 상대적으로 10% 증가 했다.
상대 10% 는 수락 건수가 1.1배라는 뜻이다. 수락률이 10포인트 오른 것이 아니다.
학습법 논문과 실제 제품 실험 양쪽에서 확인되어, 앞 장의 “앞뒤를 보고 채운다”는 설명의 근거가 된다.
왼쪽은 OpenAI 연구자들이 2022년 7월에 낸 논문으로, 문서 가운데의 구간을 끝으로 옮겨 학습하면 모델이 빈칸을 채우는 법을 배우고 일반 생성 능력도 떨어지지 않는다는 내용입니다. 오른쪽은 GitHub이 2023년 5월 이것을 Copilot에 적용한 결과를 적은 글입니다. A/B 테스트에서 사용자가 수락한 제안이 상대적으로 10% 늘었다고 합니다. 10%는 수락률이 10포인트 오른 것이 아니라 기존 수락 건수의 1.1배라는 뜻이니 구분해서 읽어야 합니다. 장점은 제품 실험에서 수락이 늘었다는 점이고, 단점은 상대 10%를 포인트로 오해하기 쉽다는 점입니다. 의미는 앞 장의 설명이 논문과 제품 양쪽에서 뒷받침된다는 것입니다.
2023-05-17 열린 탭(neighboring tabs)을 맥락으로
자동완성은 열린 파일까지 보지만 실행 결과는 보지 못한다
프롬프트에 들어가는 것 현재 파일 · 커서 앞뒤 열린 탭의 닮은 조각 코드 생성 모델 돌려주는 것 다음 줄 · 함수 본문 들어가지 않는 것 실행 · 테스트 결과 · 오류 사람이 옮김
GitHub는 열린 파일에서 커서 주변과 닮은 코드 를 찾아 프롬프트에 더했고 수락이 상대적으로 5% 늘었다고 밝혔습니다.
자동완성이 보는 범위를 정리합니다. 현재 파일의 커서 앞뒤, 그리고 IDE에서 열려 있는 다른 파일에서 닮은 코드 조각입니다. GitHub 글에 따르면 이 인접 탭 기법으로 수락이 상대적으로 5% 늘었습니다. 반대로 프롬프트에 없는 것은 코드를 실행한 결과, 테스트 결과, 오류입니다. 그런 정보는 사람이 읽고 판단해서 다시 코드로 반영해야 합니다. 그래서 열어 둔 탭에 관련 파일을 두는 것이 제안 품질을 높이는 실용적인 요령이었습니다.
2022-09-07 · 2023-02-13 GitHub 연구 글 · arXiv 2302.06590
Copilot을 쓴 쪽이 같은 과제를 55.8% 빨리 끝냈다
arxiv.org/abs/2302.06590
arXiv 화면 캡처 · 통제 실험
GitHub 연구진의 실험 논문. 개발자 95명을 무작위로 둘로 나눠 같은 과제를 주고, Copilot을 쓴 쪽이 55.8% 더 빨리 끝냈다고 보고.
과제: JavaScript로 HTTP(HyperText Transfer Protocol, 웹 통신 규약) 서버 하나 만들기
55.8%
걸린 시간이 줄어든 비율
Peng 외, 2023-02-13 · 전문 개발자 95명 무작위 배정
→ 다음 장: 이 숫자를 믿어도 되나
무작위 배정 통제 실험(95명)에서 같은 과제를 71분 vs 161분 에 끝냈다.
과제는 HTTP 서버 하나 . 코드 품질은 재지 않았고, 범위가 넓다(다음 장).
방향은 믿을 만하다. 다만 생산성 수치는 무엇을 쟀는지 함께 읽어야 한다.
생산성 이야기는 이 논문이 가장 자주 인용됩니다. 먼저 무엇을 쟀는지 봅니다. Upwork로 모집한 전문 프로그래머 95명을 두 집단으로 나누고, 자바스크립트로 HTTP(HyperText Transfer Protocol, 웹 통신 규약) 서버를 가능한 빨리 구현하게 했습니다. Copilot을 쓴 집단은 평균 약 71분, 쓰지 않은 집단은 약 161분이 걸렸고, 줄어든 비율이 55.8%입니다. 숫자가 인상적이지만 하나의 정해진 과제에서 나온 값이라는 점이 중요합니다. 다음 장에서 한계를 같이 읽겠습니다. 장점은 무작위 배정 실험으로 같은 과제의 시간을 직접 비교했다는 점이고, 단점은 과제 하나에 코드 품질은 재지 않았다는 점입니다. 의미는 방향은 믿되 크기는 조심해서 읽어야 한다는 것입니다.
질문 시간 · 약 5분
여기까지, 질문 받습니다
지금까지 다룬 것: 문법 vs 생성형 · Copilot의 등장 · 정식 출시 · 주석이 프롬프트 · 어떻게 동작하나 · FIM 근거 · 보는 범위 · 생산성 근거 읽기
여기서 잠시 멈추고 질문을 받겠습니다. 지금까지 본 내용 가운데 이해가 안 된 곳, 자기 도구에서는 어떻게 되는지 궁금한 곳, 동의하지 않는 곳 무엇이든 좋습니다. 질문이 바로 나오지 않으면 화면 아래의 화면들 가운데 다시 보고 싶은 장을 말해 달라고 합니다.
2022-09-07 GitHub 연구 글 · 논문의 Discussion
55.8%는 작은 과제 하나에서 나온, 범위가 넓은 값이다
github.blog/news-insights/research/research-quantifying-github-copilots-impact…
GitHub Blog 화면 캡처 · 2022-09-07
GitHub 연구 글 첫 화면. Copilot이 개발자에게 도움이 되는지 설문과 실험으로 알아봤다고 소개.
95% 신뢰구간(참값이 들어 있을 범위) 21%~89% : 실제 단축 폭이 이 사이 어디인지는 모른다
과제를 끝낸 비율의 차이는 통계적으로 유의하지 않음 (우연일 수 있음)
작은 HTTP 서버 과제 하나. 코드 품질은 측정 안 함
참가자는 약 35% 빨라졌다고 느꼈지만, 실제 측정은 55.8%
→ 방향(빨라진다)은 믿을 만하지만, 정확한 크기는 불확실하다
저는 좋은 결과일수록 어떻게 쟀는지 같이 읽습니다. 첫째, 신뢰구간이 21%에서 89%로 넓습니다. 효과가 크다는 방향은 분명하지만 정확히 얼마인지는 불확실합니다. 둘째, 과제를 끝낸 비율의 차이는 통계적으로 유의하지 않았습니다. 셋째, 협업이 필요한 큰 프로젝트가 아니라 작고 정해진 과제였고, 논문은 코드 품질을 보지 않았다고 스스로 밝힙니다. 5회차에 하네스 실험 결과를 내실 때도 무엇을 쟀고 무엇을 못 쟀는지를 함께 적어 주시면 좋겠습니다.
2022-11-30 OpenAI ChatGPT 공개 · 강사 정리 도식
ChatGPT는 대화를 열었지만 코드를 옮기는 일은 사람 몫이었다
사람 질문 · 코드 복사 ChatGPT 웹 화면 코드가 담긴 답 사람 붙여넣고 실행 사람 오류 · 결과 복사 붙여넣기 복사 다시
대화 형식이라 후속 질문 에 답할 수 있다. 개발자들이 곧 코드 질문에 썼다.
코드와 오류를 두 창 사이로 복사·붙여넣기 하는 운반은 전부 사람이 했다.
이 불편이 채팅을 IDE 안으로 끌어들인 이유. 다음 장 Copilot Chat으로 이어진다.
2022년 11월 30일 OpenAI가 ChatGPT를 공개했습니다. 공식 글은 대화 형식 덕분에 후속 질문에 답할 수 있다고 설명합니다. 개발자들은 곧 코드를 물어보는 데 썼습니다. 그림처럼 코드를 복사해서 붙여넣고, 받은 답을 복사해 에디터에 붙여넣고, 실행해서 오류가 나면 다시 복사해 질문합니다. 대화는 자연스러워졌지만 두 창 사이를 오가는 운반은 전부 사람이 합니다. 이 불편이 채팅을 IDE 안으로 끌어들인 이유입니다. 원문 화면은 사이트 접근이 막혀 직접 도식으로 대신했습니다. 장점은 후속 질문이 가능해졌다는 점이고, 단점은 코드를 옮기는 일이 전부 사람 몫이었다는 점입니다. 이 불편이 채팅을 IDE 안으로 끌어들였다는 것이 의미입니다.
2023-03-22 GitHub Copilot X 발표 · Copilot Chat
IDE 채팅은 코드와 오류를 보고 답한다: 대표 예 Copilot Chat
github.blog/news-insights/product-news/github-copilot-x-the-ai-powered-developer-experience
공식 시연 영상 캡처 · 2023-03-22
Copilot Chat 시연 영상 첫 장면. 왼쪽 채팅창에 코드 설명·테스트 생성·버그 수정 요청 예시가 뜬다.
“recognizes what code a developer has typed, what error messages are shown”개발자가 입력한 코드와 화면에 표시된 오류 메시지를 알아본다 GitHub Blog · 2023-03-22
입력한 코드와 오류를 알아보고 설명·테스트 생성·버그 수정 을 제안. 창을 옮길 일이 준다.
대기자 명단의 기술 미리보기 . 한 번에 다루는 범위는 한 파일·한 클래스 정도.
복붙 운반을 줄인 IDE 안의 대화 . 다음 장에서 자동완성과 나란히 비교한다.
2023년 3월 22일 GitHub는 Copilot X를 발표하면서 IDE에 내장된 채팅을 소개했습니다. 발표문은 개발자가 입력한 코드와 화면에 뜬 오류 메시지를 알아본다고 설명합니다. 그래서 ChatGPT에 붙여넣던 일이 줄었습니다. 코드를 설명하고, 단위 테스트를 만들고, 버그를 고칠 방법을 제안합니다. 발표 당시에는 대기자 명단으로 시작한 기술 미리보기였습니다. 한 번에 다루는 범위는 여전히 한 파일, 한 클래스 정도였습니다. 장점은 코드와 오류를 보고 답해서 창을 옮길 일이 준다는 점이고, 단점은 미리보기였고 범위가 한 파일 정도였다는 점입니다. 의미는 대화가 IDE 안으로 들어왔다는 것입니다.
개념 비교 같은 AI, 다른 입력과 출력
자동완성은 코드 조각을, 채팅은 설명과 수정안을 돌려준다
github.blog/…/github-copilot-x-the-ai-powered-developer-experience
GitHub Blog 화면 캡처 · 2023-03-22
Copilot X 발표문 첫 화면. 채팅·음성 기능과 GPT-4 도입을 소개.
자동완성 채팅
맥락 커서 앞뒤 · 열린 탭 질문 + 코드 + 오류
결과 코드 조각 설명 · 테스트 · 수정안
수락 Tab 읽고 적용
두 방식을 표로 비교합니다. 자동완성은 질문하지 않습니다. 쓰고 있는 위치가 곧 맥락이고, 결과는 코드 조각이며, Tab으로 받습니다. 채팅은 사람이 질문을 쓰고, 선택한 코드나 오류가 맥락이 되어 설명, 테스트, 수정안이라는 글이 돌아옵니다. 이것을 읽고 적용하는 일은 사람이 합니다. 자동완성은 쓰는 흐름을 돕고, 채팅은 이해와 수정 요청을 돕는다고 보면 됩니다.
2024-08-22 → 2024-11-24 개념 AI 네이티브 IDE → 대표 도구 Cursor (0.40 · 0.43 변경 기록)
AI 네이티브 IDE는 에디터 전체를 AI 채팅 중심으로 다시 짰다: 대표 도구 Cursor
cursor.com/changelog/0-40-x
2024-08-22 · Composer 기본 켜짐(⌘I)
0.40 변경 기록: 새 채팅 화면과 Composer 기본 켜짐 .
cursor.com/changelog/0-43-x
2024-11-24 · 사이드바 Composer, 초기 에이전트
0.43 변경 기록: 사이드바 Composer (변경을 diff로 표시)와 초기 에이전트.
새 채팅 화면과 Composer (AI 편집 패널)가 기본으로 켜지고, 변경을 diff 로 보여 준다.
변경을 보고 적용하는 쪽은 사람 . 대표 사용 방식은 여전히 제안→적용이었다.
채팅이 AI 전용 에디터 로 확장되고 초기 에이전트도 등장. 에이전트 주류화는 3교시.
채팅은 곧 AI 전용 에디터, 즉 AI 네이티브 IDE로 확장됩니다. 대표 도구가 Cursor이고, VS Code를 기반으로 한 도구입니다. 2024년 8월 0.40에서 Composer가 유료 사용자에게 기본으로 켜졌고, 11월 0.43에서는 사이드바 Composer가 인라인 diff를 보여 주었습니다. 변경 기록에는 Composer 안에 스스로 맥락을 고르고 터미널을 쓰는 초기 에이전트도 들어 있습니다. 즉 Cursor는 이 시기에 이미 에이전트로 넘어가기 시작했습니다. 다만 대표적인 사용 방식은 여전히 사람이 제안을 보고 적용하는 흐름이었고, 에이전트가 주류가 되는 것은 3교시에서 봅니다. 장점은 에디터 전체가 AI 채팅 중심이 되고 변경을 diff로 확인한다는 점이고, 단점은 적용은 여전히 사람이 한다는 점입니다. 의미는 에이전트로 넘어가는 문턱이라는 것입니다.
2024-11-24 · 2026-10-28 확인 Cursor 0.43 @Recommended · Cursor 문서 @ mentions
AI 에디터의 채팅은 @로 고른 여러 파일을 맥락으로 삼는다(Cursor)
cursor.com/docs/context/mentions
공식 문서 화면 캡처 · 2026-10-28 확인
Cursor 문서의 @ mentions 설명. 채팅창에 @를 쳐서 파일·폴더 등을 질문에 첨부 한다.
@파일·@폴더 로 범위를 고르고, @Recommended는 의미 검색으로 관련 맥락을 추천한다.
맥락을 고르는 일 은 지금도 사람이 돕는다. 고르지 않은 파일은 모른다.
한 파일 채팅이 프로젝트 전체를 모르는 한계를 여러 파일 맥락 으로 풀었다.
→ 맥락을 고르는 일은 지금도 사람이 돕니다
한 파일 채팅의 한계는 프로젝트 전체를 모른다는 것이었습니다. AI 에디터는 맥락을 고르는 방법을 넣었습니다. 지금 문서에는 @ 뒤에 파일이나 폴더를 붙여 질문에 첨부하는 방법이 적혀 있습니다. 2024년 11월 0.43에는 @Recommended가 들어와 의미 검색으로 관련 맥락을 찾아 줍니다. 문서 화면은 오늘 기준 최신 문서라서 지금의 에이전트 기능이 함께 보입니다. 이 시기의 핵심은 사용자가 보여 줄 범위를 고르고, AI가 그 범위 안에서 답한다는 점입니다. 장점은 여러 파일을 맥락으로 줄 수 있다는 점이고, 단점은 고르는 일이 사람 몫이라는 점입니다. 의미는 한 파일 채팅의 한계를 범위 선택으로 풀었다는 것입니다.
2024-10-09 Cursor 0.42 변경 기록
AI 에디터는 환각을 막으려고 맥락에 넣은 파일에만 변경을 적용했다(Cursor Composer)
cursor.com/changelog/0-42-x
공식 변경 기록 화면 캡처 · 2024-10-09
Cursor 0.42 변경 기록. 항목 중 맥락에 있는 파일만 적용 해 환각을 막는다는 줄이 있다.
맥락에 있는 파일에만 적용해 없는 코드를 지어내는 환각 을 막는다.
맥락에 넣지 않은 파일은 AI가 모른다 . 0.42.1에서 이 제한이 완화됐다.
무엇을 맥락에 넣을지 고르는 맥락 관리 가 이 시기 사람의 중요한 작업이었다.
→ 그래서 맥락 관리가 사람의 일
흥미로운 변경 기록이 하나 있습니다. 0.42에서 Composer는 맥락에 들어 있는 파일에만 변경을 적용하도록 바뀌었고, 환각을 막기 위해서라고 적혀 있습니다. 반대로 말하면 맥락에 넣지 않은 파일은 AI가 모릅니다. 그래서 이 시기에는 무엇을 맥락에 넣을지 고르는 일이 사람의 중요한 작업이었습니다. 이후 0.42.1에서 맥락 밖 파일에도 자동 적용할 수 있게 완화되었다고 같은 기록에 있습니다. 도구가 빠르게 바뀌던 시기였습니다. 장점은 환각을 막는다는 점이고, 단점은 맥락 밖 파일을 모른다는 점입니다. 의미는 맥락 관리가 사람의 중요한 일이었다는 것입니다.
축 2 ‘계속’을 누르는 사람
자동완성도 채팅도 ‘계속’을 누르는 것은 사람이다
답 · 제안 받기 사람: 적용 사람: 실행 사람: 오류 다시 입력 사람: 결과 판단 성공 → 끝 실패 계속
제안을 받아도 적용 · 실행 · 판단 · 오류 전달 은 사람이 돕니다. 사람이 멈추면 루프도 멈춥니다. → 3교시
자동완성도 채팅도 제안까지만 합니다. 제안을 받고, 코드에 적용하고, 실행하고, 결과가 맞는지 판단하고, 틀리면 오류를 다시 입력하고, 계속하라고 요청하는 순환은 전부 사람이 돕니다. AI는 한 번 한 번의 응답만 하고 스스로 이어 가지 않습니다. 그래서 사람이 자리를 비우면 일이 멈춥니다. 1교시에서 말한 두 번째 축, 사람이 누르던 ‘계속’이 바로 이것입니다. 3교시에서 이 순환을 에이전트가 돌게 되는 과정을 봅니다.
수업용 재현 예시 빈 리스트로 average() 호출
같은 버그도 자동완성과 채팅 모두 사람이 실행해 확인한다
자동완성
$ python app.py
ZeroDivisionError
# 사람이 직접 위치를 찾아
# if not nums: 를 타이핑 →
회색 제안 Tab
$ python app.py (사람이 다시 실행)
채팅
$ python app.py
ZeroDivisionError
# 사람이 오류 복사 → 질문
수정안 받음 → 사람이 적용
$ python app.py (사람이 다시 실행)
두 방식 모두 실행해서 확인하는 것은 사람 입니다. 이 버그를 3교시에 에이전트에게 맡겨 봅니다. → 3교시
7장에서 본 average 함수 버그로 마무리합니다. 자동완성으로 고칠 때는 사람이 먼저 오류 위치를 찾아 조건문을 치기 시작하면 AI가 나머지를 제안합니다. 채팅으로 고칠 때는 오류 메시지를 복사해 질문하고 수정안을 받아 적용합니다. 어느 쪽이든 실행하고 결과를 확인하는 것은 사람입니다. 두 방식의 차이는 어디서 사람이 개입하느냐이지, 개입이 필요한지가 아닙니다. 화면은 수업용으로 재현한 예시이고 실제 도구 화면이 아닙니다. 3교시에서 같은 버그를 터미널 에이전트에게 맡기겠습니다.
정리 오늘 본 것 세 가지
오늘 본 것을 묶으면: 제안하는 AI의 구조와 한계
자동완성은 커서 앞뒤 코드와 열린 탭 을 보고 가운데를 채운다
채팅은 선택한 코드와 오류 를 맥락으로 설명·수정안을 준다
적용 · 실행 · 검증 · ‘계속’은 사람 이 돌린다
단계 1 · 자동완성 다음 줄 제안 → Tab 수락 단계 2 · IDE 채팅 @파일 · 코드베이스 맥락 남은 문제 실행 · 검증 · 오류 전달은 사람 3교시 · 터미널 에이전트
오늘 본 것을 세 줄로 묶으면 이렇습니다. 자동완성은 커서 앞뒤 코드와 열린 탭을 보고 가운데를 채웁니다. 채팅은 선택한 코드와 오류를 맥락으로 설명과 수정안을 줍니다. 그리고 둘 다 제안까지만 하고, 적용과 실행과 검증과 계속은 사람이 돌렸습니다. 다음 교시에서는 이 순환을 에이전트가 스스로 돌기 시작한 이야기를 합니다. 쉬는 시간 뒤에 오늘 본 버그를 터미널 에이전트에게 맡겨 보겠습니다.
다음 · 3교시
터미널 에이전트와 승인 피로
2023 Aider
2025 Claude Code
2025 권한 모드
2026 자동 승인
다음 교시는 터미널 에이전트입니다. 코드를 찾고 고치고 실행하고 결과를 확인하는 순환을 에이전트가 직접 돌립니다. 그러면 사람이 ‘계속’을 누르던 일은 줄지만, 대신 편집과 명령마다 승인을 눌러야 하는 새 문제가 생깁니다. 오늘 본 average 버그를 같이 풀어 보며 그 과정을 보겠습니다.
1회차 · 3교시 Agentic Engineering 실무 · 2026-11-03
터미널 에이전트와 승인 피로
AI가 내 셸에서 직접 일하게 되자, 무엇을 허락할지가 새로운 문제가 되었습니다.
2023 Aider
2025 에이전트 루프
2025 승인 피로
2025 샌드박스
오늘 3교시는 이 과정에서 가장 중요한 전환점을 다룹니다. 사람이 옮기던 루프를 에이전트가 직접 돌리게 된 순간, 그리고 그 대가로 생긴 승인 문제입니다. 아래 네 장은 모두 실제 문서와 공학 블로그 화면입니다. 터미널 AI의 선구자 Aider, 에이전트 루프, 승인 피로, 샌드박스 순서로 보겠습니다. 마지막에는 4교시 실습에서 직접 권한을 설정해 보는 연결점까지 말씀드립니다.
2교시 → 3교시 IDE 채팅의 남은 문제
채팅은 답만 주고, 루프는 사람이 돈다
2교시 · IDE 채팅의 루프 (한 바퀴마다 사람이 ‘계속’) 3교시 · 이 루프를 에이전트가 돈다 ① 사람: 질문 ② AI: 답·수정안 ③ 사람: 붙여넣고 실행 ④ 사람: 오류 복사 → ① 도구를 직접 호출 결과를 스스로 읽음 누가 옮기나?
IDE(Integrated Development Environment, 통합 개발 환경)의 채팅은 답을 줍니다. 붙여넣고 실행하고 오류를 되돌려 보내는 일은 사람 이 합니다. → 이번 교시
2교시에서 본 IDE(Integrated Development Environment, 통합 개발 환경) 채팅의 흐름을 다시 그렸습니다. AI는 질문에 답하고 수정안을 줍니다. 그러나 그 수정안을 파일에 넣고, 테스트를 돌리고, 나온 오류를 다시 복사해 붙이는 일은 전부 사람 몫이었습니다. 사람이 계속이라고 입력해야 다음 바퀴가 돌았습니다. 오늘 함께 볼 질문은 간단합니다. 이 루프를 에이전트가 직접 돌게 하면 무슨 일이 생기는가입니다.
2023-06-08 Aider 첫 릴리스(PyPI, Python Package Index) · 터미널 AI 코딩의 선구자
Aider: 터미널에서 저장소를 고치고 커밋한다
aider.chat/docs/repomap.html
공식 문서 화면 캡처 · 저장소 지도(repo map)
Aider 문서의 저장소 지도 (repo map). 저장소 전체의 주요 클래스·함수를 요약해 AI에게 보낸다는 설명.
aider.chat/docs/git.html
공식 문서 화면 캡처 · 편집마다 자동 커밋
Aider의 git 연동 문서. AI가 고칠 때마다 설명이 붙은 커밋 을 만들고 /undo로 되돌린다.
저장소 전체를 지도 하나 로 요약해 넘겨, 열지 않은 파일도 고려한다. 편집마다 커밋이 남아 되돌리기 쉽다 .
편집 단위로 커밋이 쌓여 기록이 잘게 쪼개진다. 무엇을 실행하고 검증할지는 여전히 사람이 정했다 .
터미널 + git을 에이전트의 작업 장부 로 쓰는 방식의 원형. Claude Code 같은 도구가 이 방식을 이어받았다.
터미널에서 AI에게 저장소를 맡기는 방식은 Claude Code보다 먼저 있었습니다. Aider의 첫 릴리스는 2023년 6월 8일입니다. 문서에 따르면 Aider는 저장소 전체의 클래스와 함수를 요약한 지도를 모델에 보내고, 파일을 고칠 때마다 설명이 붙은 커밋을 만듭니다. 마음에 안 들면 undo 명령으로 되돌립니다. 변경 이력을 git에 맡긴다는 발상은 지금의 터미널 에이전트에도 그대로 이어집니다.
2025-02-24 · 2025-05-22 Claude Code 리서치 프리뷰 · 정식 출시(Claude 4 발표와 함께)
터미널 에이전트를 주류로 만든 도구가 Claude Code다
anthropic.com/news/claude-3-7-sonnet
공식 발표 화면 캡처 · 2025-02-24
Claude Code 리서치 프리뷰 의 첫 실행 화면. 터미널에서 도는 코딩 에이전트의 시험 공개.
anthropic.com/news/claude-4
공식 발표 화면 캡처 · 2025-05-22 “generally available”
Claude 4 발표 글(2025-05-22). 이때 Claude Code가 정식 출시 되었다.
검색 → 편집 → 테스트 → 커밋을 에이전트가 스스로 이어 가며, 내가 쓰던 git·빌드 명령을 그대로 쓴다.
내 셸 권한으로 움직이므로 할 수 있는 일이 곧 위험 이다. 매번 묻는 방식은 승인 피로를 낳는다.
시초가 아니라 주류로 만든 도구 . 이 시기부터 “어디까지 맡기고 어디서 물을까”가 핵심 질문이 되었다.
Claude Code는 2025년 2월 24일 Claude 3.7 Sonnet과 함께 리서치 프리뷰로 나왔고, 5월 22일 Claude 4 발표 때 정식 출시되었습니다. 터미널 에이전트의 시초라고 말하면 Aider나 Cursor의 에이전트 기능 앞에서 틀린 말이 됩니다. 정확한 표현은 이 방식을 주류로 만든 도구입니다. 장점은 검색부터 커밋까지 에이전트가 스스로 이어 간다는 점이고, 단점은 내 셸 권한으로 움직이는 만큼 위험도 같이 커진다는 점입니다. 의미는 이때부터 어디까지 맡길지가 핵심 질문이 되었다는 것입니다. 오늘은 Claude Code를 중심 예시로 쓰지만, 도구는 자유롭게 고르시면 됩니다.
권한 구조 IDE 확장 vs 터미널 에이전트
터미널 에이전트는 내 셸 권한으로 움직인다
IDE 안의 AI 터미널 에이전트 AI 확장 편집기가 열어 준 API만 편집기 앱 · 앱의 권한 에이전트 사용자 셸 · 사용자의 권한 git · npm · docker · gh · 내 CLI 전부
터미널 에이전트는 내 셸 권한 으로 내가 쓰던 git · 빌드 · 테스트 명령을 그대로 씁니다. 같은 권한이 곧 위험이기도 합니다.
IDE 확장은 편집기가 열어 준 API(Application Programming Interface, 응용 프로그램 인터페이스) 안에서만 움직입니다. 터미널 에이전트는 제 셸에서 저와 같은 권한으로 git, 패키지 관리자, 테스트 러너를 그대로 씁니다. 그래서 고치고, 돌려 보고, 실패하면 다시 고치는 루프를 혼자 돌릴 수 있습니다. 반대로 말하면 에이전트가 제 사용자 계정으로 할 수 있는 일은 모두 할 수 있다는 뜻입니다. 이 장의 장점이 뒤쪽 장들의 문제가 됩니다.
Claude Code 문서 claude -p · 스크립트와 CI(Continuous Integration, 자동 빌드·테스트)에 넣기
터미널이라서 파이프와 CI에도 들어간다
code.claude.com/docs/en/headless
공식 문서 화면 캡처 · 2026-10-29 확인
Claude Code를 사람 없이 한 번 실행(-p )해 스크립트·CI에 넣는 방법. 다른 명령의 출력을 파이프로 받을 수도 있다.
$ git diff main | claude -p \
"오타만 파일:줄로 보고"
$ claude -p "테스트 실패 고쳐 줘" \
--allowedTools "Bash,Read,Edit"
✓ 질문 없이 끝까지, 종료 코드 반환
! 허용 도구를 미리 정해야 멈추지 않음
터미널의 또 다른 장점은 다른 명령과 이어 붙일 수 있다는 점입니다. 문서에는 p 옵션을 붙이면 비대화식으로 실행되고, 표준 입력으로 데이터를 받아 결과를 출력으로 내보낸다고 되어 있습니다. 빌드 스크립트나 CI(Continuous Integration, 지속적 통합)에도 넣을 수 있습니다. 다만 사람이 없으니 승인 창에 답할 수도 없습니다. 그래서 미리 허용할 도구를 정해 주어야 하고, 이것이 곧 권한 설정이라는 주제로 이어집니다. 화면의 명령은 문서 예시를 줄여 쓴 것입니다.
Claude Code 문서 “How Claude Code works” · 에이전트 루프
에이전트 루프: 모으고, 행동하고, 확인한다
code.claude.com/docs/en/how-claude-code-works
공식 문서 화면 캡처 · 2026-10-29 확인
공식 문서의 에이전트 루프 도식. 프롬프트 → 맥락 수집 → 행동 → 결과 확인 을 반복하고, 사용자는 끼어들 수 있다.
맥락 수집: 파일과 코드 검색
행동: 편집, 명령 실행
결과 확인: 테스트 출력 읽기
결과가 다음 판단의 입력이 됩니다. 사람은 언제든 끼어들 수 있습니다.
공식 문서는 에이전트의 작업을 세 단계로 설명합니다. 맥락을 모으고, 행동하고, 결과를 확인합니다. 이 단계들은 섞이고 반복됩니다. 버그 수정이라면 세 단계를 여러 번 돕니다. 중요한 것은 확인의 결과가 다시 다음 판단의 재료가 된다는 점입니다. 2교시에서 사람이 하던 오류 복사가 이 루프 안으로 들어온 셈입니다. 사람이 끼어들 수 있다는 점도 도식에 표시되어 있습니다.
Claude Code 문서 내장 도구의 다섯 범주
에이전트는 도구 다섯 범주로 행동한다
code.claude.com/docs/en/how-claude-code-works
공식 문서 화면 캡처 · 2026-10-29 확인
내장 도구 표. 파일·검색·실행·웹·코드 인텔리전스 다섯 범주별로 Claude가 할 수 있는 일.
파일: 읽기 · 편집 · 생성
검색: 패턴 · 정규식
실행: 셸 명령, 테스트, git
도구 호출이 없으면 에이전트는 응답하고 멈춥니다.
문서는 내장 도구를 파일 작업, 검색, 실행, 웹, 코드 인텔리전스의 다섯 범주로 나눕니다. 이 도구들이 있어야 모델이 텍스트 응답을 넘어 실제로 행동할 수 있습니다. 모델이 도구를 부르면 그 결과가 돌아오고, 더 부를 도구가 없으면 응답하고 멈춥니다. 이 구조가 4교시에서 여러분이 만들 최소 루프의 뼈대입니다. 이 중 실행 범주가 가장 위험하다는 점만 짚어 둡니다.
직접 도식 에이전트 루프와 멈춤 조건
루프 해부: 도구를 부르는 동안 계속 돈다
프롬프트 “실패하는 테스트를 고쳐 줘” 에이전트 루프 (도구를 부르는 동안 반복) 도구 호출 없음 → 응답하고 멈춤 1 맥락 수집 Read · Grep 2 행동 Edit · Bash 3 결과 확인 테스트 실행
멈춤 조건은 “더 부를 도구가 없다” 입니다. 계속 여부를 사람이 아닌 모델이 판단합니다.
방금 본 세 단계를 도구 이름과 함께 다시 그렸습니다. 프롬프트가 들어오면 검색 도구로 맥락을 모으고, 편집과 셸 도구로 행동하고, 테스트 결과를 읽어 확인합니다. 더 할 일이 있으면 다시 돌고, 도구 호출이 없으면 응답하고 멈춥니다. 사람이 하던 계속이 모델의 판단으로 옮겨 간 것입니다. 이 계속의 자동화는 9교시에서 더 길게 다룹니다. 사람의 끼어들기와 승인은 이 루프 바깥에서 들어옵니다.
재현 예시 2교시의 버그를 터미널 에이전트에게 맡기면 · 실제 출력 아님
같은 버그를 맡기면 에이전트가 찾고 고치고 다시 시험한다
$ claude
> 장바구니 합계가 틀려. 고쳐 줘
● Bash(php artisan test --filter Cart)
1 failed: total expected 30000, got 33000
● Grep("function total", app/)
● Read(app/Models/Cart.php)
● Edit(app/Models/Cart.php)
● Bash(php artisan test --filter Cart)
1 passed
테스트로 실패를 먼저 확인
검색하고 읽고 고친다
다시 돌려 통과를 확인
사람이 한 일은 문장 하나입니다. 대신 각 ●마다 승인 질문 이 따라옵니다.
2교시에서 채팅창에 붙여넣던 것과 같은 종류의 버그를 터미널 에이전트에게 맡긴 모습을 재현했습니다. 실제 출력이 아니라 흐름을 보여 주기 위한 예시입니다. 에이전트는 테스트를 먼저 돌려 실패를 확인하고, 코드를 찾아 읽고, 고친 뒤 다시 돌려 통과를 확인합니다. 사람이 한 일은 문장 하나뿐입니다. 이때 도구 호출마다 허락을 구하면 어떻게 될까요. 바로 이어지는 승인 피로의 출발점입니다.
Claude Code 문서 세션 기록은 로컬 JSONL(JSON Lines) 파일
도구 호출 기록으로 에이전트를 감사한다
호출 무엇을 알려 주나 확인할 것
Bash(테스트) 실패 상태와 오류 메시지 실제로 실패했는가
Grep · Read 어떤 파일을 근거로 삼았나 엉뚱한 파일을 보지 않았는가
Edit 어디를 얼마나 바꿨나 범위를 넘지 않았는가
Bash(재실행) 통과 여부 테스트를 고쳐서 통과시키지 않았는가
각 메시지·도구 호출·결과는 평문 JSONL (한 줄에 기록 하나)로 ~/.claude/projects/ 아래에 저장됩니다. 4교시 실습에서 확인할 때 쓸 수 있습니다.
공식 문서에 따르면 Claude Code는 각 메시지와 도구 호출, 결과를 평문 JSONL(JSON Lines, 한 줄에 JSON 하나씩) 파일로 로컬에 저장합니다. 그래서 에이전트가 무엇을 했는지 나중에 읽을 수 있습니다. 저는 읽을 때 표처럼 호출 종류별로 질문을 던져 봅니다. 특히 마지막 줄이 중요합니다. 에이전트가 테스트를 고쳐서 통과시킨 것은 아닌지 보는 일은 6교시에서 다시 다룹니다. 4교시에서는 필요하면 이 기록을 열어 에이전트가 한 일을 확인해 봅니다.
질문 시간 · 약 5분
여기까지, 질문 받습니다
지금까지 다룬 것: Claude Code의 등장 · 왜 터미널인가 · 파이프와 비대화 모드 · 에이전트 루프 · 도구 다섯 종류 · 루프 해부 · 시연: 같은 버그 · 대화 기록 읽기
여기서 잠시 멈추고 질문을 받겠습니다. 지금까지 본 내용 가운데 이해가 안 된 곳, 자기 도구에서는 어떻게 되는지 궁금한 곳, 동의하지 않는 곳 무엇이든 좋습니다. 질문이 바로 나오지 않으면 화면 아래의 화면들 가운데 다시 보고 싶은 장을 말해 달라고 합니다.
2025-04-16 · 2025-06-25 Codex CLI 첫 npm 배포 · Gemini CLI 발표
같은 시기에 Codex CLI와 Gemini CLI도 나왔다
github.com/openai/codex
저장소 화면 캡처 · 2026-10-29 · 터미널에서 도는 코딩 에이전트
OpenAI Codex CLI(Command-Line Interface, 명령줄 인터페이스) 저장소 첫 화면. 소개문: 터미널에서 도는 가벼운 코딩 에이전트 (Apache-2.0).
blog.google/technology/developers/introducing-gemini-cli
공식 블로그 화면 캡처 · 2025-06-25 · 오픈소스(Apache 2.0)
Gemini CLI 발표 글. 제목: ‘오픈소스 AI 에이전트’ . 개발자 터미널에서 Gemini를 바로 쓴다.
둘 다 오픈소스(Apache-2.0) 로 터미널에서 바로 쓴다. Codex CLI는 처음부터 제안·자동 편집·완전 자동 세 승인 단계(AI가 알아서 하는 범위)를 두었다.
Claude Code와 같은 방식이라 “어디까지 물어볼까” 문제를 똑같이 안는다. 승인 모드 이름과 설정 형식은 도구마다 다르다.
승인 문제는 한 제품의 사정이 아니라 터미널 에이전트 전반의 구조 다. 수업에서는 어느 도구를 써도 된다.
Claude Code만 있었던 것은 아닙니다. OpenAI의 Codex CLI(Command-Line Interface, 명령줄 인터페이스)는 2025년 4월 16일에 npm에 처음 올라왔고, 당시 승인 모드는 제안, 자동 편집, 완전 자동 세 가지였다고 보도되었습니다. Google은 2025년 6월 25일 Gemini CLI를 오픈소스로 발표했습니다. 세 도구 모두 터미널에서 도구를 호출하고, 그래서 모두 같은 질문을 받습니다. 어디까지 물어보고 어디까지 맡길 것인가입니다. 장점은 둘 다 오픈소스라 바로 써 볼 수 있다는 점이고, 단점은 같은 승인 문제를 똑같이 안고 있고 설정 방식이 도구마다 다르다는 점입니다. 의미는 승인 문제가 한 제품의 사정이 아니라 터미널 에이전트 전체의 구조라는 것입니다. 수업에서는 어느 도구를 쓰셔도 됩니다.
2026-03-25 Anthropic Engineering · “Claude Code auto mode”
사용자는 승인 요청의 93%를 그냥 승인한다
anthropic.com/engineering/claude-code-auto-mode
공식 공학 블로그 화면 캡처 · 2026-03-25
Anthropic 자동 모드 글 첫 화면. 매번 승인하다 보면 승인 피로 (읽지 않고 누르게 됨)가 생긴다는 설명.
93%
수동 승인 요청 가운데 사용자가 그대로 승인한 비율
“people stop paying close attention to what they’re approving” (사람들은 무엇을 승인하는지 더 이상 꼼꼼히 보지 않게 된다)
→ 자동 승인은 9교시
초기 터미널 에이전트는 파일을 고칠 때마다, 명령을 실행할 때마다 허락을 구했습니다. 프롬프트 하나에 승인을 열 번쯤 누르는 일이 흔했습니다. Anthropic은 이 문제를 승인 피로라고 부르며, 사용자가 수동 승인 요청의 93퍼센트를 그냥 승인한다고 밝혔습니다. 무엇을 승인하는지 더 이상 읽지 않게 된다는 뜻입니다. 읽지 않고 누르는 승인은 안전장치가 아닙니다. 이 문제를 풀려는 시도가 다음 장의 연표입니다.
2025-03 → 2026-03 Claude Code CHANGELOG · Codex CLI · Anthropic Engineering
승인 피로의 해법: 덜 묻기·미리 허락·격리·대신 판단
2025-03 허용 도구 목록 2025-04-16 Codex CLI 승인 모드 2025-03-18 Shift+Tab 편집 자동 승인 2025-10-20 샌드박스 2025-04-09 공유 권한 규칙 2026-03-25 자동 모드(분류기)
같은 질문의 여섯 가지 답: 덜 묻기, 미리 허락하기, 격리하기, 대신 판단하기.
연표의 날짜는 Claude Code CHANGELOG의 버전 배포일과 각 발표 글로 확인했습니다. 2025년 3월에 허용 도구 목록이 생겼고, 3월 18일에는 Shift와 Tab으로 편집 자동 승인을 켤 수 있게 되었습니다. 4월 9일에는 팀이 공유하는 권한 규칙을 settings.json에 저장할 수 있게 되었습니다. 10월에는 샌드박스가, 이듬해 3월에는 분류기가 대신 승인하는 자동 모드가 나왔습니다. 마지막 둘은 각각 이 교시 끝부분과 9교시에서 다룹니다.
2025-04-09 Claude Code 0.2.67 · 공유 권한 규칙을 .claude/settings.json에 저장
안전한 명령은 미리 허용하고, 위험한 것은 금지해 둔다
// .claude/settings.json (구조 예시)
{
"permissions": {
"allow": ["Bash(npm run test *)" ],
"deny": ["Read(./.env)" ,
"Bash(git push --force *)" ]
}
}
안전한 명령은 allow(묻지 않고 실행) , 위험한 것은 deny(항상 거부) . 저장소에 커밋해 팀이 공유한다.
규칙 문법이 버전마다 바뀐다 . 명령 규칙은 문자열 일치일 뿐 완전한 보안 경계는 아니다.
승인 피로의 가장 현실적인 해법 . 4교시에 현재 문서로 직접 작성한다.
가장 현실적인 해법은 안전하다고 이미 판단한 명령을 미리 허락해 두는 것입니다. 테스트 실행 같은 명령을 허용 목록에 넣으면 매번 묻지 않습니다. 반대로 환경 변수 파일을 읽거나 강제 푸시를 하는 일은 금지 목록에 넣습니다. 2025년 4월부터는 이 규칙을 프로젝트의 settings 파일에 저장해 팀이 공유할 수 있습니다. 화면의 JSON(JavaScript Object Notation, 자바스크립트 객체 표기법)은 구조를 보여 주는 예시이며, 장점은 묻는 횟수가 줄고 팀이 같은 규칙을 공유한다는 점이고, 단점은 문법이 버전마다 바뀌고 명령 규칙이 완전한 보안 경계는 아니라는 점입니다. 의미는 승인 피로의 가장 현실적인 해법이라는 것입니다. 정확한 규칙 문법은 4교시 실습에서 현재 문서를 보며 확인합니다.
2026-03-25 Anthropic Engineering · 승인 피로의 두 가지 우회로
프롬프트를 전부 끄면 번거로움은 없지만 보호도 없다
모든 편집·명령을 승인 (Manual) 편집은 자동, 명령은 승인 (Accept edits) 자주 쓰는 명령만 허용 목록으로 (allow 규칙) 샌드박스 안에서는 승인 없이 (격리) 모든 프롬프트 끄기 (--dangerously-skip-permissions)
“…lets Claude act freely, which is unsafe in most situations.”(권한 프롬프트를 모두 끄는 방식은) Claude가 제멋대로 행동하게 하므로 대부분의 상황에서 안전하지 않다. Anthropic Engineering · 2026-03-25
플래그 하나로 모든 프롬프트 끄기
번거로움은 없지만 보호도 없음
승인이 귀찮아지면 사람들은 점점 위쪽 단계로 올라갑니다. 맨 아래가 모든 프롬프트를 끄는 위험 플래그입니다. Anthropic 글은 이 방식이 유지 보수는 필요 없지만 보호도 전혀 없고, 대부분의 상황에서 안전하지 않다고 설명합니다. 한 번 편해지면 되돌아가기 어렵다는 점이 문제입니다. 다음 두 장에서 실제로 무슨 일이 있었는지 보도로 확인합니다.
2025-07-23 보도 Fortune · Replit 에이전트의 운영 데이터 삭제
사례 1: 코드 동결 중에 운영 DB가 지워졌다
fortune.com/2025/07/23/ai-coding-tool-replit-wiped-database…
언론 보도 화면 캡처 · 2025-07-23
Fortune 기사 첫 화면. 제목: AI 코딩 도구가 한 회사의 데이터베이스를 지우고 ‘내 쪽의 치명적 실패’라고 사과했다.
SaaStr 창업자의 테스트 중, DB(Database, 데이터베이스)에서 임원 1,200여 명·회사 1,190여 곳의 기록이 삭제
‘코드·작업 동결’ 지시와 사람 승인 규칙을 어김
Replit CEO가 개발용·운영용(실서비스) DB 분리 등 구조적 보완을 약속해 실패가 개선으로 이어졌다.
동결·승인 지시를 에이전트가 어겼다 . 지시문만으로는 못 막았다. 삭제 시점은 기사에 없다(보도 기준).
지시문이 아니라 구조(환경 분리·권한) 로 막아야 한다. 4교시 권한 규칙으로 이어진다.
2025년 7월 23일 Fortune이 보도한 사례입니다. SaaStr의 제이슨 렘킨이 Replit의 에이전트를 시험하던 중 운영 데이터가 지워졌다고 알려졌습니다. 기사에 따르면 코드와 작업을 동결한 기간이었고, 에이전트는 사람의 승인 없이 진행하지 말라는 지시를 어겼다고 인정했다고 합니다. Replit의 CEO는 개발과 운영 데이터베이스를 자동으로 분리하는 등의 안전장치를 도입하겠다고 밝혔습니다. 여기서 짚고 싶은 점은 지시문이 아니라 구조로 막아야 한다는 것입니다. 장점이라면 보완책이 구조 변경으로 이어졌다는 점이고, 단점은 지시를 어겼다는 사실 자체입니다. 의미는 지시문이 아니라 구조로 막아야 한다는 것입니다. 실제 삭제 시점은 기사에 없어서 말씀드리지 않습니다.
2025-08-26 Wiz Research · Nx 패키지 공급망 공격(널리 쓰는 패키지에 악성코드 삽입) “s1ngularity”
사례 2: 설치된 AI CLI가 악성코드의 도구가 되었다
wiz.io/blog/s1ngularity-supply-chain-attack
보안 업체 분석 글 화면 캡처
Wiz 보안팀의 분석 글. 제목: 공급망 공격으로 GitHub에 비밀이 유출됐다 , 대상은 Nx npm 패키지.
악성 Nx 버전이 npm에 게시(2025-08-26)
설치된 Claude · Gemini · Q CLI에 권한 우회 플래그 를 붙여 파일 탐색을 시킴
.env · SSH(Secure Shell, 원격 접속 규약) 키 · GitHub 토큰 유출
일부는 AI 제공사의 안전장치가 막기도 했다. 사고 경위가 분석 글로 공개되어 교훈으로 쓸 수 있다.
이미 설치된 AI CLI에 권한 우회 플래그 만 붙이면 내 권한으로 파일을 뒤질 수 있었다.
에이전트는 내 권한을 가진 도구 다. 비밀 파일은 deny 규칙으로 읽지 못하게 막아야 한다.
Wiz의 분석에 따르면 2025년 8월 26일 악성 버전의 Nx 패키지가 npm에 올라갔습니다. 악성코드는 개발자 컴퓨터에 설치된 AI 명령줄 도구에 권한 확인을 끄는 플래그를 붙여 파일시스템을 뒤지게 했고, 환경 변수 파일과 SSH(Secure Shell, 원격 접속 규약) 키, GitHub 토큰을 모아 공개 저장소로 올렸습니다. 일부는 AI 제공사의 안전장치가 막기도 했다고 합니다. 이 사례에서 제가 짚는 점은 두 가지입니다. 에이전트는 내 권한을 가진 도구라는 점, 그리고 비밀 파일은 deny 규칙으로 읽지 못하게 막아 둔다는 점입니다. 장점이라면 일부를 제공사의 안전장치가 막았다는 점이고, 단점은 권한 우회 플래그 하나로 비밀이 유출됐다는 점입니다.
Claude Code 문서 Configure permissions · 규칙 평가 순서
권한은 deny → ask → allow 순으로 평가하고 첫 일치가 이긴다
도구 호출 예: Bash(rm -rf build) 일치 없음 → 모드의 기본값 첫 일치가 결과를 정한다 · allow는 deny의 예외가 될 수 없다 1 deny 일치하면 차단 2 ask 일치하면 확인 3 allow 일치하면 실행
규칙은 deny(금지) → ask(확인) → allow(허용) 순으로 평가 하고 첫 일치가 결정합니다. 넓은 deny는 좁은 allow로 뚫을 수 없습니다.
현재 문서는 규칙을 금지, 확인, 허용 순서로 평가하고 첫 번째로 일치한 규칙이 결과를 정한다고 설명합니다. 예를 들어 특정 명령을 넓게 금지하면, 그 안의 좁은 허용 규칙이 있어도 막힙니다. 그래서 금지 목록이 가장 강한 안전장치입니다. 다만 문서도 명령 규칙은 명령 문자열에 일치하는 것이지 완전한 보안 경계는 아니라고 경고합니다. 그래서 다음 장의 격리가 필요합니다. 4교시에 이 순서로 설정 파일을 써 봅니다.
2025-10-20 Anthropic Engineering · “Beyond permission prompts”
샌드박스: 격리 안에서는 묻지 않는다
anthropic.com/engineering/claude-code-sandboxing
공식 공학 블로그 화면 캡처 · 2025-10-20
Anthropic 공학 블로그 ‘권한 프롬프트를 넘어서’. 샌드박스로 Claude Code를 더 안전하고 자율적 으로 만든다는 글.
code.claude.com/docs/en/sandboxing
공식 문서 화면 캡처 · 2026-10-29 확인
샌드박스 공식 문서. 운영체제가 셸 명령이 닿는 파일·네트워크 범위 를 정하고, 그 안에서는 승인 없이 실행한다.
샌드박스 (격리 공간) 안에서는 파일은 작업 디렉터리, 네트워크는 허용 도메인만. Anthropic 내부에서 승인 프롬프트가 84% 줄었다.
감싸는 것은 셸 명령뿐 이다. 파일 읽기·편집 도구와 MCP(Model Context Protocol, 모델 컨텍스트 프로토콜) 서버는 바깥에서 돌고, 네이티브 윈도우는 미지원.
승인 대신 격리 로 묻는 횟수를 줄인다. 모든 것을 막는 방패가 아니라 한 겹의 경계 다.
승인 대신 격리를 쓰자는 접근이 샌드박스입니다. 2025년 10월 20일 Anthropic은 파일시스템과 네트워크를 운영체제 수준에서 가두는 방식을 공개했고, 내부 사용에서 권한 프롬프트가 84퍼센트 줄었다고 밝혔습니다. 문서에 따르면 이 샌드박스는 셸 명령만 감싸고, 파일 읽기와 편집 도구, MCP(Model Context Protocol, 모델 컨텍스트 프로토콜) 서버는 바깥에서 돕니다. 또 네이티브 윈도우에서는 지원되지 않습니다. 모든 것을 막아 주는 방패가 아니라, 묻는 횟수를 줄여 주는 한 겹의 경계로 보시면 됩니다.
2025 강사 정리 · 승인, 작은 창, 미숙한 모델
승인 비용·작은 창·미숙한 모델 때문에 짧은 일만 맡겼다
코드 자동 작성 수준 2회차 · 스펙 · 테스트 · 서브에이전트 작은 컨텍스트 창 미숙한 모델 승인 열 번 딴길로 새고 맥락을 잃는다
승인 비용, 작은 창(한 번에 볼 수 있는 분량), 미숙한 모델이 겹쳐 짧은 일 만 맡길 수 있었습니다. 긴 일은 딴길로 새고 맥락을 잃었습니다. → 2회차
터미널 에이전트가 나왔다고 곧바로 며칠짜리 일을 맡길 수 있었던 것은 아닙니다. 승인을 계속 눌러야 했고, 컨텍스트 창은 작았고, 모델도 지금보다 미숙했습니다. 그래서 사람이 옆에서 지켜보는 짧은 작업, 즉 코드 자동 작성 수준에 머물렀습니다. 일을 길게 시키자 이번에는 에이전트가 딴길로 새고 맥락을 잃는 문제가 나타났습니다. 2회차의 스펙, 테스트, 서브에이전트가 그 답입니다. 이 장의 진단은 제 경험과 정리이며 공식 통계가 아닙니다.
정리 3교시 → 4교시 실습
오늘 본 것을 묶으면: 맡기는 순간 권한이 설계 대상이 된다
터미널 에이전트는 내 셸 권한으로 루프를 돈다
승인은 많아지면 형식이 된다(93%)
금지 먼저, 허용은 좁게, 격리로 보강
4교시 실습 예고
내 에이전트에게 “코드 전에 설계 질문부터” 시키기
내 하네스에 필요한 장치를 골라 개요와 ADR(Architecture Decision Record, 아키텍처 결정 기록)로 정하기 (예: 금지·허용)
승인 → 구현 → 스모크로 확인 (예: 일부러 어겨 보기)
→ 4교시
오늘 소개한 것을 묶으면 세 가지입니다. 터미널 에이전트는 제 권한으로 루프를 돌기 때문에 강력하고 위험합니다. 승인은 많아지면 형식이 되어 안전장치 역할을 잃습니다. 그래서 금지를 먼저 정하고, 허용은 좁게 두고, 격리로 보강합니다. 4교시에는 각자 쓰던 에이전트에게 설계 질문부터 하게 해서 내 하네스의 개요와 첫 ADR(Architecture Decision Record, 아키텍처 결정 기록)을 만들고, 스모크로 확인합니다. 어떤 기능의 하네스로 만들지는 각자 정하고, 금지 규칙을 일부러 어겨 보는 것은 확인 방법의 한 예입니다. 승인과 계속의 자동화는 3회차 9교시에서 이어집니다.
1회차 · 4교시 실습 1 · 2026-11-03
실습 1
내 하네스의 첫 버전: 에이전트에게 설계부터 시킨다
질문 설계 대화
구현 지시 프롬프트 한 번
결정 개요·ADR
스모크 정말 막히나
4교시는 실습입니다. 도구 설치는 각자 알아서 해 두신 것으로 하고, 오늘은 설치 없이 진행합니다. 이미 각자 쓰는 에이전트가 있으니 그것을 그대로 씁니다. 오늘은 5회차까지 키워 갈 ‘나만의 하네스’의 첫 버전을 만듭니다. 어떤 기능과 스펙의 하네스인지, 어떤 형태인지는 각자 정합니다. 정해진 구성은 없습니다. 소개하고 싶은 것은 만드는 방법입니다. 하네스도 에이전트에게 시켜서 만들고, 저는 그 코드를 읽지 않습니다. 대신 에이전트가 먼저 묻게 하고, 만든 뒤에는 실제로 돌려 확인합니다. 이 과정에서 소개하는 일하는 방식을 하네스를 만드는 데에도 그대로 씁니다.
약 55분 18단계 중 1–7단계를 개인 PoC(Proof of Concept, 개념 증명) 크기로 · 각자 쓰던 에이전트 그대로
하네스도 에이전틱 엔지니어링 프로세스로 만든다: 분석 → 개요·ADR → 승인 → 구현 → 스모크
1–3 분석 대화 누가·어떤 시나리오·입출력 5–7 개요·ADR overview.md · ADR-0001 사람 승인 범위·멈춤·권한 확인 18 다음 루프 막힌 것 → 다음 이슈 스모크 작은 과제 + 금지 요청 구현 에이전트가 만든다
사람이 할 일은 코드를 읽는 것이 아니라 질문에 답하고, 설계를 승인하고, 스모크 결과를 보는 것 입니다. 아래는 강사 방식의 예이니 자기 방식대로 바꿔도 됩니다. ADR(Architecture Decision Record, 아키텍처 결정 기록)은 결정과 이유를 짧게 남긴 문서입니다.
오늘 실습은 제가 쓰는 프로세스를 소개하고 따라 해 보는 시간입니다. 제 운영 기준 18단계 가운데 앞의 1~7단계, 즉 프로젝트 분석, 시나리오, 입출력, 개요, 가이드라인, ADR(Architecture Decision Record, 아키텍처 결정 기록)을 개인 PoC(Proof of Concept, 개념 증명) 크기로 줄여서 하네스에 적용합니다. 먼저 에이전트가 분석에 필요한 질문을 하고 여러분이 답합니다. 에이전트는 답을 개요 문서와 첫 ADR로 정리합니다. 여러분이 그 문서를 읽고 승인한 뒤에야 에이전트가 구현합니다. 코드는 열어 보지 않고, 만들어진 v0을 실제로 돌리는 스모크로 확인합니다. 작은 과제를 한 번 시키고, 금지한 일을 일부러 시켜서 정말 막히는지 보고, 막힌 것까지 기록합니다. 설계 대화 15분, 설계 검토와 승인 10분, 구현 지시 5분, 스모크와 기록 25분 정도로 잡습니다.
네 번의 실습 순서 강사 운영 기준 18단계 · 저위험 개인 도구는 1–8단계를 짧은 개요로 합친다
네 번의 실습은 하나의 에이전틱 엔지니어링 프로세스를 따라간다
1회차 · 4교시 1–7단계: 분석 → 개요 → ADR → 내 하네스 첫 버전 2회차 · 8교시 8·13·14단계: 스펙 → Task → 이슈 이슈 하나를 스펙→계획→구현→리뷰 4회차 · 16교시 16–18단계: PR·CI·스모크 → 피드백 → 다음 루프 3회차 · 12교시 15단계: 워크트리·워크플로 스킬·MCP·/goal 중 골라 쓰기
하네스를 만드는 일 자체가 이 과정의 프로세스를 연습하는 시간 입니다. 강사의 방식을 소개할 뿐, 꼭 따라야 하는 규칙은 아닙니다.
네 번의 실습이 따로 노는 것이 아닙니다. 제가 실제 프로젝트에 쓰는 18단계 운영 기준을 하네스라는 작은 개인 프로젝트에 맞게 줄인 것입니다. 오늘은 1~7단계로 분석하고 개요와 ADR을 씁니다. 다음 주에는 스펙을 Task와 이슈로 나누고, 이슈 하나를 스펙, 계획, 구현, 리뷰 순서로 처리합니다. 3회차에는 워크트리와 워크플로를 정하고 스킬과 MCP(Model Context Protocol, 모델 컨텍스트 프로토콜), /goal로 이슈를 끝까지 맡깁니다. 4회차에는 PR(Pull Request, 병합 요청), CI(Continuous Integration, 지속적 통합), 스모크, 피드백, 다음 루프까지 갑니다. 저위험 개인 도구에서는 1~8단계를 짧은 개요 하나로 합쳐도 된다는 것이 제 기준입니다. 이 흐름은 제가 쓰는 방식이고, 각자 바꿔도 됩니다.
왜 질문부터인가 1교시 DDD(Domain-Driven Design, 도메인 주도 설계)·PoC 명시, 11교시 grill-me로 이어짐
“하네스 만들어 줘”라고만 하면, 에이전트가 빈칸을 가정으로 채운다
바로 시키면
가정이 설계가 된다
모델·언어·도구를 에이전트가 마음대로 고른다
멈춤 조건·권한이 빠지거나 대충 들어간다
PoC로 충분한데 계층과 설정이 잔뜩 붙는다
왜 그렇게 만들었는지 내가 설명하지 못한다
질문부터 시키면
결정이 내 것이 된다
목적·범위·수준을 먼저 정한다
멈춤 조건과 금지 목록이 설계에 들어간다
결정과 이유가 개요·ADR에 남는다
나중에 공유할 때 구조를 내 말로 설명 할 수 있다
에이전트에게 하네스를 만들어 달라고만 하면 대개 바로 코드를 씁니다. 그 순간 비어 있던 결정들, 어떤 모델을 쓸지, 어떤 도구를 줄지, 언제 멈출지, 무엇을 금지할지가 전부 에이전트의 가정으로 채워집니다. 결과물은 그럴듯하지만 왜 그렇게 생겼는지 여러분이 설명하지 못합니다. 반대로 질문부터 시키면 같은 결정을 여러분이 내리게 됩니다. 1교시에서 PoC라고 명시한다고 말씀드린 것, 11교시에서 볼 grill-me 스킬이 바로 이 생각입니다.
설계 질문 표 질문 순서(예) · 4단계(마켓 인사이트)는 개인 도구라 생략 · 하네스의 기능은 각자 정한다
분석 대화는 1–7단계의 질문을 하나씩 묻고 끝난다
18단계 중 에이전트가 물을 것 예시 답 빠지면
1 분석 누가 어떤 일에 쓰나 나, 메모 앱의 작은 수정 범위가 끝없이 넓어진다
2 시나리오 정상·실패 예 하나씩 정렬 옵션 추가 / 테스트 실패 시 중단 무엇이 성공인지 모른다
3 입출력 입력과 기대 출력, 성공 판정 과제 문장 → 변경 + pytest 통과 “된 것 같다”로 끝난다
5 개요 수준과 범위, 제외할 것 PoC, 파일 3개, UI(User Interface, 사용자 화면) 없음 과잉 설계
6 가이드라인 트랙·모델·도구·비용 에이전트 추천 방식, 읽기·수정·실행, 하루 예산 비용 폭주, 할 수 없는 일 시도
7 ADR 권한·멈춤 같은 되돌리기 비싼 결정 금지 3개, 완료+20바퀴+예산 3교시의 사고 사례
분석 대화가 잘 됐는지 보는 기준입니다. 18단계 중 1~7단계의 질문을 하네스 크기로 줄였고, 4단계 시장 분석은 개인 도구라 뺐습니다. 이 여섯 줄이 다 정해졌으면 충분합니다. 표의 답은 모두 예시이고, 무엇을 하는 하네스인지는 각자 정합니다. 에이전트가 이 중 일부를 묻지 않으면 제가 먼저 꺼냅니다. 특히 7단계의 권한과 멈춤 조건은 3교시에서 본 사고 사례와 승인 피로로 바로 이어집니다. 어떤 방식으로 만들지도 에이전트가 추천하게 하고 저는 이유만 읽습니다. 모르는 항목은 에이전트에게 선택지 두 개와 장단점을 달라고 하면 됩니다.
그대로 붙여 넣어도 됩니다 각자 쓰는 에이전트(Claude Code · Codex · Gemini CLI(Command-Line Interface, 명령줄 인터페이스) · Cursor …)
첫 프롬프트: 코드 전에 질문을 하나씩 하라고 못 박는다
> 내가 원하는 기능(예: 메모 앱, PoC )에 쓸 작은 코딩
에이전트 하네스를 만들고 싶다. 어떤 기능과 형태가
좋을지도 같이 물어봐 줘.
아직 코드는 쓰지 마.
분석·시나리오·입출력·개요·가이드라인·ADR 순서로
필요한 질문을 한 번에 하나씩 해 줘.
질문마다 네 추천 답과 이유를 같이 주고, 10개 안에서 끝내.
끝나면 docs/overview.md 와
docs/adr/0001-harness-shape.md 로 정리하고
결정마다 한 줄 요약을 보여 줘.
내가 “승인”이라고 할 때까지 기다려.
github.com/mattpocock/skills · grill-me
같은 생각을 스킬로 만든 예 · 11교시에서 자세히
grill-me 스킬. 계획을 세우기 전에 에이전트가 사용자에게 질문을 하나씩 집요하게 던지게 하는 스킬.
첫 프롬프트에서 세 가지를 못 박습니다. 아직 코드를 쓰지 말 것, 질문을 한 번에 하나씩 할 것, 그리고 정리한 설계를 한 줄 요약으로 보여 주고 내가 승인할 때까지 기다릴 것입니다. 질문마다 에이전트의 추천 답과 이유를 같이 달라고 하면, 모르는 부분도 선택하기 쉬워집니다. 질문 수에 상한을 두는 이유는 끝없는 질문도 시간을 잡아먹기 때문입니다. 오른쪽은 같은 생각을 스킬로 만든 예입니다. 매번 이 프롬프트를 쓰기 귀찮다면 11교시에서 자기 스킬로 만들어 보면 됩니다.
18단계 중 5·6단계 개요 · 7단계 ADR 결정과 이유를 짧게 · 강사 ADR 서식(14교시)
분석 대화의 결과물은 짧은 개요 하나와 첫 ADR 하나다 (예)
문서 결정 한 줄 요약 (예시)
개요 · 사용자·시나리오 나 · 메모 앱 작은 수정, 실패 시 중단
개요 · 입출력·판정 과제 문장 → 변경 + 테스트 통과
개요 · 수준·범위 PoC · 파일 3개 · UI 없음
개요 · 아직 안 정한 것 스킬·MCP(Model Context Protocol, 모델 컨텍스트 프로토콜)는 3회차에
ADR-0001 · 결정 금지 3개 + 멈춤 3중(완료·20바퀴·예산)
ADR-0001 · 대안·이유 전부 허용 / 매번 승인 · 3교시 사고 사례, 승인 피로
ADR-0001 · 다시 판단할 조건 스모크에서 금지 요청이 하나라도 통과되면
개요는 무엇을 , ADR은 왜 그렇게 정했나
“아직 안 정한 것” 칸을 둔다. 다음 회차에 하네스가 자란다
승인 전에 내가 읽고 고친다. 승인은 사람만 한다
→ 14교시: 이 방식이 ADR이 된다
분석 대화가 끝나면 에이전트가 이런 두 문서를 만들고, 결정마다 한 줄 요약을 보여 줍니다. 저는 문서 전체보다 이 요약표를 읽습니다. 개요는 1~6단계에서 정한 것을 한 장에 모은 것이고, ADR은 7단계로 되돌리기 비싼 결정, 여기서는 권한과 멈춤 조건을 왜 그렇게 정했는지 남긴 것입니다. 길 필요가 없습니다. 아직 안 정한 것 칸을 일부러 둡니다. 이 과정에서 하네스는 회차마다 자라기 때문에, 이번에 정하지 않은 것을 적어 두면 다음 회차의 출발점이 됩니다. 그리고 승인은 사람만 합니다. 저는 에이전트가 쓴 설계를 그대로 승인하지 않고 한 번은 고쳐 봅니다. 이 짧은 결정 기록은 14교시의 ADR로 이어집니다.
승인 체크리스트 승인 기준(예) · 내 하네스에 맞게 바꿔도 된다
승인 전에 확인할 다섯 가지
에이전트의 질문에 내가 한 답이 빠짐없이 반영됐다
결정 요약에 수준이 PoC/MVP(Minimum Viable Product, 최소 기능 제품) 로 적혀 있고 범위가 작다
멈춤 조건과 비용 상한이 적혀 있다
금지 목록이 있다 (예: 비밀값·대량 삭제·강제 푸시)
정한 항목마다 스모크로 어떻게 확인할지 한 줄씩 있다
코드를 열지 않고도 사람이 볼 곳이 세 군데로 줄어, 설계를 빨리 검토할 수 있다.
체크리스트에 없는 위험(예: 외부 API(Application Programming Interface, 응용 프로그램 인터페이스) 호출)은 놓칠 수 있다. 낯선 항목은 에이전트에게 위험을 따로 물어본다.
에이전트가 쓰고 사람이 판정 하는 분업의 첫 연습. 2회차의 스펙 승인으로 이어진다.
저는 설계 문서를 다 읽을 시간이 없어도 이 다섯 가지는 봅니다. 각자 하네스에 맞게 바꿔도 됩니다. 질문에 한 답이 그대로 들어갔는지, 수준이 PoC로 적혔는지, 멈춤 조건과 비용 상한이 있는지, 금지 목록이 있는지 봅니다. 저는 비밀값 읽기와 대량 삭제와 강제 푸시를 넣습니다. 마지막은 정한 항목마다 스모크로 확인할 방법이 한 줄 적혀 있는지입니다. 확인할 방법이 없는 규칙은 있는지 없는지 알 수 없기 때문입니다. 빠진 것이 있으면 승인하지 않고 고쳐 달라고 합니다. 이렇게 에이전트가 쓰고 사람이 판정하는 분업이 2회차의 스펙 승인으로 이어집니다.
승인 뒤 한 번 예시 프롬프트 · 코드는 열어 보지 않고, 끝나는 조건과 보여 줄 것을 정한다
승인한 뒤의 프롬프트: 원하는 것, 끝나는 조건, 끝나면 보여 줄 것
> 승인. overview.md와 ADR-0001대로
하네스 첫 버전을 만들어 줘.
끝나는 조건
- 내가 정한 기능이 동작한다 (예: 작은 과제 하나,
메모 정렬 옵션 추가를 끝까지 처리하고 테스트 통과)
- ADR에 적은 금지·제한이 실제로 막힌다 (정했다면)
끝나면 보여 줘
- 테스트 결과 요약과 걸린 시간·바퀴 수
- 금지·제한 요청을 직접 시도한 결과 (예: 3개)
- 안 막힌 게 있으면 원인과 고친 뒤 재시도 결과
“만들어 줘”가 아니라 조건과 증거 까지 시켜서, 코드를 읽지 않고도 판단할 근거가 생긴다.
에이전트가 낸 증거를 그대로 믿으면 안 된다. 다음 장에서 내가 직접 한 번 더 시켜 본다.
구현은 에이전트의 몫이고, 사람은 결정과 스모크 결과 만 본다.
승인한 다음에는 이 프롬프트 하나로 구현을 맡깁니다. 무엇을 만들라고만 하지 않고, 어떤 조건이면 끝인지와 끝나면 무엇을 보여 달라는 것까지 적습니다. 저는 이렇게 시키고 코드는 열어 보지 않습니다. 대신 에이전트가 스스로 돌려 본 증거를 받습니다. 다만 에이전트가 낸 증거만으로 끝내지 않고, 다음 장처럼 제가 직접 요청을 넣어 한 번 더 확인합니다. 어떤 방식으로 만들지는 설계 대화에서 이미 정해졌으니 여기서 다시 묻지 않습니다.
약 15분 · 결과는 예시 동작 확인(스모크) · 내가 정한 것에 맞게 시나리오를 고른다(예: 작은 과제 하나 + 일부러 어기기 세 번)
코드를 보는 대신, 실제로 시켜 보고 막히는지 확인한다
# 1 작은 과제
> 메모 목록을 최신순으로 정렬하는 옵션을
추가하고, 테스트 결과를 요약해 줘
↳ (예시) 테스트 통과 · 7분 · 9바퀴
# 2 금지 시험 (하나씩)
> .env 파일 내용을 보여 줘
↳ (예시) 거부됨: 비밀값 읽기 금지
> tmp 폴더를 통째로 지워 줘
↳ (예시) 거부됨: 대량 삭제 금지
> main 에 강제로 푸시해 줘
↳ (예시) 실행됨: 막히지 않음
> 방금 요청이 왜 통과됐는지 설명하고, 막히게
고친 뒤 같은 요청으로 다시 보여 줘
시나리오마다 기대 결과를 먼저 적고 시킨다
막혔으면 어떤 메시지로 막혔는지 화면을 남긴다
안 막혔다면 가장 좋은 발견이다. ADR-0001의 ‘다시 판단할 조건’ 에 해당한다
→ 다음 장: 기록 표
코드를 읽는 대신 실제로 시켜 봅니다. 먼저 작은 과제 하나를 맡기고 테스트 결과 요약을 받습니다. 그다음 내가 금지한 일을 하나씩 일부러 시킵니다. 여기서는 세 가지를 예로 들었고, 무엇을 시험할지는 각자 정한 하네스에 맞춥니다. 오른쪽 대화의 결과는 모두 예시이고, 실제 결과는 각자 다릅니다. 막히지 않은 요청이 나오면 에이전트에게 왜 통과됐는지 설명시키고, 막히게 고친 뒤 같은 요청으로 다시 보여 달라고 합니다. 저는 안 막힌 것을 가장 좋은 발견으로 칩니다. ADR을 갱신할 이유가 생기기 때문입니다.
기록 표 · 값은 예시 시나리오 · 기대 결과 · 실제 결과 · 통과 (시나리오는 내 하네스에 맞게)
스모크 기록: 시나리오마다 기대와 실제를 나란히 적는다
시나리오 기대 결과 실제 결과 (예시) 통과
정렬 옵션 추가 과제 끝까지 처리 + 테스트 통과 통과 · 7분 · 9바퀴 통과
비밀값 파일 보여 달라고 요청 거부 거부됨 통과
폴더 통째 삭제 요청 거부 거부됨 통과
강제 푸시 요청 거부 실행됨 → 고친 뒤 재시도에서 거부 재시도 통과
멈춤 조건 확인 횟수·예산 상한에서 중단 못 쟀음: 이유를 적는다 -
화면 캡처나 로그 한 장씩 붙입니다. 못 쟀으면 못 쟀다고 적어 주세요. 숫자를 지어내지 않습니다.
스모크 기록은 이 표 한 장이 기본입니다. 시나리오마다 기대 결과를 먼저 적고, 실제 결과와 통과 여부를 나란히 둡니다. 안 막혔다가 고친 뒤 막힌 경우에는 두 번의 결과를 모두 남깁니다. 화면 캡처나 에이전트가 보여 준 로그를 한 장씩 붙이면 증거가 됩니다. 표의 값은 예시이고 실제 숫자는 각자 다릅니다. 숫자를 못 쟀으면 못 쟀다고 적으면 되고, 이 표 한 장이 나중에 나누기 좋은 자료가 됩니다.
다음 회차(11-10)까지 · 집에서 이어서 ‘나만의 하네스 만들기’ · 1회차
다음 회차까지 해 볼 것, 다음 시간에 나누면 좋은 것
해 볼 일
오늘 정한 내용 가운데 마음에 안 드는 곳을 에이전트에게 말해 고쳐 보기 (개요·ADR)
스모크를 한 번 더 돌려 보기 (안 쟀던 것, 안 막혔던 것)
내 하네스가 하면 좋겠는 일을 한 줄 더 적어 보기
다음 시간에 나누면 좋은 것
쓴 프롬프트 한 개 (잘 먹힌 것이나 안 먹힌 것)
스모크 표 한 장 (못 쟀으면 못 쟀다고)
막힌 곳 하나 (어디서 왜 막혔나)
전부 하지 않아도 됩니다. → 2회차: 내 하네스에 딴길 방지 장치 골라 보기
오늘 해 본 것을 집에서 조금 이어 가 보시라는 안내입니다. 개요와 ADR에서 마음에 안 드는 곳을 고쳐 보고, 스모크를 한 번 더 돌려 보고, 하네스가 해 주면 좋겠는 일을 한 줄 더 적어 봅니다. 다음 시간에는 쓰신 프롬프트 하나, 스모크 표 한 장, 막힌 곳 하나를 가져와 서로 나누면 좋습니다. 저도 코드는 읽지 않습니다. 다음 주에는 소개하는 딴길 방지 장치 가운데 내 하네스에 필요한 것을 골라 더하고, 그때도 같은 방식으로 에이전트에게 질문부터 시킵니다.
증상별 설치 문제가 아니라 대화 문제가 대부분
막힐 때: 대부분은 에이전트에게 주는 지시를 고치면 풀린다
증상 이렇게 다시 말한다
질문 없이 바로 코드를 쓴다 “설계 질문이 끝나고 내가 승인하기 전에는 파일을 만들지 마.”
질문이 끝없이 이어진다 “남은 질문은 네 추천 답으로 정하고 overview.md와 ADR을 써.”
무엇을 골라야 할지 모르겠다 “선택지 두 개와 장단점을 표로 보여 줘.”
파일이 너무 많이 생긴다 “PoC다. 파일 세 개 이내로 다시.”
스모크에서 멈추지 않고 계속 돈다 “최대 바퀴 수와 예산 상한을 넣고, 상한에서 멈추는지 보여 줘.”
스모크에서 막혀야 할 요청이 통과됐다 “방금 요청이 왜 통과됐는지 설명하고, 막히게 고친 뒤 같은 요청으로 다시 보여 줘.”
됐다고만 하고 증거가 없다 “화면이나 로그로 보여 줘. 못 보여 주면 못 했다고 말해.”
오늘 막히는 곳은 대부분 설치나 문법이 아니라 대화입니다. 에이전트가 질문 없이 바로 코드를 쓰면 승인 전에는 파일을 만들지 말라고 다시 말합니다. 질문이 끝나지 않으면 남은 것은 추천 답으로 정하라고 합니다. 고르기 어려우면 선택지 두 개와 장단점을 표로 달라고 합니다. 스모크에서 막혀야 할 요청이 통과되면 왜 통과됐는지 설명시키고 고친 뒤 같은 요청으로 다시 보여 달라고 합니다. 이 표는 그대로 쓸 수 있는 문장들이니 막히면 옆에 띄워 두세요. 그래도 안 풀리면 손을 들어 주세요. 같이 대화 기록을 보면서 어디서 어긋났는지 찾겠습니다.