경매방식  
1. 중복 없이 최저가로 입찰한 회원이 낙찰 : 가장 낮은 금액으로 입찰한 분에게 낙찰되는 방식(단, 동일 입찰 내역은 제외)
2. 중복 없이 최대가로 입찰한 회원이 낙찰 : 가장 높은 금액으로 입찰한 분에게 낙찰되는 방식(단, 동일 입찰 내역은 제외)
3. 가장 높은 포인트로 입찰한 회원이 낙찰 : 가장 높은 금액으로 입찰한 분에게 낙찰되는 방식(다른 입찰자의 입찰 내역을 볼 수 있으며 이보다 더 높게 입찰하면 되는 방식)

낙찰받지 못했을 경우에는 입찰한 포인트를 모두 돌려드립니다. 단 입찰 참가비는 제외

동일 이벤트일 경우, 중복 낙찰은 없습니다.

포인트 얻는 방법 보러가기
 
작성일 : 11-10-06 11:01
[서적] 3/3 리팩토링: 루비 에디션
 글쓴이 : 카이로
조회 : 9,766  
경매시작일시
2011년 10월 06일 11시 00분
경매종료일시
2011년 10월 13일 11시 00분
남은시간
입찰 포인트
1 ~ 1,000 포인트
입찰수
91 건 참여
경매상태
경매종료
* 입찰 참여 시 참여 포인트 200점이 차감됩니다.
* 본 경매는 하루 최대 2번 입찰 하실 수 있습니다.
* 복수입찰 없이 가장 낮은 금액으로 입찰하신 분이 낙찰됩니다.
내 보유 포인트
로그인 후 이용하세요.
낙찰자 : 그다지    낙찰가 : 0 포인트

 


* 제이펍에서 후원하는 서적입니다. 감사의 댓글이 없을 경우 낙찰되어도 취소됩니다.


온라인판매서점(가나다순)



출판사제이펍

원출판사Addison-Wesley Professional

원서명Refactoring: Ruby Edition(원서 ISBN 9780321603500)

저자명마틴 파울러(Martin Fowler), 켄트 벡(Kent Beck), 제이 필즈(Jay Fields), 셰인 하비(Shane Harvie)

역자명김지원

출판일2011년 9월 30일

페이지508쪽

시리즈

판 형4*6배판 변형(188*245) 반양장(Soft Cover)

정 가26,000원

ISBN978-89-94506-06-7 부가기호: 13560

분 야프로그래밍 / 개발방법론

키워드객체지향 / 코드 설계 / 유지보수 / 계층구조


도서 소개

초 베스트셀러 『리팩토링』의 루비 완결판!

리팩토링 원판 독자도 다시 읽어봐야 할 책!

루비와 자바 프로그래머뿐만이 아닌 모든 개발자들이 소유해야 할 책!

리팩토링을 통해 프로그래머는 엉망진창인 소프트웨어를 기능 개선과 유지보수가 쉬운 깔끔한 설계의 시스템으로 바꿀 수 있다. 이 책은 마틴 파울러의 기존 리팩토링 원판 교재를 바탕으로 루비 예제와 적용 방법을 수록하였으며, 또한 수많은 수정과 보완을 거쳐 루비 사용자뿐만이 아닌 리팩토링에 관심 있는 모든 개발자들에게 유익한 교재로 출간되었다.

필자들은 검증된 70개 이상의 리팩토링 기법을 단계적인 실시 방법, 원리를 보여주는 예제 코드와 함께 자세히 설명하고 있으며, 리팩토링 기법 중 대부분은 강력한 루비 전용 기능을 이용한 것들이다.

마틴 파울러의 원본 교재 개념들을 이용하여 계획적이고, 효율적이며, 단계적으로 리팩토링을 실시하는 방법을 설명한 이 책은 새로운 버그가 생기지 않게 자신의 코드 구조를 체계적으로 개선할 수 있도록 하였다. 코드를 작성하거나 유지보수하는 프로젝트에서 자신이 맡은 분야가 무엇이든지에 상관없이 이 책의 내용은 반드시 알아야 할 것이다.

이 책을 통해 다음의 것들을 배울 수 있다.

• 리팩토링의 주요 원칙과 리팩토링 실시 이유를 이해한다.

• 루비 코드에서 구린내를 감지할 수 있다.

• 잘못된 설계를 수정하여 체계적 설계의 코드로 만들 수 있다.

• 테스트를 작성해서 리팩토링이 제대로 되는지 확인할 수 있다.

• 리팩토링의 문제점과 해결 방법을 알 수 있다.

• 비슷한 기능의 코드끼리 묶이게 메서드를 구성할 수 있다.

• 객체에서 객체로 기능을 옮겨서 적절한 곳에 배치할 수 있다.

