Log in to leave a comment
No posts yet
Claude Code는 강력합니다. 터미널 명령을 직접 실행하고 파일 시스템을 주무르는 자율성은 개발자에게 해방감을 주죠. Stripe 엔지니어 1,300명이 10,000라인의 마이그레이션을 단 4일 만에 끝냈다는 데이터는 이 도구의 파괴력을 잘 보여줍니다. 하지만 에이전트에게 내 컴퓨터의 열쇠를 통째로 맡기는 건 다른 문제입니다. 권한 제어 없는 에이전트는 편리한 도구가 아니라 언제 터질지 모르는 보안 사고의 씨앗입니다.
내 로컬 OS에 Claude Code를 직접 설치하면 노드 버전이 꼬이거나 라이브러리가 충돌하는 짜증 나는 상황을 마주하게 됩니다. Ramp나 Wiz 같은 보안 기업들이 인시던트 조사 시간을 80% 줄인 비결은 환경의 규격화에 있습니다. 저는 node:20-slim 이미지를 활용해 아예 격리된 컨테이너에서 에이전트를 돌리는 방식을 선호합니다. 호스트 시스템은 깨끗하게 유지하면서 에이전트만 가두는 겁니다.
.devcontainer 폴더를 만들고 Dockerfile에 비루트 계정을 정의하십시오. 루트 권한이 없는 에이전트는 실수로 시스템 바이너리를 건드리지 못합니다. 여기에 devcontainer.json을 통해 공유 메모리를 2GB 정도로 넉넉히 잡으면 Playwright 기반의 브라우저 테스트도 메모리 부족 없이 매끄럽게 돌아갑니다. 내 컴퓨터의 설정이 에이전트 때문에 망가질까 봐 걱정할 필요가 없어집니다.
에이전트는 컨텍스트가 복잡할수록 헛소리를 할 확률이 높습니다. Anthropic의 연구 결과도 이를 뒷받침합니다. 파일 시스템 전체를 열어두면 에이전트가 .env 파일에 담긴 API 키를 읽어 외부로 보내거나 의도치 않은 파일을 수정할 위험이 있습니다. 그래서 저는 프로젝트마다 화이트리스트를 만듭니다.
먼저 .claudeignore에 node_modules, dist, .env를 등록하십시오. 그 다음 .claude/settings.json에서 permissions.deny 필드를 사용해 핵심 설정 파일들을 잠가야 합니다. 코드 수정은 허용하되 Bash 명령어는 실행 전 반드시 내 승인을 받도록 설정하는 acceptEdits 모드가 가장 합리적인 타협점입니다. 에이전트의 활동 반경을 src와 tests로 좁히면 코드 수정의 정밀도가 올라가고 데이터 유출은 원천 차단됩니다.
Google Workspace를 연동하면 생산성이 치솟지만 인사 정보나 재무 제표가 모델 학습 로그로 넘어갈까 봐 찝찝합니다. 이럴 때는 최소 권한 원칙을 철저히 지켜야 합니다. 구글 클라우드 콘솔에서 OAuth 범위를 Drive.readonly로 제한하고 특정 폴더만 접근하게 만드는 게 시작입니다.
저는 시스템 프롬프트에 정규표현식 프리셋을 주입하는 방식을 씁니다. \d{6}-\d{7} 같은 패턴을 넣어 주민등록번호나 전화번호가 감지되면 즉시 [ID_REDACTED]로 치환되도록 강제하십시오. MCP 레벨에서 데이터를 가로채 필터링하는 샌드박스 층을 하나 더 두는 겁니다. 이렇게 하면 기밀 데이터가 외부로 나갈 가능성을 거의 완벽하게 제거하면서도 문서 요약이나 일정 관리 기능을 마음 편히 쓸 수 있습니다.
에이전트가 짠 코드는 논리적으로는 맞는데 화면 레이아웃을 엉망으로 만들 때가 있습니다. 이럴 땐 Playwright를 활용한 시각적 회귀 테스트가 답입니다. 픽셀 단위 비교 시 maxDiffPixelRatio 임계값을 0.05로 설정해 보십시오. 미세한 렌더링 차이로 인한 가짜 오류는 거르고 실제 레이아웃 붕괴만 정확히 잡아내는 기준입니다.
자가 치유 워크플로우를 만드는 것도 방법입니다. 테스트가 실패하면 자동으로 git checkout .을 실행해 수정을 롤백하는 스크립트를 작성하십시오. 이 스크립트를 Claude Code의 작업 완료 훅에 등록하면 에이전트가 일을 끝낼 때마다 UI 정합성을 검증합니다. 사람이 일일이 브라우저를 새로고침하며 확인하는 시간을 80% 이상 아낄 수 있습니다.
혼자만 잘 쓰는 스킬은 아깝습니다. 팀 전체의 생산성을 높이려면 검증된 스킬을 공유 저장소로 관리해야 합니다. 50,000라인의 라이브러리를 단 20시간 만에 변환한 팀들은 공통적으로 잘 짜인 스킬 저장소를 보유하고 있었습니다.
프로젝트 루트의 .claude/skills/ 디렉토리에 각 스킬의 실행 지침을 담은 SKILL.md를 만드십시오. 코드 리뷰나 UI 디버깅처럼 반복되는 작업들을 스킬로 정의해 Git으로 관리하는 겁니다. 여기에 CI/CD 파이프라인을 연동해 품질 점수가 낮은 스킬은 병합되지 않게 막는 거버넌스까지 갖추면 금상첨화입니다. 숙련된 엔지니어의 노하우가 담긴 스킬을 신입 사원도 즉시 호출해 쓸 수 있는 환경이 진정한 팀 협업의 모습입니다.