11:05Maximilian Schwarzmüller
Log in to leave a comment
No posts yet
에디터가 코드를 대신 짜주는 시대는 끝났습니다. 이제는 클로드 코드(Claude Code) 같은 에이전트가 직접 터미널을 열고 파일 시스템을 뒤지며 코드를 수정합니다. 편리하지만 한편으로는 섬뜩한 일입니다. 프롬프트 인젝션 한 번에 .env 파일이나 SSH 키가 외부로 유출될 수도 있으니까요. 에이전트에게 자율성을 주되, 선을 넘지 못하게 만드는 구체적인 통제 방법이 필요합니다.
에이전트는 기본적으로 명령을 수행하기 위해 프로젝트 전체를 훑으려 합니다. 이를 방치하면 민감한 설정값까지 읽어버릴 위험이 있습니다. 가장 확실한 방어책은 프로젝트 루트 디렉토리에 에이전트 전용 규정 파일을 만드는 것입니다.
CLAUDE.md 또는 .agent-rules 파일을 생성하십시오..env, ~/.ssh, ~/.aws/credentials 같은 경로는 아예 쳐다보지도 못하게 deny 규칙을 박아넣어야 합니다.--allowedTools 옵션을 사용해 필요한 기능만 허용하십시오. Bash나 Read, Write 등 최소한의 도구만 활성화하는 방식입니다.클로드 코드의 권한 모드 중 모든 쓰기 작업에 사용자 승인을 요구하는 Default 모드를 사용하면 소스 코드 유출 위험을 물리적으로 차단할 수 있습니다. 에이전트가 내 허락 없이 환경 변수를 외부로 전송하는 사고는 설정 파일 하나로 충분히 막습니다.
에이전트 중심 도구는 스스로 계획을 세우고 실행합니다. 문제는 논리적 오류에 빠졌을 때입니다. 해결책을 찾지 못한 에이전트가 무한 루프를 돌며 API 호출을 반복하면 순식간에 수십 달러가 청구됩니다. 앤스로픽(Anthropic)의 연구 데이터에 따르면 프롬프트에 명시적인 종료 조건(Exit Criteria)을 설정하는 것만으로도 실행 시간을 62%까지 줄일 수 있습니다.
비용 폭주를 막으려면 프롬프트 안에 '회로 차단기'를 직접 설계해야 합니다.
npm test나 특정 유닛 테스트 통과를 종료의 절대 기준으로 명시하십시오..cursorrules 파일에 글로브(Glob) 패턴을 사용해 에이전트가 src/api/**/* 같은 특정 디렉토리 규칙만 읽게 제한하면 불필요한 토큰 낭비를 막습니다.이런 종료 게이트를 설정하면 모호한 지시로 인해 발생하는 토큰 소비를 억제해 월평균 API 비용을 40% 이상 아낄 수 있습니다.
에이전트가 로컬 파일을 직접 수정하는 방식은 빠르지만 위험합니다. 검증되지 않은 코드가 메인 브랜치를 망가뜨릴 수 있기 때문입니다. 쇼피파이(Shopify) 엔지니어링 팀은 자체 에이전트 도구인 사이드킥(Sidekick)을 운영하며 결과물을 별도의 모델로 교차 검증하는 방식을 도입했습니다. 우리도 에이전트 전용 작업 영역을 분리해야 합니다.
가장 깔끔한 방법은 git worktree를 사용하는 것입니다. 에이전트 세션 전용 독립 디렉토리와 브랜치를 생성해 작업을 맡기십시오. 작업이 끝나면 git diff를 실행해 변경 사항을 요약 보고하게 시키고, Playwright나 Vitest 같은 도구로 유닛 테스트를 자동 실행하게 만듭니다. 이 과정을 거치면 수동 리뷰 시간을 70% 줄이면서도 검증된 코드만 메인 브랜치에 합칠 수 있습니다.
에이전트가 코드를 쓰는 속도는 인간의 타이핑보다 훨씬 빠릅니다. 이때 VS Code의 editor.formatOnSave 기능이 켜져 있으면 에이전트가 코드를 작성하는 도중에 파일 형식이 강제로 바뀌어 텍스트 매칭 오류가 발생합니다. 도구가 자기 발에 걸려 넘어지는 꼴입니다.
또한 에이전트가 실행하는 비대화형 쉘은 .zshrc에 설정된 환경 변수를 읽지 못해 도구 실행에 실패하는 경우가 많습니다.
.vscode/settings.json에서 editor.formatOnSave를 false로 끄십시오..zshrc가 아니라 쉘 실행 방식과 상관없이 로드되는 .zshenv 파일로 옮겨야 합니다.Husky를 써서 에이전트가 작업을 마친 후 커밋할 때만 린터와 포매터가 돌도록 프리커밋 훅을 구성하십시오.환경 변수를 찾지 못해 멍청하게 서 있는 에이전트를 보고 싶지 않다면 쉘 설정부터 다시 점검해야 합니다.
| 설정 구분 | 파일명 | 권장 설정 내용 | 에이전트 가시성 |
|---|---|---|---|
| 전역 환경 변수 | .zshenv | PATH, API_KEY, SDK 경로 | 모든 세션에서 로드됨 |
| 대화형 설정 | .zshrc | alias, prompt, theme | 에이전트 실행 시 무시될 수 있음 |
| 로그인 설정 | .zprofile | 시스템 전역 초기화 스크립트 | 로그인 쉘에서만 유효함 |