파일 작업
Claude Code를 활용한 안전하고 효율적인 파일 조작. 파일 생성, 편집, 관리를 리스크 없이 수행해요.
프리미엄 강좌 콘텐츠
이 레슨은 프리미엄 강좌의 일부예요. Pro로 업그레이드하면 모든 프리미엄 강좌와 콘텐츠를 이용할 수 있어요.
- 모든 프리미엄 강좌 이용
- 1000개 이상의 AI 스킬 템플릿 포함
- 매주 새로운 콘텐츠 추가
Claude가 파일을 수정할 수 있어요
이전 레슨에서 태스크 오케스트레이션을 다뤘어요. 이제 파일 작업에 대해 알아볼게요.
이건 강력한 기능이에요. 동시에 책임도 따라요.
Claude Code는 파일을 생성하고, 편집하고, 삭제할 수 있어요. 잘 사용하면 엄청난 생산성 향상이에요. 부주의하면 엉망이 될 수 있어요.
이 레슨에서는 파일을 안전하고 효율적으로 다루는 법을 알려드려요.
안전망: Git
Claude로 중요한 작업을 하기 전에 확인하세요:
깨끗한 작업 디렉토리
git status # 깨끗하거나 커밋된 상태여야 해요어떤 브랜치에 있는지 확인
git branch # 현재 위치를 파악하세요자주 커밋하기 좋은 변경 후에는 커밋하세요. 무언가 잘못되면 항상 되돌아갈 수 있어요.
Git이 여러분의 안전망이에요. Git이 있으면 Claude의 어떤 실수도 복구 가능해요.
파일 작업 패턴
새 파일 생성
> src/utils/string-helpers.js에 새 유틸리티 파일을 만들어
> 다음 함수를 포함해: capitalize, truncate, slugify
Claude가 내용이 있는 파일을 만들어요. 다음으로 넘어가기 전에 검토하세요.
여러 관련 파일의 경우:
> 새 "comments" 기능을 위해 다음 파일들을 만들어:
> - src/models/comment.js (데이터 모델)
> - src/services/comment-service.js (비즈니스 로직)
> - src/routes/comments.js (API 라우트)
> - tests/comments.test.js (테스트 스켈레톤)
관련 파일을 함께 만들면 일관성이 유지돼요.
기존 파일 편집
항상 먼저 파일을 추가하세요:
/add src/auth/login.js
> 로그인 함수에 레이트 리미팅을 추가해. 분당 최대 5회 시도.
Claude가 파일을 보고, 컨텍스트를 이해하고, 타겟팅된 변경을 해요.
무엇을 바꿀지 구체적으로:
> handleSubmit 함수에서 API 호출 전에 유효성 검증을 추가해.
> 이메일이 올바른 형식이고 비밀번호가 8자 이상인지 확인해.
구체적인 지시 → 정확한 변경.
멀티파일 편집
여러 파일에 걸친 일관된 변경을 위해:
/add src/types/user.ts src/services/user-service.ts src/routes/users.ts
> User 타입에 선택적 "phoneNumber" 필드를 추가해.
> 서비스와 라우트도 이를 처리하도록 업데이트해.
관련 파일을 모두 컨텍스트에 넣으면 파일 간 일관된 변경이 가능해요.
이름 변경 및 이동
> src/utils/helpers.js를 src/utils/string-utils.js로 이름 변경해
> 코드베이스 전체에서 import 문을 업데이트해.
Claude가 이름 변경과 import 업데이트를 모두 처리해요.
파일 삭제
> src/old-auth/ 디렉토리는 더 이상 사용되지 않아.
> 삭제하고 모든 참조를 정리해줘.
무엇을 삭제할지 명확하게 말하세요. Claude가 파괴적 작업에 대해 확인을 요청할 거예요.
검토 전략
인라인 검토
각 변경 후, 계속 진행하기 전에 검토하세요:
> createUser 함수에 입력 유효성 검증을 추가해
# Claude가 변경을 해요
> diff를 보여줘
# 변경사항 검토
> 좋아. 이제 유효성 검증에 대한 테스트를 추가해.
Git Diff 검토
Claude가 변경을 한 후:
git diff src/auth/login.js # 정확히 뭐가 바뀌었는지 확인
복잡한 변경에는 git diff가 인라인 검토보다 더 명확할 때가 많아요.
단계별 검토
대규모 변경의 경우:
> 기능 X를 구현하기 위해 변경을 해줘
# Claude가 많은 변경을 해요
git add -p # 대화형으로 변경사항을 스테이징
git commit -m "Part 1: 모델 변경"
# 계속 스테이징
git add -p
git commit -m "Part 2: 서비스 레이어"
논리적 청크로 검토하고 커밋하세요.
복구 절차
/undo
Claude의 마지막 변경을 즉시 되돌리기:
/undo
원치 않는 변경을 발견하면 바로 사용하세요. 다른 작업을 계속하기 전에 사용할 때 가장 효과적이에요.
Git Reset
아직 커밋하지 않았다면:
git checkout -- src/file-that-got-messed-up.js
파일을 마지막 커밋 상태로 복원해요.
Stash하고 다시 시작
상황이 복잡해지면:
git stash # 현재 변경사항 저장
# Claude와 새로 시작
git stash pop # 필요하면 변경사항 복원
전체 리셋
최후의 수단 (커밋하지 않은 변경만):
git reset --hard HEAD
마지막 커밋으로 돌아가요. 아껴서 사용하세요.
효율성 기법
관련 변경 일괄 처리
느림:
> User 모델에 "createdAt" 필드 추가해
> 이제 User 모델에 "updatedAt" 필드 추가해
> 이제 User 모델에 "lastLoginAt" 필드 추가해
빠름:
> User 모델에 타임스탬프 필드를 추가해:
> - createdAt: 사용자 생성 시점
> - updatedAt: 마지막 수정 시점
> - lastLoginAt: 마지막 로그인 시점
관련 변경을 한 번에 요청하세요.
템플릿 기반 생성
> src/routes/users.js의 패턴을 따라 5개의 새 API 라우트 파일을 만들어:
> - products.js
> - orders.js
> - inventory.js
> - categories.js
> - suppliers.js
Claude가 패턴을 효율적으로 복제해요.
대량 작업
> src/services/*.js에 해당하는 모든 파일에서:
> - catch 블록에 에러 로깅을 추가해
> - src/utils/logger.js의 logger를 사용해
패턴 기반 대량 변경.
파일 작업 체크리스트
파일 작업 전:
- Git 작업 디렉토리가 깨끗한 상태 (또는 변경사항이 stash됨)
- 관련 파일이 컨텍스트에 추가됨
- 올바른 변경을 얻을 만큼 작업이 구체적
파일 작업 중:
- 계속하기 전에 변경사항 검토
- 문제가 있으면 즉시
/undo사용 - 논리적 그룹으로 변경사항 커밋
파일 작업 후:
-
git diff로 전체 diff 검토 - 해당되는 경우 테스트 실행
- 명확한 메시지와 함께 커밋
핵심 정리
- Git이 여러분의 안전망이에요 — 자주 커밋하고, 쉽게 되돌리세요
- 변경을 요청하기 전에 항상 파일을 컨텍스트에 추가하세요
- 무엇을 어디서 바꿀지 구체적으로 말하세요
- 계속하기 전에 변경사항을 검토하세요
- 복구에는
/undo와 git을 사용하세요 - 관련 변경을 일괄 처리해 효율성을 높이세요
다음에는 Bash 명령어를 통합해 강력한 자동화를 구축하는 법을 배워요.
다음 레슨: Bash 통합을 심층적으로 다뤄요.
이해도 체크
먼저 위의 퀴즈를 완료하세요
레슨 완료!