"리팩토링 카탈로그"의 두 판 사이의 차이

태그: 수동 되돌리기
 
6번째 줄: 6번째 줄:
! name !! 이름 !! aliases !! 별칭
! name !! 이름 !! aliases !! 별칭
|-
|-
| [[Change Function Declaration]] || [[함수 선언 변경]] ★★ || [[Add Parameter]]<br>[[Change Signature]]<br>[[Remove Parameter]]<br>[[Rename Function]]<br>[[Rename Method]] || [[파라미터 추가]]<br>[[시그니처 변경]]<br>[[파라미터 제거]]<br>[[함수명 변경]]<br>[[메소드명 변경]]
| [[Change Function Declaration]] || [[함수 선언 변경]] ★★ || [[Add Parameter]]<br>[[Change Signature]]<br>[[Remove Parameter]]<br>[[Rename Function]]<br>[[Rename Method]] || [[파라미터 추가]] <br>[[시그니처 변경]]<br>[[파라미터 제거]] <br>[[함수명 변경]]<br>[[메소드명 변경]]
|-
|-
| [[Change Reference to Value]] || [[참조를 값으로 변경]] || ||
| [[Change Reference to Value]] || [[참조를 값으로 변경]] || ||
|-
|-
| [[Change Value to Reference]] || [[값을 참조로 변경]] || ||
| [[Change Value to Reference]] || [[값을 참조로 변경]] || ||
|-
|-
| [[Collapse Hierarchy]] || [[계층 병합]] || ||
| [[Collapse Hierarchy]] || [[계층구조 없애기]] || ||
|-
|-
| [[Combine Functions into Class]] || [[함수를 클래스에 결합]] ★★ || ||
| [[Combine Functions into Class]] || [[함수를 클래스에 결합]] ★★ || ||
18번째 줄: 18번째 줄:
| [[Combine Functions into Transform]] || [[함수를 변환으로 결합]] ★★ || ||
| [[Combine Functions into Transform]] || [[함수를 변환으로 결합]] ★★ || ||
|-
|-
| [[Consolidate Conditional Expression]] || [[조건문 통합]] || ||
| [[Consolidate Conditional Expression]] || [[조건문 통합]] || ||
|-
|-
| [[Decompose Conditional]] || [[조건문 분해]] || ||
| [[Decompose Conditional]] || [[조건문 분해]] || ||
|-
|-
| [[Encapsulate Collection]] || [[콜렉션 캡슐화]] || ||
| [[Encapsulate Collection]] || [[콜렉션 캡슐화]] || ||
|-
|-
| [[Encapsulate Record]] || [[레코드 캡슐화]]  || [[Replace Record with Data Class]] || [[레코드를 데이터 클래스로 교체]]  
| [[Encapsulate Record]] || [[레코드 캡슐화]]  || [[Replace Record with Data Class]] || [[레코드를 데이터 클래스로 교체]]  
|-
|-
| [[Encapsulate Variable]] || [[변수 캡슐화]] ★★ || [[Encapsulate Field]]<br>[[Self-Encapsulate Field]] || [[필드 캡슐화]]<br>[[필드 자체 캡슐화]]
| [[Encapsulate Variable]] || [[변수 캡슐화]] ★★ || [[Encapsulate Field]]<br>[[Self-Encapsulate Field]] || [[필드 캡슐화]] <br>[[필드 자체 캡슐화]]
|-
|-
| [[Extract Class]] || [[클래스 추출]] || ||
| [[Extract Class]] || [[클래스 추출]] || ||
|-
|-
| [[Extract Function]] || [[함수 추출]] ★★ || [[Extract Method]] || [[메소드 추출]]  
| [[Extract Function]] || [[함수 추출]] ★★ || [[Extract Method]] || [[메소드 추출]]
|-
|-
| [[Extract Superclass]] || [[슈퍼클래스 추출]] || ||
| [[Extract Superclass]] || [[슈퍼클래스 추출]] || ||
|-
|-
| [[Extract Variable]] || [[변수 추출]] ★★ || [[Introduce Explaining Variable]] || [[설명 변수 도입]]  
| [[Extract Variable]] || [[변수 추출]] ★★ || [[Introduce Explaining Variable]] || [[설명 변수 도입]]  
|-
|-
| [[Hide Delegate]] || [[대리자 숨기기]] || ||
| [[Hide Delegate]] || [[대리자 숨기기]] || ||
|-
|-
| [[Inline Class]] || [[클래스 인라인 처리]] || ||
| [[Inline Class]] || [[클래스 인라인 처리]] || ||
|-
|-
| [[Inline Function]] || [[함수 인라인 처리]] ★★ || [[Inline Method]] || [[메소드 인라인 처리]]  
| [[Inline Function]] || [[함수 인라인 처리]] ★★ || [[Inline Method]] || [[메소드 인라인 처리]]
|-
|-
| [[Inline Variable]] || [[변수 인라인 처리]] ★★ || [[Inline Temp]] || [[임시변수 인라인 처리]]  
| [[Inline Variable]] || [[변수 인라인 처리]] ★★★ || [[Inline Temp]] || [[임시변수 인라인 처리]]
|-
|-
| [[Introduce Assertion]] || [[표명 도입]] || ||
| [[Introduce Assertion]] || [[표명 도입]] || ||
|-
|-
| [[Introduce Parameter Object]] || [[파라미터 객체 도입]] ★★ || ||
| [[Introduce Parameter Object]] || [[파라미터 객체 도입]] ★★★ || ||
|-
|-
| [[Introduce Special Case]] || [[특별 케이스 도입]]  || [[Introduce Null Object]] || [[널 객체 도입]]  
| [[Introduce Special Case]] || [[특별 케이스 도입]]  || [[Introduce Null Object]] || [[널 객체 도입]]
|-
|-
| [[Move Field]] || [[필드 이동]] || ||
| [[Move Field]] || [[필드 이동]] || ||
|-
|-
| [[Move Function]] || [[함수 이동]]  || [[Move Method]] || [[메소드 이동]]  
| [[Move Function]] || [[함수 이동]]  || [[Move Method]] || [[메소드 이동]]
|-
|-
| [[Move Statements into Function]] || [[스테이트먼트를 함수 속으로 이동]] || ||
| [[Move Statements into Function]] || [[스테이트먼트를 함수 속으로 이동]] || ||
58번째 줄: 58번째 줄:
| [[Move Statements to Callers]] || [[스테이트먼트를 호출자로 이동]] || ||
| [[Move Statements to Callers]] || [[스테이트먼트를 호출자로 이동]] || ||
|-
|-
| [[Parameterize Function]] || [[함수 파라미터화]]  || [[Parameterize Method]] || [[메소드 파라미터화]]  
| [[Parameterize Function]] || [[함수 파라미터화]]  || [[Parameterize Method]] || [[메소드 파라미터화]]
|-
|-
| [[Preserve Whole Object]] || [[전체 객체 보존]] || ||
| [[Preserve Whole Object]] || [[전체 객체 보존]] || ||
|-
|-
| [[Pull Up Constructor Body]] || [[생성자 본문 끌어올리기]] || ||
| [[Pull Up Constructor Body]] || [[생성자 본문 끌어올리기]] || ||
|-
|-
| [[Pull Up Field]] || [[필드 끌어올리기]] || ||
| [[Pull Up Field]] || [[필드 끌어올리기]] || ||
|-
|-
| [[Pull Up Method]] || [[메소드 끌어올리기]] || ||
| [[Pull Up Method]] || [[메소드 끌어올리기]] || ||
|-
|-
| [[Push Down Field]] || [[필드 끌어내리기]] || ||
| [[Push Down Field]] || [[필드 끌어내리기]] || ||
|-
|-
| [[Push Down Method]] || [[메소드 끌어내리기]] || ||
| [[Push Down Method]] || [[메소드 끌어내리기]] || ||
|-
|-
| [[Remove Dead Code]] || [[죽은 코드 제거]] || ||
| [[Remove Dead Code]] || [[죽은 코드 제거]] || ||
|-
|-
| [[Remove Flag Argument]] || [[플래그 인수 제거]]  || [[Replace Parameter with Explicit Methods]] || [[파라미터를 명시적 메소드로 교체]]  
| [[Remove Flag Argument]] || [[플래그 인수 제거]]  || [[Replace Parameter with Explicit Methods]] || [[파라미터를 명시적 메소드로 교체]]
|-
|-
| [[Remove Middle Man]] || [[미들맨 제거]] || ||
| [[Remove Middle Man]] || [[미들맨 제거]] || ||
|-
|-
| [[Remove Setting Method]] || [[세팅 메소드 제거]] || ||
| [[Remove Setting Method]] || [[세팅 메소드 제거]] || ||
|-
|-
| [[Remove Subclass]] || [[서브클래스 제거]]  || [[Replace Subclass with Fields]] || [[서브클래스를 필드로 교체]]  
| [[Remove Subclass]] || [[서브클래스 제거]]  || [[Replace Subclass with Fields]] || [[서브클래스를 필드로 교체]]
|-
|-
| [[Rename Field]] || [[필드명 변경]] || ||
| [[Rename Field]] || [[필드명 변경]] || ||
88번째 줄: 88번째 줄:
| [[Replace Command with Function]] || [[커맨드를 함수로 교체]] || ||
| [[Replace Command with Function]] || [[커맨드를 함수로 교체]] || ||
|-
|-
| [[Replace Conditional with Polymorphism]] || [[조건문을 다형성으로 교체]] || ||
| [[Replace Conditional with Polymorphism]] || [[조건문을 다형성으로 교체]] || ||
|-
|-
| [[Replace Constructor with Factory Function]] || [[생성자를 팩토리 함수로 교체]]  || [[Replace Constructor with Factory Method]] || [[생성자를 팩토리 메소드로 교체]]  
| [[Replace Constructor with Factory Function]] || [[생성자를 팩토리 함수로 교체]]  || [[Replace Constructor with Factory Method]] || [[생성자를 팩토리 메소드로 교체]]
|-
|-
| [[Replace Control Flag with Break]] || [[제어 플래그를 break로 교체]]  || [[Remove Control Flag]] || [[제어 플래그 제거]]  
| [[Replace Control Flag with Break]] || [[제어 플래그를 break로 교체]]  || [[Remove Control Flag]] || [[제어 플래그 제거]]
|-
|-
| [[Replace Derived Variable with Query]] || [[파생변수를 쿼리로 교체]] || ||
| [[Replace Derived Variable with Query]] || [[파생변수를 쿼리로 교체]] || ||
|-
|-
| [[Replace Error Code with Exception]] || [[오류 코드를 예외로 교체]] || ||
| [[Replace Error Code with Exception]] || [[오류 코드를 예외로 교체]] || ||
|-
|-
| [[Replace Exception with Precheck]] || [[예외를 사전점검으로 교체]]  || [[Replace Exception with Test]] || [[예외를 테스트로 교체]]  
| [[Replace Exception with Precheck]] || [[예외를 사전점검으로 교체]]  || [[Replace Exception with Test]] || [[예외를 테스트로 교체]]
|-
|-
| [[Replace Function with Command]] || [[함수를 커맨드로 교체]]  || [[Replace Method with Method Object]] || [[메소드를 메소드 객체로 교체]]  
| [[Replace Function with Command]] || [[함수를 커맨드로 교체]]  || [[Replace Method with Method Object]] || [[메소드를 메소드 객체로 교체]]
|-
|-
| [[Replace Inline Code with Function Call]] || [[인라인 코드를 함수 호출로 교체]] || ||
| [[Replace Inline Code with Function Call]] || [[인라인 코드를 함수 호출로 교체]] || ||
106번째 줄: 106번째 줄:
| [[Replace Loop with Pipeline]] || [[루프를 파이프라인으로 교체]] || ||
| [[Replace Loop with Pipeline]] || [[루프를 파이프라인으로 교체]] || ||
|-
|-
| [[Replace Magic Literal]] || [[매직 리터럴 교체]] || [[Replace Magic Number with Symbolic Constant]] || [[매직 넘버를 심볼릭 상수로 교체]]  
| [[Replace Magic Literal]] || [[매직 리터럴 교체]] || [[Replace Magic Number with Symbolic Constant]] || [[매직 넘버를 심볼릭 상수로 교체]]
|-
|-
| [[Replace Nested Conditional with Guard Clauses]] || [[중첩 조건문을 가드절로 교체]] || ||
| [[Replace Nested Conditional with Guard Clauses]] || [[중첩 조건문을 가드절로 교체]] || ||
|-
|-
| [[Replace Parameter with Query]] || [[파라미터를 쿼리로 교체]]  || [[Replace Parameter with Method]] || [[파라미터를 메소드로 교체]]  
| [[Replace Parameter with Query]] || [[파라미터를 쿼리로 교체]]  || [[Replace Parameter with Method]] || [[파라미터를 메소드로 교체]]
|-
|-
| [[Replace Primitive with Object]] || [[기본자료형을 객체로 교체]]  || [[Replace Data Value with Object]]<br>[[Replace Type Code with Class]] || [[데이터값을 객체로 교체]]<br>[[타입 코드를 클래스로 교체]]
| [[Replace Primitive with Object]] || [[기본자료형을 객체로 교체]]  || [[Replace Data Value with Object]]<br>[[Replace Type Code with Class]] || [[데이터값을 객체로 교체]] <br>[[타입 코드를 클래스로 교체]]
|-
|-
| [[Replace Query with Parameter]] || [[쿼리를 파라미터로 교체]] || ||
| [[Replace Query with Parameter]] || [[쿼리를 파라미터로 교체]] || ||
118번째 줄: 118번째 줄:
| [[Replace Subclass with Delegate]] || [[서브클래스를 대리자로 교체]] || ||
| [[Replace Subclass with Delegate]] || [[서브클래스를 대리자로 교체]] || ||
|-
|-
| [[Replace Superclass with Delegate]] || [[슈퍼클래스를 대리자로 교체]]  || [[Replace Inheritance with Delegation]] || [[상속을 위임으로 교체]]  
| [[Replace Superclass with Delegate]] || [[슈퍼클래스를 대리자로 교체]]  || [[Replace Inheritance with Delegation]] || [[상속을 위임으로 교체]]
|-
|-
| [[Replace Temp with Query]] || [[임시변수를 쿼리로 교체]] || ||
| [[Replace Temp with Query]] || [[임시변수를 쿼리로 교체]] || ||
|-
|-
| [[Replace Type Code with Subclasses]] || [[타입 코드를 서브클래스로 교체]] || [[Extract Subclass]]<br>[[Replace Type Code with State/Strategy]] || [[서브클래스 추출]]<br>[[타입코드를 스테이트/전략으로 교체]]
| [[Replace Type Code with Subclasses]] || [[타입 코드를 서브클래스로 교체]] || [[Extract Subclass]]<br>[[Replace Type Code with State/Strategy]] || [[서브클래스 추출]] <br>[[타입코드를 스테이트/전략으로 교체]]
|-
|-
| [[Return Modified Value]] || [[수정된 값 반환]] || ||
| [[Return Modified Value]] || [[수정된 값 반환]] || ||
|-
|-
| [[Separate Query from Modifier]] || [[수정자에서 쿼리 분리]] || ||
| [[Separate Query from Modifier]] || [[수정자에서 쿼리 분리]] || ||
|-
|-
| [[Slide Statements]] || [[스테이트먼트 위치조정]]  || [[Consolidate Duplicate Conditional Fragments]] || [[중복된 조건부 코드조각 통합]]  
| [[Slide Statements]] || [[스테이트먼트 위치조정]]  || [[Consolidate Duplicate Conditional Fragments]] || [[중복된 조건부 코드조각 통합]]
|-
|-
| [[Split Loop]] || [[루프 분할]] || ||
| [[Split Loop]] || [[루프 분할]] || ||
134번째 줄: 134번째 줄:
| [[Split Phase]] || [[단계 분할]] || ||
| [[Split Phase]] || [[단계 분할]] || ||
|-
|-
| [[Split Variable]] || [[변수 분할]]  || [[Remove Assignments to Parameters]]<br>[[Split Temp]] || [[파라미터에 대한 대입 제거]]<br>[[임시변수 분할]]
| [[Split Variable]] || [[변수 분할]]  || [[Remove Assignments to Parameters]]<br>[[Split Temp]] || [[파라미터에 대한 대입 제거]] <br>[[임시변수 분할]]
|-
|-
| [[Substitute Algorithm]] || [[알고리즘 대체]] || ||
| [[Substitute Algorithm]] || [[알고리즘 대체]] || ||
|}
|}



