현재까지 발견된 위 책의 오탈자 정보와 오류, 그리고 보다 매끄러운 문장을 위해 수정한 내용을 안내해드립니다. 번역과 편집 시에 미처 확인하지 못하고 불편을 끼쳐드려 죄송하다는 말씀을 드립니다. 아래의 오탈자 사항은 추후 재쇄 시에 반영하도록 하겠습니다. 


이외의 오탈자 정보를 발견하시면 옮긴이(ywlee@nate.com)나 출판사(readers.jpub@gmail.com)로 연락주시면 고맙겠습니다.


최종수정일자: 2018년 3월 13일

1-2쇄본 오탈자


118쪽 목록 7-2 4행(csj4032 님 제보)

while ((c = (ptflag ? RdPt() : RdKbd())) != EOF)

==> 

while ((c = (ptFlag ? RdPt() : RdKbd())) != EOF)


334쪽 본문 위에서 3행에서(jinbeomhong님 제보)

어떤 종류의 변화에는 민감한 패키지를 만든다.

==>

특정 변화에 쉽게 반응할 수 있는 패키지를 만든다.

 

339쪽 아래에서 4행(jinbeomhong님 제보)

유연하게 만들 수 있을까 ==> 유연하게 만들 수 있을까?

 

350쪽 절제목(jinbeomhong님 제보)

고정된 것을 테스트하기 위해 팩토리 사용하기

==>

테스트 픽스처를 위해 팩토리 사용하기

 

356쪽 두 번째 문단 6행(jinbeomhong님 제보)

(그림 19-3에서 보이는

==>

(그림 19-13에서 보이는)

 

361쪽 위에서 2행(jinbeomhong님 제보)

클래스가 재사용 단위 하나가 된다. 

==>

클래스가 재사용 단위 하나가 된다. 


139쪽 아래에서 10행 소제목(jinbeomhong님 제보)

변경 시뮬레이션하기 ==> 변경 촉진하기


139쪽 아래에서 10행 소제목(jinbeomhong님 제보)

그러므로 변경을 시뮬레이션할 필요가 있는데,

==>

그러므로 변경을 촉진할 필요가 있는데,


출처: http://jpub.tistory.com/691?category=209690 [제이펍의 참 똑똑한 2비트 책 이야기]


122쪽 1행(jinbeomhong님 제보)

1. 그들은 음과 같은 애자일 실천방법으로 문제를 찾아냈다. 

==>

그들은 애자일 실천방법을 따라 하며 문제를 찾아냈다.


122쪽 마지막 행-123쪽 1행에서(jinbeomhong님 제보)

애자일 개발자가 이런 원칙과 패턴을 크고 중요한 설계에 적용하지 않는다는 사실을 기억해두기 바란다.

==>

애자일 개발자가 이런 원칙과 패턴을 폭포수 모델과 같은 과도한 사전 설계(Big Design Up Front)에는 적용하지 않는다는 사실을 기억해두기 바란다.


286쪽 목록 19-22 제목에서(jinbeomhong님 제보)

ChangeEmployeeTransaction.h

==>

ChangeNameTransaction.h


60쪽 '볼링 게임'절 2행(jinbeomhong님 제보)

'익스트림 프로그래밍에서 짝 프로그램은

==>

'익스트림 프로그래밍에서 짝 프로그래밍을

(따옴표 모양도 수정되어야 합니다)


61쪽 그림 아래 4-5행에서(jinbeomhong님 제보)

실제 코드에서 더 자세히 다룰 객체들의 그 다이어그램에서 후보를 알 수 있을 거야.

==>

실제 코드에서 더 자세히 다룰 후보 객체들을 이 다이어그램에서 찾을 수 있을 거야.


78쪽 아래에서 9-10행에서(jinbeomhong님 제보)

이 문제를 해결하려면 score를 testOneThrow 테스트 케이스에서 꺼냈네.

==>

이 문제를 해결하려면 score를 testOneThrow 테스트 케이스에서 빼내야 하네.


34쪽 3행에서(jinbeomhong님 제보)

이 중 최소한은 함수의 검증에 속한 것이 된다.

==>

이 중 최소한은 기능의 검증에 속한 것이 된다.


18쪽 '인수 테스트'절의 2행에서(jinbeomhong님 제보)

인수 테스트는 그 스토리가 구현된 바로 앞에 작성되거나,

==>

인수 테스트는 그 스토리가 구현되기 바로 앞에 작성되거나,


145쪽 4행에서(황*현 님 제보)

o1이 o2로 치환될 때 P의 행위가 변하지 않으면, S는 P의 서브타입이다.

==>

o2를 o1로 치환할 때 P의 행위가 변하지 않으면, S는 T의 서브타입이다.


xix쪽 하단 두 번째 문단의 4행에서(빠빠빠 님 제보)

이 언어는 본직적인 수준에서는

==>

이 언어는 본질적인 수준에서는


47쪽 코드 22행(빈 행 포함)(빠빠빠 님 제보)

if (f[i]) // i가 지워지지 않았으면 그 배수를 지운다.

==>

if (f[i]) { // i가 지워지지 않았으면 그 배수를 지운다.


146쪽 목록 10-1의 3행, 11행, 19행, 27행(빈 행 포함)(빠빠빠 님 제보)

} ==> };


