두번째 번역을 했다. 역시나 번역 작업이 어려움을 다시 한번 느끼면서 허접 번역이다. 학교 다닐 때 제일 싫어하는 과목이 국어와 영어였다. 그리고 좋아하는 과목이 수학, 과학류였다. 그런데 사회를 나와보니 국어와 영어 공부를 게을리 한 것이 이리 후회가 될 줄 몰랐다. 영어는 그렇다 쳐도 국어가 제대로 뒷받침 되지 않으니 번역 작업이 더 힘들다. 어휘력에 대한 한계를 느끼고 있다. 그래도 조금씩 더 나아지리라는 기대감을 가지면서..

오늘 번역한 문서는 Miško Hevery가 Guide to Testability 글에서 테스트 하기 쉬운 코드를 만들기 위한 가이드 문서를 작성하면서 static method를 사용하지 말라고 조언하고 있다. 이 글을 읽고 반박글이 많아서 그에 대한 반박글을 다시 적은 Static Methods are Death to Testability이다. Static Method의 사용에 대하여 다시 한번 고민해보고 싶은 마음에 번역 작업을 시작했다.

내가 번역한 문서는 http://wiki.javajigi.net/display/TEE/Static+Methods+are+Death+to+Testability에서 볼 수 있다. 번역 작업을 하다보니 내가 원서를 읽을 때 이해하고 있는 부분을 어떻게 번역할지가 고민이다. Seam, leaf method와 같이 이런 부분은 그대로 사용하였다.

각각의 용어에 대하여 잘 모르는 사람들은 한번씩 찾아보면 좋을거 같다. 물론 시간이 허락할 때 위키에 조금씩 내용을 추가할 생각이다. 지금은 Seam에 대한 내용만 추가했다.

이 글은 예제가 없는 상태라 이해하기 더 어려울 것으로 판단된다. Flaw #3: Brittle Global State & Singletons 글을 보면 예제도 포함하고 있기 때문에 더 쉽게 이해할 수 있을 것으로 생각한다.

주의해서 봐야할 부분은 Static Methods are Death to Testability에 달린 덧글을 읽어보면 좋겠다. 덧글을 보면 다양한 이견들이 나오고 있다. 덧글을 간략하게 요약해 보면 다음과 같다.

  • 이 글에서 예로 든 Math.abs(-5)의 경우는 static method로 사용하는 것이 맞다. 예제를 잘못든 것으로 판단한다는 내용이 있다. 상태값을 가지는 경우에는 static method를 사용하지 않는 것이 맞지만 그렇지 않은 경우에는 static method를 사용해야 한다.
  • 절차적인 코드 또한 단위 테스트가 가능하다는 의견.

하나의 글에 대하여 다양한 의견이 오고 가는 모습이 보기 좋다. 이 내용이 모두 한글화 되어 있다면 국내에서도 많은 관심이 될 것으로 생각한다. 나 또한 이 주제와 관련하여 좀 더 깊이 있는 생각을 해봐야겠다. static method의 사용에 대해서는 논란의 여지가 많을거 같다.


Posted by 자바지기