[AI 활용법 3] 자율모드 — 안전한 위임의 기술
감독 없이 돌아가는 AI에게 무엇을 맡기고 무엇을 막아야 하는가
시리즈 3편. 자율모드는 편의 기능 이 아니라 위임 기능 이다. 감독이 없는 만큼 더 엄격한 가드레일이 필요하다.
자율모드의 정의
“자율모드(autonomous mode)”는 AI가 사용자의 실시간 개입 없이 사전 정의된 작업 큐를 독립적으로 처리하는 모드다. 일반 대화 모드와 다른 점은 한 가지 — 다음 행동을 사용자에게 묻지 않는다.
이 한 가지가 모든 안전 비용을 결정한다. 묻지 않는 만큼, 사전에 막아 놓아야 한다.
진입은 보수적으로
자율모드는 다음 중 하나가 충족될 때만 진입한다:
- 사용자가 명시적으로 “자율모드 시작” /
@autonomous/ “큐 소화해줘” - 프로젝트
CLAUDE.md에 자율모드 활성화가 명시 plans/today-queue.md가 존재하고 사용자가 그 파일 기반 실행을 요청
모호하면 진입하지 않는다. 일반 모드를 기본값으로.
작동 루프
1. 큐 확인 → plans/today-queue.md 맨 위 작업
2. 계획 요약 → logs/YYYY-MM-DD.md에 미리 기록
3. 실행 → feature 브랜치에서
4. 테스트/검증 → 통과 못 하면 커밋 안 함
5. 커밋 → Conventional Commits, 영문, 사용자 identity
6. 완료 기록 → logs에 변경 파일·커밋 해시·테스트 결과 append
7. 다음 작업 → 큐에서 해당 항목 제거
8. 막히면 → blocked.md로 이동, 다음 항목으로
루프의 핵심은 “되돌릴 수 있는 작업만 자동화” 다.
절대 금지 — Hard Blocks
자율모드에서는 사용자 승인이 있더라도 수행하지 않는 행위:
| 범주 | 금지 행위 |
|---|---|
| DB | 프로덕션 DB 마이그레이션, DROP, DELETE, TRUNCATE |
| Git | push origin main/master, force push, reset --hard, 브랜치 삭제 |
| 결제 | 실제 외부 API 키가 필요한 결제·주문·송금의 실호출 (샌드박스는 OK) |
| 시크릿 | .env, *.key, *.pem, 인증 설정 파일 편집 |
| 시스템 | 글로벌 패키지 설치 (npm i -g, brew, apt) |
| 외부 통신 | 허가되지 않은 외부 서버 대량 송신, 웹훅 실호출 |
| 파일 | 홈 디렉터리 밖 대량 삭제, 시스템 파일 편집 |
원칙: 자율모드는 되돌릴 수 있는 것 만 한다. 외부 상태(돈, 고객 데이터, 프로덕션)에 영향이 가는 일은 무조건 에스컬레이션.
실패 처리 — 막히면 멈춘다
- 한 작업 시도는 최대 3회.
- 한 작업이 3회 연속 실패 →
blocked.md로 이동, 다음 큐로. - 세션 내 7회 이상 연속 실패 → 자율모드 자체 중단, 사용자에게 에스컬레이션.
blocked.md 기록 형식:
## [YYYY-MM-DD HH:mm] <작업 제목>
**시도 횟수**: 3
**실패 원인**:
- 시도 1: <요약 + 에러>
- 시도 2: ...
- 시도 3: ...
**필요한 판단/정보**:
- 사용자에게 물어봐야 할 것
- 부족한 정보·권한·사양
검증 게이트 — 예외 없음
스택별 필수 검증을 커밋 전 에 통과시킨다:
- TypeScript:
tsc --noEmit+npm test - Python:
pytest+mypy/pyright - Go:
go build ./...+go test ./...+go vet - Rust:
cargo check+cargo test+cargo clippy
검증이 불가능한 환경이면 그 사실을 로그에 남기고 블록 처리 한다. “테스트 못 돌렸지만 작동할 것” 은 자율모드에서 절대 금지.
작업 큐 항목 형식
today-queue.md의 한 항목:
## [TASK-001] OAuth PKCE 도입
- 목표: 기존 implicit flow → PKCE 전환
- 영향 범위: src/auth/*, tests/auth/*
- 완료 기준: 단위 테스트 + e2e 1건 통과
- 관련 이슈: #123
- 위험도: medium
위험도: high인 항목은 자율모드로 처리하지 않는다. 사람에게 넘긴다.
자율모드 종료 보고
세션이 끝나면 logs/YYYY-MM-DD.md 하단에:
## 자율모드 세션 요약 (HH:mm ~ HH:mm)
- 처리 완료: <N개>
- 블록됨: <M개> (blocked.md 참조)
- 실패: <K개>
- 생성 커밋: <해시 목록>
- 남은 큐: <개수>
- 종료 사유: 큐 소진 | 실패 상한 | 사용자 중지 | 금지 범위 감지
한 줄 요약
자율모드의 비결은 “무엇을 시킬까” 가 아니라 “무엇을 절대 못 하게 할까” 의 목록이다.
다음 편: AI 활용법 4 — 모듈화·성능·UI: AI에게 맡길 때의 가드레일 이전 편: AI 활용법 2 — 컨텍스트 관리