메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

리팩토링: 코드 품질을 개선하는 객체지향 사고법

한빛미디어

번역서

절판

  • 저자 : 마틴 파울러
  • 번역 : 김지원
  • 출간 : 2012-11-09
  • 페이지 : 500 쪽
  • ISBN : 9788979149715
  • 물류코드 :1971
  • 개정판정보 :개정판이 새로 출간되었습니다. 개정판 보기
  • 초급 초중급 중급 중고급 고급
1 2 3 4 5
4점 (2명)
좋아요 : 71

책소개

객체지향은 제대로 잘 해야 한다!

당신은 객체지향 프로그래머인가?
프로그램이 돌아가기면 하면 객체지향인가? 객체지향이라는 도구를 제대로 활용하지 못하고 마구잡이로 작성한 코드에는 악취가 진동한다.
리팩토링은 코드의 동작이나 의도는 유지하면서 코드의 구조, 재사용성, 가독성을 개선해 코드의 악취를 제거하고 전체 디자인을 개선하는 방법이다.독자는 72가지 리팩토링 기법을 통해 코드를 점진적으로 개선하는 방법을 학습할 수 있으며, 이 책을 마쳤을 때는 객체지향 프로그래밍 능력이 한 단계 향상될 것이다.

코딩 스타일이 바뀐다
객체지향 언어의 문법을 익혔다고 저절로 객체지향 프로그래밍을 할 수 있는 게 아니다. 리팩토링 카탈로그를 통해 어떤 코드를 고쳐야 하는지, 왜 고쳐야 하는지, 고친 코드가 왜 좋은지 이해할 수 있다. 이런 과정을 통해 객체지향에 어울리는 코드 디자인을 배우게 되고, 자신의 코딩 스타일도 바뀌게 된다. 이 책을 읽기 전과 후는 코드의 품질에 결정적인 차이를 가져오게 된다.

어떤 독자를 위한 책인가?
  • 좋은 코드를 작성하고, 코드의 품질을 개선하고 싶은 1-2년차 개발자
  • 자바로 객체지향 프로그래밍을 제대로 하고 싶은 개발자

저자소개

마틴 파울러 저자

마틴 파울러

ThoughtWorks 수석 과학자. 엔터프라이즈 소프트웨어 설계에 주력한다. 특히 좋은 설계와 설계 개선에 관심이 많다. 소프트웨어 개발 관련 다수의 책을 집필했고, 제어 역전(Inversion of Control)과 의존성 주입(Dependency Injection) 용어를 대중화시킨 장본인이다.
김지원 역자

김지원

여가 시간에는 플래시 아이템 제작, 컴퓨터 음악 작곡 등을 하며, 때로는 구성이 잘 된 웹디자이너들의 사이트를 탐색하면서 아이디어를 구상하기도 한다. 뜨거운 감자인 웹 표준에 관해서도 큰 관심을 갖고 있으며, 이와 관련해서 유용한 보충 자료를 수집해 블로그를 통해 제공할 예정이다. 최근 우리말 번역에 있어서 기술 용어의 일관성에 대해 고민하고 있다. 건국대학교 신소재공학과를 졸업한 후, 기술문서, 매뉴얼 등을 위주로 번역해왔으며 유비쿼터스 IT 관련 논문들의 번역 작업에 참여했다. 2004년부터 현재까지 정보기술, 건축, 화학, 디자인, 사운드 등의 분야에서 프리랜서 번역가로 활동 중이다.

목차

CHAPTER 01 맛보기 예제

  원래의 프로그램 

  리팩토링 첫 단계 

  statement 메서드 분해와 기능 재분배 

  가격 책정 부분의 조건문을 재정의로 교체 

  고찰 

 

CHAPTER 02 리팩토링 개론

  리팩토링은 무엇인가 

  리팩토링은 왜 해야 하나 

  리팩토링은 어떨 때 필요한가 

  팀장에게 어떻게 말을 꺼내나 

  리팩토링 관련 문제들 

  리팩토링과 설계 

  리팩토링과 성능 

  리팩토링의 유래 

 

