[Claude Code] 클로드 코드 권한 모드 정리 - 디폴트, 엑셉트 에딧, 플랜 모드, 바이패스 모드

오늘은 클로드 코드가 클로드 코드를 권한 모드(Permission Mode) 기본적으로 어떻게 행동할지를 결정하는 네 가지 권한 모드를 하나씩 자세히 정리해보려고 합니다. 이전에 다뤘던 "특정 도구나 명령어에 대한 개별 권한 설정"과는 다른 개념인데요,  특히 실무에서 가장 유용하게 쓰이는 플랜 모드(Plan Mode)는 꼭 이해하고 넘어가시는 걸 추천드려요.

 


 

개별 권한 설정 vs 권한 모드, 뭐가 다를까?

먼저 헷갈리기 쉬운 개념부터 정리하고 넘어가겠습니다. 개별 권한 설정은 "이 도구를 써도 되는지", "이 명령어를 실행해도 되는지"를 하나하나 규칙으로 지정하는 것을 말합니다. 예를 들어 특정 bash 명령어는 항상 허용하고, 특정 파일 삭제 명령어는 항상 차단하는 식의 세밀한 규칙이죠. 반면 권한 모드는 이런 개별 규칙과는 별개로, 클로드 코드 전체의 기본 동작 방식을 결정하는 상위 개념입니다.

 

쉽게 비유하자면, 개별 권한 설정이 "각각의 문"에 자물쇠를 채우는 작업이라면, 권한 모드는 "지금은 문을 하나씩 열 때마다 물어볼지, 아니면 미리 다 열어둘지"를 정하는 전체적인 태도라고 보시면 됩니다. 이 둘은 서로 겹치지 않고 함께 작동하기 때문에, 개별 규칙을 세밀하게 설정해두었더라도 권한 모드에 따라 실제 동작 방식은 크게 달라질 수 있습니다.

 

 네 가지 권한 모드 한눈에 정리 

① 디폴트 모드(Default Mode) - 클로드 코드를 처음 실행하면 기본으로 설정되어 있는 모드입니다. 각 도구를 처음 사용할 때마다 매번 권한을 요청하는 표준 동작 방식으로 가장 안전하지만, 그만큼 매번 확인 절차를 거쳐야 해서 번거로울 수 있어요. 처음 클로드 코드를 접하거나, 실수로 인한 파일 손상이 걱정되는 낯선 프로젝트에서는 이 모드로 시작하는 게 안전합니다.

 

② 엑셉트 에딧 모드(Accept Edits Mode) - 파일 편집 권한만 자동으로 수락하고, 나머지 작업(예: 외부 명령 실행, 패키지 설치 등)에 대해서는 여전히 물어보는 모드입니다. 개발 작업을 하다 보면 여러 개의 파일을 동시에 수정하거나 새로 생성하는 경우가 정말 많은데, 이때마다 일일이 승인 절차를 거치면 매우 번거롭겠죠. 그래서 실제 개발 작업 중에는 이 모드를 켜두면 작업 흐름이 훨씬 매끄러워집니다.

 

③ 플랜 모드(Plan Mode) - 개인적으로 네 가지 모드 중 가장 자주, 그리고 가장 중요하게 사용하는 모드입니다. '계획 모드'라는 이름 그대로, 클로드 코드가 파일을 편집하거나 생성하는 등의 쓰기 작업은 전혀 하지 않고, 오직 코드나 자료를 분석해서 계획만 세워주는 모드로 실제 작업을 시작하기 전에 방향성을 먼저 검증할 수 있어서, 결과물이 엉뚱한 방향으로 나가는 걸 미리 막아주는 일종의 안전장치 역할을 합니다.

 

④ 바이패스 퍼미션 모드(Bypass Permissions Mode) - 모든 권한 확인을 건너뛰고 묻지 않은 채로 바로 작업을 수행하는 모드예요. 작업 속도는 가장 빠르지만, 의도치 않은 파일 삭제나 수정이 발생할 수 있어서 반드시 도커 컨테이너나 별도의 테스트 브랜치처럼 안전한 환경에서만 사용하는 걸 권장드려요. 실제 서비스 코드나 중요한 프로젝트에서는 되도록 사용을 피하는 게 좋습니다.

 

