3장. 프로젝트 폴더와 권한 이해하기

작업 지시와 읽기 전용 권한을 함께 정합니다

원본 보고서와 지난달 결과가 함께 있는 폴더를 열어 보겠습니다. ChatGPT에 “읽기만 해줘”라고 요청하면 대체로 그 지시를 따릅니다. 다만 요청문만으로 파일 쓰기를 기술적으로 막을 수는 없습니다. 파일을 읽는 일과 파일을 바꿀 수 있는 권한은 처음부터 따로 정해야 합니다.

그래서 첫 요청에서는 파일 이름과 용도만 확인하고, 아직 파일을 만들거나 수정하지 말라고 분명히 적습니다. 터미널에는 이렇게 요청하면 됩니다.

현재 폴더에 어떤 파일이 있는지 확인해줘.아직 파일을 만들거나 수정하지 말고, 파일 이름과 용도만 설명해줘.

첫 작업에서는 요청문과 권한을 모두 읽기 전용으로 맞춰 둡니다. 지시는 실수를 줄이도록 작업 범위를 알려주고, 권한은 실제로 할 수 있는 일을 제한하는 경계입니다. 작업 지시만으로 권한을 대신할 수 없고, 권한만으로 작업 지시를 대신할 수도 없습니다.

세 가지 권한 프로필의 범위를 확인합니다

세 프로필은 로컬 명령이 어디까지 읽고 쓸 수 있는지를 기준으로 나뉩니다. 2026년 7월 10일 공식 권한 안내 기준으로 로컬 명령에는 세 가지 기본 권한 프로필이 있습니다. 다만 이 기능은 아직 베타이므로 이름과 동작이 바뀔 수 있습니다.

프로필허용 범위처음 쓸 때
:read-only로컬 명령을 읽기 전용으로 실행자료 파악과 계획
:workspace현재 작업 폴더와 시스템 임시 폴더 안에서 쓰기 허용승인한 결과 파일 만들기
:danger-full-access로컬 샌드박스 제한을 없앰첫 실습에서는 사용하지 않기

:workspace를 골라도 “안전한 자동 실행”이 되는 것은 아닙니다. 작업 폴더 안에서는 기존 파일을 바꾸거나 지울 수 있으므로, 원본 폴더를 따로 두고 변경 내용을 확인해야 합니다. :danger-full-access는 로컬 샌드박스 제한을 없애므로, 넓은 접근이 꼭 필요한 이유를 설명할 수 있을 때만 고려합니다.

codex를 실행한 다음에는 현재 권한부터 확인합니다.

/permissions

목록에서 이번 작업에 맞는 프로필을 고릅니다. 화면에 위 이름이 보이지 않는다면 예전 문서에 나온 이름을 임의로 적용하지 마세요. 설치된 버전과 조직 정책에 따라 설정이 달라질 수 있으니, /permissions에 실제로 표시된 현재 범위를 확인합니다.

공식 문서도 새 권한 프로필과 예전 sandbox_mode 설정을 한 세션에서 섞지 말라고 안내합니다. 따라서 이 장에서는 config.toml을 직접 고치지 않습니다. 세부 설정은 10장의 설정과 권한 규칙에서 확인합니다.

샌드박스와 승인을 따로 봅니다

권한을 설명하다 보면 샌드박스와 승인을 같은 뜻처럼 쓰기 쉽습니다. 하지만 둘은 맡은 역할이 다릅니다.

  • 샌드박스: 로컬 명령이 읽거나 쓸 수 있는 파일, 접근할 수 있는 네트워크 같은 기술적 경계
  • 승인: 그 경계를 넘거나 특정 행동을 하기 전에 멈춰서 사용자에게 묻는 절차
  • 작업 지시: 어떤 결과를 원하는지, 무엇을 하지 말아야 하는지 적는 말

샌드박스가 작업 폴더 밖 쓰기를 막고 있어도, 별도 승인을 거치면 더 넓은 동작이 가능할 수 있습니다. 반대로 요청문에 “마음대로 수정해”라고 적었더라도 :read-only를 유지하고 별도 승인을 하지 않았다면 로컬 명령으로 파일을 쓸 수 없습니다.

안전하게 작업을 시작할 때는 이 세 가지를 함께 정합니다.

  1. 작업 폴더를 작게 연다.
  2. 필요한 만큼만 권한을 고른다.
  3. 원본, 결과물, 금지 사항을 요청문에 적는다.