• 데이터를 연동하기 쉽게 정리할 수 있다.

• 조건식을 단순화하고 재정의 사용을 보다 효율적으로 수정할 수 있다.

• 알기 쉽고 사용하기 편한 인터페이스를 작성할 수 있다.

• 보다 효과적으로 일반화할 수 있다.

• 수개월에서 수년에 걸쳐 소프트웨어 시스템 전체를 수정하는 비교적 대규모의 리팩토링을 실시할 수 있다.

• 루비온레일스 코드를 성공적으로 리팩토링할 수 있다.


저자 소개

마틴 파울러 Martin Fowler

ThoughtWorks의 수석 과학관이다. 그의 자기 소개문을 보면 “저는 저자, 강사, 컨설턴트 겸 소프트웨어 개발에 대해 떠드는 수다쟁이입니다. 엔터프라이즈 소프트웨어 설계를 주로 하며, 무엇이 좋은 설계를 만드는지와 무엇이 좋은 설계를 얻기 위해 필요한지를 관찰합니다. 객체지향 기술, 리팩토링, 패턴, 애자일 방법론, 도메인 모델링 UML, 익스트림 프로그래밍의 선구자였습니다. 지난 10년간 좋은 시스템 생산 및 컨설팅 업체인 ThoughtWorks에 근무하고 있습니다.”라고 되어 있다.

켄트 백 Kent Beck

소프트웨어 패턴 운동의 선구자 중 한 명이며, CRC 카드와 HotDraw 드로잉 에디터 프레임워크, xUnit 유닛 테스팅 프레임워크를 개발했고, 리팩토링과 테스트 주도 개발을 소개했다. 또한 기민한 방법론 중 가장 널리 알려진 익스트림 프로그래밍의 아버지로 불린다. 켄트 벡은 현재 Three Rivers Institute 소속이며, 이 책의 명예 저자로 함께 참여하였다.

제이 필즈 Jay Fields

DRW Trading의 소프트웨어 개발자이며, 여러 컨퍼런스에서 강연자로 자주 나간다. 제이는 혁신적인 솔루션을 발견하고 발전시키는 일에 열정을 갖고 있다. 그의 홈페이지는 www.jayfields.com이다.

셰인 하비 Shane Harvie

미국, 인도, 호주에서 애자일 환경의 소프트웨어를 개발해왔다. 셰인은 시카코의 DRW Trading에서 근무하며, 그의 블로그는 www.shaneharvie.com이다.


역자 소개

김지원 www.gtport.com

건국대학교 신소재공학과를 졸업한 후 적성에 맞는 번역의 길에 들어섰다. 프로그래밍과 새로운 웹 기술에 항상 관심을 가지며 용어 의미의 정확성을 위해 노력한다. 다수의 기술 문서, 매뉴얼, IT 관련 논문을 번역한 바 있고 해외 유비쿼터스 기술 관련 논문의 한글화 작업에도 참여했다. 번역서로는 『안드로이드 2 마스터북』, 『CSS 비밀 매뉴얼』, 『시스템 관리자를 위한 시간관리 전략』 등이 있다.


차 례

CHAPTER 1 리팩토링 첫 예제1

원래의 프로그램2

리팩토링 첫 단계7

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

가격 책정 부분의 조건문을 재정의로 전환36

고찰53

CHAPTER 2 리팩토링 원리55

리팩토링의 유래55

리팩토링의 정의57

리팩토링은 왜 해야 하나?59

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

리팩토링의 효용성66

관리자에게 어떻게 말을 꺼내나?67

인다이렉션과 리팩토링68

리팩토링 관련 문제들70

리팩토링과 설계75

빈 날짜 인스턴스 생성으로 인한 시간 낭비77

리팩토링과 성능78

급여 시스템 최적화80

CHAPTER 3 코드의 구린 부분83

중복 코드(Duplicated Code)84

장황한 메서드(Long Method)85

방대한 클래스(Large Class)86

과다한 매개변수(Long Parameter List)87

수정의 산발(Divergent Change)88

기능의 산재(Shotgun Surgery)89

잘못된 소속(Feature Envy)89

데이터 뭉치(Data Clumps)90

강박적 기본 타입 사용(Primitive Obsession)91

Case문(Case Statements)92

평행 상속 계층(Parallel Inheritance Hierarchies)93

직무유기 클래스(Lazy Class)93

막연한 범용 코드(Speculative Generality)93

임시 필드(Temporary Field)94

메시지 체인(Message Chains)95

과잉 중개자(Middle Man)95

지나친 관여(Inappropriate Intimacy)96

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

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

데이터 클래스(Data Class)97

방치된 유품(Refused Bequest)98

불필요한 주석(Comments)99

메타프로그래밍 과용(Metaprogramming Madness)100

API 비일관성(Disjointed API)100

