valid, well-formed, 유효한, 적격

류광, 2003/03/28 15:45
XML의 중요 개념들 중 하나가 valid document, well-formed document입니다. 저는 각각 '유효한' 문서, '적격' 문서라고 번역했습니다. Professional XML Applications에서 처음 사용했구요...

valid를 유효한이라고 하는 것은 별 무리가 없다고 생각합니다. 대부분 그렇게 하죠.
well-formed는... 사실 별로 어려운 단어가 아닌데요. 영한 사전에도 '적격의'이라고 되어 있습니다. 적격이란 말 그대로 격이 맞는다는 뜻이구요. 언어학/문법에서 쓰이는 용어죠. 그런데 XML 초기 시절 잡지나 글들에서 well-formed를 '잘 짜여진', '구조를 갖춘' 같은 말로 표현하는 경우가 많았습니다. 적격이라는 말이 있음에도 그런 표현을 한 것은... 설마 저자들이 사전을 찾아보지 않았던 것은 아닐테구요. 아마 컴퓨터 기술에 언어학의 용어를 선뜻 쓰기가 뭐했던 것이 아닐까 생각합니다.

어쨌든.. 제 생각에 well-formed는 '적격의', well-formedness는 '적격성'으로 번역하는 것이 가장 적격입니다. XML도 '언어'구요. well-formed가 의미하는 것이 바로 문법에서 말하는 바로 그 '적격의'입니다. 여기서 '격'이라고 하는 것은... 주격, 소유격, 목적격 어쩌구 할 때 바로 그 격이구요. 격이 맞지 않으면 문장이 되지 않죠. XML도 마찬가지구요. 반면, 격이 맞는 문장이라도 말이 되지 않을 수 있습니다. XML도 마찬가지.. 그래서 '적격인 문서가 반드시 유효한 문서는 아니다'라는 말이 나오는거죠.

-- 2001. 08. 05 15:09:05
top
TAG 번역
트랙백 0 : 의견 # + 0

override와 재정의, overload와 중복

류광, 2003/03/28 15:43
다 아시겠지만 override라는 것은.. 부모로부터 물려받은 것을 다르게 만든다는 개념입니다. 별로 어렵지 않은 개념으로, 객체지향의 상속성에 관련된 것이죠.

반면 overload는... 동일한 모습을 가진 어떤 것이 상황에 따라 다른 방식으로 작동하게 하는 것입니다. 이것은 객체지향의 다형성에 관련된 것이죠. 예를 들어서 + 연산자는.. 모습은 같지만 정수에 쓰일때, 문자열에 쓰일때, 부동소수점에 쓰일 때 모두 다른 방식으로 작동하죠.

저를 비롯해서 많은 사람들이 overload를 중복이라고 번역합니다. 이는 어느 정도 굳어진 것이죠. override는 아직 굳어진 용어가 없는 것 같습니다. 오버라이드, 오버라이딩 등등 발음 그대로(좀 오버를 한다면 오버롸이드..) 쓰는 경우가 더 많은 것 같더군요.

제 번역 역사 중 override가 처음 나온 책은 아마 C++ Howto였던 것 같은데요... 조금 고심을 했습니다. 두 가지 후보가 있었는데요. 하나는 '번복'이구요. 또 하나는 제목에 나온 '재정의'입니다.

번복의 장점은... 중복과 운율(!)이 맞다는 것. override와 overload, 번복과 중복... 짝이 맞죠. 의미상으로도 그리 틀리지 않고요... 부모가 정의한 메서드를 자식이 '번복'한다... 그렇죠? 그러나.. 안그래도 override와 overload를 혼동하는 사람들이 있는데, 한글 번역어까지 비슷하게 만들 필요는 없다는 점과, 또 '번복'이라는 말의 어감이 그리 좋지 않다는 점... 특히 심판들의 자질에 상당히 불만이 많은 프로축구 팬으로서 '번복' 같은 말은 정말 싫거든요...

