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를 유지하고 별도 승인을 하지 않았다면 로컬 명령으로 파일을 쓸 수 없습니다.
안전하게 작업을 시작할 때는 이 세 가지를 함께 정합니다.
- 작업 폴더를 작게 연다.
- 필요한 만큼만 권한을 고른다.
- 원본, 결과물, 금지 사항을 요청문에 적는다.
