A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | ||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | 2판 | // 지원 깃허브 | 대표 IDE들이 제공하는 자동 리팩터링 | // 책에서 소개하는 범용 기법들 외에 각 언어에 특화된 다양한 기법들을 추가로 제공하니 아래 링크를 클릭하여 자세히 살펴보세요. | ||||||||||||||||||||||
2 | 절 | 한글 | 영어 | IntelliJ IDEA(자바) | 이클립스(자바) | VS 2019(C#) | ReSharper(C#) | // 다른 (메이저) 언어용 IDE들은 자동 리팩터링을 의미 있는 수준에서 지원하지 않아서 따로 정리하지 않았습니다. | ||||||||||||||||||
3 | 6.1 | 함수 추출하기 | Extract Function | Extract Method | Extract Method (Alt + Shift + M) | 메서드 추출 | Extract Method | |||||||||||||||||||
4 | 6.2 | 함수 인라인하기 | Inline Function | Inline | Inline (Alt + Shift + I) | Inline Method | ||||||||||||||||||||
5 | 6.3 | 변수 추출하기 | Extract Variable | Extract Variable Extract Constant | Extract Local Variable (Alt + Shift + L) | |||||||||||||||||||||
6 | 6.4 | 변수 인라인하기 | Inline Variable | Inline | Inline (Alt + Shift + I) | Inline Field | ||||||||||||||||||||
7 | 6.5 | 함수 선언 바꾸기 (함수 이름 바꾸기) | Change Function Declaration | Change Signature | Change Method Signature (Alt + Shift + C) | 메서드 시그니처 변경 | Change Signature | |||||||||||||||||||
8 | 매개 변수 생성 | |||||||||||||||||||||||||
9 | ||||||||||||||||||||||||||
10 | 6.6 | 변수 캡슐화하기 | Encapsulate Variable | 필드 캡슐화 | Encapsulate Field | |||||||||||||||||||||
11 | Encapsulate Fields | Encapsulate Field | ||||||||||||||||||||||||
12 | 6.7 | 변수 이름 바꾸기 | Rename Variable | Rename | Rename (Alt + Shift + R) | 이름 바꾸기 | Rename | |||||||||||||||||||
13 | 6.8 | 매개변수 객체 만들기 | Introduce Parameter Object | Extract Parameter Object | Introduce Parameter Object | |||||||||||||||||||||
14 | 6.9 | 여러 함수를 클래스로 묶기 | Combine Functions into Class | Extract into Class | Extract Class | Extract Class | ||||||||||||||||||||
15 | 6.10 | 여러 함수를 변환 함수로 묶기 | Combine Functions into Transform | |||||||||||||||||||||||
16 | 6.11 | 단계 쪼개기 | Split Phase | |||||||||||||||||||||||
17 | ||||||||||||||||||||||||||
18 | 7.1 | 레코드 캡슐화하기 | Encapsulate Record | |||||||||||||||||||||||
19 | 7.2 | 컬렉션 캡슐화하기 | Encapsulate Collection | |||||||||||||||||||||||
20 | 7.3 | 기본형을 객체로 바꾸기 | Replace Primitive with Object | |||||||||||||||||||||||
21 | ||||||||||||||||||||||||||
22 | 7.4 | 임시 변수를 질의 함수로 바꾸기 | Replace Temp with Query | Replace Temp With Query | ||||||||||||||||||||||
23 | 7.5 | 클래스 추출하기 | Extract Class | Extract into Class | Extract Class | Extract Class | ||||||||||||||||||||
24 | 7.6 | 클래스 인라인하기 | Inline Class | |||||||||||||||||||||||
25 | 7.7 | 위임 숨기기 | Hide Delegate | |||||||||||||||||||||||
26 | 7.8 | 중개자 제거하기 | Remove Middle Man | Remove Middleman | ||||||||||||||||||||||
27 | 7.9 | 알고리즘 교체하기 | Substitute Algorithm | |||||||||||||||||||||||
28 | ||||||||||||||||||||||||||
29 | 8.1 | 함수 옮기기 | Move Function | Move | Move (Alt + Shift + V) | |||||||||||||||||||||
30 | 8.2 | 필드 옮기기 | Move Field | Move | Move (Alt + Shift + V) | |||||||||||||||||||||
31 | 8.3 | 문장을 함수로 옮기기 | Move Statements into Function | |||||||||||||||||||||||
32 | 8.4 | 문장을 호출한 곳으로 옮기기 | Move Statements to Callers | |||||||||||||||||||||||
33 | 8.5 | 인라인 코드를 함수 호출로 바꾸기 | Replace Inline Code with Function Call | |||||||||||||||||||||||
34 | 8.6 | 문장 슬라이드하기 | Slide Statements | 참조 근처로 선언 이동 | ||||||||||||||||||||||
35 | 8.7 | 반복문 쪼개기 | Split Loop | |||||||||||||||||||||||
36 | 8.8 | 반복문을 파이프라인으로 바꾸기 | Replace Loop with Pipeline | |||||||||||||||||||||||
37 | 8.9 | 죽은 코드 제거하기 | Remove Dead Code | Safe Delete // 파일과 심볼 한정 | 접근할 수 없는 코드 제거 | Safe Delete // 타입, 멤버, 그외 심볼 | ||||||||||||||||||||
38 | ||||||||||||||||||||||||||
39 | 9.1 | 변수 쪼개기 | Split Variable | |||||||||||||||||||||||
40 | ||||||||||||||||||||||||||
41 | 9.2 | 필드 이름 바꾸기 | Rename Field | Rename | Rename (Alt + Shift + R) | 이름 바꾸기 | ||||||||||||||||||||
42 | 9.3 | 파생 변수를 질의 함수로 바꾸기 | Replace Derived Variable with Query | |||||||||||||||||||||||
43 | 9.4 | 참조를 값으로 바꾸기 | Change Reference to Value | |||||||||||||||||||||||
44 | 9.5 | 값을 참조로 바꾸기 | Change Value to Reference | |||||||||||||||||||||||
45 | 9.6 | 매직 리터럴 바꾸기 | Replace Magic Literal | |||||||||||||||||||||||
46 | ||||||||||||||||||||||||||
47 | 10.1 | 조건문 분해하기 | Decompose Conditional | if 문 분할 또는 병합 | ||||||||||||||||||||||
48 | 10.2 | 조건식 통합하기 | Consolidate Conditional Expression | if 문 분할 또는 병합 | ||||||||||||||||||||||
49 | 10.3 | 중첩 조건문을 보호 구문으로 바꾸기 | Replace Nested Conditional with Guard Clauses | |||||||||||||||||||||||
50 | 10.4 | 조건부 로직을 다형성으로 바꾸기 | Replace Conditional with Polymorphism | |||||||||||||||||||||||
51 | 10.5 | 특이 케이스 추가하기 | Introduce Special Case | |||||||||||||||||||||||
52 | 10.6 | 어서션 추가하기 | Introduce Assertion | |||||||||||||||||||||||
53 | 10.7 | 제어 플래그를 탈출문으로 바꾸기 | Replace Control Flag with Break | |||||||||||||||||||||||
54 | ||||||||||||||||||||||||||
55 | 11.1 | 질의 함수와 변경 함수 분리하기 | Separate Query from Modifier | |||||||||||||||||||||||
56 | 11.2 | 함수 매개변수화하기 | Parameterize Function | Extract Parameter | Introduce Parameter | Introduce Parameter | ||||||||||||||||||||
57 | 11.3 | 플래그 인수 제거하기 | Remove Flag Argument | |||||||||||||||||||||||
58 | 11.4 | 객체 통째로 넘기기 | Preserve Whole Object | Transform Parameters | ||||||||||||||||||||||
59 | 11.5 | 매개변수를 질의 함수로 바꾸기 | Replace Parameter with Query | |||||||||||||||||||||||
60 | 11.6 | 질의 함수를 매개변수로 바꾸기 | Replace Query with Parameter | |||||||||||||||||||||||
61 | 11.7 | 세터 제거하기 | Remove Setting Method | |||||||||||||||||||||||
62 | 11.8 | 생성자를 팩터리 함수로 바꾸기 | Replace Constructor with Factory Function | Replace Constructor with Builder Replace Constructor with Factory Method | Introduce Factory | Replace Constructor with Factory Method | ||||||||||||||||||||
63 | 11.9 | 함수를 명령으로 바꾸기 | Replace Function with Command | |||||||||||||||||||||||
64 | 11.10 | 명령을 함수로 바꾸기 | Replace Command with Function | |||||||||||||||||||||||
65 | 11.11 | 수정된 값 반환하기 | Return Modified Value | |||||||||||||||||||||||
66 | 11.12 | 오류 코드를 예외로 바꾸기 | Replace Error Code with Exception | |||||||||||||||||||||||
67 | 11.13 | 예외를 사전확인으로 바꾸기 | Replace Exception with Precheck | |||||||||||||||||||||||
68 | ||||||||||||||||||||||||||
69 | 12.1 | 메서드 올리기 | Pull Up Method | Pull Members Up | Pull Up | 멤버 끌어오기 | Pull Members Up | |||||||||||||||||||
70 | 12.2 | 필드 올리기 | Pull Up Field | Pull Members Up | Pull Up | 멤버 끌어오기 | Pull Members Up | |||||||||||||||||||
71 | 12.3 | 생성자 본문 올리기 | Pull Up Constructor Body | |||||||||||||||||||||||
72 | 12.4 | 메서드 내리기 | Push Down Method | Push Members Down | Push Down | 멤버 끌어오기 | Push Members Down | |||||||||||||||||||
73 | 12.5 | 필드 내리기 | Push Down Field | Push Members Down | Push Down | 멤버 끌어오기 | Push Members Down | |||||||||||||||||||
74 | 12.6 | 타입 코드를 서브클래스로 바꾸기 | Replace Type Code with Subclasses | |||||||||||||||||||||||
75 | 12.7 | 서브클래스 제거하기 | Remove Subclass | |||||||||||||||||||||||
76 | 12.8 | 슈퍼클래스 추출하기 | Extract Superclass | Extract Superclass Extract Interface | Extract Superclass Extract Interface | 인터페이스 추출 | Extract Superclass Extract Interface | |||||||||||||||||||
77 | 12.9 | 계층 합치기 | Collapse Hierarchy | Inline Superclass | ||||||||||||||||||||||
78 | 12.10 | 서브클래스를 위임으로 바꾸기 | Replace Subclass with Delegate | Replace Inheritance with Delegation | ||||||||||||||||||||||
79 | 12.11 | 슈퍼클래스를 위임으로 바꾸기 | Replace Superclass with Delegate | Replace Inheritance with Delegation | ||||||||||||||||||||||
80 | ||||||||||||||||||||||||||
81 | ||||||||||||||||||||||||||
82 | ||||||||||||||||||||||||||
83 | ||||||||||||||||||||||||||
84 | ||||||||||||||||||||||||||
85 | ||||||||||||||||||||||||||
86 | ||||||||||||||||||||||||||
87 | ||||||||||||||||||||||||||
88 | ||||||||||||||||||||||||||
89 | ||||||||||||||||||||||||||
90 | ||||||||||||||||||||||||||
91 | ||||||||||||||||||||||||||
92 | ||||||||||||||||||||||||||
93 | ||||||||||||||||||||||||||
94 | ||||||||||||||||||||||||||
95 | ||||||||||||||||||||||||||
96 | ||||||||||||||||||||||||||
97 | ||||||||||||||||||||||||||
98 | ||||||||||||||||||||||||||
99 | ||||||||||||||||||||||||||
100 |