전체 프로젝트에서 심볼을 안전하게 이름 변경
언제 쓸까: 심볼의 이름을 변경하고 싶지만 grep-and-replace로는 문자열 참조나 동적 호출을 놓칠 수 있을 때
사전 조건
- IDE에 설치된 MCP Server 플러그인 — plugins.jetbrains.com/plugin/26071-mcp-server — 또는 2025.2 이상이면 기본 제공
- IDE에서 프로젝트를 열고 인덱싱된 상태 — 프로젝트를 열고 인덱싱이 완료될 때까지 대기하세요(상태 표시줄)
흐름
-
심볼 찾기
getCurrentUser의 정의와 프로젝트 내 모든 사용 위치를 찾으세요. 테스트 파일을 포함하세요.✓ 복사됨→ IDE 정확도의 사용처 목록(file:line 포함) -
리네임 사전 검토
getAuthenticatedUser로 이름을 변경하면 무엇이 바뀌는지 보여주세요. 수동으로 수정해야 할 문자열 리터럴이나 리플렉션 기반 호출에 플래그를 지정하세요.✓ 복사됨→ 미리보기 diff + 수동 수정 목록 -
리팩토링 적용이름 변경을 적용하세요. 그 다음 영향을 받는 테스트를 실행하세요.✓ 복사됨→ 리팩토링 완료, 테스트 통과
결과: IDE 수준의 정확도로 안전한 이름 변경이 가능하며, IDE의 기존 리팩토링 엔진으로 지원됩니다.
함정
- 리플렉션 기반 또는 문자열로 구성된 참조가 감지되지 않음 — 리팩토링 후 old name을 문자열로 grep하세요. IDE는 경고하지만 자동으로 수정하지 않습니다
- IDE가 완전히 인덱싱되지 않아 결과가 부분적임 — 실행하기 전에 진행률 표시줄이 사라질 때까지 기다리세요. 먼저 IDE에 인덱스 상태를 확인하세요