CHAPTER 03 코드의 구린내

  중복 코드 Duplicated Code 

  장황한 메서드 Long Method 

  방대한 클래스 Large Class 

  과다한 매개변수 Long Parameter List 

  수정의 산발 Divergent Change 

  기능의 산재 Shotgun Surgery 

  잘못된 소속 Feature Envy 

  데이터 뭉치 Data Clumps 

  강박적 기본 타입 사용 Primitive Obsession 

  switch 문 Switch Statements 

  평행 상속 계층 Parallel Inheritance Hierarchies 

  직무유기 클래스 Lazy Class 

  막연한 범용 코드 Speculative Generality 

  임시 필드 Temporary Field 

  메시지 체인 Message Chains 

  과잉 중개 메서드 Middle Man 

  지나친 관여 Inappropriate Intimacy 

  인터페이스가 다른 대용 클래스 Alternative Classes with Different Interfaces 

  미흡한 라이브러리 클래스 Incomplete Library Class 

  데이터 클래스 Data Class 

  방치된 상속물 Refused Bequest 

  불필요한 주석 Comments 

 

CHAPTER 04 테스트 작성

  JUnit 테스트 프레임워크 

  테스트 추가 

 

CHAPTER 05 리팩토링 기법 카탈로그에 대해

  참조 검색 

  리팩토링 기법의 성숙도 

 

CHAPTER 06 메서드 정리

  메서드 추출 Extract Method 

  메서드 내용 직접 삽입 Inline Method 

  임시변수 내용 직접 삽입 Inline Temp 

  임시변수를 메서드 호출로 전환 Replace Temp with Query 

  직관적 임시변수 사용 Introduce Explaining Variable 

  임시변수 분리 Split Temporary Variable 

  매개변수로의 값 대입 제거 Remove Assignments to Parameters 

  메서드를 메서드 객체로 전환 Replace Method with Method Object 

  알고리즘 전환 Substitute Algorithm 

 

CHAPTER 07 객체 간의 기능 이동

  메서드 이동 Move Method 

  필드 이동 Move Field 

  클래스 추출 Extract Class 

  클래스 내용 직접 삽입 Inline Class 

  대리 객체 은폐 Hide Delegate 

  과잉 중개 메서드 제거 Remove Middle Man 

  외래 클래스에 메서드 추가 Introduce Foreign Method 

  국소적 상속확장 클래스 사용 Introduce Local Extension 

 

CHAPTER 08 데이터 체계화

  필드 자체 캡슐화 Self Encapsulate Field 

  데이터 값을 객체로 전환 Replace Data Value with Object 

  값을 참조로 전환 Change Value to Reference 

  참조를 값으로 전환 Change Reference to Value 

  배열을 객체로 전환 Replace Array with Object 

  관측 데이터 복제 Duplicate Observed Data 

  클래스의 단방향 연결을 양방향으로 전환 Change Unidirectional Association to Bidirectional 

  클래스의 양방향 연결을 단방향으로 전환 Change Bidirectional Association to Unidirectional 

  마법 숫자를 기호 상수로 전환 Replace Magic Number with Symbolic Constant 

  필드 캡슐화 Encapsulate Field 

  컬렉션 캡슐화 Encapsulate Collection 

  레코드를 데이터 클래스로 전환 Replace Record with Data Class 

  분류 부호를 클래스로 전환 Replace Type Code with Class 

  분류 부호를 하위클래스로 전환 Replace Type Code with Subclasses 

  분류 부호를 상태/전략 패턴으로 전환 Replace Type Code with State/Strategy 

  하위클래스를 필드로 전환 Replace Subclass with Fields 

 

CHAPTER 09 조건문 간결화

  조건문 쪼개기 Decompose Conditional 

  중복 조건식 통합 Consolidate Conditional Expression 

  조건문의 공통 실행 코드 빼내기 Consolidate Duplicate Conditional Fragments 

  제어 플래그 제거 Remove Control Flag 

  여러 겹의 조건문을 감시 절로 전환 Replace Nested Conditional with Guard Clauses 

  조건문을 재정의로 전환 Replace Conditional with Polymorphism 

  Null 검사를 널 객체에 위임 Introduce Null Object 

  어설션 넣기 Introduce Assertion 

 

