제4부 · Codex로 직접 만들기

34단계코딩 없이 쓰는 Codex

Codex는 폴더 속 파일을 규칙대로 다루는 데도 쓸모가 있습니다. 원본은 복사본으로 가져와 커밋해 두고, 결과는 건수와 변경 내역으로 확인합니다.

걸리는 시간 · 읽기 약 10분 · 따라 하기 약 60분 · 난이도 ★★☆ 실무

이 단계를 마치면

  • 폴더 정리, 파일 합치기, 보고서 초안처럼 코드 없는 일을 Codex에 로컬로 맡길 수 있습니다.
  • 원본을 복사본으로 가져오고 Git 커밋과 읽기 전용 모드로 보호할 수 있습니다.
  • 받은 결과를 건수, 합계, 변경 내역으로 확인할 수 있습니다.

24단계에서 Claude Code로 지점별 파일을 합치고 보고서 초안을 받았습니다. 같은 일을 Codex로도 할 수 있습니다. 31단계에서 본 것처럼 공식 안내는 개발이 아닌 업무에 Work를 권합니다. 파일 몇 개를 첨부해 보고서 한 편을 받는 일이라면 Work가 더 간편합니다. 그런데 이런 경우에는 Codex가 잘 맞습니다.

이런 일 Codex가 맞는 까닭
폴더 하나에 파일이 수십, 수백 개 있습니다 첨부할 필요 없이 폴더 전체를 작업 범위로 삼습니다
같은 규칙을 매달 되풀이합니다 규칙을 AGENTS.md에 적어 두면 다음 달에도 그대로 따릅니다
무엇이 바뀌었는지 기록으로 남겨야 합니다 Git 커밋과 /diff로 바뀐 파일과 내용을 확인합니다
원본이 절대 바뀌면 안 됩니다 읽기 전용 모드와 커밋으로 원본이 그대로인지 확인할 수 있습니다

어떤 일을 맡길 수 있는지는 24단계의 세 갈래와 같습니다. 읽고 합치기, 초안 만들기, 반복 파일 작업입니다. 이 단계에서는 Codex에서 달라지는 점만 모아 봅니다.

원본은 복사본으로, 그리고 커밋

24단계의 원칙은 그대로입니다. 원본·작업·결과 폴더를 나누고, 원본 폴더에는 받은 파일의 복사본만 넣고, 원본은 읽기만 하게 합니다. 개인정보나 기밀 열은 넣기 전에 사람이 직접 지웁니다. Codex가 읽은 파일 내용은 답을 만들기 위해 모델로 전달되기 때문에, "개인정보 열은 지워 줘"라는 부탁은 이미 늦습니다. 7단계의 원칙입니다.

Codex에서는 여기에 두 가지를 더합니다.

첫째, 원본을 넣은 직후에 커밋합니다. 업무 폴더에도 32단계에서 본 세 줄(git init, git add ., git commit)로 기록을 켜 두면 원본 파일이 조금이라도 바뀌었을 때 git status와 /diff에 곧바로 드러납니다. 24단계에서 "업무 파일에는 되돌릴 기록이 없다"고 했던 약점을 Codex에서는 Git으로 메울 수 있습니다. 이 폴더는 GitHub에 올리지 않습니다. 기록은 내 컴퓨터에만 둡니다. 커밋은 터미널에서 직접 하는 편이 간단합니다. workspace-write에서도 .git 폴더는 보호되므로, Codex에게 커밋을 시키면 승인 요청이 올 수 있습니다.

둘째, 살필 때는 읽기 전용으로 켭니다. 처음 폴더를 훑어보고 대응표를 받는 동안은 아무것도 고칠 필요가 없습니다.

codex --sandbox read-only --ask-for-approval on-request

대응표를 확인하고 실제로 합칠 때가 되면 /permissions로 Auto로 바꿉니다. workspace-write는 작업 폴더 안에서만 쓰므로, 폴더 밖의 파일은 허락 없이 건드리지 못합니다. 다만 원본 폴더도 작업 폴더 안에 있으니 쓰기가 막히지는 않습니다. 원본은 AGENTS.md의 규칙과 커밋으로 지킵니다.

## 규칙
- 원본 폴더의 파일은 읽기만 한다. 고치거나 지우거나 이름을 바꾸지 않는다.
- 새 파일은 작업 폴더나 결과 폴더에 만든다.
- 파일을 지우거나 덮어쓰기 전에는 반드시 묻는다.
- 새 도구를 설치하기 전에 반드시 묻는다.

