Part 3· 스크립트 만들기···Ch 9 / 17

첫 스크립트 — 자연어로 다운로드 폴더 정리하기

다운로드 폴더에 쌓인 파일을 자연어 한 마디로 종류별 서브 폴더에 정리하게 해요. 코드 한 줄 안 써도 첫 스크립트가 손에 쥐어져요.

선민호 CTO
선민호 CTO
AI로 프로덕트 굽는 빌더

이 챕터를 끝내면 Codex로 내 컴퓨터 파일을 한 번 정리해본 상태가 돼요. Part 2 웹페이지와는 다르게 "결과물"이 아니라 반복되는 작업을 Codex한테 맡기는 첫 경험을 쌓는 챕터예요. Part 1 마지막에서 적어둔 AGENTS.md 규칙(드라이런·이동 vs 복사 같은 안전 기본값)이 이번 작업부터 자동으로 적용돼요.

TIP· 체감 차이

다운로드 폴더에 쌓인 파일 100개를 종류별로 드래그해서 옮기는 데 보통 10~15분. Codex한테 넘기면 1분 안에 목록 확인 + 이동까지 끝나요. 한 번 흐름에 익숙해지면 "이런 걸 여태 손으로 했다니" 싶어져요.

웹페이지랑 뭐가 다른가요?

Part 2에서 만든 건 브라우저에 띄우는 "결과물"이었어요. 여기서부턴 다릅니다. 내가 매일 손으로 하던 반복 작업을 Codex한테 맡기는 단계예요. "스크립트"라고 겁먹을 필요 없어요. Codex한테 뭘 해달라고 말만 하면 알아서 필요한 코드를 짜고 실행까지 해요.

오늘 할 일 — 다운로드 폴더 정리

다운로드 폴더에 쌓인 파일 수십~수백 개. 다운로드 폴더 안에 _정리 폴더를 만들고, 그 안에 '이미지'·'PDF'·'설치파일'·'기타' 네 폴더로 분류해서 옮기고 싶어요.

다운로드 폴더로 시나리오를 잡은 이유는 세 가지.

  • 위치가 모든 macOS 사용자에게 같음 (~/Downloads). iCloud Drive 같은 변수가 끼어들 여지 없음.
  • 모든 작업이 다운로드 폴더 한 군데 안에서만 일어나요 (서브 폴더로 이동). 다른 디렉토리로 안 옮기니 경로 혼동·권한 함정이 한 곳에서만 풀려요.
  • 거의 항상 어지럽혀져 있어서 "정리할 게 없는데요" 상태가 잘 안 나와요.

폴더 이름을 _정리로 한 건 macOS Finder가 알파벳 정렬할 때 언더스코어가 맨 위로 와서 결과를 바로 발견할 수 있기 때문이에요.

Codex한테 시켜보기

Codex 앱을 열고 새 스레드를 시작해요. 특정 프로젝트 폴더는 꼭 필요하지 않아요 — 시스템 전반을 다루는 일이니까요.

입력창에 이렇게 적어요.

내 다운로드 폴더 안의 파일들을 종류별로 정리해줘.

다운로드 폴더 안에 '_정리'라는 폴더를 만들고,
그 안에 '이미지', 'PDF', '설치파일', '기타' 네 폴더로 나눠서 옮겨줘.

- 이미지 확장자(jpg, png, gif, webp, heic, svg)는 '이미지' 폴더로
- PDF는 'PDF' 폴더로
- 설치 파일(dmg, pkg, zip, app)은 '설치파일' 폴더로
- 나머지는 '기타' 폴더로

이미 만들어진 '_정리' 폴더와 그 하위 폴더는 건드리지 마.
옮기기 전에 어떤 파일이 어느 폴더로 갈지 먼저 목록으로 보여주고,
내가 '진행' 하면 실제로 옮겨줘.

학습자가 파일 경로 문법(~/Downloads/...)을 외울 필요는 전혀 없어요. "다운로드 폴더" 한국어로 부탁하면 Codex가 알아서 올바른 경로(macOS의 ~/Downloads)로 바꿔 실행해요.

마지막 문장이 핵심이에요. 실제 실행 전에 계획부터 보여달라고 부탁해요. Codex가 다운로드 폴더를 스캔하고 어떤 파일이 어느 서브 폴더로 갈지 목록을 보여주면, 훑어보고 "진행" 한 마디로 실행.