CHAPTER 10 메서드 호출 단순화

  메서드명 변경 Rename Method 

  매개변수 추가 Add Parameter 

  매개변수 제거 Remove Parameter 

  상태 변경 메서드와 값 반환 메서드를 분리 Separate Query from Modifier 

  메서드를 매개변수로 전환 Parameterize Method 

  매개변수를 메서드로 전환 Replace Parameter with Explicit Methods 

  객체를 통째로 전달 Preserve Whole Object 

  매개변수 세트를 메서드로 전환 Replace Parameter with Method 

  매개변수 세트를 객체로 전환 Introduce Parameter Object 

  쓰기 메서드 제거 Remove Setting Method 

  메서드 은폐 Hide Method 

  생성자를 팩토리 메서드로 전환 Replace Constructor with Factory Method 

  하향 타입 변환을 캡슐화 Encapsulate Downcast 

  에러 부호를 예외 통지로 교체 Replace Error Code with Exception 

  예외 처리를 테스트로 교체 Replace Exception with Test 

 

CHAPTER 11 일반화 처리

  필드 상향 Pull Up Field 

  메서드 상향 Pull Up Method 

  생성자 내용 상향 Pull Up Constructor Body 

  메서드 하향 Push Down Method 

  필드 하향 Push Down Field 

  하위클래스 추출 Extract Subclass 

  상위클래스 추출 Extract Superclass 

  인터페이스 추출 Extract Interface 

  계층 병합 Collapse Hierarchy 

  템플릿 메서드 형성 Form Template Method 

  상속을 위임으로 전환 Replace Inheritance with Delegation 

  위임을 상속으로 전환 Replace Delegation with Inheritance 

 

CHAPTER 12 복합 리팩토링

  상속 구조 정리 Tease Apart Inheritance 

  절차 코드를 객체로 전환 Convert Procedural Design to Objects 

  도메인 로직을 표현과 분리 Separate Domain from Presentation 

  계층구조 추출 Extract Hierarchy 

 

CHAPTER 13 리팩토링, 재사용, 현실성

  개발자가 리팩토링을 꺼리는 이유 

  현실성 다시 검토하기 

  리팩토링 자료와 참고문헌 

  소프트웨어 재사용과 기술 변경이 미치는 영향 

  끝 인사 

  참고문헌 

 

CHAPTER 14 리팩토링 도구

  도구를 이용한 리팩토링 

  리팩토링 도구의 기술적 요건 

  리팩토링 도구의 실무적 요건 

  맺음말 

독자리뷰

오탈자 보기

결제하기
• 문화비 소득공제 가능
• 배송료 : 2,000원배송료란?

배송료 안내

  • 20,000원 이상 구매시 도서 배송 무료
  • 브론즈, 실버, 골드회원 무료배송
닫기

리뷰쓰기

닫기
* 상품명 :
리팩토링: 코드 품질을 개선하는 객체지향 사고법
* 제목 :
* 별점평가
1 2 3 4 5
* 내용 :

* 리뷰 작성시 유의사항

글이나 이미지/사진 저작권 등 다른 사람의 권리를 침해하거나 명예를 훼손하는 게시물은 이용약관 및 관련법률에 의해 제재를 받을 수 있습니다.

1. 특히 뉴스/언론사 기사를 전문 또는 부분적으로 '허락없이' 갖고 와서는 안됩니다 (출처를 밝히는 경우에도 안됨).
2. 저작권자의 허락을 받지 않은 콘텐츠의 무단 사용은 저작권자의 권리를 침해하는 행위로, 이에 대한 법적 책임을 지게 될 수 있습니다.

오탈자 등록

닫기
* 도서명 :
리팩토링: 코드 품질을 개선하는 객체지향 사고법
* 구분 :
* 상품 버전
종이책 PDF ePub
* 페이지 :
* 위치정보 :
* 내용 :

도서 인증

닫기
도서명*
리팩토링: 코드 품질을 개선하는 객체지향 사고법
구입처*
구입일*
부가기호*
부가기호 안내

* 온라인 또는 오프라인 서점에서 구입한 도서를 인증하면 마일리지 500점을 드립니다.

* 도서인증은 일 3권, 월 10권, 년 50권으로 제한되며 절판도서, eBook 등 일부 도서는 인증이 제한됩니다.

* 구입하지 않고, 허위로 도서 인증을 한 것으로 판단되면 웹사이트 이용이 제한될 수 있습니다.

닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?