엑셀 파일은 CSV로. Codex가 엑셀 파일을 읽으려고 도구를 설치하겠다고 할 수 있습니다. 인터넷이 기본으로 꺼져 있으니 승인 요청이 오고, 회사 PC에서는 설치가 막히기도 합니다. 이럴 때는 24단계와 같이 엑셀에서 CSV(UTF-8)로 저장해 넣는 것이 가장 빠릅니다.

폴더 정리와 파일 합치기

폴더 정리. 파일 이름을 규칙에 맞추거나 종류별로 하위 폴더에 나누는 일은 Codex가 명령 몇 개로 끝냅니다. 속도가 빠른 만큼 순서를 지킵니다. 먼저 "바꾸기 전 이름과 바꾼 뒤 이름"을 표로 받고, 원본을 건드리지 않도록 결과 폴더에 복사해서 이름을 바꾸게 하고, 열 개쯤 먼저 해 본 뒤 나머지를 맡깁니다. 끝나면 /diff나 git status로 원본 폴더에 변화가 없는지 봅니다.

파일 합치기. 합치기 전에 대응표를 먼저 받는 순서도 24단계와 같습니다. 파일마다 어떤 항목이 있고, 이름이 다른 항목 가운데 어느 것을 같은 것으로 볼지, 날짜와 금액 형식을 어떻게 맞출지를 표로 받아 내가 고친 뒤에 합칩니다. 할 일이 분명하고 파일이 많으면 32단계에서 본 것처럼 GPT-6 Luna가 한도를 아끼기에 좋습니다. 대응표를 짜는 판단이 까다로우면 GPT-6 Sol로 대응표를 받고, 실제 합치기는 Luna로 넘기는 식으로 나눠 쓸 수도 있습니다.

보고서 초안과 결과 확인

보고서 초안은 합친 표에서만 받습니다. 숫자는 표에 있는 것만 쓰게 하고, 계산한 값에는 계산식을 붙이고, 해석이나 원인 추정은 [짐작]으로 표시하게 합니다. 보고서 파일을 Codex로 만들 수도 있지만, 발표 자료처럼 모양이 중요한 결과물이라면 합친 표를 Work에 넘겨 파일로 만드는 편이 편할 수 있습니다. 한 일에 두 도구를 이어 쓰는 방식입니다.

결과 확인은 30단계의 원칙을 따릅니다. "다 됐습니다"라는 말을 믿지 않고 직접 봅니다. Codex에서는 확인 수단이 하나 더 있습니다.

확인 방법
건수 원본 파일별 줄 수의 합과 합친 표의 줄 수가 같은지 봅니다
합계 원본 하나를 직접 열어 합계를 보고, 합친 표의 같은 부분과 비교합니다
빈 값 합친 표에서 비어 있는 값이 몇 개이고 어느 원본에서 왔는지 목록으로 받습니다
변경 내역 git status와 /diff로 원본 폴더에 바뀐 파일이 하나도 없는지 봅니다

건수와 빈 값은 Codex에 시켜도 되지만, 합계 하나는 반드시 내 눈으로 원본을 열어 비교합니다. 합친 쪽과 검산한 쪽이 같으면 같은 실수를 두 번 할 뿐입니다. 확인이 끝나면 결과 폴더를 커밋해 둡니다. 다음 달에 같은 일을 할 때 이번 결과와 비교할 기준이 됩니다.

현장 장면

가람시 민원여권과 배수민 주무관은 매달 초 읍면동 열네 곳에서 올라온 민원 처리 현황을 한 표로 합쳐 과장에게 올립니다. 파일 형식은 제각각이었습니다. 어떤 동은 엑셀로, 어떤 면은 CSV로 보냈고, 파일 이름도 "9월현황", "민원_0930", "현황표(최종)"처럼 뒤죽박죽이었습니다. 시청은 ChatGPT Business를 도입했고, 배 주무관은 제3부 과정을 마친 뒤 Codex를 설치해 두었습니다.

배 주무관은 C:\work\minwon-2609 폴더를 만들고 원본·작업·결과 하위 폴더를 나눴습니다. 공유 폴더에서 파일 열네 개를 복사해 오기 전에, 민원인 이름과 연락처 열을 엑셀에서 직접 지운 사본부터 만들었습니다. 엑셀 파일 다섯 개는 CSV(UTF-8)로 다시 저장했습니다. 그다음 git init을 하고 원본을 넣은 채로 첫 커밋을 했습니다. AGENTS.md에는 원본 보호 규칙 네 가지를 적었습니다.

