티스토리 뷰
자동 리팩토링을 위해 사용할 수 있는 도구/스크립트/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 스크립트도 드릴게요.
어떤 환경에서 리팩토링하고 계신지도 알려주시면, 거기에 맞춰 더 맞춤 안내 가능합니다!
'Skill > 기반기술' 카테고리의 다른 글
| CORS 프록시(proxy) 방식으로 우회 (0) | 2025.07.04 |
|---|---|
| Flask 앱을 Linux에서 백그라운드로 실행 (0) | 2025.05.29 |
| linux] postgresql-odbc 설치 및 python DB_DRIVER 변수 수정 (0) | 2025.05.23 |
| flask log 보기 (0) | 2025.05.22 |
| python] filename: Union[str, Path] (0) | 2025.05.22 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- JQuery
- element위치
- devtools
- oracle
- CSS
- sumifs
- spring
- excel
- 진열사랑
- 프로젝트명변경
- border-collapse
- setter
- 여러 컬럼 update
- springboot
- Javascript
- PostgreSQL
- draw.io
- DatePicker
- @ExceptionHandler
- caniuse
- QueryDSL
- Keycode
- $.each
- 정규식
- lombok
- $.extend
- object key
- getter
- 전후방탐색
- ul li로 테이블
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
글 보관함
