ABCDEFGHIJKLMNOPQRSTUVWXY
1
2판// 지원 깃허브대표 IDE들이 제공하는 자동 리팩터링
// 책에서 소개하는 범용 기법들 외에 각 언어에 특화된 다양한 기법들을 추가로 제공하니 아래 링크를 클릭하여 자세히 살펴보세요.
2
한글영어IntelliJ IDEA(자바)이클립스(자바)VS 2019(C#)ReSharper(C#)
// 다른 (메이저) 언어용 IDE들은 자동 리팩터링을 의미 있는 수준에서 지원하지 않아서 따로 정리하지 않았습니다.
3
6.1함수 추출하기Extract FunctionExtract MethodExtract Method (Alt + Shift + M)메서드 추출Extract Method
4
6.2함수 인라인하기Inline FunctionInlineInline (Alt + Shift + I)Inline Method
5
6.3변수 추출하기Extract VariableExtract Variable
Extract Constant
Extract Local Variable (Alt + Shift + L)
6
6.4변수 인라인하기Inline VariableInlineInline (Alt + Shift + I)Inline Field
7
6.5함수 선언 바꾸기
(함수 이름 바꾸기)
Change Function DeclarationChange SignatureChange Method Signature (Alt + Shift + C)메서드 시그니처 변경Change Signature
8
매개 변수 생성
9
10
6.6변수 캡슐화하기Encapsulate Variable필드 캡슐화Encapsulate Field
11
Encapsulate FieldsEncapsulate Field
12
6.7변수 이름 바꾸기Rename VariableRenameRename (Alt + Shift + R)이름 바꾸기Rename
13
6.8매개변수 객체 만들기Introduce Parameter ObjectExtract Parameter ObjectIntroduce Parameter Object
14
6.9여러 함수를 클래스로 묶기Combine Functions into ClassExtract into ClassExtract ClassExtract 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 QueryReplace Temp With Query
23
7.5클래스 추출하기Extract ClassExtract into ClassExtract ClassExtract Class
24
7.6클래스 인라인하기Inline Class
25
7.7위임 숨기기Hide Delegate
26
7.8중개자 제거하기Remove Middle ManRemove Middleman
27
7.9알고리즘 교체하기Substitute Algorithm
28
29
8.1함수 옮기기Move FunctionMoveMove (Alt + Shift + V)
30
8.2필드 옮기기Move FieldMoveMove (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 CodeSafe Delete // 파일과 심볼 한정접근할 수 없는 코드 제거Safe Delete // 타입, 멤버, 그외 심볼
38
39
9.1변수 쪼개기Split Variable
40
41
9.2필드 이름 바꾸기Rename FieldRenameRename (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 Conditionalif 문 분할 또는 병합
48
10.2조건식 통합하기Consolidate Conditional Expressionif 문 분할 또는 병합
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 FunctionExtract ParameterIntroduce ParameterIntroduce Parameter
57
11.3플래그 인수 제거하기Remove Flag Argument
58
11.4객체 통째로 넘기기Preserve Whole ObjectTransform 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 FunctionReplace Constructor with Builder
Replace Constructor with Factory Method
Introduce FactoryReplace 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 MethodPull Members UpPull Up멤버 끌어오기Pull Members Up
70
12.2필드 올리기Pull Up FieldPull Members UpPull Up멤버 끌어오기Pull Members Up
71
12.3생성자 본문 올리기Pull Up Constructor Body
72
12.4메서드 내리기Push Down MethodPush Members DownPush Down멤버 끌어오기Push Members Down
73
12.5필드 내리기Push Down FieldPush Members DownPush Down멤버 끌어오기Push Members Down
74
12.6타입 코드를 서브클래스로 바꾸기Replace Type Code with Subclasses
75
12.7서브클래스 제거하기Remove Subclass
76
12.8슈퍼클래스 추출하기Extract SuperclassExtract Superclass
Extract Interface
Extract Superclass
Extract Interface
인터페이스 추출Extract Superclass
Extract Interface
77
12.9계층 합치기Collapse HierarchyInline Superclass
78
12.10
서브클래스를 위임으로 바꾸기Replace Subclass with DelegateReplace Inheritance with Delegation
79
12.11
슈퍼클래스를 위임으로 바꾸기Replace Superclass with DelegateReplace Inheritance with Delegation
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100