Codex가 다운로드 폴더를 스캔해서 '이미지 23개, PDF 12개, 설치파일 8개, 기타 15개' 같은 분류 계획을 표로 보여주고 마지막에 '진행할까요?'로 확인을 구하는 응답 화면

원하는 대로 안 움직일 때

첫 시도에 Codex가 이상하게 굴 때가 있어요. 그때 프롬프트에 한 줄 추가하면 풀려요.

  • 권한 문제 — macOS 시스템 설정 → 개인정보보호 → 파일·폴더 접근에서 Codex에 다운로드 폴더 접근 권한을 허용해야 해요. 한 번 풀면 이후 작업에선 다시 안 물어요.

macOS 시스템 설정 → 개인 정보 보호 및 보안 → 파일 및 폴더 패널에서 Codex 항목 아래 'Downloads Folder' 토글이 꺼져 있다가 켜진 상태

  • _정리 폴더가 없다고 멈추면 — "_정리와 그 아래 네 폴더는 없으면 알아서 만들어줘" 한 줄 추가.
  • 이미 있는 같은 이름 파일에서 멈추면 — "같은 이름 파일이 이미 있으면 뒤에 -1, -2 같은 숫자를 붙여서 옮겨줘" 한 줄 추가.
  • 중요한 파일도 옮기려 하면 — 제외 조건 추가. "이름이 '중요' 또는 'KEEP'로 시작하면 그대로 두고."

실제로 마주치는 실패 사례

주의· 복사 vs 이동

Codex는 안전을 위해 기본으로 복사를 택할 때가 있어요. 원본을 없애고 싶으면 **명시적으로 "이동(move)"**이라고 써야 해요. "복사가 아니라 이동. 원본은 남기지 마."

처음 따라할 땐 오히려 복사로 한 번 돌리고 결과를 본 뒤, 만족스러우면 그때 원본 정리하는 게 가장 안전해요.

사례: 스크린샷이 죄다 '기타'로 분류됨 → 파일 이름으로 분류했을 가능성. "분류 기준은 확장자만. 이름은 무시해."

사례: 용량 큰 동영상에서 멈춘 것처럼 보여요 → 이동이 실제로 오래 걸리는 중. "지금 어디 단계야? 진행률?"로 확인.

사례: .dmg 파일이 '기타'로 갔어요 → Codex가 확장자 매핑을 다르게 해석한 경우. 분류 규칙을 더 명시적으로 — ".dmg, .pkg, .zip은 무조건 '설치파일'." 한 줄 더 박기.

응용 — 같은 방식으로 정리할 것들

다운로드 폴더가 돌아가면 다른 곳도 같은 패턴으로 부탁할 수 있어요.

  • 30일 넘은 파일 정리 — "다운로드 폴더에서 30일 넘은 파일은 _오래된 폴더로. 설치 파일(.dmg·.pkg·.zip)은 삭제 후보 목록만."
  • 바탕화면 정리 — "바탕화면 파일도 같은 패턴으로 분류해줘." (다운로드 폴더에서 익혔으면 다른 폴더는 한 마디로 끝)
  • 사진 월별 정리 — "내 사진 폴더의 사진을 촬영 날짜 기준으로 'YYYY-MM' 이름의 월별 폴더로 나눠줘."
  • 중복 제거 — "다운로드 폴더에 같은 내용 파일이 있으면 하나만 남기고 삭제 후보 목록."

공통 패턴은 하나예요. 실행 전에 계획 보기 → 내가 확인 → 실제 실행. 이 안전 패턴은 Part 3 끝까지 반복돼요.

다음 챕터에서

"내 컴퓨터 파일 한 번"이 돌아갔어요. 다음 챕터에서는 업무에서 가장 자주 마주치는 형태 — 표(CSV·엑셀) 데이터를 다뤄봐요. 수백 행을 자연어 한 줄로 필터·정렬·합계까지 뽑는 흐름을 익혀요. Part 1에서 적어둔 AGENTS.md 규칙(인코딩·날짜 형식·드라이런 규칙)이 자동으로 따라붙는 걸 그때 체감하게 돼요.