![]()
목차
- 왜 파일 정리 자동화부터 시작해야 하나
- 실습 전 준비물
- 1단계, 정리 대상 폴더 만들기
- 2단계, Claude Code로 정리 스크립트 만들기
- 3단계, AntiGravity로 실행 흐름 고정하기
- 4단계, 로그 확인과 안전장치 넣기
- 초보자가 자주 하는 실수
- Q&A
- 오늘 5분 실습
- 미래이음연구소 안내
- 마무리
왜 파일 정리 자동화부터 시작해야 하나
비전공자가 Claude Code와 AntiGravity를 처음 배울 때 제일 좋은 주제 중 하나가 파일 정리 자동화다. 이유는 단순하다. 눈에 보이는 결과가 바로 나오고, 실수했을 때 어디가 잘못됐는지 추적하기도 쉽다. 반대로 웹서비스나 데이터베이스부터 들어가면 개념이 한꺼번에 몰려와서 금방 지친다. 파일 정리는 입력 폴더, 규칙, 출력 결과가 분명해서 바이브 코딩의 핵심 감각을 익히기 좋다.
오늘 실습 목표는 다운로드 폴더처럼 자꾸 어질러지는 공간을 예제로 삼아, 파일 확장자별로 자동 분류하는 스크립트를 만드는 것이다. Claude Code는 코드 초안을 빠르게 만들고 설명까지 붙여주는 역할을 맡고, AntiGravity는 실행 순서를 고정해서 다음에도 같은 품질로 다시 돌리게 해준다. 즉, 오늘 만드는 것은 단순한 정리 스크립트가 아니라 비전공자용 자동화 작업 템플릿이다.
실습 전 준비물
1. 실습 폴더 만들기
mkdir -p file-organizer-lab/inbox
mkdir -p file-organizer-lab/archive
cd file-organizer-lab
2. 테스트용 파일 넣기
아래처럼 가짜 파일 몇 개만 있어도 실습이 된다.
touch inbox/meeting-notes.txt
touch inbox/class-plan.pdf
touch inbox/photo-01.jpg
touch inbox/photo-02.png
touch inbox/student-list.xlsx
3. Claude Code 실행
claude
실행 후에는 요구사항을 한 번에 분명하게 주는 편이 좋다.
비전공자 실습용 Python 파일 정리 스크립트를 만들어줘.
현재 폴더의 inbox 안 파일을 확장자별로 docs, images, sheets 폴더로 옮기고,
이동한 결과를 archive/log.txt에 기록해줘.
처음 보는 사람이 읽어도 이해되게 주석을 충분히 넣어줘.
실수 방지를 위해 dry run 옵션도 넣어줘.
1단계, 정리 대상 폴더 만들기
처음부터 실제 다운로드 폴더에 대고 실습하지 마라. 초보자는 테스트 공간과 실전 공간을 분리하는 습관부터 들여야 한다. inbox 폴더를 따로 만든 이유가 여기에 있다. 자동화는 편하지만, 잘못 돌리면 잘못된 속도로 망가진다. 그래서 오늘은 일부러 작은 샘플 폴더를 만들고 거기서만 실습한다.
폴더 구조는 최대한 단순하게 가져간다. inbox는 입력, archive는 기록, 나머지는 정리 결과다. 이 구조가 좋으면 나중에 영수증 정리, 사진 백업, 수업 자료 정리에도 그대로 복사해서 쓸 수 있다.
file-organizer-lab/
├── inbox/
├── archive/
├── docs/
├── images/
└── sheets/
체크포인트
- 실습 폴더는 실제 업무 폴더와 분리한다
- 입력 폴더와 결과 폴더 이름을 다르게 둔다
- 로그 파일을 남길 위치를 먼저 정한다
2단계, Claude Code로 정리 스크립트 만들기
Claude Code의 장점은 코드를 대신 타이핑해주는 데서 끝나지 않는다. 왜 이렇게 나눴는지, 예외는 어떻게 처리하는지까지 같이 설명하게 만들 수 있다. 비전공자라면 이 설명이 거의 교재 역할을 한다. 아래는 Claude Code가 만들어줄 수 있는 형태의 예시다.
cat > organizer.py <<EOF
from pathlib import Path
import shutil
import sys
from datetime import datetime
BASE = Path(__file__).parent
INBOX = BASE / "inbox"
LOG_FILE = BASE / "archive" / "log.txt"
RULES = {
".txt": "docs",
".pdf": "docs",
".jpg": "images",
".png": "images",
".xlsx": "sheets"
}
def move_files(dry_run=False):
moved = []
for file_path in INBOX.iterdir():
if not file_path.is_file():
continue
target_folder = RULES.get(file_path.suffix.lower())
if not target_folder:
continue
destination_dir = BASE / target_folder
destination_dir.mkdir(exist_ok=True)
destination_path = destination_dir / file_path.name
moved.append(f"{file_path.name} -> {target_folder}")
if not dry_run:
shutil.move(str(file_path), str(destination_path))
LOG_FILE.parent.mkdir(exist_ok=True)
with LOG_FILE.open("a", encoding="utf-8") as log:
log.write(f"
[{datetime.now().isoformat()}]
")
if moved:
for item in moved:
log.write(item + "
")
else:
log.write("moved file 없음
")
if __name__ == "__main__":
dry_run_mode = "--dry-run" in sys.argv
move_files(dry_run=dry_run_mode)
EOF
핵심은 복잡한 AI 프롬프트가 아니라 규칙이 보이는 구조다. 확장자와 대상 폴더 대응표를 딕셔너리로 분리하면 나중에 .docx, .csv 같은 항목을 추가하기도 쉽다. dry run 옵션을 넣어둔 것도 중요하다. 처음에는 실제 이동 없이 결과만 확인하는 습관이 사고를 크게 줄인다.
실행 명령
python3 organizer.py --dry-run
python3 organizer.py
find . -maxdepth 2 -type f | sort
3단계, AntiGravity로 실행 흐름 고정하기
한 번 성공했다고 끝이 아니다. 진짜 문제는 내일 다시 돌릴 때 생긴다. 어제는 기억에 의존해서 실행했고 오늘은 순서를 하나 빼먹는다. 그래서 AntiGravity가 필요하다. 실행 순서를 파일로 고정하면 비전공자도 같은 흐름을 반복할 수 있다.
예시는 아주 단순하게 잡아도 된다. 테스트, 실행, 결과 확인 세 단계만 묶어도 충분하다.
cat > antigravity.yaml <<EOF
steps:
- name: dry run check
run: python3 organizer.py --dry-run
- name: real move
run: python3 organizer.py
- name: review result
run: cat archive/log.txt
EOF
실행은 아래처럼 정리할 수 있다.
antigravity run antigravity.yaml
이 구조의 장점은 두 가지다. 첫째, 실행 순서가 문서가 아니라 실행 가능한 파일로 남는다. 둘째, 팀원이나 수강생에게 전달할 때 말로 설명하지 않아도 된다. 비전공자 교육에서는 바로 이 재현성이 엄청 중요하다.
4단계, 로그 확인과 안전장치 넣기
자동화는 돌아가게 만드는 것만으로는 반쪽이다. 나중에 무슨 일이 일어났는지 알 수 있어야 한다. 그래서 archive/log.txt를 남기게 했다. 누가 봐도 오늘 몇 시에 어떤 파일이 어디로 이동했는지 보이면 문제를 추적하기 쉬워진다.
여기서 한 단계 더 가면 백업 폴더와 제외 규칙도 넣을 수 있다. 예를 들어 파일 이름에 temp가 들어가면 건너뛰거나, 이미 같은 이름이 있으면 날짜를 붙여서 저장하게 만들 수 있다. 하지만 처음 실습에서는 욕심내지 말고 규칙 하나를 끝까지 안정적으로 돌리는 데 집중하는 편이 낫다.
추천 안전장치
- 처음 실행은 반드시 dry run으로 확인한다
- 원본 폴더를 통째로 백업해 둔다
- 로그 파일을 남겨서 결과를 추적한다
- 확장자 규칙을 5개 이내로 작게 시작한다
초보자가 자주 하는 실수
- 실습 첫날 실제 다운로드 폴더에 바로 적용한다
- 규칙을 너무 많이 넣어 한 번에 복잡하게 만든다
- dry run 없이 바로 실행해서 어디로 이동했는지 놓친다
- 로그를 남기지 않아 재현과 복구가 어려워진다
- Claude Code가 준 초안을 그대로 믿고 직접 테스트를 안 한다
마지막 항목이 특히 중요하다. AI가 준 코드는 출발점이지 면허증이 아니다. 비전공자일수록 더 짧은 테스트 사이클을 가져가야 한다. 한 줄 바꾸고, 바로 실행하고, 결과를 눈으로 확인하는 방식이 오래 간다.
Q&A
Q1. 꼭 Python으로 해야 하나
아니다. Node.js로도 된다. 다만 파일 읽기와 이동 예제가 단순해서 비전공자 입문에는 Python이 편하다.
Q2. AntiGravity 없이도 되지 않나
된다. 하지만 반복 실행 품질이 흔들린다. 한 번 성공한 순서를 다시 재생하게 해준다는 점에서 AntiGravity가 꽤 유용하다.
Q3. 같은 이름의 파일이 있으면 어떻게 하나
날짜를 파일명 뒤에 붙이거나 덮어쓰기 전에 중단하도록 규칙을 추가하면 된다. 처음 실습에서는 중단 방식이 더 안전하다.
Q4. 이미지와 문서를 더 세분화해도 되나
당연히 된다. 다만 처음에는 docs, images, sheets 정도로만 나누는 편이 구조를 이해하기 쉽다.
Q5. 이 실습 다음에는 무엇을 해보면 좋나
영수증 폴더 정리, 강의자료 자동 분류, 학생 제출물 이름 통일 같은 작업으로 확장하면 좋다. 모두 같은 원리로 돌아간다.
오늘 5분 실습
- 실습 폴더를 새로 만든다.
- txt, pdf, jpg 파일을 각각 하나씩 넣는다.
- Claude Code에게 정리 스크립트 초안을 요청한다.
- dry run으로 결과를 먼저 확인한다.
- 실제 실행 후 archive/log.txt를 열어 이동 기록을 읽는다.
이 5분 실습이 중요한 이유는 결과가 눈으로 바로 보이기 때문이다. 파일이 이동하고 로그가 쌓이는 경험을 한 번 하면, 비전공자도 자동화가 마법이 아니라 규칙의 조합이라는 감각을 금방 잡는다.
미래이음연구소 안내
미래이음연구소 바이브 코딩 교육
이신우 소장이 운영하는 미래이음연구소에서는 Claude Code, AntiGravity, 실무 자동화 도구를 비전공자 눈높이로 훈련한다.
강의 문의: 010-3343-4000 | lab.duonedu.net
마무리
비전공자에게 바이브 코딩은 거대한 앱을 한 번에 만드는 기술이 아니다. 반복되는 귀찮음을 작은 규칙으로 바꾸고, 그 규칙을 다시 실행 가능한 흐름으로 묶는 기술이다. Claude Code는 시작 속도를 올려주고, AntiGravity는 그 흐름을 고정한다. 오늘 만든 파일 정리 자동화는 아주 작은 예제지만, 실무 감각을 키우기에는 오히려 이런 작은 자동화가 더 강하다.
중요한 것은 멋진 데모보다 재실행 가능한 구조다. 오늘은 파일 정리였지만 내일은 제출물 정리, 강의자료 분류, 블로그 초안 폴더 정리로 바로 이어질 수 있다. 바이브 코딩이 재미있어지는 순간도 바로 여기다. 내가 만든 규칙이 실제 귀찮음을 줄여줄 때, 그때부터 자동화는 공부가 아니라 도구가 된다.
참고자료
- Anthropic Claude Code 문서
- AntiGravity CLI 문서
- Python pathlib 문서