그래서 재정의를 선택했습니다. 처음엔 어색하더라도... 자주 쓰면 머리 속에서 override와 재정의가 자연스럽게 연결될 것입니다.

-- 2001. 08. 05 15:08:40
top
TAG 번역
트랙백 1 : 의견 # + 4

hierarchical - 계통적인가, 계층적인가....

류광, 2003/03/28 15:42
hierarchical이라는 단어... 어떠한 구조를 설명할 때 자주 나오죠. 윈도우즈 탐색기의 예와 함께 나오는 경우도 많구요. 대충 말하면 트리 구조에 해당하는 말인데... 영한 사전을 보면 계급 조직의, 계급제의, 계층적인 등으로 되어 있습니다.

그러나 '계층적'이라는 말은 적어도 프로그래밍에서의 hierarchical에는 좀 맞지 않는 부분이 있습니다. 왜냐하면 layer나 level과 겹치기 때문입니다. 제가 쓰는 용어는 '계통적'입니다. 적어도 프로그래밍 분야에서 hierarchical은 대부분 어떠한 부모-자식 관계, 즉 종적인 관계에 강조된 용어입니다. 그렇다면 '계통적'이 더 적합하리라고 봅니다. '계층적'은 수평적, 횡적 관계에 적합하구요...

굳이 예를 들자면... HTTP는 OSI 일곱 계층의 '응용 계층' 프로토콜에 속하구요.. 응용 계층의 또다른 프로토콜인 FTP와는 수평적인 관계죠. 반면 계통적이라는 것은... 예를 들어 PasswordBox는 InputBox로 비롯되는 입력 대화 상자의 계통에 속한다 정도.... 수직적인 관계가 강조된 것입니다.

계층적이라는 것은 여러 개의 층들이 쌓여 있는 것, 계통적이라는 것은 하나의 조상으로부터 각각의 후손들이 뻗어나가는 것이라고 할까요.. 어쨌든 두 용어 사이의 차이는 틀림없이 존재합니다. 함께 쓸 수 있는 성질이 아니라고 생각합니다...

-- 2001. 08. 05 15:08:11
top
TAG 번역
트랙백 1 : 의견 # + 2

comment out과 loop through

류광, 2003/03/27 22:46
이번 역시 번역가 지망생이나 원서를 읽으시는 분들께 도움이 될만한...

comment out과 loop through 모두 오직 프로그래머들만 사용하는 말입니다.

comment out... comment는 주석, 각주, 참고 노트 뭐 그런 뜻에 관련된 것이구요. 기본적으로는 '뭔가 한 마디 덧붙인다', 즉 기존의 어떤 것에 뭔가를 추가한다는 의미를 내포하고 있습니다. 그런네 out은 그 반대... 빼다, 내보내다, 제외시키다 그런 뜻을 가지고 있죠. 이 두가지가 결합된 숙어는 프로그래밍에 관련된 글에서만 나타나는 것 같습니다. 뜻은 대부분 알고 계시겠죠. 번역하자면 '주석 처리하다', '주석으로 제외시키다'가 되구요. 좀 더 길게 설명하면,

"어떤 특정한 코드에 주석 표시를 추가해서(comment) 그 부분을 컴파일 또는 기타 처리로부터 제외(out)시킨다"

가 됩니다. comment out이 프로그래머만의 말이 된 것은, 다른 분야에서는 주석을 추가한다는 행위가 뭔가 처리에서 제외시키는 결과가 되는 일이 거의 없기 때문입니다. 오직 프로그래밍 언어에서만 있는 일이죠...

loop through 역시 프로그래밍 서적에만 나오는 숙어... 이와 비슷하면서 좀 더 일반적으로 쓰이는 것은 walk through입니다. 어떤 여러 개의 항목들을 차례 차례 거쳐가면서 보거나 처리하는 것을 뜻하죠.
제가 선택한 번역은... 상황에 따라 '루프로 돌려서 처리한다' 또는 '루프 안에서 훑어 나간다' 정도입니다.