※ 모드 전환 방법
모드 전환은 아주 간단해요. Shift + Tab 을 누르면 디폴트 모드 → 엑셉트 에딧 모드 → 플랜 모드 순서로 전환되고, 화면 하단에 현재 어떤 모드인지 표시가 되기 때문에 헷갈리지 않고 확인할 수 있어요. 참고로 윈도우 환경에서는 Alt + M 을 눌러주시면 동일하게 모드를 전환할 수 있습니다.

 

왜 플랜 모드가 그렇게 중요할까?

이해를 돕기 위해 비유를 하나 들어볼게요. AI 택시를 탔다고 가정해봅시다. 기사님께 "이만큼만 가주세요"라고 요청했는데, 실제로는 그보다 훨씬 멀리, 심지어 다른 나라까지 가버릴 수도 있어요. 이렇게 원치 않는 곳까지 가버리면 다시 원래 위치로 되돌아오는 건 정말 번거롭고 비용도 많이 들겠죠.

 

클로드 코드도 마찬가지예요. 명확한 계획 없이 바로 "개발해줘"라고 요청하면, 결과물이 마음에 들지 않을 경우 이미 생성되거나 수정된 파일들을 되돌리는 데 큰 비용이 발생해요. 특히 여러 파일에 걸쳐 수정이 이루어진 경우에는 어디서부터 잘못됐는지 추적하는 것부터가 일이 됩니다. 그래서 플랜 모드를 통해 기존 코드나 자료를 먼저 분석하고, 실제 작업에 들어가기 전에 계획을 철저히 세우는 과정이 매우 중요합니다.

 

실제 플랜 모드 사용 예시

실제로 "로드맵 파일을 참고해서 개발해줘"라고 요청했다고 해보겠습니다. 디폴트나 엑셉트 에딧 모드에서는 파일 수정 여부를 묻지 않고 바로 개발이 진행됩니다. 그런데 결과물이 마음에 들지 않으면 수정하는 데 큰 비용이 발생하겠죠. 반면 플랜 모드로 전환한 상태에서 같은 요청을 하면, 클로드 코드는 곧바로 파일을 수정하지 않고 먼저 로드맵 파일(.md)을 확인한 뒤 어떤 순서로 개발을 진행할지 계획부터 제시해줍니다.

예를 들어 할 일 관리(Todo) 웹앱을 만드는 경우, "todo-app이라는 폴더를 생성하고, 여기에 리소스를 넣은 다음, index.html 파일에 입력창-할 일 목록-완료 항목 순서의 구조로 화면을 구성하겠다"는 식으로 구체적인 계획을 먼저 보여줍니다. 이 단계에서 계획이 마음에 들지 않으면, 바로 구현으로 넘어가지 않고 추가 요청을 통해 계획을 다시 세울 수 있습니다. 예를 들어 "다크 모드 토글 버튼을 추가해줘"라고 요청하면, 클로드 코드가 상단 바에 라이트/다크 전환 버튼을 넣고 로컬 저장소에 설정을 기억하도록 계획을 다시 수립해줍니다. 이렇게 원하는 방향으로 계획이 다듬어지고 나면, 그때 비로소 실제 구현 단계로 넘어가는 거예요.

 

계획이 끝난 후 선택지

계획 수립이 끝나면 보통 두 가지 선택지가 주어지는데요 1번은 엑셉트 에딧 모드로 전환해서 파일 편집을 매번 묻지 않고 자동으로 승인하며 계획대로 진행하는 방식이고, 2번은 파일 편집이 있을 때마다 직접 승인 여부를 결정하는 수동 방식이에요. 계획 단계에서 충분히 검토를 마쳤다면, 이후 구현 단계에서는 1번(엑셉트 에딧 모드)으로 진행하는 것이 작업 속도 면에서 효율적입니다. 실제로 투두 리스트 형태로 작업이 하나씩 자동으로 완료되어 가는 과정을 지켜볼 수 있습니다.

 

스크린샷으로 피드백하기

