Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sjoonk/6006286 to your computer and use it in GitHub Desktop.
Save sjoonk/6006286 to your computer and use it in GitHub Desktop.

테스트 주도 개발로 배우는 객체 지향 설계와 실천 | 스티브 프리먼, 냇 프라이스 저 | 이대엽 역 | 인사이트 | 2013.06.20

번역이 조금 아쉬운 책입니다. 아래와 같은 번역들이 군데군데 들어있어 따라 읽기 어렵게 만드네요. 명색이 TDD 책이라는데 이런 번역이 나와서야. 그냥 코드만 따라 갈거면 모를까 내용까지 읽을 거면 차라리 원서로 읽는 게 나을 듯.

(번역서 114쪽 마지막 문단)

우리에겐 애초부터 테스트를 실행하고 테스트가 실패하는 모습을 지켜보기에 충분한 기반 구조가 있었다. 이 장의 나머지 부분에서는 테스트를 통과하게끔 만들기 전까지 기능을 한 번에 하나씩 추가하겠다. 이 기법을 처음 사용하기 시작했을 때 "일단 코드를 작성하라. 무엇을 해야 할지 알고 있지 않은가!" 라고 해서 너무 까다롭게 느껴졌을 것이다. 시간이 지나면서 그렇게 하는 데 시간이 별로 들지 않고 진행 과정이 훨씬 더 예측 가능하다는 사실을 깨달았다. 한 번에 한 측면에만 집중하면 그러한 측면을 확실히 이해하는 데 도움이 된다. 대체로 뭔가를 동작하게 만들면, 그것은 동작하는 상태로 유지된다. 해결책에 관해 논의할 필요가 없다면 많은 과정이 시간이 거의 걸리지 않는다. 그러한 단계는 구현보다 설명하는 데 더 시간이 걸린다.

아시다시피 이 문단은 저자가 테스트 주도 개발법을 익히는 과정에서 느꼈던 감정과 테스트 주도 개발의 좋은 점에 대해 얘기하고 있는 문단입니다. 개발자들이 TDD를 접할 때 흔히 갖는 선입견 중 하나, 즉 "무엇을 만들지 아는데 굳이 테스트부터 작성할 필요 없이 그냥 바로 코딩을 하면 되쟎아!" 하는 생각을 똑같이 말하고 있습니다. 이어서 저자는 실제 테스트 주도 방식으로 개발하는 것이 생각만큼 그렇게 시간을 잡아먹은 일도 아니며 또 여러 가지 좋은 점들도 있음을 말하고 있습니다. 그런데 저는 유감스럽게도 위의 번역문을 읽으면서는 도무지 그 "느낌"을 얻을 수 없었습니다.

(원서의 원문)

We have enough infrastructure in place to run the test and watch it fail. For the rest of this chapter we'll add functionality, a tiny slice at a time, until eventually we make the test pass. When we first started using this technique, it felt too fussy: "Just write the code, we know what to do!" Over time, we realized that it didn't take any longer and that our progress was much more predictable. Focusing on just one aspect at a time helps us to make sure we understand it; as a rule, when we get something working, it stays working. Where there's no need to discuss the solution, many of these steps take hardly any time at all-they take longer to explain than to implement.

(내가 한번 해 본 번역)

우리는 이제 테스트를 실행하고 그 테스트가 실패하는 것을 지켜 보기에 충분한 수준의 기반 구조를 갖췄다. 이 장의 나머지 부분에서는 테스트를 통과하게 만들기까지 한번에 아주 적은 분량씩 기능을 추가해 나갈 것이다. 처음 우리가 이 기법을 사용하기 시작했을 때 우리는 혼돈스러웠다. "그냥 코드를 작성하라고. 무얼 할지는 이미 알고 있쟎아!" 시간이 지나면서 우리는 이제 이 방법이 더 오래 걸리는 것도 아니며 진척 상황을 예측하기도 더 좋다는 점을 깨달았다. 한 번에 하나에만 집중하는 것은 그 하나를 이해했다는 확신을 갖는 데 도움을 준다. 또한 대체로 무언가를 작동하게 만들어 두면 계속 작동하는 법이다. 해결책을 논의할 필요가 없을 경우라면, 이 단계들 중 많은 부분은 정말이지 금방 끝날 것이다. 구현보다는 오히려 설명하는 데 시간이 더 들 만큼.

@leedaeyeop
Copy link

안녕하세요? <테스트 주도 개발로 배우는 객체 지향 설계와 실천>의 번역자입니다. 우선 꼼꼼하게 번역에 대해 피드백 하신 점에 깊이 감사드립니다. 이 부분은 말씀하신 의견을 바탕으로 출판사에 수정해 달라고 요청해 드린 상태입니다. 그러나 이미 책을 사서 보신 독자의 입장에서 번역이 기대에 크게 못미치는 부분에 대해서는 죄송할 따름입니다. 다음에는 번역에 좀 더 신중을 기하겠습니다.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment