"리팩토링 기법"의 두 판 사이의 차이

(새 문서: ==개요== ;Refactoring Techniques ;리팩토링 기법 * 메소드 조립하기 * 객체간 기능 이동 * 데이터 정리 * 조건문 단순화 * 메소드 호출 단순화 * 일...)
 
 
(같은 사용자의 중간 판 18개는 보이지 않습니다)
1번째 줄: 1번째 줄:
==개요==
==개요==
;Refactoring Techniques
;Refactoring Techniques
;리팩토링 기법
;리팩토링 테크닉, 리팩토링 기법
* 메소드 조립하기
 
* 객체간 기능 이동
{| class='wikitable'
* 데이터 정리
!colspan='2'| [[메소드 구성(Composing Methods)]]
* 조건문 단순화
|-
* 메소드 호출 단순화
| [[Extract Method]] || [[메소드 추출]] ★★
* 일반화 다루기
|-
| [[Inline Method]] || [[메소드 인라인 처리]] ★★
|-
| [[Extract Variable]] || [[변수 추출]] ★★
|-
| [[Inline Temp]] || [[임시변수 인라인 처리]] ★★
|-
| [[Replace Temp with Query]] || [[임시변수를 쿼리로 교체]]
|-
| [[Split Temporary Variable]] || [[임시변수 분할]]
|-
| [[Remove Assignments to Parameters]] || [[파라미터에 대한 대입 제거]]
|-
| [[Replace Method with Method Object]] || [[메소드를 메소드 객체로 교체]]
|-
| [[Substitute Algorithm]] || [[알고리즘 대체]]
|-
!colspan='2'| [[객체간 기능 이전(Moving Features between Objects)]]
|-
| [[Move Method]] || [[메소드 이동]]
|-
| [[Move Field]] || [[필드 이동]]
|-
| [[Extract Class]] || [[클래스 추출]]
|-
| [[Inline Class]] || [[인라인 클래스]]
|-
| [[Hide Delegate]] || [[대리자 숨기기]]
|-
| [[Remove Middle Man]] || [[중간자 제거]]
|-
| [[Introduce Foreign Method]] || [[외부 메소드 도입]]
|-
| [[Introduce Local Extension]] || [[로컬 확장기능 도입]]
|-
!colspan='2'| [[데이터 조직화(Organizing Data)]]
|-
| [[Change Value to Reference]] || [[값을 참조로 변경]]
|-
| [[Change Reference to Value]] || [[참조를 값으로 변경]]
|-
| [[Duplicate Observed Data]] || [[관측 데이터 복제]]
|-
| [[Self Encapsulate Field]] || [[필드 자체 캡슐화]]
|-
| [[Replace Data Value with Object]] || [[데이터값을 객체로 교체]]
|-
| [[Replace Array with Object]] || [[배열을 객체로 교체]]
|-
| [[Change Unidirectional Association to Bidirectional]] || [[단방향 연관을 양방향으로 변경]]
|-
| [[Change Bidirectional Association to Unidirectional]] || [[양방향 연관을 단방향으로 변경]]
|-
| [[Encapsulate Field]] || [[필드 캡슐화]] ★★
|-
| [[Encapsulate Collection]] || [[콜렉션 캡슐화]]
|-
| [[Replace Magic Number with Symbolic Constant]] || [[매직 넘버를 상징적 상수로 교체]]
|-
| [[Replace Type Code with Class]] || [[타입 코드를 클래스로 교체]]
|-
| [[Replace Type Code with Subclasses]] || [[타입 코드를 서브클래스로 교체]]
|-
| [[Replace Type Code with State/Strategy]] || [[타입 코드를 스테이트/전략으로 교체]]
|-
| [[Replace Subclass with Fields]] || [[서브클래스를 필드로 교체]]
|-
!colspan='2'| [[조건문 단순화(Simplifying Conditional Expressions)]]
|-
| [[Consolidate Conditional Expression]] || [[조건부 표현 통합]]
|-
| [[Consolidate Duplicate Conditional Fragments]] || [[중복된 조건부 코드조각 통합]]
|-
| [[Decompose Conditional]] || [[조건문 분해]]
|-
| [[Replace Conditional with Polymorphism]] || [[조건문을 다형성으로 교체]]
|-
| [[Remove Control Flag]] || [[제어 플래그 제거]]
|-
| [[Replace Nested Conditional with Guard Clauses]] || [[중첩 조건문을 가드절로 교체]]
|-
| [[Introduce Null Object]] || [[널 객체 도입]]
|-
| [[Introduce Assertion]] || [[어썰션 도입]]
|-
!colspan='2'| [[메소드 호출 단순화(Simplifying Method Calls)]]
|-
| [[Add Parameter]] || [[파라미터 추가]]
|-
| [[Remove Parameter]] || [[파라미터 제거]]
|-
| [[Rename Method]] || [[메소드명 변경]] ★★
|-
| [[Separate Query from Modifier]] || [[수정자에서 쿼리 분리]]
|-
| [[Parameterize Method]] || [[메소드 파라미터화]]
|-
| [[Introduce Parameter Object]] || [[파라미터 객체 도입]] ★★
|-
| [[Preserve Whole Object]] || [[존체 객체 보존]]
|-
| [[Remove Setting Method]] || [[세팅 메소드 제거]]
|-
| [[Replace Parameter with Explicit Methods]] || [[파라미터를 명시적 메소드로 교체]]
|-
| [[Replace Parameter with Method Call]] || [[파라미터를 메소드 호출로 교체]]
|-
| [[Hide Method]] || [[메소드 숨기기]]
|-
| [[Replace Constructor with Factory Method]] || [[생성자를 팩토리 메소드로 교체]]
|-
| [[Replace Error Code with Exception]] || [[오류 코드를 예외로 교체]]
|-
| [[Replace Exception with Test]] || [[예외를 테스트로 교체]]
|-
!colspan='2'| [[일반화 다루기(Dealing with Generalization)]]
|-
| [[Pull Up Field]] || [[필드 끌어올리기]]
|-
| [[Pull Up Method]] || [[메소드 끌어올리기]]
|-
| [[Pull Up Constructor Body]] || [[생성자 내용 끌어올리기]]
|-
| [[Push Down Field]] || [[필드 끌어내리기]]
|-
| [[Push Down Method]] || [[메소드 끌어내리기]]
|-
| [[Extract Subclass]] || [[서브클래스 추출]]
|-
| [[Extract Superclass]] || [[슈퍼클래스 추출]]
|-
| [[Extract Interface]] || [[인터페이스 추출]]
|-
| [[Collapse Hierarchy]] || [[계층구조 없애기]]
|-
| [[Form Template Method]] || [[템플릿 메소드 형성]]
|-
| [[Replace Inheritance with Delegation]] || [[상속을 위임으로 교체]]
|-
| [[Replace Delegation with Inheritance]] || [[위임을 상속으로 교체]]
|}


