기본값 하나가 승인 절차를 지웠다
클로드 코드 60초 자동 진행 사태가 남긴 방어 설계 3종
2026년 7월 17일, 개발자 올라프 알더스(Olaf Alders)가 클로드 코드(Claude Code)의 조용한 변화 하나를 기록했다. 버전 2.1.198에서 사람에게 질문하고 답을 기다리던 도구가, 사용자가 60초 동안 응답하지 않으면 모델의 추측으로 알아서 진행하도록 바뀐 것이다. 릴리스 노트에도 없었고 끄는 설정도 없었으며, 문서화되지 않은 환경변수 하나만이 탈출구였다. 앤트로픽은 2.1.200 이상에서 기본값을 되돌렸다. 그리고 7월 27일, 이 플랫폼 위에 자기 프레임워크를 올려둔 개발자 마우로 에프세(mauroepce)가 같은 일이 또 일어나도 버티는 방어 설계를 정리해 공개했다.
무슨 일인가 / 배경
저자가 유지하는 개인 툴킷의 중심 원칙은 코드 생성 관문마다 사람 확인을 받는 것이다. 구현 전 사양 검토, 커밋 전 확인, 메인 브랜치 푸시 전 두 번째 승인, 버그 조사 전 가설 기록. 이 관문들은 모두 사용자에게 묻고 멈추는 그 한 가지 동작에 의존한다. 그 동작이 60초 뒤 추측으로 넘어가도록 바뀌면 모든 관문이 조용히 무력화된다. 사용자는 자기가 질문을 받았다고 믿지만 실제로는 에이전트가 대신 결정한 상태다.
핵심 짚어보기
저자가 짚은 것은 특정 버그가 아니라 위험의 종류다. 전통적인 의존성 문제는 API 계약이 깨지면 빌드가 실패해 티가 난다. 반면 에이전트 플랫폼은 인터페이스를 그대로 둔 채 의미만 바꿀 수 있다. 코드는 컴파일되고 테스트는 통과하고 안전 관문도 그 자리에 있는데, 그 안의 뜻만 이동한다. 그래서 발견이 늦다.
파급은 규모에 따라 달라진다. 혼자 일하는 개발자라면 전화를 받으러 자리를 비운 사이 다듬지 않은 메시지로 커밋이 올라가는 정도다. 팀이라면 메인 브랜치를 지키던 마지막 확인 절차가 규칙에서 관습으로 내려앉는다. 규제 산업이라면 이야기가 달라진다. 프로덕션 배포 승인을 이 방식으로 구현했다면 60초 침묵이 승인으로 처리되고, SOC 2나 HIPAA처럼 사람의 명시적 승인 기록을 요구하는 체계에서는 이것이 버그가 아니라 감사 지적 사항이 된다. 감사관에게 설명할 책임은 플랫폼 회사가 아니라 그 조직에 있다.
대응은 단순하다. 저자는 설정 파일에 값 세 개를 명시했다. 첫째, 질문 대기 시간을 무제한으로 두는 공식 설정을 직접 적었다. 지금 기본값과 같더라도 적어두는 순간 향후 기본값 변경의 영향을 받지 않는다. 둘째, 같은 역할을 하는 환경변수에 사실상 무한대에 가까운 값을 넣었다. 환경변수가 설정 파일보다 우선하므로 설정 이름이 바뀌어도 방어선이 남는다. 셋째, 자동 업데이트를 껐다. 저자는 이것을 셋 중 가장 중요하다고 본다. 문제의 버전이 그렇게 빨리 퍼진 이유가 바로 자동 업데이트였기 때문이다. 결론은 한 문장으로 요약된다. 벤더를 믿는 것은 방어 패턴이 아니며, 명시적 설정이 방어다.
1인기업 실전 적용 포인트
- 자동화 파이프라인에 사람 승인 단계가 있다면 그것이 무엇에 기대고 있는지 오늘 확인하라. 도구가 제공하는 확인 창 하나에만 의존한다면 그 지점이 단일 장애점이다.
- 기본값에 기대지 말고 원하는 값을 설정 파일에 직접 적어라. 지금 기본값과 같아도 적는 비용은 몇 줄이고, 얻는 것은 버전 변경으로부터의 독립이다.
- 무인으로 도는 작업은 도구 버전을 고정하고 자동 업데이트를 꺼라. 새벽에 도는 스크립트가 알아서 최신 버전으로 갈아타는 구조는, 바뀐 동작을 사람이 확인할 기회 자체를 없앤다.
- 사용하는 도구의 릴리스 노트를 주 1회 확인하는 시간을 캘린더에 넣어라. 이번 사례처럼 노트에 적히지 않는 변경도 있지만, 적힌 것조차 안 읽으면 대응이 몇 주 늦는다.
전망 / 주의점
문제의 기본값은 되돌아왔지만 같은 종류의 사건은 반복될 것이다. 에이전트 플랫폼은 여전히 빠르게 움직이는 제품이고, 사용자는 그 위에 자기 업무를 통째로 올린다. 속도를 얻는 대가로, 내 안전장치가 온전히 내 것이 아닐 수 있다는 리스크를 함께 산 셈이다. 비용이 설정 몇 줄이라면 지금 적어두지 않을 이유가 없다.
출처: 해커뉴스(Hacker News) (https://mauroepce.dev/blog/trust-boundaries-claude-code)