Codex는 읽기 전용으로 켰습니다. 파일 이름을 "읍면동명_2026-09.csv"로 맞추는 미리보기 표를 받아 보니, "현황표(최종)"이 어느 동의 파일인지 Codex도 알지 못해 "확인 필요"로 표시해 두었습니다. 배 주무관이 파일을 열어 보니 산내면 것이었습니다. 이어 대응표를 받았습니다. 두 곳은 "처리완료"와 "완료"를 섞어 썼고, 한 곳은 날짜를 "9.3." 형식으로 적었습니다. 배 주무관은 상태 값을 "완료, 처리중, 이관" 세 가지로 맞추고 날짜는 2026-09-03 형식으로 통일하라고 고쳐 적었습니다.

/permissions로 Auto로 바꾼 뒤 이름 바꾼 사본은 작업 폴더에, 합친 표는 결과 폴더에 만들게 했습니다. "총 1,286건을 합쳤습니다." 배 주무관은 건수 검산을 시켰습니다. 원본 줄 수를 더하니 1,302건이었습니다. 차이 나는 열여섯 건은 한 동 파일 맨 아래의 "합계" 줄과 빈 줄을 Codex가 데이터로 볼지 말지 오락가락한 데서 나왔습니다. 배 주무관이 합계 줄은 빼고 빈 줄만 버리라고 정리하자 건수가 맞았습니다. 한 동의 완료 건수는 원본을 직접 열어 세어 보았고, 그것도 맞았습니다.

마지막으로 git status를 쳤습니다. 원본 폴더에는 바뀐 파일이 하나도 없었습니다. 보고서 초안에서 "이관 건이 늘어난 것은 인력 부족 때문으로 보인다"는 문장에는 [짐작] 표시가 붙어 있었습니다. 배 주무관은 그 문장을 지우고 사실만 남겨 과장에게 올렸습니다. 그리고 AGENTS.md 맨 아래에 한 가지를 더 적었습니다. "합계 줄과 빈 줄은 데이터에서 뺀다." 다음 달에는 이 설명을 다시 하지 않아도 됩니다.

따라 하기

  1. 업무 정리용 작업 폴더를 만들고 원본·작업·결과 하위 폴더를 나눈 뒤 git init을 합니다. 성공 기준: 폴더 이름에 한글과 공백이 없고, git status가 실행됩니다.
  2. 합칠 파일 서너 개의 복사본을 원본 폴더에 넣습니다. 개인정보와 기밀 열은 넣기 전에 직접 지우고, 엑셀은 CSV(UTF-8)로 저장합니다. 그다음 커밋합니다. 성공 기준: 원본 폴더에 실명·연락처가 없고, git log에 첫 커밋이 보입니다.
  3. AGENTS.md에 원본 보호 규칙을 적고 커밋합니다. 성공 기준: "원본 파일 하나를 고쳐 줘"라고 하면 규칙을 들어 거절하거나 먼저 묻습니다.
  4. codex --sandbox read-only --ask-for-approval on-request로 켜고, 아래 첫 번째 프롬프트로 대응표와 이름 바꾸기 미리보기를 받습니다. 성공 기준: 파일이 하나도 바뀌지 않은 채 표만 돌아옵니다.
  5. 대응표를 고친 뒤 /permissions로 Auto로 바꾸고 합치게 합니다. 성공 기준: 결과 폴더에 합친 파일이 생기고, git status에 원본 폴더의 변경이 없습니다.
  6. 두 번째 프롬프트로 검산하고, 합계 하나는 원본을 직접 열어 비교합니다. 성공 기준: 건수가 원본 합과 같고, 내가 센 합계가 표와 맞습니다.
  7. 세 번째 프롬프트로 보고서 초안을 받고, 확인이 끝나면 결과를 커밋합니다. 성공 기준: 숫자마다 출처나 계산식이 있고, 짐작인 문장이 따로 표시돼 있습니다.

복사해 쓰는 프롬프트

원본 폴더의 파일들을 하나의 표로 합치려고 해. 지금은 읽기만 하고 아무 파일도 만들거나 고치지 마.
1. 파일마다 어떤 항목(열)이 있는지, 데이터가 몇 줄인지
2. 이름은 다르지만 같은 뜻으로 보이는 항목과 그렇게 본 이유
3. 날짜·상태 값 형식이 파일마다 어떻게 다른지, 통일한다면 어떤 형식으로 할지
4. 합계 줄, 빈 줄, 제목 줄처럼 데이터가 아닌 줄이 있는 파일
5. 파일 이름을 [이름 규칙]으로 바꾼다면 바꾸기 전과 후 이름 표. 어느 파일인지 모르겠으면 "확인 필요"로 표시해 줘
결과 폴더의 합친 표를 검산해 줘. 고치지는 말고 보고만.
1. 원본 파일별 데이터 줄 수, 그 합계, 합친 표의 줄 수
2. 두 숫자가 다르면 어느 파일에서 몇 줄이 차이 나는지와 그 이유
3. 합친 표에서 비어 있는 값의 수와 그 값이 어느 원본에서 왔는지
4. git status 기준으로 원본 폴더에 바뀐 파일이 있는지
확인하지 못한 것은 확인하지 못했다고 적어 줘.
합친 표를 바탕으로 [누구]에게 올릴 [보고서 종류] 초안을 결과 폴더에 새 파일로 만들어 줘.
- 숫자는 표에 있는 것만 쓰고, 계산한 값은 어떤 항목을 어떻게 계산했는지 옆에 적어 줘.
- 원인이나 해석처럼 표에서 바로 나오지 않는 문장은 [짐작]이라고 표시해 줘.
- 분량은 [한 페이지] 안으로.

