|
C / C++ 모두 각 언어의 창시자가 쓴 "The C Programming Language", "The "C++ Programming Language"가 있듯이, Java 에는 Gosling이 쓴 "The Java Programming Language" 가 있습니다. 역자 서문에서 얘기한 대로 그러한 지위를 가진 책으로서, 수많은 자바 서적들이 모태로 삼아 참고하고 있어, 자바 개발자라면 기초 서적을 읽은 후 반드시 섭렵해야 할 대상 중 하나인 것 같습니다.
다만, 대부분의 컴퓨팅 서적이 그렀듯이 이 책의 번역서도 많은 아쉬움이 있습니다. 저 같은 경우, 달리는 영어 실력 덕분에 번역서에 의존하는 대신 원문을 수시로 참고하며 읽었습니다. 오타 등의 문제는 쉽게 파악이 가능하거나 그다지 중요하지 않을 수 있으나, 오역은 정확한 의미를 파악하고 이해하는 데 결정적인 장애가 되기 때문입니다.
예로, 66페이지의 내용 중 아래 원문에 대해 다음과 같이 번역되어 있습니다.
"A class's subtypes are the classes that extend it, including all of their subtypes. An interface's subtypes are the interfaces that extend it, and the classes that implement it, including all of their subtypes."
"클래스의 슈퍼(오타:서브) 타입(subtype)은 상위 클래스를 확장하는 클래스이며 상위 클래스의 모든 서브 타입이 상위 클래스의 서브 타입이 될 수 있다. 인터페이스의 서브 타입은 상위 인터페이스를 확장하는 인터페이스이거나 구현하는 클래스이며 상위 인터페이스의 모든 서브 타입이 상위 인터페이스의 서브 타입이 될 수 있다."
우선, 원문에는 그러한 표현이 없는데 상위란 표현이 나옵니다. 물론 확장하는 당사자 입장에서는 상위가 맞으니 의역 정도로 이해 할 수 있다고 봅니다. 그러나 "상위 클래스의 ... 될 수 있다." 부분의 경우, 말이 안되고 원문의 의미를 정확하게 전달하고 있지 못합니다. 아래와 같이 이해하는 것이 더 정확할 것으로 보입니다.
"클래스(A)의 서브타입은 클래스(A)를 확장하는 클래스들(B, C, ...)과 그것들(B, C, ...)의 모든 서브타입을 포함한다. 인터페이스(a)의 서브타입은 인터페이스(a)를 확장하는 인터페이스들(b, c, ...)과 구현하는 클래스들(B, C, ...), 그리고 그것들(b, c, B, C, ...)의 모든 서브타입을 포함한다."
|