Skill/기반기술
자동 리팩토링 방법(IntelliJ, VSCode)
진열사랑
2025. 5. 26. 19:22
자동 리팩토링을 위해 사용할 수 있는 도구/스크립트/IDE 기능을 아래와 같이 정리해 드릴게요. RDIIAnls → RdiiAnls와 같이 이름만 바꾸되 참조된 모든 위치를 자동으로 반영하는 것이 핵심입니다.
✅ 1. IntelliJ IDEA 기준 자동 리팩토링 방법 (가장 추천🔥)
📌 클래스 이름 바꾸기
- 클래스에서 클래스명에 커서 올림
- Shift + F6 (리네임 단축키)
- RDIIAnls → RdiiAnls 로 입력
- 엔터 → 전체 참조된 곳 자동 변경됨 (필드명, 주입명, import 등)
📌 디렉터리나 파일 이름도 함께 바꾸려면
- 파일 탐색기에서 해당 .java 파일 선택
- Shift + F6 → 이름 변경
- RdiiAnlsService.java 등으로 바꾸면 클래스 선언부도 자동 변경됨
📌 소문자 → 대문자 혼용 시 자동 이름 제안 비활성화 문제 해결
- 설정 → Settings (Ctrl + Alt + S)
- Editor > General > Smart Keys > Rename 탭에서
Suggest all occurrences to rename 체크 ON
✅ 2. VS Code 기준 리팩토링 방법
- 클래스명에 커서 두기
- F2 키 누르기 (리네임)
- 이름 변경 → 엔터 → 참조된 곳 모두 수정됨
✅ 3. 대규모 자동 리팩토링 (터미널 + Bash + Gradle 기반)
📁 예: 모든 RDIIAnls → RdiiAnls로 변경 (파일/내용 포함)
# 1. 파일 이름 변경
find . -type f -name '*RDIIAnls*' -exec bash -c 'mv "$0" "${0/RDIIAnls/RdiiAnls}"' {} \;
# 2. 파일 내부 내용 일괄 치환
grep -rl 'RDIIAnls' ./ | xargs sed -i '' 's/RDIIAnls/RdiiAnls/g'
🔸 macOS 기준. Linux는 sed -i 's/.../.../g', Windows는 PowerShell로 별도 처리
✅ 4. IDE 외 리팩토링 도구 추천
도구 특징
Refactor.io | 단일 파일 리팩토링 전용 웹 도구 (작은 변경에 적합) |
OpenRewrite | 코드 트리 기반 대규모 리팩토링 자동화, Spring 지원 |
jscodeshift (JS 전용) | JS/TS 리팩토링 툴이지만 CLI 패턴 참고 가능 |
IntelliJ Structural Search & Replace (SSR) | 코드 구조 패턴 기반 자동 치환 가능 (복잡한 경우 추천) |
✅ 보너스: Gradle + CI 리팩토링 스크립트 자동화 예
task refactorNames(type: Exec) {
commandLine 'bash', '-c', '''
find ./src -type f -name '*.java' -exec sed -i '' 's/RDIIAnls/RdiiAnls/g' {} +
'''
}
./gradlew refactorNames 하면 전체 자동 치환됩니다.
필요하시면 IntelliJ Structural Replace 예시, OpenRewrite 적용법, 또는 Windows 환경용 PowerShell 스크립트도 드릴게요.
어떤 환경에서 리팩토링하고 계신지도 알려주시면, 거기에 맞춰 더 맞춤 안내 가능합니다!