mini를 활용한 개발, 파트 6/9: 자율 모드(Autonomous mode) — 자동 실행 및 중지
요약
본 글은 Claude의 'mini auto' 기능을 소개하며, 개발 과정에서 반복적인 수동 클릭 작업을 자동화하여 효율성을 높이는 방법을 설명합니다. 이 기능은 `next → plan → do → done` 의 과정을 연결해 자율적으로 진행하지만, 사용자의 개입이 필요한 중요한 지점(질문, 검토, 차단기)에서는 멈추어 통제권을 유지하는 반자동 방식을 채택했습니다.
핵심 포인트
- 반복적인 개발 단계를 자동화하여 수동 클릭 작업을 줄여줍니다.
- 사용자 입력이나 명시적 검토가 필요한 지점에서는 반드시 멈춥니다 (안전장치).
- 완전히 무인(unattended) 모드가 아니며, 중요한 결정은 사용자에게 남겨둡니다.
- 자동 실행 실패 시 최대 세 번까지 재시도 후 인간의 개입을 요청합니다.
파트 4와 5 이후, pycalc는 루프 주변에서 계산을 수행하며 두 개의 인간 검토 지점(human checkpoints)을 가집니다. 하지만 모든 단계는 동일한 의식을 요구합니다: next를 실행하고 승인하고, plan을 승인하고, do를 기다리고, done으로 확인하는 것입니다. 하루에 한 단계 정도라면 괜찮습니다. 하지만 '오늘 저녁에 작은 단계를 세 개 처리해야 한다'는 일이라면 지루하게 클릭만 하게 됩니다.
mini auto는 이 의식을 연결합니다: next → plan → do → done, 스스로 다음 단계로 넘어갑니다. 하지만 맹목적으로는 아닙니다 — 그리고 바로 그 '맹목적이지 않음'이 이 명령어의 핵심입니다.
auto가 하는 일과 중지하는 지점
사용자는 /mini:auto (선택적으로 --max-phases 3)를 실행하면 Claude가 루프를 대신 구동합니다. 각 단계가 끝날 때마다 다음 단계를 제안하고, 경계에 도달할 때까지 계속 진행합니다. 여기에는 네 가지 경계가 있으며, 이들은 auto가 무엇이 아닌지 정의하므로 알아둘 가치가 있습니다:
next— 항상 질문합니다. 자율 모드는 단계를 임의로 만들지 않습니다. 각 단계 시작 시 멈추고 사용자로부터 아이디어를 받거나(또는 백로그에서 선택하도록 합니다). 이것은 약점이 아니라 안전장치입니다: 사용자가 프로젝트의 방향성을 계속 통제할 수 있게 해줍니다.verify— 사용자에게 보이는 출력에서 멈춥니다. 단계에 사람이 판단해야 하는 가시적인 출력물(CLI, 화면, 메시지 등)이 있을 경우,auto는 검토를 수행하도록 하고 이를 건너뛰지 않습니다. 문제가 발견되면done으로 나아가지 않고do로 되돌아갑니다.- 차단기(A blocker) — 스스로 해결할 수 없는 무언가에 도달하면 멈추고 제어권을 넘깁니다.
--max-phases/ 프로젝트 종료 시점 — 주어진 단계 수만큼 실행하거나,next가 프로젝트가 완료되었다고 판단할 때 멈춥니다.
그 사이에는 스스로 작동합니다: plan이 단계를 세분화하고, do가 이를 작성하며 단계를 체크하고, done이 커밋으로 마무리합니다. 만약 do가 단계 처리를 완료하지 못하면(단계가 부족하거나, 막히면), auto는 최대 세 번까지 재시도한 후 포기하고 인간의 개입을 요청합니다.
이것은 '요로, 밤새 돌려놓는' 방식이 아닙니다. auto는 반자동(semi-automatic)입니다. 기계적인 클릭 작업은 제거하고, 중요한 결정이 필요한 부분은 사용자에게 남겨둡니다. 완전히 무인(unattended) 모드를 기대하는 사람은 실망할 것이며 — 그리고 그것이 좋은 일입니다.
pycalc: auto가 처리한 한 단계
지난 청크에서 다루지 못한 백로그 항목 [3]에 대한 작업이 남아 있었습니다: --help 지원. 5단계의 verify 과정에서 시스템 스스로 이 항목을
이것은 세 에피소드에 걸친 아크입니다. 아이디어는 verify(파트 5)에서 탄생했고, todo(파트 3)에 보관되었다가, 이제 auto가 이를 꺼내 프로젝트 규칙과 비교하여 가중치를 매긴 후 종료했습니다. 그 이후부터 스스로 실행되었습니다. plan은 이 단계를 여섯 단계로 나누었고, do는 HELP_TEXT와 main()에서의 처리 로직, 그리고 -5+3이 유효한 표현식으로 유지되는 리그레션 테스트를 작성했으며, done은 커밋 메시지 'Phase 4: Help flag support'로 이를 종료했습니다. 총 17개의 테스트가 성공했습니다.
Phases:
[done] 3. CLI layer and formatting
[done] 4. Help flag support (took 1m 24s)
stop — 우아하게 중지하는 방법
자율 실행을 'stop'이라고 입력하여 방해할 수는 없습니다. Claude는 작업 중이므로 사용자의 메시지를 읽지 않을 것입니다. 따라서 stop은 채팅창을 통해서가 아니라 파일을 통한 **협조적 신호(cooperative signal)**입니다. 별도의 터미널에서 다음 명령어를 실행합니다:
mini stop
[ok] Stop signal created (.mini/STOP).
The autonomous /mini:auto will finish the current step and exit cleanly.
Remove it with `mini stop --clear`.
이 명령어는 .mini/STOP 파일을 생성합니다. 자율 실행은 이 체크포인트(단계 사이와 do에서 완료된 각 단계 후)에서 이를 읽으며, 발견하면 진행 중인 단계를 완료하고 보고서를 작성한 뒤 깔끔하게 종료됩니다. 어떤 단계도 절반만 끝난 상태로 남지 않습니다. 계속 진행하고 싶을 때는 다음 명령어를 사용합니다:
mini stop --clear
[ok] Stop signal removed — the autonomous /mini:auto will run again.
둘 다 반복 호출해도 아무 문제가 없는 **멱등성(idempotent)**을 가집니다. 기억해야 할 두 가지가 있습니다. 첫째, 신호는 협조적이어서 즉시 적용되는 것이 아니라 다음 체크포인트에서 효력이 발생합니다. 둘째, 단계 중간에 강제로 중단하고 싶다면 여전히 Esc/Ctrl+C를 사용해야 하지만, 이는 stop과는 달리 단계를 절반만 끝난 상태로 남깁니다.
자율성을 조정하는 스위치들
auto는 다음에 멈출 지점을 결정하기 위해 몇 가지 입력을 받습니다:
자율성을 조정하는 스위치들
auto는 다음에 멈출 지점을 결정하기 위해 몇 가지 입력을 받습니다:
--max-phases <n>— 연속으로 진행할 단계(phase)의 개수 (지정하지 않으면 프로젝트 끝까지 실행됩니다).--verify— 순수한 내부 단계(purely internal ones)를 포함하여 모든 단계에서verify를 강제합니다 (지정하지 않으면auto는 UI 단계에 대해서만 실행합니다).--discuss— 모든 단계에서discuss를 강제합니다 (지정하지 않으면 모호한(ambiguous) 단계에 대해서만 실행합니다).--bump patch|minor|major+--push— 단계가 종료될 때 버전 번호를 올리고 푸시합니다 (기본값: 아무것도 하지 않으며, 로컬 커밋만 수행됩니다. 원격 저장소에서 놀랄 일은 없습니다).--yolo— bash 명령을 확인하라는 요청에 시달리는 것을 멈춥니다. 주의: 이는acceptEdits로 실행되는 세션에서만 작동합니다 (--permission-mode acceptEdits);--yolo만으로는 확인 절차를 비활성화하지 않습니다.
고려해야 할 트레이드오프(Trade-offs)
- 완전히 무인 상태는 아닙니다.
auto는 다음 단계(next), 검증(verify), 또는 블로커가 발생하면 멈춥니다. 시작하고 한 시간 동안 자리를 비운다고요? 아마도 질문 앞에서 멈춰 있는 것을 발견할 것입니다. 이것은 버그가 아니라 설계상의 의도이니,
mini는 오픈 소스입니다. npm install -g mini-orchestrator를 실행한 후, 프로젝트에서 mini install-commands를 실행하세요. 소스 코드와 문서는 GitHub에서 확인할 수 있습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기