Appendix B: KRenamer 실습 프롬프트 가이드¶
"AI와 함께 KRenamer를 처음부터 만드는 완전한 프롬프트 모음집"
이 부록에서는 Appendix A에서 학습한 AI 협업 기법을 실제로 적용하여 KRenamer를 처음부터 만들 수 있는 구체적인 프롬프트들을 제공합니다. 각 단계별로 필요한 AI 입력과 예상 결과를 상세히 안내하여, 여러분이 직접 AI와 대화하며 KRenamer를 구현할 수 있도록 돕겠습니다.
🎯 이 가이드 활용법¶
준비사항¶
필요한 AI 도구:
- Claude Code (또는 유사한 코딩 AI)
- Python 3.8+ 설치
- VS Code (또는 선호하는 코드 에디터)
🎯 가장 중요한 준비: CLAUDE.md 파일 생성
프롬프트를 시작하기 전에 반드시 CLAUDE.md 파일을 생성하세요!
# CLAUDE.md
## Project Overview
KRenamer - Korean Windows GUI file renaming tool with Python tkinter
## Tech Stack
- Language: Python 3.8+
- GUI Framework: tkinter
- Drag & Drop: tkinterdnd2
- Documentation: MkDocs
## Architecture (계획)
### Target Components
- main.py - Application entry point
- core.py - File processing engine
- gui.py - GUI interface
## Development Commands
### Running
```bash
python main.py
```
### Dependencies
```bash
pip install tkinterdnd2
```
## Coding Guidelines
- Style: PEP 8
- Language: Python with Korean comments for user-facing text
- GUI: tkinter with modern styling
- Error Handling: Graceful degradation, user-friendly messages
## Project Goals
1. Drag & drop file addition
2. Various renaming methods (prefix, suffix, numbering, find/replace)
3. Real-time preview
4. Safe execution with confirmation
5. Korean language interface
진행 방식:
- CLAUDE.md 파일을 프로젝트 루트에 생성
- 각 단계의 프롬프트를 AI에게 입력
- 생성된 코드를 실행하고 테스트
- 문제가 있으면 제공된 "문제 해결 프롬프트" 사용
- 각 단계 완료 후 CLAUDE.md 업데이트
- 다음 단계로 진행
📅 단계별 개발 프롬프트¶
Day 1: 기본 GUI 창 만들기¶
🌅 Phase 1.1: 프로젝트 초기화 (15분)¶
✅ 사전 확인:
- CLAUDE.md 파일이 프로젝트 루트에 생성되어 있는가?
- AI 도구(Claude Code)가 CLAUDE.md를 읽었는가?
입력 프롬프트:
CLAUDE.md 파일을 참고하여 KRenamer 프로젝트를 시작하겠습니다.
현재 목표:
1. 메인 윈도우 (800x600 크기)
2. 제목: "KRenamer - 파일명 일괄 변경 도구"
3. 기본 메뉴바 (파일, 편집, 도움말)
4. 상태바
5. 간단한 환영 메시지
CLAUDE.md에 명시된 코딩 가이드라인을 따라 main.py 파일을 생성해주세요.
프로젝트 폴더 구조도 함께 제안해주세요.
예상 AI 응답:
- 기본 tkinter 윈도우 코드 생성
- 프로젝트 폴더 구조 제안
- main.py 파일 생성
검증 방법:
기본 윈도우가 정상적으로 표시되는지 확인🌆 Phase 1.2: GUI 레이아웃 개선 (30분)¶
입력 프롬프트:
현재 기본 윈도우가 잘 작동합니다. 이제 실제 파일명 변경 도구답게 레이아웃을 개선하고 싶어요.
추가하고 싶은 요소들:
1. 왼쪽: 파일 목록을 보여줄 TreeView 위젯
2. 오른쪽: 파일명 변경 옵션들 (라벨과 입력 필드들)
3. 하단: 미리보기 영역과 실행 버튼
4. 전체적으로 깔끔한 패딩과 간격
아직 기능은 구현하지 말고, 레이아웃만 예쁘게 배치해주세요.
각 영역에는 임시 텍스트나 더미 데이터를 넣어서 모양새를 확인할 수 있게 해주세요.
문제 해결 프롬프트 (레이아웃이 이상할 때):
레이아웃이 원하는 대로 나오지 않습니다.
- TreeView가 너무 작거나 큽니다
- 버튼들이 이상한 위치에 있습니다
- 패딩이 부족합니다
tkinter의 grid나 pack을 사용해서 더 균형잡힌 레이아웃으로 만들어주세요.
각 영역의 크기 비율도 조정해주세요.
Day 2: 드래그 앤 드롭 기능¶
🌅 Phase 2.1: 드래그 앤 드롭 라이브러리 설정 (20분)¶
입력 프롬프트:
파일을 마우스로 끌어서 프로그램에 놓으면 파일 목록에 추가되는 기능을 만들고 싶어요.
tkinterdnd2 라이브러리를 사용하려고 하는데:
1. 라이브러리 설치 방법을 알려주세요
2. 현재 코드에 드래그 앤 드롭 기능을 추가해주세요
3. 파일이 드롭되면 콘솔에 파일 경로를 출력하는 간단한 테스트부터 시작하고 싶어요
Windows 환경에서 작업하고 있습니다.
문제 해결 프롬프트 (라이브러리 설치 문제):
tkinterdnd2 설치에서 오류가 발생합니다:
[여기에 실제 오류 메시지 붙여넣기]
Windows 환경에서 다른 설치 방법이나 대안이 있나요?
pip 버전 문제일 수도 있는데, 해결 방법을 알려주세요.
🌆 Phase 2.2: 파일 목록 관리 (45분)¶
입력 프롬프트:
드래그 앤 드롭이 작동합니다! 이제 드롭된 파일들을 TreeView에 표시하고 관리하는 기능을 만들어주세요.
필요한 기능들:
1. 드롭된 파일 정보를 TreeView에 추가 (파일명, 경로, 크기)
2. 폴더가 드롭되면 내부의 모든 파일들을 자동으로 추가
3. 중복 파일은 추가하지 않기
4. 파일 삭제 기능 (선택된 항목을 목록에서 제거)
5. 전체 목록 지우기 기능
TreeView의 컬럼 구성도 예쁘게 만들어주세요.
문제 해결 프롬프트 (폴더 처리 문제):
폴더를 드롭했을 때 내부 파일들이 제대로 추가되지 않습니다.
또는 너무 많은 파일이 있는 폴더에서 프로그램이 느려집니다.
다음과 같이 개선해주세요:
1. 하위 폴더도 재귀적으로 처리
2. 파일 개수가 많을 때 진행률 표시
3. 숨김 파일은 제외
4. 특정 확장자만 필터링하는 옵션
Day 3: 파일명 변경 핵심 기능¶
🌅 Phase 3.1: 기본 파일명 변경 로직 (40분)¶
입력 프롬프트:
이제 실제로 파일명을 변경하는 핵심 기능을 구현하고 싶어요.
1단계로 다음 기능들을 만들어주세요:
1. 접두사 추가 (예: "IMG_" 추가)
2. 접미사 추가 (예: "_backup" 추가)
3. 순차 번호 매기기 (예: 001, 002, 003...)
4. 찾기/바꾸기 (특정 문자열을 다른 문자열로 변경)
GUI에서 이런 옵션들을 설정할 수 있는 입력 필드들을 만들고,
"미리보기" 버튼을 누르면 변경될 파일명을 보여주는 기능도 넣어주세요.
아직 실제 파일명은 변경하지 말고, 미리보기만 구현해주세요.
검증 프롬프트:
미리보기 기능이 잘 작동하는지 확인해보겠습니다.
테스트용 파일들을 몇 개 만들어서 다양한 조건으로 테스트해주세요:
1. 접두사 "NEW_" 추가 테스트
2. 순차번호 001부터 시작하는 테스트
3. ".jpg"를 ".jpeg"로 바꾸는 테스트
4. 공백을 언더스코어로 바꾸는 테스트
각 테스트 케이스별로 예상 결과를 보여주세요.
🌆 Phase 3.2: 실제 파일명 변경 구현 (45분)¶
입력 프롬프트:
미리보기가 잘 작동합니다! 이제 실제로 파일명을 변경하는 기능을 구현해주세요.
안전 장치들:
1. 사용자 확인 대화상자 (정말 변경할 것인지)
2. 백업 옵션 (원본 파일명을 별도 파일에 저장)
3. 오류 처리 (파일이 사용 중이거나 권한 문제 등)
4. 진행률 표시 (파일이 많을 때)
5. 되돌리기 기능 (이전 파일명으로 복원)
실행 결과를 상태바나 별도 로그 영역에 표시해주세요.
성공/실패 개수와 구체적인 오류 메시지도 포함해주세요.
문제 해결 프롬프트 (파일 잠금 문제):
파일명 변경 중에 다음과 같은 오류가 발생합니다:
"다른 프로세스에서 파일을 사용하고 있어 변경할 수 없습니다"
이런 상황들을 더 우아하게 처리하고 싶어요:
1. 어떤 파일에서 오류가 발생했는지 정확히 알려주기
2. 오류가 발생한 파일은 건너뛰고 나머지는 계속 처리
3. 오류 발생 시 사용자에게 재시도 옵션 제공
4. 최종 결과 요약 (성공 N개, 실패 M개)
Day 4: 고급 기능과 마무리¶
🌅 Phase 4.1: 조건부 필터링 (30분)¶
입력 프롬프트:
파일명 변경을 더 정교하게 제어하고 싶어요.
모든 파일이 아니라 특정 조건에 맞는 파일들만 변경할 수 있도록 필터링 기능을 추가해주세요.
필터 옵션들:
1. 파일 확장자별 필터 (.jpg, .png, .txt 등)
2. 파일 크기별 필터 (예: 1MB 이상, 10KB 이하)
3. 파일명 패턴 필터 (특정 문자열 포함/제외)
4. 날짜별 필터 (생성일, 수정일 기준)
TreeView에서 필터 조건에 맞는 파일들만 하이라이트하거나
체크박스로 선택/해제할 수 있게 해주세요.
🌆 Phase 4.2: 설정 저장 및 사용성 개선 (45분)¶
입력 프롬프트:
사용자 편의성을 위한 마지막 기능들을 추가하고 싶어요:
1. 설정 저장/불러오기
- 자주 사용하는 이름 변경 패턴을 프리셋으로 저장
- JSON 파일로 설정 저장
- 프로그램 시작 시 마지막 설정 자동 로드
2. 사용성 개선
- 키보드 단축키 (Ctrl+O: 파일 추가, F5: 미리보기 등)
- 더블클릭으로 파일 미리보기
- 우클릭 컨텍스트 메뉴
- 도구 팁 (툴팁) 추가
3. 프로그램 정보
- 도움말 대화상자
- 버전 정보
- 간단한 사용법 안내
전체적으로 완성된 프로그램다운 느낌으로 마무리해주세요.
🛠️ 고급 프롬프트 기법¶
문제 해결 패턴¶
일반적인 오류 해결¶
GUI 관련 문제:
GUI에서 [구체적인 문제 설명]이 발생합니다.
현재 코드: [문제가 있는 코드 부분 붙여넣기]
오류 메시지: [실제 오류 메시지]
다음 사항들을 고려해서 수정해주세요:
1. tkinter 위젯의 올바른 사용법
2. 레이아웃 매니저 (grid/pack) 충돌 방지
3. 이벤트 바인딩 문제
4. 스레드 안전성 (GUI 업데이트)
파일 처리 문제:
파일 작업에서 예상과 다른 결과가 나옵니다:
- 기대했던 결과: [설명]
- 실제 결과: [설명]
- 테스트한 파일들: [파일명과 특징]
특히 이런 경우들을 고려해서 개선해주세요:
1. 한글 파일명 처리
2. 특수문자가 포함된 파일명
3. 매우 긴 파일명
4. 권한이 없는 폴더의 파일들
코드 품질 개선 프롬프트¶
리팩토링 요청¶
코드 구조 개선:
현재 코드가 점점 복잡해지고 있습니다. 더 깔끔하게 정리하고 싶어요:
1. 클래스와 메서드로 적절히 분리
2. 중복 코드 제거
3. 상수값들을 별도로 정의
4. 주석과 문서화 추가
5. 에러 처리 개선
현재 main.py 파일이 너무 길어졌으니 여러 파일로 분리하는 것도 좋겠어요.
- gui.py: GUI 관련 클래스
- file_manager.py: 파일 처리 로직
- config.py: 설정 관리
- utils.py: 유틸리티 함수들
모듈화하는 과정에서 기능이 깨지지 않도록 주의해주세요.
성능 최적화¶
성능 개선:
파일이 많을 때 프로그램이 느려집니다. 성능을 개선하고 싶어요:
문제 상황:
- 1000개 이상의 파일을 드롭하면 GUI가 멈춤
- 큰 폴더를 처리할 때 응답 없음
- 미리보기 생성이 오래 걸림
개선 방향:
1. 백그라운드 스레드 사용
2. 진행률 표시와 취소 기능
3. 파일 처리를 청크 단위로 분할
4. 메모리 사용량 최적화
5. GUI 반응성 유지
사용자 경험을 해치지 않으면서 성능을 개선해주세요.
🎯 AI 도구별 특화 프롬프트¶
Claude Code 전용¶
프로젝트 분석 요청:
현재 프로젝트의 전체 구조를 분석하고 개선점을 제안해주세요:
1. 파일 구조와 모듈 의존성 검토
2. 코딩 스타일 일관성 확인
3. 잠재적인 버그나 보안 이슈 점검
4. 성능 개선 가능한 부분 식별
5. 테스트 케이스 추가가 필요한 부분
각 항목별로 구체적인 수정 제안과 우선순위를 알려주세요.
자동 테스트 생성:
KRenamer의 핵심 기능들에 대한 단위 테스트를 작성해주세요:
테스트 대상:
1. 파일명 변경 로직 (접두사, 접미사, 번호 매기기)
2. 파일 필터링 기능
3. 설정 저장/로드
4. 오류 처리 상황들
pytest를 사용해서 작성해주시고, 각 테스트에는:
- 명확한 테스트 케이스 설명
- 다양한 입력 데이터 (정상/비정상)
- 예상 결과 검증
- 모의 객체(mock) 활용 (파일 시스템 접근)
test/ 폴더 구조도 함께 제안해주세요.
ChatGPT/Claude Web 전용¶
기획 및 설계 요청:
KRenamer를 더 발전시켜서 상용 소프트웨어 수준으로 만들고 싶습니다.
추가할 만한 기능들과 개발 로드맵을 제안해주세요:
1. 현재 기능의 한계점 분석
2. 경쟁 제품 대비 차별화 포인트
3. 사용자가 원할 만한 추가 기능들
4. 기술적 난이도별 개발 순서
5. 배포 및 마케팅 전략
각 제안에 대해 구현 난이도와 비즈니스 가치를 평가해주세요.
🚀 다음 단계 가이드¶
프로젝트 확장 아이디어¶
더 고급 기능들:
KRenamer의 기본 기능이 완성되었습니다. 이제 더 전문적인 기능들을 추가하고 싶어요:
1. 정규표현식 지원
- 복잡한 패턴 매칭
- 캡처 그룹을 활용한 치환
- 정규식 테스터 내장
2. 메타데이터 활용
- 이미지 파일의 EXIF 정보
- 음악 파일의 ID3 태그
- 문서 파일의 속성 정보
3. 플러그인 시스템
- 외부 모듈 지원
- 사용자 정의 변환 규칙
- API 연동 (클라우드 스토리지 등)
어떤 것부터 시작하는 게 좋을까요?
각 기능의 구현 방법과 필요한 라이브러리도 알려주세요.
배포 준비¶
패키징 및 배포:
완성된 KRenamer를 다른 사람들도 쉽게 사용할 수 있도록 배포하고 싶어요:
1. PyInstaller로 실행파일 생성
- 단일 실행파일 (.exe)
- 필요한 라이브러리 포함
- 아이콘과 버전 정보 추가
2. 인스톨러 제작
- NSIS나 Inno Setup 사용
- 시작 메뉴 등록
- 파일 연결 설정
3. 온라인 배포
- GitHub Releases
- PyPI 패키지 등록
- 사용자 매뉴얼 작성
각 단계별로 필요한 도구와 설정 방법을 알려주세요.
자동화할 수 있는 부분도 함께 제안해주세요.
💡 효과적인 AI 협업 팁¶
프롬프트 작성 원칙¶
-
구체적이고 명확하게
- 모호한 표현 대신 정확한 요구사항
- 예시와 반례를 함께 제시
- 예상 결과물 명시
-
단계별로 요청
- 한 번에 너무 많은 기능 요청하지 않기
- 이전 단계 완료 후 다음 단계 진행
- 각 단계별로 테스트와 검증
-
맥락 정보 제공
- 현재 프로젝트 상태 설명
- 사용 중인 기술 스택 명시
- 제약 조건이나 요구사항 공유
-
피드백과 반복
- 결과물에 대한 평가와 개선 요청
- 문제 발생 시 구체적인 오류 정보 제공
- 지속적인 대화를 통한 품질 향상
🔄 CLAUDE.md 실시간 업데이트 전략¶
각 단계 완료 후 CLAUDE.md 업데이트¶
프롬프트로 AI와 작업할 때마다 CLAUDE.md 파일을 업데이트하는 것이 중요합니다.
예시: Day 1 완료 후 업데이트
# CLAUDE.md
## Project Overview
KRenamer - Korean Windows GUI file renaming tool with Python tkinter
## Current Status - Day 1 완료 ✅
- [x] 기본 GUI 윈도우 (main.py)
- [x] 메뉴바와 상태바 구현
- [x] 기본 레이아웃 설정
## Architecture (현재 구현)
### Completed Components
- main.py - 기본 tkinter 윈도우, 메뉴, 상태바
### Next Steps
- GUI 레이아웃 개선
- 드래그 앤 드롭 기능 추가
- 파일 목록 표시 기능
## Known Issues
- tkinterdnd2 라이브러리 설치 필요
- 레이아웃이 아직 단순함
## Recent Changes
### Day 1 (2024-XX-XX)
- 프로젝트 초기 설정
- 기본 GUI 윈도우 생성
- 메뉴바 (파일, 편집, 도움말) 추가
- 상태바 구현
CLAUDE.md 업데이트 프롬프트¶
각 단계 완료 후 다음 프롬프트를 사용하세요:
오늘 작업한 내용을 바탕으로 CLAUDE.md 파일을 업데이트해주세요:
완료된 작업:
- [구체적인 완료 항목들]
다음 단계 계획:
- [다음에 할 일들]
발견된 이슈:
- [문제점이나 주의사항]
CLAUDE.md의 "Current Status", "Architecture", "Recent Changes" 섹션을 업데이트해주세요.
문제 해결 전략¶
막혔을 때의 CLAUDE.md 기반 접근법:
-
CLAUDE.md 컨텍스트 활용
-
Known Issues 활용
-
아키텍처 일관성 유지
🎉 완성 후 체크리스트¶
기능 검증¶
최종 테스트 시나리오:
KRenamer가 완성되었습니다. 다음 시나리오들로 최종 테스트를 해주세요:
1. 기본 기능 테스트
- [ ] 파일 드래그 앤 드롭
- [ ] 다양한 이름 변경 패턴
- [ ] 미리보기 기능
- [ ] 실제 파일명 변경
2. 오류 상황 테스트
- [ ] 권한 없는 파일 처리
- [ ] 중복 파일명 처리
- [ ] 잘못된 입력값 처리
- [ ] 대용량 파일 처리
3. 사용성 테스트
- [ ] 직관적인 UI
- [ ] 적절한 피드백
- [ ] 설정 저장/로드
- [ ] 도움말 접근성
각 테스트 결과와 발견된 문제점을 정리해주세요.
문서화¶
사용자 가이드 생성:
완성된 KRenamer의 사용자 매뉴얼을 작성해주세요:
1. 설치 가이드
2. 기본 사용법 (스크린샷 포함)
3. 고급 기능 설명
4. 문제 해결 (FAQ)
5. 연락처 및 지원 정보
마크다운 형식으로 작성해서 GitHub README로 사용할 수 있게 해주세요.
🎯 이 가이드를 완료하면 여러분은:
- AI 협업을 통한 완전한 소프트웨어 개발 경험
- 실제 사용 가능한 GUI 애플리케이션 완성
- 문제 해결과 디버깅 능력 향상
- 다른 프로젝트에 응용 가능한 실전 노하우
지금 바로 시작해보세요! 🚀