상투적 코드 반복(Repetitive Boilerplate)101

CHAPTER 4 테스트 작성103

자가 테스트 코드의 가치103

Test::Unit 테스트 프레임워크105

개발자 테스트와 품질보증 테스트109

테스트 추가110

CHAPTER 5 리팩토링 열거에 대하여115

리팩토링 설명 구성115

참조 검색117

CHAPTER 6 메서드 정리119

메서드 추출(Extract Method)120

메서드 내용 직접 삽입(Inline Method)127

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

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

임시변수를 메서드 체인으로 전환(Replace Temp with Chain)134

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

임시변수 분리(Split Temporary Variable)141

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

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

알고리즘 전환(Substitute Algorithm)152

루프를 컬렉션 클로저 메서드로 전환(Replace Loop with Collection Closure Method)154

주변 메서드 추출(Extract Surrounding Method)156

클래스 애너테이션 넣기(Introduce Class Annotation)161

매개변수 세트를 해시로 전환(Introduce Named Parameter)163

해시를 매개변수 세트로 전환(Remove Named Parameter)169

비사용 기본 값 매개변수 제거(Remove Unused Default Parameter)173

동적 메서드 정의(Dynamic Method Definition)175

수신 메서드를 동적 메서드 정의로 전환(Replace Dynamic Receptor with Dynamic Method Definition)180

동적 수신 메서드 분리(Isolate Dynamic Receptor)184

eval을 런타임에서 파싱타임으로 전환(Move Eval from Runtime to Parse Time)188

CHAPTER 7 객체 간의 기능 이동191

메서드 이동(Move Method)192

필드 이동(Move Field)197

클래스 추출(Extract Class)200

클래스 내용 직접 삽입(Inline Class)204

대리 객체 은폐(Hide Delegate)207

과잉 중개자 제거(Remove Middle Man)210

CHAPTER 8 데이터 체계화213

필드 자체 캡슐화(Self Encapsulate Field)214

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

값을 참조로 전환(Change Value to Reference)221

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

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

해시를 객체로 전환(Replace Hash with Object)234

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

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

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

컬렉션 캡슐화(Encapsulate Collection)248

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

타입 코드를 재정의로 전환(Replace Type Code with Polymorphism)255

타입 코드를 모듈 확장으로 전환(Replace Type Code with Module Extension)263

타입 코드를 상태/전략 패턴으로 전환(Replace Type Code with State/Strategy)270

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

속성 초기화를 사용 시로 미루기(Lazily Initialized Attribute)287

속성 초기화를 생성 시로 당기기(Eagerly Initialized Attribute)290

CHAPTER 9 조건문 간결화293

조건문 쪼개기(Decompose Conditional)294

조건문 개조(Recompose Conditional)296

중복 조건식 통합(Consolidate Conditional Expression)298

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

제어 플래그 제거(Remove Control Flag)302

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

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

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

어설션 넣기(Introduce Assertion)327

CHAPTER 10 메서드 호출 단순화333

메서드명 변경(Rename Method)335

매개변수 추가(Add Parameter)337

매개변수 제거(Remove Parameter)339

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

유사 메서드를 매개변수로 전환(Parameterize Method)345

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

객체를 통째로 전달(Preserve Whole Object)351

매개변수를 메서드로 추출(Replace Parameter with Method)356

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

쓰기 메서드 제거(Remove Setting Method)364

메서드 은폐(Hide Method)366

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

에러 코드를 예외로 교체(Replace Error Code with Exception)372

예외를 테스트로 교체(Replace Exception with Test)377

게이트웨이 넣기(Introduce Gateway)381

익스프레션 빌더 넣기(Introduce Expression Builder)387

CHAPTER 11 일반화 처리395

메서드 상향(Pull Up Method)396

메서드 하향(Push Down Method)399

모듈 추출(Extract Module)400

모듈 내용 직접 삽입(Inline Module)405

하위클래스 추출(Extract Subclass)406

상속 구조로 전환(Introduce Inheritance)411

계층 병합(Collapse Hierarchy)414

템플릿 메서드 형성(Form Template Method)415

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

위임을 계층구조로 전환(Replace Delegation with Hierarchy)433

추상 상위클래스를 모듈로 전환(Replace Abstract Superclass with Module)435

CHAPTER 12 대규모 리팩토링441

알아야 할 특성441

대규모 리팩토링의 중요성442

대규모 리팩토링 4개443

상속 구조 정리(Tease Apart Inheritance)443

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

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

계층구조 추출(Extract Hierarchy)458

CHAPTER 13 퍼즐 조립463

참고 문헌469

리팩토링 기법 찾아보기471

미심쩍은 상황별 기법475


 그다지 11-10-06 11:11
 
감사합니다. 열심히 활동하겠습니다.
 jch82 11-10-06 12:02
 
