죽은 코드 제거
한 번 실행으로 하나의 죽은 영역을 정리합니다: 사용되지 않음을 증명하고, 전체 단위를 삭제하며, 남은 코드를 검증합니다. 유지하는 코드는 절대 리팩터링하지 않으며, 구조가 어색한 주변의 살아있는 코드는 이름만 언급합니다.
단계
- 후보 열거. 죽었을 가능성이 있는 전체 단위를 나열합니다: 수정되지 않은 파일, 참조되지 않은 내보내기, 어떤 라우트도 렌더링하지 않는 컴포넌트, 호출자가 전달하지 않는 props와 states, 어떤 마크업도 사용하지 않는 CSS 클래스. 라인이 아닌 전체 단위 — 살아있는 헬퍼가 있는 죽은 export도 여전히 하나의 단위입니다. 완료 조건: 각 후보가 누가 참조할 수 있었는지 이름을 밝혔을 때.
- 모든 주소에서 사용되지 않음을 증명. 직접 참조와 동적 참조를 모두 검색합니다: 문자열 기반 import, 라우트 테이블, 테스트 템플릿, 스토리 이름. 후보가 죽었다고 판단되는 것은 도달 가능한 모든 방법이 추적되었을 때뿐입니다. 완료 조건: 각 후보가 아무것도 찾지 못한 검색 기록을 기록했을 때.
- 조각 단위로 삭제하고 각각 검증. 한 번에 하나의 단위를 제거합니다 — 놀라운 일이 발생하면 중단하고, 경계를 다시 증명한 후 재개하는 트레이서 불릿 구조입니다. 각 삭제 후 빌드, 타입 검사 및 테스트가 실행됩니다. 완료 조건: 마지막 삭제 후 적어도 한 번의 전체 빌드와 테스트가 통과했을 때.
- 느슨한 끝 정리. 삭제된 단위를 import하던 것들을 다시 확인합니다: import 체인, 낡은 픽스처, 이제 빈 폴더. 트리를 흔듭니다: 두 번째로 떨어져 나오는 것이 이번 실행의 일부입니다. 완료 조건: 삭제된 이름에 대한 새 검색 결과가 아무것도 반환되지 않을 때.
참고
- reference.md — 프론트엔드 코드가 검색에서 숨는 위치, 단위 유형별 증명 체크리스트.