이건 꿀팁인데 완성된 결과물을 확인하다가 디자인이나 레이아웃을 수정하고 싶을 때는, 화면을 캡처해서 그대로 클로드 코드에 전달하는 방법을 쓰시면 AI가 매우 잘 이해하고 수정도 정확히 해줍니다. 

 

이때도 수정 사항이 복잡하다면 곧바로 요청하기보다 플랜 모드로 전환한 다음 요청하는 게 좋아요. 예를 들어 "히어로 섹션의 전체 컨테이너 폭을 줄여주세요"처럼 구체적으로 요청하면, 클로드 코드가 어떤 방식(예: max-w-6xl 같은 유틸리티 클래스)으로 처리할지 계획을 먼저 보여주고, 이후 승인하면 반영해줍니다. 안 보이는 이미지가 있다면 "웹에서 샘플 이미지를 가져와 대신 채워줘"처럼 함께 요청할 수도 있어요.

 

복잡한 요청일수록 플랜 모드를 활용하자

정말 정확한 컨텍스트와 프롬프트를 처음부터 완벽하게 제공했다면 계획도 한두 번이면 끝날 수 있어요. 하지만 현실적으로 맥락이나 자료가 부족한 경우가 많기 때문에, 원하는 결과가 나올 때까지 계획을 여러 번 반복해서 다듬는 과정이 필요합니다. 그래서 실무에서는 플랜 모드를 정말 자주 활용하게 됩니다. 한 번의 개발 요청을 위해 계획 단계에서 여러 차례 수정 요청을 주고받는 경우도 흔하죠.

 

요청이 단순한 경우에는 엑셉트 에딧 모드로 바로 요청해도 괜찮지만, 요청 사항이 복잡하거나 여러 단계가 얽혀 있는 경우에는 반드시 플랜 모드로 먼저 계획을 세우는 걸 추천드려요. 그리고 요청할 때는 최대한 구체적인 컨텍스트를 함께 제공하는 것이 좋을것 같습니다. 예를 들어 단순히 "줄여줘"라고 하기보다 "태블릿 사이즈로 줄여줘", "모바일 사이즈로 줄여줘", 혹은 정확한 픽셀 값을 지정해주는 식으로 명확하게 요청하면 원하는 결과에 훨씬 가깝게 나옵니다.

 

알아두면 좋은 웹 레이아웃 용어

클로드 코드에 좀 더 명확한 컨텍스트로 요청하려면, 기본적인 웹 레이아웃 용어를 알아두는 것도 큰 도움이 됩니다. 컨테이너(Container)는 웹 페이지의 콘텐츠를 담당하는 영역을, 헤더(Header)는 로고나 내비게이션이 위치한 최상단 영역을, 히어로 섹션(Hero Section)은 랜딩 페이지에서 가장 먼저 보이는 첫 번째 섹션을, 푸터(Footer)는 카피라이트나 회사 정보, SNS 링크 등이 들어가는 페이지 맨 아래 마지막 영역을 뜻해요. 이런 용어들을 알고 있으면 "이 부분 좀 줄여줘" 같은 애매한 요청 대신 "히어로 섹션의 컨테이너 폭을 줄여줘"처럼 훨씬 명확하게 요청할 수 있습니다.

 

자주 하는 실수와 주의할 점

플랜 모드를 쓸 때 가장 흔한 실수는 계획 단위를 너무 크게 잡는 거예요. "전체 웹사이트를 완성해줘"처럼 큰 작업을 한 번에 계획하면, 계획서 자체가 방대해져서 검토하기 어렵고 결과물도 부분적으로 마음에 들지 않을 확률이 높아지는데요. 이럴 때는 큰 작업을 작은 작업 단위로 쪼개고, 그 작은 작업이 여전히 크다면 다시 더 작은 단위로 나눠서 하나씩 처리하는 워크플로우가 훨씬 안정적이에요.

 

또한 바이패스 퍼미션 모드는 편리하다는 이유만으로 습관적으로 사용하지 않는 게 좋아요. 특히 실제 운영 중인 프로젝트나 되돌리기 어려운 작업(파일 삭제, 데이터베이스 변경 등)이 포함된 경우에는 반드시 디폴트 모드나 수동 승인 방식으로 한 번 더 확인하는 습관을 들이시는 걸 추천드립니다.