loop through라는 말을 처음 쓴 사람은 아마 walk through에서 영감을 얻었을 겁니다. 게임의 세세한 공략을 walk through라고도 하죠. 어떤 시스템 또는 집합 안의 각 요소들을 하나 하나 거쳐 가는 것을 walk through라고 할 때, 프로그래밍 세계에서 그런 일을 하려면 항상 루프문이 끼어 들게 되죠. 그래서 walk에 through를 붙이듯이 loop에 through를 붙였지 않았을까요.

또하나 재미있는 것은, 일반 영어 사전에도 loop가 동사로 쓰인다고 나와 있긴 하지만 '고리로 만들다', '고리로 묶다' 정도의 뜻만 있을 뿐 프로그래밍 세계에서처럼 '반복적', '순환적'이라는 의미를 가지지는 않습니다.... loop가 '루프를 돌리다, 반복적으로 처리하다'라는 동사로 쓰이게 된 것은 명사로서의 loop에서 의미를 가져온 것으로 보입니다.

역시 한가지 교훈... 프로그래머에게는 프로그래머만의 언어 생활이 있으며, 저자들 중에는 새로운 말을 만들어 내는 것이 일종의 취미인 사람도 있다는 점... 번역은 저자와의 머리 싸움이기도 하죠...  

-- 2001. 08. 05 15:07:42
top
TAG 번역
트랙백 0 : 의견 # + 1

remote와 email

류광, 2003/03/27 22:46
이번 글은 독자보다는 번역가를 지망하시는 분들께 더 많은 도움이 될 것 같습니다.

우선 remote... 별로 어려운 단어는 아닌 것 같지만, 아주 특이한 경우를 만난 적이 있습니다. 현재 제가 가지고 있는 영어 사전이나 웹 상의 영어 사전들을 뒤져봐도 remote가 동사로 쓰인다고 되어 있는 것은 없습니다. remote는 '원격의'라는 뜻의 형용사이구요. '원격으로'라는 뜻으로, 즉 부사적으로 쓰일 수도 있습니다. 그리고
remote control의 줄임말로서의 명사로 쓰이기도 합니다. 흔히 말하는 리모콘이죠...

그러나 제가 번역한 어떤 책에서는 remote를 동사로 쓰더군요. '원격으로 조종하다', '원격으로 제어하다'라는 뜻의 타동사로 쓰이는 문장이 몇 번 있었습니다. 즉 'control remotely'라는 뜻으로 쓰이는 거죠.

여기서 한 가지 교훈은... 한국어에서와 마찬가지로, 영어 역시 컴퓨터 기술의 급속한 발전을 따라 잡느라 애를 먹고 있다는 점입니다. 새로운 용어, 단어가 생겨나는 것은 물론이구요. remote 처럼 기존 단어의 쓰임새가 변하는 일도 생기는 거죠.

이와 관련된 또 하나의 예가 email입니다. email은 원래 명사로 쓰였던 것으로 알고 있습니다. 그것도 메시징 시스템의 한 종류를 지칭하는, 아주 제한적인 용도로요. 예를 들면..

please send me a message through E-Mail system.

그런에 차츰 네트웍을 통한 메시징 시스템을 대표하는 용도로 쓰이게 되었죠.

please send a e-mail message.

나중에는 아예 '메시지' 자체를 가리키게 되었구요.

please send me a e-mail.

급기야는 동사로도 쓰입니다.

please e-mail me.

이러한 발전 과정은 e-mail이 우리의 일상 생활에 천착해 들어가는 과정을 그대로 반영하고 있죠. 특히 산업 기반이나 경제 규모에 비해 비정상적으로 인터넷이 발달한 한국에서는 더욱 극명하게 나타납니다. 위의 영어 문장을 한글 단 두 글자로 표현할 수 있습니다...

'멜줘!'


.....

번역은 재미있는 작업입니다.... 프로그래머를 꿈꾸시는 분들... '번역가'도 장래 희망 목록 끝에 올려 놓으세요...

-- 2001. 08. 05 15:07:04
top
TAG 번역
트랙백 0 : 의견 # + 1