AI 서재
책으로 읽는 AI서재
한 권을 고르고, 목차에서 차례대로 읽을 수 있게 정리했습니다.
PDF 다운로드 책
다국어로 읽는 대학생 교양 인공지능
한국어 원문과 외국어 번역을 함께 실은 유학생용 교재입니다. 각 책 소개 페이지에서 PDF를 받을 수 있습니다.
[AI서재] 31장 권한 설정과 보안 실무
클로드 코드 완전정복
31장 권한 설정과 보안 실무
김경진 변호사
"위험하게 권한 건너뛰기"라는 이름의 유혹
유튜브에서 클로드 코드 튜토리얼을 검색하면, 상당수 영상에서 --dangerously-skip-permissions라는 플래그를 사용합니다. 이 플래그를 붙이면 클로드가 파일 수정, 명령어 실행, 패키지 설치 등 모든 작업을 승인 없이 자동으로 수행합니다. 화면에서 보기에는 깔끔합니다. 작업이 끊기지 않고 쭉 이어지니까요.
그런데 이 플래그의 이름에는 "dangerously(위험하게)"라는 단어가 붙어 있습니다. 이유가 있습니다. 클로드가 실수로 중요한 파일을 삭제하거나, 의도치 않은 시스템 명령어를 실행하거나, 운영 서버에 영향을 미치는 작업을 승인 없이 수행할 수 있다는 뜻입니다.
빠르게 작업하고 싶은 마음은 이해합니다. 하지만 속도와 안전 사이에서 균형을 잡는 더 나은 방법이 있습니다.
4단계 자율성 모델
클로드 코드의 권한 설정은 네 단계로 구성됩니다. 각 단계는 에이전트에게 부여하는 자율성의 정도를 나타냅니다.
1단계: Plan (계획)
가장 제한적인 모드입니다. 클로드가 파일을 읽고 분석할 수 있지만, 어떤 것도 수정하지 않습니다. 코드를 작성하지 않고, 명령어를 실행하지 않습니다. 계획만 세우고 보고합니다.
새 프로젝트의 구조를 파악하거나, 복잡한 문제의 접근 전략을 논의할 때 적합합니다.
2단계: Ask Before (사전 승인)
클로드가 작업을 수행할 수 있지만, 매 단계마다 사용자의 승인을 받습니다. "이 파일을 수정해도 될까요?", "이 명령어를 실행해도 될까요?" 하나하나 물어봅니다.
안전하지만 느립니다. 사용자가 계속 화면 앞에 앉아서 승인 버튼을 눌러야 하기 때문입니다. 중요한 시스템에서 민감한 작업을 할 때 선택하는 모드입니다.
3단계: Auto Edit (자동 편집)
이 단계에서는 파일 편집은 자동으로 수행하되, 시스템 명령어 실행은 여전히 승인을 요구합니다. 코드 작성과 수정은 자유롭게 하되, rm, npm publish, git push 같은 명령어는 사람이 확인한 뒤에 실행됩니다.
대부분의 일상적 개발 작업에 적합한 균형점입니다.
4단계: Bypass (우회)
모든 제한이 해제됩니다. --dangerously-skip-permissions에 해당하는 단계입니다. 클로드가 모든 작업을 자동으로 수행합니다.
이 모드는 사용자가 화면 앞에서 실시간으로 감독할 때만 사용해야 합니다. 자리를 비운 상태에서 바이패스 모드로 에이전트를 돌려 놓는 것은 위험합니다.
[그림 31-1] 4단계 자율성 모델 다이어그램 — Plan, Ask Before, Auto Edit, Bypass
허용 목록과 거부 목록으로 세밀하게 제어하기
4단계 모델보다 정밀한 제어가 필요할 때는 허용 목록(allow list)과 거부 목록(deny list)을 활용합니다.
이 방식은 "전부 허용하거나 전부 차단하는" 이분법이 아니라, "안전하다고 확인된 명령어만 허용하고, 위험한 명령어는 명시적으로 차단하는" 세밀한 설정입니다.
허용 목록에 git commit, npm test, npm run build 같은 안전한 명령어를 넣고, 거부 목록에 rm -rf, git push --force, DROP TABLE 같은 파괴적 명령어를 넣습니다.
여기서 중요한 규칙이 하나 있습니다. 거부 목록이 허용 목록보다 우선합니다. 허용 목록에 rm이 포함되어 있더라도 거부 목록에도 rm이 있으면, 거부됩니다. 안전장치가 항상 이깁니다.
이렇게 설정하면 --dangerously-skip-permissions와 거의 같은 속도를 얻으면서도, 치명적인 명령어는 차단됩니다. 속도를 포기하지 않고 안전을 확보하는 현실적인 방법입니다.
{
"permissions": {
"allow": [
"git commit",
"git add",
"npm test",
"npm run build",
"npm run dev"
],
"deny": [
"rm -rf",
"git push --force",
"git reset --hard",
"DROP",
"DELETE FROM"
]
}
}[그림 31-2] 허용 목록과 거부 목록 설정 예시 화면
VPS 호스팅과 원격 클로드 코드 운영
노트북을 닫으면 클로드 코드 세션이 끊깁니다. 장시간 작업이나 상시 모니터링이 필요한 경우, 이것은 제약이 됩니다.
VPS(Virtual Private Server, 가상 사설 서버)에 클로드 코드를 설치하면 이 문제가 해결됩니다. 서버는 24시간 돌아가므로, 노트북을 닫아도 세션이 유지됩니다. SSH(Secure Shell)로 원격 접속하면 언제 어디서든 세션을 이어갈 수 있습니다.
텔레그램(Telegram) 연동을 설정해 두면, 폰에서 클로드 코드에 지시를 내릴 수도 있습니다. 출근길 지하철에서 "어젯밤 돌려 놓은 검증 결과 어때?"라고 물으면 답이 옵니다.
클로드 코드에는 원격 제어(remote control) 기능도 있습니다. 내 컴퓨터 컴퓨터에서 실행 중인 세션을 브라우저나 폰에서 조종할 수 있습니다. 코드는 내 컴퓨터 머신을 떠나지 않으면서, 제어만 원격으로 합니다. 사무실 컴퓨터에서 작업을 시작하고, 커피를 마시러 나가면서 폰으로 방향을 잡아줄 수 있습니다.
장기 실행 세션을 운영할 때 권한 설정은 더 신중해야 합니다. 사용자가 자리를 비운 상태에서 에이전트가 돌아가므로, 바이패스 모드는 적합하지 않습니다. 허용 목록과 거부 목록을 세밀하게 구성하고, 필요한 경우 승인이 필요한 작업에서는 에이전트가 대기하도록 설정하는 것이 안전합니다.
[그림 31-3] VPS에서 클로드 코드를 원격 운영하는 구조도
팀 환경에서의 보안
혼자 사용할 때와 팀에서 사용할 때는 보안의 차원이 다릅니다. 한 사람의 실수가 팀 전체에 영향을 미칠 수 있기 때문입니다.
API 키 관리
팀 프로젝트에서 API 키를 코드에 직접 넣는 것은 절대 해서는 안 됩니다. 한 명이 키를 하드코딩하고 커밋하면, 그 키는 깃 히스토리에 영원히 남습니다. 비공개 저장소라 해도 안전하지 않습니다.
API 키는 환경 변수로 관리합니다. .env 파일에 키를 저장하고, 이 파일은 .gitignore에 반드시 추가합니다. 팀원 각자가 자신의 .env 파일을 내 컴퓨터에서 관리하고, 키 값 자체는 안전한 채널(비밀번호 관리자, 암호화된 메시지 등)로 공유합니다.
settings.local.json 활용
클로드 코드의 설정 파일에는 두 가지 유형이 있습니다. 프로젝트 전체에 적용되는 공유 설정과 개인 환경에만 적용되는 내 컴퓨터 설정입니다.
settings.local.json은 개인 설정 파일입니다. 이 파일에는 개인의 권한 설정, 환경별 경로, 개인 MCP 연결 서버 구성 등 자기 환경에만 해당하는 내용을 넣습니다. 이 파일은 깃에 커밋하지 않습니다.
프로젝트 공통 설정은 별도의 공유 설정 파일에 넣고 커밋합니다. 팀원 모두가 동일한 기본 규칙 하에서 작업하되, 개인별 차이는 settings.local.json에서 처리하는 구조입니다.
최소 권한 원칙
팀 환경에서 권한 설정의 기본 원칙은 간결합니다. 각 역할에 필요한 최소한의 권한만 부여합니다.
프론트엔드 개발자의 클로드 코드 세션이 데이터베이스 삭제 명령어를 실행할 수 있어야 할 이유는 없습니다. 배포 담당자가 아닌 사람의 세션에서 프로덕션 배포 명령어가 허용될 이유도 없습니다. 역할별로 허용 목록과 거부 목록을 다르게 구성하면, 실수의 피해 범위를 구조적으로 제한할 수 있습니다.
[그림 31-4] 팀 환경에서의 권한 설정 구조 — 공유 설정과 개인 설정의 분리
보안은 속도의 적이 아닙니다
권한 설정과 보안 관리에 시간을 쓰는 것이 번거롭게 느껴질 수 있습니다. "그냥 --dangerously-skip-permissions 쓰면 안 되나?"라는 생각이 듭니다. 실제로 개인 프로젝트에서 간단한 실험을 할 때는 그렇게 해도 큰 문제가 없을 수 있습니다.
하지만 프로젝트가 커지고 팀원이 늘고 운영 서버가 관여하기 시작하면, 보안 설정 없이 달리는 것은 안전벨트 없이 고속도로를 달리는 것과 같습니다. 사고가 나기 전에는 불편함만 느끼지만, 사고가 나면 그때는 이미 늦습니다.
허용 목록과 거부 목록을 한 번 세밀하게 구성해 놓으면, 이후에는 바이패스 모드와 거의 같은 속도로 작업하면서도 치명적 실수는 차단됩니다. 처음에 한 시간 투자해서 이후의 모든 세션을 안전하게 만드는 것. 이보다 효율적인 시간 투자는 드뭅니다.
클로드 코드를 진지하게 활용하려는 사람이라면, 권한 설정은 선택이 아니라 기본입니다. 도구의 힘이 강할수록, 그 힘을 통제하는 체계도 강해야 합니다.
기술적 역량과 보안 의식을 갖추었다면, 이제 이 능력을 실제 사업으로 전환하는 단계가 남아 있습니다. 클로드 코드를 다루는 기술만으로는 충분하지 않습니다. 그 기술을 가진 사람이 시장에서 어떻게 첫 클라이언트를 확보하고, 가격을 책정하고, 지속 가능한 비즈니스를 만들 수 있는지—이 질문에 답하는 것이 다음 여정의 출발점입니다.
이 책이 잠시라도 당신 곁에 머물렀다면, 다음 이야기가 세상에 나올 수 있도록 후원해 주세요.
(자발적 후원 부탁 구좌 : 농협 302-1096-0948-81 예금주 : 김경진)








