번역 일기
오늘은 2장 올립니다.
기술적인 문제들
줄넘김과 마침표
Plain Text 형식의 파일들을 꽤 많이 사용합니다. 지금 사용하고 있는 TeX 파일도 그렇고, 평상시 블로깅에 사용하는 Markdown 파일도 그렇습니다. Git 나 Subversion 과 함께 사용하는 것이 일반적인데, 불편한 부분이 하나 있습니다.
Git 나 Subversion 이 Plain Text 파일을 취급할 때 다루는 기본 단위는 “줄” 입니다. 줄 단위로 변화를 따지고, 병합합니다. 이런 기준은 프로그램의 원시 코드들과는 대체로 잘 어울립니다. 거꾸로 이 때문에 여러 줄로 나눠지도록 배열의 선언 등을 내려쓰기도 합니다.
그런데, 자연어에서는 “줄” 보다는 “문장” 이 자연스럽습니다. 줄 넘김 보다는 마침표가 중요하다는 뜻입니다. 한가지 방법은, 글 쓰는 사람이 의도적으로 마침표가 올 때마다 줄을 넘겨주는 것입니다. 지금 제가 쓰고 있는 방법이지요. 하지만 좀 불편합니다. 집중 모드로 글쓰기 할 때는 거의 기억하지 못하고 파일 자체를 후 처리하지 않고 보면 볼품이 없기도 합니다. 이 보다는 Git 나 Subversion 이 마침표를 줄 넘김처럼 취급하는 옵션을 제공하는 것이 더 좋을듯합니다. 이미 방법이 있는데 제가 모르고 있을 가능성도 있어 보입니다. 누구 아시는 분 제보 부탁합니다.
$ 기호
연습문제에는 $기호가 나옵니다. 교정 볼 때 일관성 있게 수정하는 편이 좋을듯해서, 달러를 원화로 고치지 않고 그냥 뒀기 때문입니다. 그런데 지금 수식처리 때문에 MathJax 를 사용하는데, $기호가 문제를 일으키네요. 일단
<span>$</span>
처럼 수정해서 MathJax 가 개입하지 않도록 처리해둡니다.
2. 변수, 표현식, 문장
변수명과 예약어
- 변수명의 첫 글자를 영문자로만 시작할 수 있다는 식으로 들릴 위험이 있어, 숫자로 시작할 수 없다고 바꿨습니다.
- 작업하다 보니 어린이를 위한 파이썬 환경은 파이썬 3를 쓰는 것이 좋지 않을까 하는 생각이 드네요. 변수명에 한글을 사용할 수 있으면 도움이 되지 않을까요?
연산자와 피연산자
- 나눗셈에 관련된 용어는 좀 생소한 방식으로 정의했습니다. floor division 을 “정수 나눗셈”, floating-point division 을 “실수 나눗셈”으로 번역했습니다. 이런 번역을 합리화하기 위해 floating-point 에 “실수”라는 용어를 사용하기 위한 내용을 앞쪽에 삽입했습니다. 이런 배경은 예전에 올린 나눗셈 이야기에 나와있습니다.
- 일단은 그대로 두었습니다만, // 연산자가 파이썬 3에만 존재하는 연산자인 것처럼 들릴 위험이 있습니다. 나중에 재검토 하겠지만 당장은 나눗셈 이야기의 내용이 더 정확합니다.
- 비트 연산자에 관한 내용은 다루지 않을 모양이네요. 대신 위키페이지로 가는 링크를 제공하는데, 페이지가 영어로 되어있으니 번역본으로서는 좀 어색합니다. 나중에 비슷한 수준의 페이지를 만들어 링크를 바꿔두는 것이 좋을 듯.
표현식과 문장
- 진작 “print 문”을 ”인쇄문“ 이라고 사용할 것을 잘못했다는 생각이 듭니다. 일단 여기 기록을 남겨두니 뒤에 ”인쇄문"을 쓰고, 나중에 일관성 있게 변경하면 될 듯.
문자열 연산들
- 나중에 한 권의 책으로 묶어낼 때 “찾아보기”를 어떻게 처리할지 걱정되기 시작합니다. 지금 번역에서는 보이지 않지만 원서에서는 commutativity 라는 단어가 찾아보기를 통해 이 절과 연결되어 있습니다. 일반적인 경우처럼 commutativity 라는 단어가 이 절에 등장하지는 않습니다. 찾아보기가 연결되어 있는 이유는, 이 절의 끝에서 묻고 있는 질문의 답이 commutativity 이기 때문입니다. 숫자의 덧셈 연산자에서는 교환법칙이 성립하지만 문자열 접합연산자는 그렇지 않다는 것을 말하고 싶은 것인데, 이런 부분까지 찾아서 한글 찾아보기를 만들려면 대단히 심각한 수준의 노동이 필요할 것 같네요.
주석
지난 번역 일기에서 예제를 번역하지는 않겠다고 했는데, 주석에만은 예외를 둘 필요가 있을 것 같습니다. 그냥 두면 주석을 영어로 작성해야 하는 듯한 인상을 줄 것 같아서요. 그런데 주석만 한글로 바꾸려 해도, 파일의 인코딩을 지정하지 않으면 파이썬은 이런 문법 오류를 일으킵니다.
SyntaxError: Non-ASCII character '\xed' in file sample.py on line 1, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details
이런 주석문을 스크립트의 첫 줄(곤란하면 둘째 줄)에 넣어주세요.
# coding=utf-8
이렇게 해 놓고 다른 인코딩으로 파일을 만드시면 안되겠지요?
일주일 후에 다시 찾아오겠습니다.