147쪽 목록 10-2의 마지막 행(빠빠빠 님 제보)

} ==> };


150쪽 목록 10-3의 19행, 25행(빈 행 포함)(빠빠빠 님 제보)

} ==> };


156쪽 목록 10-4의 마지막 행(빠빠빠 님 제보)

} ==> };


160쪽 목록 10-7의 아래에서 2행(빠빠빠 님 제보)

} ==> };


160쪽 목록 10-8의 아래에서 2행(빠빠빠 님 제보)

} ==> };


161쪽 목록 10-9의 아래에서 2행(빠빠빠 님 제보)

} ==> };


162쪽 목록 10-10의 아래에서 2행(빠빠빠 님 제보)

} ==> };


162쪽 목록 10-11의 아래에서 2행(빠빠빠 님 제보)

} ==> };


163쪽 목록 10-12의 아래에서 2행(빠빠빠 님 제보)

} ==> };


173쪽 목록 11-2의 1행(빠빠빠 님 제보)

#define TERMOMETER 0x86

==>

#define THERMOMETER 0x86


264쪽 마지막 문단 1-2행에서(빠빠빠 님 제보)

목록 19-2는 AddSalaried Transaction이

==>:

목록 19-2는 AddSalariedEmployee가


269쪽 목록 19-5의 아래에서 2행(빠빠빠 님 제보)

} ==> };


275쪽 목록 19-13의 아래에서 2행(빠빠빠 님 제보)

} ==> };


276쪽 목록 19-14의 아래에서 2행(빠빠빠 님 제보)

} ==> };


289쪽 목록 19-25의 아래에서 2행(빠빠빠 님 제보)

} ==> };


294쪽 목록 19-30의 아래에서 2행(빠빠빠 님 제보)

} ==> };


295쪽 목록 19-32의 아래에서 2행(빠빠빠 님 제보)

} ==> };


296쪽 목록 19-34의 아래에서 2행(빠빠빠 님 제보)

} ==> };


313쪽 목록 19-54의 아래에서 2행(빠빠빠 님 제보)

} ==> };


447쪽 목록 26-25의 아래에서 2행(빠빠빠 님 제보)

} ==> };


449쪽 목록 26-29의 아래에서 2행(빠빠빠 님 제보)

} ==> };


450쪽 목록 26-31의 아래에서 2행(빠빠빠 님 제보)

} ==> };


451쪽 목록 26-33의 아래에서 2행(빠빠빠 님 제보)

} ==> };


579쪽 목록 30-6의 아래에서 2행(빠빠빠 님 제보)

} ==> };


363쪽 2문단 1행(역자 제보)

"TimeCard와 SalesReceipt를"에서 'TimeCard'와 'SalesReceipt'의 서체를 코드 서체로 변경해야 함




