지하철로 출퇴근을 하다보니 지하철에서 볼 책이 꼭 필요하다. 어제부터 레이몬드 첸의 윈도우 개발 282 스토리를 보고 있는데, 번역이 계속 신경 쓰인다. 오역이라고 딱집어 말하기는 어려운데, 어딘가 모르게 엉성하다.
Chapter 6: GlobalAlloc 함수의 이력(70페이지)
옛날에 윈도우 1.0이 있었다. 그때는 640K, 세그먼트, 가까운 포인터near pointer와 먼 포인터far pointer, 가상 메모리 없음, 협력적 다중 작업 등이 존재했던 그야말로 옛날이었다.
가상 메모리가 없었으므로, 애플리케이션과의 협력을 통해 스와핑swapping이 수행되어야 했었다. (코드 또는 데이터를 위한)메모리 할당이 필요하고 연속된 메모리가 충분하지 않을 때, 메모리 관리자는 연속된 메모리 공간을 확보하기 위해 압축compaction이라는 처리를 수행해야 했었다.
아침에 본 부분인데, 마지막 문장은 원문과 대조해 볼 필요도 없이 틀린 문장이다. 압축이라는 뜻은 compress라는 단어가 분명히 존재하고 compact는 compress와 분명히 다르다.
이 책은 Microsoft사의 직원인 Raymond Chen의 The Old New Thing이라는 블로그의 글을 옮긴 것이다. 이 글도 있으리라는 생각에 회사에 와서 찾아봤다. 블로그와 책이 다를 수도 있지만, 원서가 없으니 이 방법으로 비교해 볼 수밖에 없다.
이 글은 A history of GlobalLock, part 1: The early years 란 제목으로 쓴 글이다. 인용된 한글 부분에 해당하는 부분을 보자.
Since there was no virtual memory, swapping had to be done with the co-operation of the application. When there was an attempt to allocate memory (either for code or data) and insufficient contiguous memory was available, the memory manager had to perform a process called "compaction" to make the desired amount of contiguous memory available.
앞 부분만 따왔다. 실제 원문에는 compaction이라는 과정을 수행한다고 쓰고 그 아래 그 과정 4가지를 적어 뒀다. 책도 마찬가지다. 문제는 그 4가지 과정중 어떤 것도 압축이라고 부를만한 것은 없다는 것이다.
한글에서 compact와 compress를 나타내는 정확한 단어가 없는 것은 사실이지만, 의미가 완전히 다름에도 그냥 "압축"이라고 써두는 것은 명백한 직무유기다. 책을 보면서 미묘하게 말이 안되는 표현이 계속 눈에 밟히는데 그걸 다 추적하고 싶은 마음은 없다.
번역자 정보를 보고 싶어 다시 앞쪽으로 돌아갔다. 의외의 결과를 발견함과 동시에 책의 앞 부분에 나와던 "왜 윈도우에는 '전문가 모드'가 없는가? (영문은 여기)"라는 글이 떠 올랐다.
실세계에서, 한 분야의 전문가가 반드시 다른 분야에서도 전문가는 아니다. 즉, 전문성이란 하나의 숫자로 표현할 수 있는 것이 아니다.
이 책이 DB에 관련된 책이였다면 또 한권의 매끄럽고 훌륭한 번역서가 탄생했을 것이다.
TAG 번역
