안전 장치 테스트 중 실제 수익 원장 삭제 사건
요약
자율 Claude Code 에이전트의 필드 노트는 변이 테스트(mutation testing)를 통해 코드 안전성을 검증하는 과정을 다룹니다. 이 과정에서 임시 복사본만 수정할 것이라 생각했으나, 실제 돈 원장 파일까지 삭제되는 심각한 보안 문제를 겪었습니다. 이에 따라 테스트 세션에서 실제 데이터 폴더에 대한 모든 쓰기/삭제 작업을 거부하는 가드(guard)를 구현했습니다.
핵심 포인트
- 변이 테스트는 코드의 취약점을 찾는 강력한 도구입니다.
- 코드 복사본만으로는 실제 데이터 접근을 막을 수 없습니다.
- 실제 데이터를 보호하기 위해 '쓰기/삭제 금지'와 같은 강력한 가드 장치가 필수적입니다.
매일 하나의 Windows PC에서 운영하는 자율 Claude Code 에이전트의 필드 노트입니다. 숫자는 메모리가 아닌 자체 원장에서 가져온 것입니다.
하루 동안, 같은 실수가 세 가지 다른 형태로 나타났습니다. 세 번째 경우는 제가 돈을 계산하는 데 사용하는 파일을 삭제했습니다.
배경: 의도적으로 코드를 깨는 도구
제 에이전트는 변이 테스트(mutation testing)를 실행합니다. 이 도구는 소스 코드의 한 줄을 수정하고(조건을 뒤집거나, 라인을 삭제하거나, 인수를 변경), 테스트를 실행한 후 최소한 하나의 테스트가 실패하는지 확인합니다. 만약 모든 테스트가 여전히 통과한다면, 그 테스트는 해당 라인을 제대로 감시하지 못했다는 의미입니다.
수정은 코드의 임시 복사본에서 발생했습니다. 그것은 안전하다고 느꼈습니다. 하지만 그렇지 않았습니다. 왜냐하면 복사본이 _코드_만을 복사했기 때문입니다.
첫 번째: 브라우저
한 번의 변이 실행(mutation run)은 한국 프리랜서 마켓플레이스의 상품 목록을 관리하는 스크립트를 포함하여 394개의 수정을 다루었습니다. 두 개의 테스트는 그 스크립트를 실제로 호출했습니다. 하나는 알 수 없는 플래그를 사용했고, 다른 하나는
수정 사항:
테스트가 돈 원장(money ledgers)을 임시 폴더로 지정하고, 러너(runner)를 호출하는 테스트는 예외를 발생시켜 이를 광범위한 오류 처리(broad error handling)가 삼킬 수 없게 만듭니다.
세 번째: 가드 자체
명백한 다음 단계는 한 곳에 하나의 가드를 두는 것이었습니다. 즉, 테스트 세션에서 실제 데이터 폴더 내의 모든 쓰기, 삭제 또는 이름 변경을 거부하는 것입니다.
그러자 에이전트가 이 가드에 대한 테스트를 작성했습니다.
이것이 어디서 왔는가. 여기에 게시되는 모든 글은 제가 매일 실행하는 하나의 설정에서 나옵니다: CLAUDE.md 파일과 에이전트가 어떤 작업을 수행하기 전에 읽는 메모리 파일들, 그리고 PASS 또는 FAIL을 반환하는 별도의 감사(auditor) 에이전트입니다. 이 과정을 설명하는 책의 처음 3개 장은 PDF로 무료 제공됩니다: https://dbsoul.gumroad.com/l/autonomous-ai-agents-claude-code-free-sample
전체 에디션은 11개 장과 사용 준비가 된 4가지 템플릿(CLAUDE.md 시작 파일, 메모리 파일, 감사 체크리스트, 측정 가이드) 및 각 장별 실습 섹션을 포함하며, PDF로 $19입니다: https://dbsoul.gumroad.com/l/autonomous-ai-agents-claude-code
이 설정에 대한 질문은 댓글로 환영합니다 — 이론이 아닌 실제로 일어난 일로 답변해 드리겠습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기