댓글을 달아 주세요

  1.  댓글주소  수정/삭제  댓글쓰기 빠빠빠빠빠ㅏ빠빠빠빠빠빠ㅏ따까 2017.09.27 22:22 신고

    한국어판 서문 xix쪽
    밑에서 7번째줄 "본직적인 수준"

    •  댓글주소  수정/삭제 Favicon of http://lemonflavor.tistory.com BlogIcon 레몬에이드 2017.09.28 17:38 신고

      안녕하세요.

      확인해 주셔서 감사합니다.
      해당 도서의 오탈자 페이지에 기록하고 다음 인쇄에 반영하도록 하겠습니다.
      즐거운 하루 보내세요.
      감사합니다.

  2.  댓글주소  수정/삭제  댓글쓰기 빠빠빠빠빠ㅏ빠빠빠빠빠빠ㅏ따까 2017.09.29 03:12 신고

    47쪽에 코드
    "if (f[i]) // i가 지워지지 않았으면 그 배수를 지운다." 에서
    }는 있는데, { 가 빠져있음

    •  댓글주소  수정/삭제 Favicon of http://lemonflavor.tistory.com BlogIcon 레몬에이드 2017.09.29 11:11 신고

      안녕하세요.

      계속 나오는 군요 ㅠㅠ
      확인해 주셔서 감사합니다.
      해당 도서의 오탈자 페이지에 기록하고, 다음 인쇄에 반영하도록 하겠습니다.

      즐거운 하루 보내세요.
      감사합니다.

  3.  댓글주소  수정/삭제  댓글쓰기 빠빠빠빠빠ㅏ빠빠빠빠빠빠ㅏ따까 2017.10.06 08:22 신고

    쪽146 목록 10-1
    Circle, Square 구조체의 멤버에 적절한 ; 가 없음

  4.  댓글주소  수정/삭제  댓글쓰기 빠빠빠빠빠ㅏ빠빠빠빠빠빠ㅏ따까 2017.10.13 22:46 신고

    p173

    목록11-2
    #define TERMOMETER 0x86 을
    #define THERMOMETER 0x86 으로 수정

  5.  댓글주소  수정/삭제  댓글쓰기 빠빠빠빠빠ㅏ빠빠빠빠빠빠ㅏ따까 2017.10.14 23:46 신고

    206쪽 목록 13-4 테스트가 깨지는데 어떻게 해야 하나요?
    첫번째 단언 문장에서 sleepTime > 1000을 sleepTime >= 1000 형식으로 고치면 되긴 하지만요...

    •  댓글주소  수정/삭제 Favicon of http://jpub.tistory.com BlogIcon 제이펍 2017.10.17 18:52 신고

      이건 저자의 의도일 것 같아 저자에게 여쭤봐야 할 것 같다고 합니다. 조금만 더 기다려주시면 정확히 확인한 후에 말씀드리겠습니다.

  6.  댓글주소  수정/삭제  댓글쓰기 빠빠빠빠빠ㅏ빠빠빠빠빠빠ㅏ따까 2017.10.16 00:04 신고

    264쪽 밑에서 3번째줄 AddSalaried Transaction을 AddSalariedEmployee Transaction이라고 해야될 것 같아요 아마도...?

  7.  댓글주소  수정/삭제  댓글쓰기 jinbeomhong 2017.11.14 12:40 신고

    18page
    인수테스트의 2번째 줄: 그 스토리가 구현된 바로 앞에 -> 그 스토리가 구현되기 바로 앞에

  8.  댓글주소  수정/삭제  댓글쓰기 jinbeomhong 2017.11.14 20:30 신고

    34page
    3번째줄: 함수의 검증 -> 기능의 검증

    •  댓글주소  수정/삭제 Favicon of http://jpub.tistory.com BlogIcon 제이펍 2017.11.15 09:44 신고

      감사합니다. 꼼꼼하게 책을 보시네요. 혹시 또 이상한 곳이 있으면 안내해주심 고맙겠습니다. 두 건 모두 위에 등록해 두었습니다.

  9.  댓글주소  수정/삭제  댓글쓰기 jinbeomhong 2017.11.15 17:06 신고

    60page
    2번째 줄: 익스트림 프로그래밍에서 짝 프로그램은 -> 익스트림 프로그래밍에서 짝 프로그래밍을

    61page
    중앙: 실제 코드에서 더 자세히 다룰 객체들의 그 다이어그램에서 후보를 알 수 있을거야.
    -> 이 다이어그램을 통해 실제 코드에서 더 자세히 다룰 객체들의 후보를 알 수 있을거야.

    78page
    밑에서 10번째 줄 : 이 문제를 해결하려면 score를 testOneThrow 테스트 케이스에서 꺼냈네. -> 이 문제를 해결하려면 score를 testOneThrow 테스트 케이스에서 꺼내야 하네.

    •  댓글주소  수정/삭제 Favicon of http://jpub.tistory.com BlogIcon 제이펍 2017.11.16 16:31 신고

      추가 제보 감사드립니다. 역자께 전달하였고, 금주 주말에 확인해 주신다고 하니 차주 월요일에 답변을 다시 드리겠습니다. 감사합니다.

    •  댓글주소  수정/삭제 Favicon of http://jpub.tistory.com BlogIcon 제이펍 2017.11.20 09:37 신고

      안녕하세요? 역자께 제보해주신 내용에 대한 확인을 받아 위에 등록해두었습니다. 지적해주신 덕에 좀 더 매끄러운 문자으로 다듬을 수 있어서 감사드립니다.

  10.  댓글주소  수정/삭제  댓글쓰기 jinbeomhong 2017.11.26 15:30 신고

    122page
    첫번째 줄 : 그들은 다음과 같은 애자일 실천방법으로 문제를 찾아냈다 -> 그들은 애자일 실천방법을 따름으로써 문제를 찾아냈다.

    마지막 줄 : 크고 중요한 설계에 -> 구현 전에, 완전하게 설계하는 방식에는
    big, up-front design 참고 : Big Design Up Front (BDUF) is a software development approach in which the program's design is to be completed and perfected before that program's implementation is started(BDUF란 소프트웨어 개발 접근법 중의 하나로서, 프로그램 구현을 시작하기 전에 완전한 프로그램 설계를 만드는 것을 말한다) — https://en.wikipedia.org/wiki/Big_Design_Up_Front

    139page
    밑에서10번째 줄 소제목 : 변경 시뮬레이션하기 -> 변경 자극하기

    밑에서6번째 줄 : 변경을 시뮬레이션할 필요 -> 변경을 자극할 필요

    169page,170page
    밑에서2번째줄 : 휘발적인/비휘발적인 -> 잘 변하는/잘 변하지 않는

  11.  댓글주소  수정/삭제  댓글쓰기 jinbeomhong 2017.12.05 21:59 신고

    286page 목록19-22 제목
    ChangeEmployeeTransaction.h -> ChangeNameTransaction.h

    •  댓글주소  수정/삭제 Favicon of http://jpub.tistory.com BlogIcon 제이펍 2017.12.07 10:12 신고

      감사합니다. 확인해보니 원서도 잘못되어 있었네요. 다음 인쇄 시에 바로잡도록 하겠습니다.
      그리고 위에 제보내주신 내용들 중 139, 169, 170쪽은 역자와 협의한 결과 변경하지 않아도 될 것 같아 위 오탈자 페이지에는 등록하지 않았습니다. 참고하시기 바랍니다.
      그리고 좋은 지적을 꾸준히 해주시고 계셔서 감사하다는 의미로 저희 책을 한 권 보내드리고 싶습니다. jeipub@gmail.com으로 보고싶은 책과 받으실 주소와 연락처, 존함을 알려주시면 고맙겠습니다.
      빙판길 넘어지지 않도록 조심해서 다니세요~

    •  댓글주소  수정/삭제 jinbeomhong 2017.12.07 12:44 신고

      아ㅠㅠ 감사합니다! jinbeomhong@gmail.com 으로 보내도록 하겠습니다!

      그런데 139쪽은 바뀌어야 하지 않을까요? 원서에는 simulate가 아니라 stimulate로 되어 있어서요. 문맥을 보면, 일단 첫번째 총알은 그냥 맞고 그 총에서 쏘는 이후의 다른 총알에 대해서는 확실히 보호할 수 있다고 했어요. BDUF 방식처럼 어디가 어떻게 변경될 것이라 사전에 미리 고려하지 말라(그런 생각을 해볼 수는 있겠으나)고 하였습니다. 일단 첫번째 변경이 발생하기를 기다리자는 거에요. 따라서 더 이상 개발과정에서 멀어지기 전에(현재 작업 중인 부분으로부터 너무 멀어져버리기 전에) 가급적 빨리 변경이 발생할 수록 작업해야할 비용은 적게 들기 때문에 변경이 빨리 발생할 수록 유리한 상황이 되는 것이라 이해했습니다.(기존 폭포수모델에서는 변경을 두려워했으나 애자일에서는 변경에 대한 우리의 태도가 180도 바뀐 상태가 되었음. http://agilemanifesto.org/iso/ko/principles.html 에 나와 있는 "변경을 환영하라"는 원칙에 부합하게됨) 결론적으로 우리는 변경이 빨리 발생하도록 "자극"할 필요가 있는거 아닌가하고 생각해봤습니다. 하단에 변경을 자극할 방법이 몇개의 항목으로 나와 있는데 그 중 하나로 "아주 짧은 사이클로 개발"하는 방식도 고객에게 자주 피드백을 받게 됨으로써 변경을 자극할 수 있게 됩니다. 혹시나해서 의견 남깁니다. 답변해주셔서 감사합니다!

    •  댓글주소  수정/삭제 Favicon of http://jpub.tistory.com BlogIcon 제이펍 2017.12.12 21:29 신고

      추가 의견 감사합니다.
      자극보다는 촉진이 적당한 단어라 판단하여 두 건의 내용을 위에 수정해두었습니다.
      거듭 감사드립니다.

  12.  댓글주소  수정/삭제  댓글쓰기 jinbeomhong 2017.12.23 16:00 신고

    334page 위에서 3번째줄
    우리는 공통 폐쇄 원칙(CCP)을 지킴으로써 이것을 달성할 수 있는데, 안정된 의존 관계 원칙(...)을 사용해서 어떤 종류의 변화에는 민감한 패키지를 만든다.
    ->
    우리는 공통 폐쇄 원칙(CCP)을 지킴으로써 어떤 종류의 변화에는 민감한 패키지를 만들 수 있다.

    = CCP를 준수해서 어떤 종류의 변화에는 민감한 패키지를 만들고 난 후에, SDP를 적용해 바뀌기 어려운 패키지들은 쉽게 바뀔 것이라 예상되는 패키지들에 의존하게 해서는 안된다는 내용..

    339 밑에서 3번째줄
    유연하게 만들 수 있을까?
    = 물음표 없음

    342page 밑에서 2번째 단락
    주계열 위에 있는 패키지는 안정성에 비해 너무 추상적이지도 않고, 추상성에 비해 너무 불안정하지도 않다.
    ->
    주계열 위에 있는 패키지는 안정성에 비해 너무 구체적이지도 않고 추상성에 비해 너무 불안정하지도 않다.
    = 원서에도 잘못되어 있는 듯. 안정적이라면 추상적일 수록 긍정적인 것임(추상적이면 안정적인 것이 긍정적인 것처럼)

    350page 소제목
    고정된 것을 테스트하기 위해 팩토리 사용하기 -> 테스트 픽스쳐를 위해 팩토리 사용하기

    356page 위에서 11번째줄
    (그림 19-3에서 보이는) -> (그림 19-13에서 보이는)

    361page 위에서 2번째줄
    이 새 클래스 -> 이 세 클래스

    •  댓글주소  수정/삭제 Favicon of http://jpub.tistory.com BlogIcon 제이펍 2017.12.26 15:53 신고

      안녕하세요? 다시 또 엄청난 양의 제보를 주셨네요. ㅠㅠ 빨리 확인하여 다시 안내해드리겠습니다. 감사합니다!!

    •  댓글주소  수정/삭제 Favicon of http://jpub.tistory.com BlogIcon 제이펍 2018.01.02 11:42 신고

      안녕하세요? 제보해주신 내용을 역자님과 확인하여 위에 반영해 두었습니다. 다만, 334페이지의 제보 내용에서는 문장 뒷부분 일부만 수정하였고, 342페이지에서의 지적 사항은 저자가 이후 발간한 C# 버전의 책에서도 해당 문장을 유지하고 있어서 저자의 의도로 보여 그대로 두었습니다. 참고하시기 바랍니다. 감사합니다!

  13.  댓글주소  수정/삭제  댓글쓰기 csj4032 2018.03.12 12:47 신고

    118쪽 코드
    while ((c = (ptflag ? RdPt() : RdKbd())) != EOF)
    => while ((c = (ptFlag ? RdPt() : RdKbd())) != EOF)



티스토리 툴바