2022년 12월 18일 (일) 14:43 기준 최신판

1 개요[ | ]

Refactoring Catalog
리팩토링 카탈로그
name 이름 aliases 별칭
Change Function Declaration 함수 선언 변경 ★★ Add Parameter
Change Signature
Remove Parameter
Rename Function
Rename Method
파라미터 추가
시그니처 변경
파라미터 제거
함수명 변경
메소드명 변경
Change Reference to Value 참조를 값으로 변경
Change Value to Reference 값을 참조로 변경
Collapse Hierarchy 계층구조 없애기
Combine Functions into Class 함수를 클래스에 결합 ★★
Combine Functions into Transform 함수를 변환으로 결합 ★★
Consolidate Conditional Expression 조건문 통합
Decompose Conditional 조건문 분해
Encapsulate Collection 콜렉션 캡슐화
Encapsulate Record 레코드 캡슐화 Replace Record with Data Class 레코드를 데이터 클래스로 교체
Encapsulate Variable 변수 캡슐화 ★★ Encapsulate Field
Self-Encapsulate Field
필드 캡슐화
필드 자체 캡슐화
Extract Class 클래스 추출
Extract Function 함수 추출 ★★ Extract Method 메소드 추출
Extract Superclass 슈퍼클래스 추출
Extract Variable 변수 추출 ★★ Introduce Explaining Variable 설명 변수 도입
Hide Delegate 대리자 숨기기
Inline Class 클래스 인라인 처리
Inline Function 함수 인라인 처리 ★★ Inline Method 메소드 인라인 처리
Inline Variable 변수 인라인 처리 ★★★ Inline Temp 임시변수 인라인 처리
Introduce Assertion 표명 도입
Introduce Parameter Object 파라미터 객체 도입 ★★★
Introduce Special Case 특별 케이스 도입 Introduce Null Object 널 객체 도입
Move Field 필드 이동
Move Function 함수 이동 Move Method 메소드 이동
Move Statements into Function 스테이트먼트를 함수 속으로 이동
Move Statements to Callers 스테이트먼트를 호출자로 이동
Parameterize Function 함수 파라미터화 Parameterize Method 메소드 파라미터화
Preserve Whole Object 전체 객체 보존
Pull Up Constructor Body 생성자 본문 끌어올리기
Pull Up Field 필드 끌어올리기
Pull Up Method 메소드 끌어올리기
Push Down Field 필드 끌어내리기
Push Down Method 메소드 끌어내리기
Remove Dead Code 죽은 코드 제거
Remove Flag Argument 플래그 인수 제거 Replace Parameter with Explicit Methods 파라미터를 명시적 메소드로 교체
Remove Middle Man 미들맨 제거
Remove Setting Method 세팅 메소드 제거
Remove Subclass 서브클래스 제거 Replace Subclass with Fields 서브클래스를 필드로 교체
Rename Field 필드명 변경
Rename Variable 변수명 변경 ★★
Replace Command with Function 커맨드를 함수로 교체
Replace Conditional with Polymorphism 조건문을 다형성으로 교체
Replace Constructor with Factory Function 생성자를 팩토리 함수로 교체 Replace Constructor with Factory Method 생성자를 팩토리 메소드로 교체
Replace Control Flag with Break 제어 플래그를 break로 교체 Remove Control Flag 제어 플래그 제거
Replace Derived Variable with Query 파생변수를 쿼리로 교체
Replace Error Code with Exception 오류 코드를 예외로 교체
Replace Exception with Precheck 예외를 사전점검으로 교체 Replace Exception with Test 예외를 테스트로 교체
Replace Function with Command 함수를 커맨드로 교체 Replace Method with Method Object 메소드를 메소드 객체로 교체
Replace Inline Code with Function Call 인라인 코드를 함수 호출로 교체
Replace Loop with Pipeline 루프를 파이프라인으로 교체
Replace Magic Literal 매직 리터럴 교체 Replace Magic Number with Symbolic Constant 매직 넘버를 심볼릭 상수로 교체
Replace Nested Conditional with Guard Clauses 중첩 조건문을 가드절로 교체
Replace Parameter with Query 파라미터를 쿼리로 교체 Replace Parameter with Method 파라미터를 메소드로 교체
Replace Primitive with Object 기본자료형을 객체로 교체 Replace Data Value with Object
Replace Type Code with Class
데이터값을 객체로 교체
타입 코드를 클래스로 교체
Replace Query with Parameter 쿼리를 파라미터로 교체
Replace Subclass with Delegate 서브클래스를 대리자로 교체
Replace Superclass with Delegate 슈퍼클래스를 대리자로 교체 Replace Inheritance with Delegation 상속을 위임으로 교체
Replace Temp with Query 임시변수를 쿼리로 교체
Replace Type Code with Subclasses 타입 코드를 서브클래스로 교체 Extract Subclass
Replace Type Code with State/Strategy
서브클래스 추출
타입코드를 스테이트/전략으로 교체
Return Modified Value 수정된 값 반환
Separate Query from Modifier 수정자에서 쿼리 분리
Slide Statements 스테이트먼트 위치조정 Consolidate Duplicate Conditional Fragments 중복된 조건부 코드조각 통합
Split Loop 루프 분할
Split Phase 단계 분할
Split Variable 변수 분할 Remove Assignments to Parameters
Split Temp
파라미터에 대한 대입 제거
임시변수 분할
Substitute Algorithm 알고리즘 대체

2 같이 보기[ | ]

3 참고[ | ]

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