감사합니다. 열심히 공부하겠습니다.
 엘카이저 11-10-08 09:09
 
제가 걸리면 열심히 습득해서 제 부하직원들에게 전파하겠습니다.
 카토 11-10-10 00:22
 
좋은 이벤트 감사합니다..
 저이번에내려… 11-10-11 01:05
 
꼭 받고 싶습니다 ㅠㅠㅎ
 AndroidSideya 11-10-11 11:32
 
좋은 이벤트 열어주신 제이펍과 안드로이드 사이드에 무한 감사드립니다.
 Paranoidandroid 11-10-11 12:47
 
오랜만에 경매 참여해 보네요 ㅎㅎ ^^* 고맙습니다
 하솜 11-10-12 15:29
 
좋은 이벤트 감사드리며 꼭 되길 빌겠습니다~
 그다지 11-10-13 11:08
 
감사합니다.~ 다음 경매에도 꼭 참여할게요~
 akein 11-10-13 11:25
 
꼭 다음 경매를`~
 카이로 11-10-14 14:47
 
개인 정보에 등록된 주소로 배송합니다~~ 다른 주소로 받고 싶으면 쪽지 주세요..(개인정보에 전번, 주소, 이름이 모두 정확해야 하니 확인 꼭 해주시고요.)
 
 

Total 125
번호 이미지 제   목 입찰수 종료일 남은시간
125
요즘이벤트가 많아서 저도 한번해봄 ㅋㅋㅋ (6) 3 경매종료
124
입찰이벤트 함 해봅니다. (4) 27 경매종료
123
[10/10] 시작하세요! Cocos2d-x 프로그래밍 : 윈도… (20) 27 경매종료
122
[9/10] 시작하세요! Cocos2d-x 프로그래밍 : 윈도… (6) 23 경매종료
121
[8/10] 시작하세요! Cocos2d-x 프로그래밍 : 윈도… (10) 20 경매종료
120
[7/10] 시작하세요! Cocos2d-x 프로그래밍 : 윈도… (11) 2 경매종료
119
[6/10] 시작하세요! Cocos2d-x 프로그래밍 : 윈도… (6) 4 경매종료
118
[5/10] 시작하세요! Cocos2d-x 프로그래밍 : 윈도… (14) 32 경매종료
117
[4/10] 시작하세요! Cocos2d-x 프로그래밍 : 윈도… (11) 33 경매종료
116
[3/10] 시작하세요! Cocos2d-x 프로그래밍 : 윈도… (13) 39 경매종료
115
[2/10] 시작하세요! Cocos2d-x 프로그래밍 : 윈도… (12) 37 경매종료
114
[1/10] 시작하세요! Cocos2d-x 프로그래밍 : 윈도… (22) 43 경매종료
113
추석 맞이 포인트 이벤트 3 (2) 64 경매종료
112
추석 맞이 포인트 이벤트 2 (2) 11 경매종료
111
추석 맞이 포인트 이벤트 1 (4) 17 경매종료
110
소소한 레벨업 이벤트~ (5) 15 경매종료
109
레벨업 이벤트 (6) 57 경매종료
108
대박 포인트(2012점) 이벤트~ (5) 87 경매종료
107
[도서] 프로 안드로이드 미디어: 그래픽, 오디… (14) 4 경매종료
106
[서적 3권] 안드로이드 지하철정보 개발편 : … (21) 7 경매종료
105
[서적] 3/3 리팩토링: 루비 에디션 (11) 91 경매종료
104
[서적] 2/3 리팩토링: 루비 에디션 (10) 93 경매종료
103
[서적] 1/3 리팩토링: 루비 에디션 (9) 101 경매종료
102
3/3 웹으로배운다 - 제이펍 후원 (7) 4 경매종료
101
2/3 웹으로배운다 - 제이펍 후원 (14) 57 경매종료
100
1/3 웹으로배운다 - 제이펍 후원 (15) 72 경매종료
99
3/3 크로스 플랫폼 앱 개발: 아이폰과 안드로… (18) 52 경매종료
98
2/3 크로스 플랫폼 앱 개발: 아이폰과 안드로… (17) 386 경매종료
97
1/3 크로스 플랫폼 앱 개발: 아이폰과 안드로… (17) 322 경매종료
96
[급 수정] JCO 무료 초대권 배포 10장 (35) 2 경매종료
 1  2  3  4  5  
 


Copyright ⓒ www.androidside.com. All rights reserved.
채팅 권한: 글쓰기 1개
2레벨 이상만 대화 가능
공개 채팅: 평일 !(9시 ~ 17시),토,일
안사2 변경사항 보러가기 챗방이 잘 안보이면 크롬에서 접속해주세요
챗방 숨기기 |  챗방 보이기