| 000 | 00000cam c2200205 c 4500 | |
| 001 | 000045736156 | |
| 005 | 20230224151724 | |
| 007 | ta | |
| 008 | 130123s2012 ulka b 001c kor | |
| 020 | ▼a 9788979149715 ▼g 13560 | |
| 035 | ▼a (KERIS)BIB000012968570 | |
| 040 | ▼a 211006 ▼c 211006 ▼d 211009 | |
| 041 | 1 | ▼a kor ▼h eng |
| 082 | 0 4 | ▼a 005.1/4 ▼2 23 |
| 085 | ▼a 005.14 ▼2 DDCK | |
| 090 | ▼a 005.14 ▼b 2012z1 | |
| 245 | 0 0 | ▼a 리팩토링 : ▼b 코드 품질을 개선하는 객체지향 사고법 : ▼b 프로그램의 가치를 높이는 코드 정리 기술 / ▼d 마틴 파울러 [외] 지음 ; ▼e 김지원 옮김 |
| 246 | 1 9 | ▼a Refactoring : ▼b improving the design of existing code |
| 260 | ▼a 서울 : ▼b 한빛미디어, ▼c 2012 | |
| 300 | ▼a 500 p. : ▼b 삽화 ; ▼c 24 cm | |
| 500 | ▼a 공저자: Kent Beck, John Brant, William Opdyke, Don Roberts | |
| 500 | ▼a 부록: 주요 지침과 정의, 구린내와 탈취 기법 | |
| 504 | ▼a 참고문헌(p. 481-483)과 색인수록 | |
| 650 | 0 | ▼a Software refactoring |
| 650 | 0 | ▼a Object-oriented programming (Computer science) |
| 700 | 1 | ▼a Fowler, Martin, ▼d 1963-, ▼e 저 |
| 700 | 1 | ▼a Beck, Kent, ▼d 1961-, ▼e 저 ▼0 AUTH(211009)89462 |
| 700 | 1 | ▼a Brant, John, ▼e 저 |
| 700 | 1 | ▼a Opdyke, William, ▼e 저 |
| 700 | 1 | ▼a Robert, Don, ▼e 저 |
| 700 | 1 | ▼a 김지원, ▼e 역 |
| 945 | ▼a KLPA |
소장정보
| No. | 소장처 | 청구기호 | 등록번호 | 도서상태 | 반납예정일 | 예약 | 서비스 |
|---|---|---|---|---|---|---|---|
| No. 1 | 소장처 과학도서관/Sci-Info(1층서고)/ | 청구기호 005.14 2012z1 | 등록번호 121222866 (33회 대출) | 도서상태 대출가능 | 반납예정일 | 예약 | 서비스 |
| No. 2 | 소장처 세종학술정보원/과학기술실(5층)/ | 청구기호 005.14 2012z1 | 등록번호 151344028 | 도서상태 대출가능 | 반납예정일 | 예약 | 서비스 |
| No. | 소장처 | 청구기호 | 등록번호 | 도서상태 | 반납예정일 | 예약 | 서비스 |
|---|---|---|---|---|---|---|---|
| No. 1 | 소장처 과학도서관/Sci-Info(1층서고)/ | 청구기호 005.14 2012z1 | 등록번호 121222866 (33회 대출) | 도서상태 대출가능 | 반납예정일 | 예약 | 서비스 |
| No. | 소장처 | 청구기호 | 등록번호 | 도서상태 | 반납예정일 | 예약 | 서비스 |
|---|---|---|---|---|---|---|---|
| No. 1 | 소장처 세종학술정보원/과학기술실(5층)/ | 청구기호 005.14 2012z1 | 등록번호 151344028 | 도서상태 대출가능 | 반납예정일 | 예약 | 서비스 |
컨텐츠정보
책소개
객체지향이라는 도구를 제대로 활용하지 못하고 마구잡이로 작성한 코드에는 악취가 진동한다. 리팩토링은 코드의 동작이나 의도는 유지하면서 코드의 구조, 재사용성, 가독성을 개선해 코드의 악취를 제거하고 전체 디자인을 개선하는 방법이다. 이 책은 72가지 리팩토링 기법을 통해 코드를 점진적으로 개선하는 방법을 담고 있다.
객체지향은 제대로 잘 해야 한다!
당신은 객체지향 프로그래머인가?
프로그램이 돌아가기면 하면 객체지향인가? 객체지향이라는 도구를 제대로 활용하지 못하고 마구잡이로 작성한 코드에는 악취가 진동한다. 리팩토링은 코드의 동작이나 의도는 유지하면서 코드의 구조, 재사용성, 가독성을 개선해 코드의 악취를 제거하고 전체 디자인을 개선하는 방법이다.
독자는 72가지 리팩토링 기법을 통해 코드를 점진적으로 개선하는 방법을 학습할 수 있으며, 이 책을 마쳤을 때는 객체지향 프로그래밍 능력이 한 단계 향상될 것이다.
코딩 스타일이 바뀐다
객체지향 언어의 문법을 익혔다고 저절로 객체지향 프로그래밍을 할 수 있는 게 아니다. 리팩토링 카탈로그를 통해 어떤 코드를 고쳐야 하는지, 왜 고쳐야 하는지, 고친 코드가 왜 좋은지 이해할 수 있다. 이런 과정을 통해 객체지향에 어울리는 코드 디자인을 배우게 되고, 자신의 코딩 스타일도 바뀌게 된다. 이 책을 읽기 전과 후는 코드의 품질에 결정적인 차이를 가져오게 된다.
정보제공 :
저자소개
마틴 파울러(지은이)
ThoughtWorks의 수석 과학자로 소프트웨어 시스템 디자인 개선과 개발자 생산성 향상에 주력하고 있다. 마틴 파울러는 지난 십여 년 이상 까다로운 비즈니스 문제에 객체를 적용해 해결하는 방법을 전문적으로 연구한 독립 컨설턴트다. 특히 보건, 금융거래, 기업재정 등 다양한 분야의 시스템에 대한 컨설팅을 수행했으며 주요 고객사로는 크라이슬러, 시티뱅크, 영국 국립보건원, 앤더슨 컨설팅, 넷스케이프 커뮤니케이션 등이 있다. 또한 파울러는 다양한 행사에서 객체, UML(Unified Modeling Language), 패턴 등의 주제에 대한 강연자로 꾸준히 활동하고 있다. 지은 책으로는 『DSL: 고객과 함께하는 도메인 특화 언어』, 『리팩토링: 코드 품질을 개선하는 객체지향 사고법』 등이 있다.
김지원(옮긴이)
웹 기술뿐 아니라 온갖 분야에 발을 뻗고 싶어하는 바람기를 지녔지만 역부족이다. 배워야 할 것이 갈수록 늘어나 시간의 결핍을 느낀다. 기술 문서, 매뉴얼, 유비쿼터스 관련 논문을 번역한 바 있고 해외 논문 DB 구축에 필요한 관련 작업에도 참여했다. 『한 권으로 끝내는 정규표현식』(한빛미디어, 2010), 『웹 표준 가이드: HTML5+CSS3』(한빛미디어, 2010), 『프로젝트로 배우는 HTML5+자바스크립트』(한빛미디어, 2012), 『리팩토링』(한빛미디어, 2012), 『엘리멘틀 디자인 패턴』(한빛미디어, 2013) 등을 번역했다.
목차
목차 서문 = 4 추천사 = 12 옮긴이의 말 = 14 CHAPTER 01 맛보기 예제 원래의 프로그램 = 24 리팩토링 첫 단계 = 29 statement 메서드 분해와 기능 재분배 = 30 가격 책정 부분의 조건문을 재정의로 교체 = 56 고찰 = 74 CHAPTER 02 리팩토링 개론 리팩토링은 무엇인가 = 75 리팩토링은 왜 해야 하나 = 77 리팩토링은 어떨 때 필요한가 = 80 팀장에게 어떻게 말을 꺼내나 = 84 리팩토링 관련 문제들 = 86 리팩토링과 설계 = 90 리팩토링과 성능 = 94 리팩토링의 유래 = 96 CHAPTER 03 코드의 구린내 중복 코드(Duplicated Code) = 100 장황한 메서드(Long Method) = 101 방대한 클래스(Large Class) = 102 과다한 매개변수(Long Parameter List) = 103 수정의 산발(Divergent Change) = 104 기능의 산재(Shotgun Surgery) = 105 잘못된 소속(Feature Envy) = 105 데이터 뭉치(Data Clumps) = 106 강박적 기본 타입 사용(Primitive Obsession) = 107 switch 문(Switch Statements) = 108 평행 상속 계층(Parallel Inheritance Hierarchies) = 109 직무유기 클래스(Lazy Class) = 109 막연한 범용 코드(Speculative Generality) = 110 임시 필드(Temporary Field) = 110 메시지 체인(Message Chains) = 111 과잉 중개 메서드(Middle Man) = 112 지나친 관여(Inappropriate Intimacy) = 112 인터페이스가 다른 대용 클래스(Alternative Classes with Different Interfaces) = 113 미흡한 라이브러리 클래스(Incomplete Library Class) = 113 데이터 클래스(Data Class) = 114 방치된 상속물(Refused Bequest) = 114 불필요한 주석(Comments) = 115 CHAPTER 04 테스트 작성 자가 테스트 코드의 가치 = 117 JUnit 테스트 프레임워크 = 120 테스트 추가 = 128 CHAPTER 05 리팩토링 기법 카탈로그에 대해 각 리팩토링 기법 절의 구성 = 135 참조 검색 = 137 리팩토링 기법의 성숙도 = 138 CHAPTER 06 메서드 정리 메서드 추출(Extract Method) = 142 메서드 내용 직접 삽입(Inline Method) = 150 임시변수 내용 직접 삽입(Inline Temp) = 152 임시변수를 메서드 호출로 전환(Replace Temp with Query) = 153 직관적 임시변수 사용(Introduce Explaining Variable) = 157 임시변수 분리(Split Temporary Variable) = 162 매개변수로의 값 대입 제거(Remove Assignments to Parameters) = 166 메서드를 메서드 객체로 전환(Replace Method with Method Object) = 170 알고리즘 전환(Substitute Algorithm) = 174 CHAPTER 07 객체 간의 기능 이동 메서드 이동(Move Method) = 178 필드 이동(Move Field) = 183 클래스 추출(Extract Class) = 187 클래스 내용 직접 삽입(Inline Class) = 192 대리 객체 은폐(Hide Delegate) = 195 과잉 중개 메서드 제거(Remove Middle Man) = 198 외래 클래스에 메서드 추가(Introduce Foreign Method) = 201 국소적 상속확장 클래스 사용(Introduce Local Extension) = 203 CHAPTER 08 데이터 체계화 필드 자체 캡슐화(Self Encapsulate Field) = 211 데이터 값을 객체로 전환(Replace Data Value with Object) = 215 값을 참조로 전환(Change Value to Reference) = 219 참조를 값으로 전환(Change Reference to Value) = 224 배열을 객체로 전환(Replace Array with Object) = 227 관측 데이터 복제(Duplicate Observed Data) = 231 클래스의 단방향 연결을 양방향으로 전환(Change Unidirectional Association to Bidirectional) = 240 클래스의 양방향 연결을 단방향으로 전환(Change Bidirectional Association to Unidirectional) = 244 마법 숫자를 기호 상수로 전환(Replace Magic Number with Symbolic Constant) = 248 필드 캡슐화(Encapsulate Field) = 250 컬렉션 캡슐화(Encapsulate Collection) = 252 레코드를 데이터 클래스로 전환(Replace Record with Data Class) = 262 분류 부호를 클래스로 전환(Replace Type Code with Class) = 263 분류 부호를 하위클래스로 전환(Replace Type Code with Subclasses) = 269 분류 부호를 상태/전략 패턴으로 전환(Replace Type Code with State/Strategy) = 273 하위클래스를 필드로 전환(Replace Subclass with Fields) = 279 CHAPTER 09 조건문 간결화 조건문 쪼개기(Decompose Conditional) = 286 중복 조건식 통합(Consolidate Conditional Expression) = 288 조건문의 공통 실행 코드 빼내기(Consolidate Duplicate Conditional Fragments) = 291 제어 플래그 제거(Remove Control Flag) = 293 여러 겹의 조건문을 감시 절로 전환(Replace Nested Conditional with Guard Clauses) = 299 조건문을 재정의로 전환(Replace Conditional with Polymorphism) = 305 Null 검사를 널 객체에 위임(Introduce Null Object) = 310 어설션 넣기(Introduce Assertion) = 319 CHAPTER 10 메서드 호출 단순화 메서드명 변경(Rename Method) = 325 매개변수 추가(Add Parameter) = 327 매개변수 제거(Remove Parameter) = 329 상태 변경 메서드와 값 반환 메서드를 분리(Separate Query from Modifier) = 331 메서드를 매개변수로 전환(Parameterize Method) = 336 매개변수를 메서드로 전환(Replace Parameter with Explicit Methods) = 338 객체를 통째로 전달(Preserve Whole Object) = 342 매개변수 세트를 메서드로 전환(Replace Parameter with Method) = 347 매개변수 세트를 객체로 전환(Introduce Parameter Object) = 351 쓰기 메서드 제거(Remove Setting Method) = 357 메서드 은폐(Hide Method) = 361 생성자를 팩토리 메서드로 전환(Replace Constructor with Factory Method) = 362 하향 타입 변환을 캡슐화(Encapsulate Downcast) = 367 에러 부호를 예외 통지로 교체(Replace Error Code with Exception) = 369 예외 처리를 테스트로 교체(Replace Exception with Test) = 374 CHAPTER 11 일반화 처리 필드 상향(Pull Up Field) = 380 메서드 상향(Pull Up Method) = 381 생성자 내용 상향(Pull Up Constructor Body) = 385 메서드 하향(Push Down Method) = 388 필드 하향(Push Down Field) = 389 하위클래스 추출(Extract Subclass) = 390 상위클래스 추출(Extract Superclass) = 397 인터페이스 추출(Extract Interface) = 403 계층 병합(Collapse Hierarchy) = 406 템플릿 메서드 형성(Form Template Method) = 407 상속을 위임으로 전환(Replace Inheritance with Delegation) = 416 위임을 상속으로 전환(Replace Delegation with Inheritance) = 419 CHAPTER 12 복합 리팩토링 상속 구조 정리(Tease Apart Inheritance) = 426 절차 코드를 객체로 전환(Convert Procedural Design to Objects) = 432 도메인 로직을 표현과 분리(Separate Domain from Presentation) = 434 계층구조 추출(Extract Hierarchy) = 439 CHAPTER 13 리팩토링, 재사용, 현실성 현실성 검토 = 444 개발자가 리팩토링을 꺼리는 이유 = 445 현실성 다시 검토하기 = 459 리팩토링 자료와 참고문헌 = 460 소프트웨어 재사용과 기술 변경이 미치는 영향 = 461 끝 인사 = 462 참고문헌 = 462 CHAPTER 14 리팩토링 도구 도구를 이용한 리팩토링 = 467 리팩토링 도구의 기술적 요건 = 469 리팩토링 도구의 실무적 요건 = 472 맺음말 = 473 CHAPTER 15 조각 맞추기 부록 A 참고문헌 = 481 부록 B 주요 지침과 정의 = 485 부록 C 리팩토링 기법 찾아보기 = 487 부록 D 구린내와 탈취 기법 = 491 찾아보기 = 493