==같이 보기==
==같이 보기==
* [[기법]]
* [[테크닉]]
* [[리팩토링]]
* [[리팩토링]]
* [[리팩토링 카탈로그]]


==참고==
==참고==

2023년 8월 18일 (금) 14:22 기준 최신판

1 개요[ | ]

Refactoring Techniques
리팩토링 테크닉, 리팩토링 기법
메소드 구성(Composing Methods)
Extract Method 메소드 추출 ★★
Inline Method 메소드 인라인 처리 ★★
Extract Variable 변수 추출 ★★
Inline Temp 임시변수 인라인 처리 ★★
Replace Temp with Query 임시변수를 쿼리로 교체
Split Temporary Variable 임시변수 분할
Remove Assignments to Parameters 파라미터에 대한 대입 제거
Replace Method with Method Object 메소드를 메소드 객체로 교체
Substitute Algorithm 알고리즘 대체
객체간 기능 이전(Moving Features between Objects)
Move Method 메소드 이동
Move Field 필드 이동
Extract Class 클래스 추출
Inline Class 인라인 클래스
Hide Delegate 대리자 숨기기
Remove Middle Man 중간자 제거
Introduce Foreign Method 외부 메소드 도입
Introduce Local Extension 로컬 확장기능 도입
데이터 조직화(Organizing Data)
Change Value to Reference 값을 참조로 변경
Change Reference to Value 참조를 값으로 변경
Duplicate Observed Data 관측 데이터 복제
Self Encapsulate Field 필드 자체 캡슐화
Replace Data Value with Object 데이터값을 객체로 교체
Replace Array with Object 배열을 객체로 교체
Change Unidirectional Association to Bidirectional 단방향 연관을 양방향으로 변경
Change Bidirectional Association to Unidirectional 양방향 연관을 단방향으로 변경
Encapsulate Field 필드 캡슐화 ★★
Encapsulate Collection 콜렉션 캡슐화
Replace Magic Number with Symbolic Constant 매직 넘버를 상징적 상수로 교체
Replace Type Code with Class 타입 코드를 클래스로 교체
Replace Type Code with Subclasses 타입 코드를 서브클래스로 교체
Replace Type Code with State/Strategy 타입 코드를 스테이트/전략으로 교체
Replace Subclass with Fields 서브클래스를 필드로 교체
조건문 단순화(Simplifying Conditional Expressions)
Consolidate Conditional Expression 조건부 표현 통합
Consolidate Duplicate Conditional Fragments 중복된 조건부 코드조각 통합
Decompose Conditional 조건문 분해
Replace Conditional with Polymorphism 조건문을 다형성으로 교체
Remove Control Flag 제어 플래그 제거
Replace Nested Conditional with Guard Clauses 중첩 조건문을 가드절로 교체
Introduce Null Object 널 객체 도입
Introduce Assertion 어썰션 도입
메소드 호출 단순화(Simplifying Method Calls)
Add Parameter 파라미터 추가
Remove Parameter 파라미터 제거
Rename Method 메소드명 변경 ★★
Separate Query from Modifier 수정자에서 쿼리 분리
Parameterize Method 메소드 파라미터화
Introduce Parameter Object 파라미터 객체 도입 ★★
Preserve Whole Object 존체 객체 보존
Remove Setting Method 세팅 메소드 제거
Replace Parameter with Explicit Methods 파라미터를 명시적 메소드로 교체
Replace Parameter with Method Call 파라미터를 메소드 호출로 교체
Hide Method 메소드 숨기기
Replace Constructor with Factory Method 생성자를 팩토리 메소드로 교체
Replace Error Code with Exception 오류 코드를 예외로 교체
Replace Exception with Test 예외를 테스트로 교체
일반화 다루기(Dealing with Generalization)
Pull Up Field 필드 끌어올리기
Pull Up Method 메소드 끌어올리기
Pull Up Constructor Body 생성자 내용 끌어올리기
Push Down Field 필드 끌어내리기
Push Down Method 메소드 끌어내리기
Extract Subclass 서브클래스 추출
Extract Superclass 슈퍼클래스 추출
Extract Interface 인터페이스 추출
Collapse Hierarchy 계층구조 없애기
Form Template Method 템플릿 메소드 형성
Replace Inheritance with Delegation 상속을 위임으로 교체
Replace Delegation with Inheritance 위임을 상속으로 교체

2 같이 보기[ | ]

3 참고[ | ]

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}