오탈자 페이지

==== 2쇄 반영 예정(박건하 님이 책을 보여준 분 중 한 분 _2015 02 06)  ====

29p. 4번째 문단,

변화를 받아들일 수 있는  코드를 성하는 데 사용할 수 있는 몇 가지 잘 알려진 기술이 있다.

-> 변화를 받아들일 수 있는  코드를 성하는 데 사용할 수 있는 몇 가지 잘 알려진 기술이 있다.

 

29p. 5번째 문단,

행동은 메서드 속에 담겨 있고 메시지를 보내고 행위 통해 실행된다.

-> 행동은 메서드 속에 담겨 있고 메시지를 보내고 행위 통해 실행된다.

 

57p. 1번째 문단

우리가 원하는 기본값이 단순한 숫자나 문자열(string)이 아닌 경우 deafults 메서드에서 복잡한 내용을 구현하면 된다.

-> 우리가 원하는 기본값이 단순한 숫자나 문자열(string)이 아닌 경우 defaults 메서드에서 복잡한 내용을 구현하면 된다.

 

68p. 4번째 문단,

두 번째 애플리케이션은 조립 가능하게(plugable) 구성되어 있다.

// ‘꼽을 수 있는’에 해당하는 영어 단어는 pluggable이 맞다. 원문에는 component-like, plug-able 이라고 의도적으로 하이픈(-)을 넣음으로써 명사로서의 의미를 부각시키고자 한 것 같이 보인다. 다음과 같이 바꾸면 어떨까.

-> 두 번째 애플리케이션은 각 객체들이 마치 컴포넌트처럼(component-like) 조립 가능하도록(plug-able) 구성되어 있다.

 

69p. 1번째 문단 1번째 문장,

우리는 클래스의 모든 메서드들이 똑같 않다는 사실을 경험적으로 알고 있다.

-> 우리는 클래스의 모든 메서드들이 똑같 않다는 사실을 경험적으로 알고 있다.

 

75p. 마지막 문단

그림 4.3 시퀀스 다이어그램의 중요한 두 부분을 표현하고 있다.

-> 그림 4.3 시퀀스 다이어그램의 중요한 두 부분을 표현하고 있다.

 

109p. 소스 코드 아래 첫 문단

“preapre가 인자로부터 얻고자 하는 것은 무엇인가?”

->  “prepare가 인자로부터 얻고자 하는 것은 무엇인가?”

 

111p. 5.2.3 절 1번째 문단

여러 클래스가 prepare_trip 구현하고 있다.

-> 여러 클래스가 prepare_trip 구현하고 있다.

 

161p. 소스 코드 아래 2번째 문단

하지만 불행도 이 코드에는 뭔가 빠져 있다.

 -> 하지만 불행도 이 코드에는 뭔가 빠져 있다.

 

165p. 1번째 문단

임의의 구체 클래스(예를 들어 Bicycle) 하나 선택하고 여기에 schedule? 메서드를 구현하자.

-> 임의의 구체 클래스(예를 들어 Bicycle) 하나 선택하고 여기에 schedule? 메서드를 구현하자.

 

177p. 2번째 문단

상속받은 메서드를 재정의해서 “does not implemented”와 같은 에러를 발생시키는 하위클래스가 있다면 있다면 상속 관계에 문제가 있는지 의심해 봐야 한다.

-> 상속받은 메서드를 재정의해서 “does not implement”와 같은 에러를 발생시키는 하위클래스가 있다면 있다면 상속 관계에 문제가 있는지 의심해 봐야 한다.

 

226p. 1번째 문단

그림 9.1은 객체들의 경계를 넘나드는 메시지를 보여주고 있다.

 ->  9.1은 객체들의 경계를 넘나드는 메시지를 보여주고 있다.

 

227p, 표 9.1

// 원문에서는, gear_inches 와 ratio 메시지 두 행의 “메시지에 의존하는 객체(딸린 객체)가 있는가?” 열에 모두 YES라고 쓰여 있다( 1쇄엔 누락됨).

 

231p.  두번째 문단

이어지는 예시는 이런 심심한 선택의 결과이다.

-> 이어지는 예시는 이런 (따분한, 당연한, 단순한) 선택의 결과이다.

 

235p. 마지막 문단

이런 테스트 더블은 만들기가 매우 쉽다. 언제 쉽게 만들 수 있다.

 -> 이런 테스트 더블은 만들기가 매우 쉽다. 언제 쉽게 만들 수 있다.

 

238p. 소스 코드

// test_calculates_diameter 메서드  아래의 코드(11~15)  들여쓰기가 안 되어 있다.

 

241p. 세번째 문단 (밑에서 두번째)

하지만 코드를 수정하면 어떤 결과 나오는지 이해하기 쉽게 만들어 주고, 복잡한 프라이빗 메서드를 리팩터링하는 과정의 힘겨움을 어느 정도 덜어 줄 수 있다.

-> 하지만 코드를 수정하면 어떤 결과 나오는지 이해하기 쉽게 만들어 주고, 복잡한 프라이빗 메서드를 리팩터링하는 과정의 힘겨움을 어느 정도 덜어 줄 수 있다.

 

243p. 소스 코드 바로 윗 문단

참가자가 기어를 바꾸면, get_cog 또는 set_chainring 메서드가 실행된다.

 -> 참가자가 기어를 바꾸면, set_cog 또는 set_chainring 메서드가 실행된다.

 

259p. 두번째 문단

애플리케이션에는 여러 개의 하위클래스가 있기 때문에 각각이 제대로 작동하는 검증하기 위해서는 이들이 공유할 수 있는 공통의 테스트 코드가 있어야 한다.

-> 애플리케이션에는 여러 개의 하위클래스가 있기 때문에 각각이 제대로 작동하는지 검증하기 위해서는 이들이 공유할 수 있는 공통의 테스트 코드가 있어야 한다.

 

261p. 첫번째 문단

때문에 이 테스트는 BicycleTest 안에 직접 추가되어야 한다. 아래 코드의 8을 보자.

 -> 때문에 이 테스트는 BicycleTest 안에 직접 추가되어야 한다. 아래 코드의 8번 줄을 보자.