막히면 이렇게

증상 원인 해결
엑셀을 읽으려다 설치 승인을 묻고 막힙니다 엑셀을 읽는 도구가 없고, 인터넷이 꺼져 있거나 회사 PC가 설치를 막습니다 엑셀에서 CSV(UTF-8)로 저장해 원본 폴더에 넣습니다
읽기 전용인데 파일을 만들려고 허락을 묻습니다 요청 문장이 실행 요청으로 읽혔습니다 거절하고, "아무 파일도 만들거나 고치지 마"를 첫 문장에 넣어 다시 요청합니다
합친 표의 건수가 원본 합과 다릅니다 합계 줄·빈 줄·제목 줄을 데이터로 읽거나 버렸습니다 차이 나는 파일을 직접 열어 보고, 뺄 줄과 남길 줄을 알려 준 뒤 AGENTS.md에도 적습니다
git status에 원본 파일이 바뀌었다고 나옵니다 원본 폴더에서 이름을 바꾸거나 고쳤습니다 원본 폴더를 커밋 시점으로 되돌리고(26단계), 규칙을 다시 확인한 뒤 결과 폴더에 복사해 작업하게 합니다
한글이 깨져 보입니다 파일마다 인코딩이 다릅니다 CSV로 저장할 때 UTF-8을 고르거나, 인코딩을 확인해 맞춰 달라고 합니다

스스로 점검

  • ☐ 원본 폴더에 복사본만 넣고 커밋한 뒤, 작업이 끝나고 git status로 원본이 그대로인지 확인했습니까?
  • ☐ 대응표를 받을 때는 읽기 전용으로, 합칠 때는 Auto로 권한을 바꿔 썼습니까?
  • ☐ 합친 표의 건수와 합계 하나를 원본과 직접 맞춰 봤습니까?
점검 해설 보기
  1. 원본 폴더에 복사본만 넣고 커밋했으며, 작업이 끝난 뒤 git status에 원본 폴더의 변경이 하나도 없으면 통과입니다. 원본이 바뀌어 있다면 커밋 시점으로 되돌리고, 「원본은 복사본으로, 그리고 커밋」의 규칙을 AGENTS.md에 다시 적은 뒤 결과 폴더에서 작업하게 합니다.
  2. 대응표와 미리보기를 받을 때는 읽기 전용으로 켜고, 실제로 합칠 때만 Auto로 바꿨으면 통과입니다. 처음부터 Auto로 시작했다면 codex --sandbox read-only --ask-for-approval on-request로 다시 켜서 「따라 하기」 4~5번을 해 봅니다.
  3. 합친 표의 건수가 원본 줄 수의 합과 같고, 원본 하나를 직접 열어 센 합계가 표와 맞으면 통과입니다. 숫자가 다르면 두 번째 프롬프트로 차이 나는 파일을 찾고, 그 파일을 직접 열어 합계 줄이나 빈 줄이 섞였는지 봅니다. 24단계의 검산 표도 함께 참고합니다.

기억할 것

  • 파일이 많고 규칙이 되풀이되며 변경 기록이 필요한 일은 Codex로, 보고서 한 편은 Work로 맡기는 편이 편합니다.
  • 원본은 복사본으로 가져와 커밋하고, 살필 때는 읽기 전용으로 켭니다. 원본이 그대로인지는 git status로 봅니다.
  • 받은 결과는 건수·합계·빈 값·변경 내역으로 확인하고, 반복되는 설명은 AGENTS.md에 적어 둡니다.

더 알아보기

v2026.09.27.7 · 2026년 9월 27일 기준 · CEO비즈니스스쿨 김문수 교수 · 기능과 화면은 자주 바뀝니다. 책과 화면이 다르면 부록의 공식 문서가 기준입니다.