Files
everything-claude-code/docs/ko-KR/commands/refactor-clean.md
2026-03-29 21:21:18 -04:00

3.2 KiB

Refactor Clean

사용하지 않는 코드를 안전하게 식별하고 매 단계마다 테스트 검증을 수행하여 제거합니다.

1단계: 사용하지 않는 코드 감지

프로젝트 유형에 따라 분석 도구를 실행합니다:

도구 감지 대상 커맨드
knip 미사용 exports, 파일, 의존성 npx knip
depcheck 미사용 npm 의존성 npx depcheck
ts-prune 미사용 TypeScript exports npx ts-prune
vulture 미사용 Python 코드 vulture src/
deadcode 미사용 Go 코드 deadcode ./...
cargo-udeps 미사용 Rust 의존성 cargo +nightly udeps

사용 가능한 도구가 없는 경우, Grep을 사용하여 import가 없는 export를 찾습니다:

# export를 찾은 후, 다른 곳에서 import되는지 확인

2단계: 결과 분류

안전 등급별로 결과를 분류합니다:

등급 예시 조치
안전 미사용 유틸리티, 테스트 헬퍼, 내부 함수 확신을 가지고 삭제
주의 컴포넌트, API 라우트, 미들웨어 동적 import나 외부 소비자가 없는지 확인
위험 설정 파일, 엔트리 포인트, 타입 정의 건드리기 전에 조사 필요

3단계: 안전한 삭제 루프

각 안전 항목에 대해:

  1. 전체 테스트 스위트 실행 --- 기준선 확립 (모두 통과)
  2. 사용하지 않는 코드 삭제 --- Edit 도구로 정밀하게 제거
  3. 테스트 스위트 재실행 --- 깨진 것이 없는지 확인
  4. 테스트 실패 시 --- 즉시 git checkout -- <file>로 되돌리고 해당 항목을 건너뜀
  5. 테스트 통과 시 --- 다음 항목으로 이동

4단계: 주의 항목 처리

주의 항목을 삭제하기 전에:

  • 동적 import 검색: import(), require(), __import__
  • 문자열 참조 검색: 라우트 이름, 설정 파일의 컴포넌트 이름
  • 공개 패키지 API에서 export되는지 확인
  • 외부 소비자가 없는지 확인 (게시된 경우 의존 패키지 확인)

5단계: 중복 통합

사용하지 않는 코드를 제거한 후 다음을 찾습니다:

  • 거의 중복된 함수 (80% 이상 유사) --- 하나로 병합
  • 중복된 타입 정의 --- 통합
  • 가치를 추가하지 않는 래퍼 함수 --- 인라인 처리
  • 목적이 없는 re-export --- 간접 참조 제거

6단계: 요약

결과를 보고합니다:

Dead Code Cleanup
──────────────────────────────
삭제:     미사용 함수 12개
           미사용 파일 3개
           미사용 의존성 5개
건너뜀:   항목 2개 (테스트 실패)
절감:     약 450줄 제거
──────────────────────────────
모든 테스트 통과 PASS:

규칙

  • 테스트를 먼저 실행하지 않고 절대 삭제하지 않기
  • 한 번에 하나씩 삭제 --- 원자적 변경으로 롤백이 쉬움
  • 확실하지 않으면 건너뛰기 --- 프로덕션을 깨뜨리는 것보다 사용하지 않는 코드를 유지하는 것이 나음
  • 정리하면서 리팩토링하지 않기 --- 관심사 분리 (먼저 정리, 나중에 리팩토링)