'객체 지향적'은 잘못된 번역인가 두 번째
객체 지향이라는 용어에 대한 제 첫 번째 글에 대해 neolith 님이 좋은 의견을 주셨습니다. 그(중 일부)에 대한 제 생각입니다.
OOP의 object가 속성과 행동을 함께 캡슐화하며 여러가지 처리의 중심이 된다는 의미에서 차라리 주체에 가깝다는 논리는 오래전부터 있어왔고 꽤 공감을 사고 있는 것 같지만, 저는 별로 공감하지 않습니다.
제가 해석하는 방식은 이렇습니다. 예를 들어 int x, int y;라는 코드가 있다고 할 때, x, y를 하나의 2차원 위치로 사용할 수 있습니다. 그러나 그 둘을 하나의 위치라고 보는 것은 그냥 프로그래머의 주관적인 생각일 뿐 코드 자체에 위치라는 개념이 존재하지는 않습니다. 반면 struct Position { int x, int y; };라는 코드는 코드가 표현하는 개념 공간 안에 '위치'라는 개념을 도입합니다. 저 코드 때문에 코드 공간 안에는 위치라는 개념(클래스)과 실제로 개별적인 위치(객체)들이 객관적으로 존재하게 됩니다. 객체는 그런 측면을 더 잘 표현한다고 생각합니다.
그리고 사용자 중심이 사용자 지향보다 더 자연스러운 것은 저도 동의하지만, 그게 곧 개체 중심을 옹호하는 근거가 되긴 힘들다고 봅니다. 왜냐하면 사용자 중심은 사용자를 중심으로 한다는 뜻이고 사용자 지향은 사용자를 향한다는 뜻인데, 둘이 완전히 같은 문제는 아니고 다만 사용자를 중심으로 한다는 생각이 우리에게 더 친근할 뿐이라고 생각하기 때문입니다. object-oriented가 객체를 향한다는 개념이 아니라 사실은 객체를 중심으로 한다는 개념인가? 이 문제에 대해 논의가 더 있어야겠죠.
(2006-12-19 추가: 세 번째 글 '객체 지향적'은 잘못된 번역인가 세 번째로 이어집니다.)
예전 댓글(읽기 전용)
-
굴돌, 2004-04-19 12:04 :
-
neolith, 2004-04-20 21:04 :
object 라는 단어 자체를 갖고 OOP 의 번역에 대해서 개체냐 객체냐, 지향이냐 중심이냐라는 것을 논하기보다는 소프트웨어 엔지니어링의 변천이라는 맥락에서 OOP 의 의미를 따져보면 어떨까요?
OOP 이전의 프로그램 세계에서는 소프트웨어 디자인이나 분석의 대상이 알고리즘 (플로우차트로 대변)과 자료구조 중심이었습니다. 분석가나 디자이너가 관심갖는 대상이 알고리즘과 자료구조였었는데, OOP 세상이 되면서 그 대상이 Object 가 된 것이니 Object 중심으로 분석하고 디자인한다. 라고 표현하면 좋을 것 같습니다.
즉 Object 를 Orient 하는 주체는 다른 사람이 아니라 분석가와 디자이너라고 보자는 것입니다.
그렇다면 분석가와 디자이너가 소프트웨어를 분석하고 디자인하는 과정이라는 맥락에서 Object 의 의미를 생각해본다면, Object Modeling 의 가장 기본은 Method 와 Property 를 추출하는 활동입니다. 그러한 'Method, Property'와 'Object' 간의 관계를 생각한다면 역시 Object 가 주체가 된다고 생각하는 것이 자연스럽지 않냐는 것입니다. 그래서 복잡한 문제영역 안에 있는 낱낱의 Entity 들을 Object 로서 모델링하고, 그것들 위주로 문서나 코드가 만들어지는 과정을 생각했을 때에 OOP 는 '개체중심프로그래밍' 이나 '개체중심디자인', '개체중심분석'. 혹은 '개체위주프로그래밍', '개체위주디자인', '개체위주분석'으로 생각하는 것이 자연스럽게 느껴진다는 것이 저의 의견입니다.
-
류광, 2004-04-21 18:04 :
두 분 의견 잘 들었습니다. OO가 왜 대두되었고 무엇이 바뀌었는가를 중심으로 저도 다시 한 번 생각해 보겠습니다.
그나저나 한 블로그 내에서 답글로 이야기하기에는 너무 커진 듯 한데... 어떠세요? 트랙백 기능을 통한 블로그 대 블로그 논의도 좋을 것 같은데요? (블로그 안쓰신다면 게시판에서 수동으로 참조 링크를 걸수도 있겠구요...)
-
neolith, 2004-04-21 23:04 :
저는 블로그를 쓰지 않아서.. 제 홈피의 게시물에 이 게시물과 전 게시물을 링크걸죠
-
굴돌, 2004-04-22 06:04 :
블로그나 홈페이지 등등이 없어서 부득이 이곳에 답글 답니다. 죄송합니다. 객체개체: 위에 제가 쓴 글에서 '객체'의 정의가 잘못되어 있습니다. '개체'를 쓰는게 맞을 듯 싶습니다. 지향중심: '지향'의 원래 뜻에 있는 '의지' 표현을 위해서 '지향'이란 단어를 선택하는게 맞을 듯 싶습니다. 참조: The C++ Programming Language p727 http://www.korean.go.kr/
잡담: 지면상 내용을 간략하게만 썼습니다. 무엇인가 많이 찾아본 것 같은데 썰렁하군요. '개체'를 써야 한다는 보류중인 생각입니다만 예기가 길어지므로 이만 줄입니다.
-
하품물고기, 2004-04-23 14:04 :
객체'기반'은 어떤가요? oriented라는 단어와는 거리가 있는 듯 하지만 왠지 저에게는 이쪽이 좀 더 와닫는 느낌이 듭니다.
-
백아, 2004-04-23 18:04 :
산업디자인을 전공하고 있습니다. 어떤 디자인을 하였을때, 두세가지 모양으로 나누어져 하나의 물체를 이룰때, 그 모양을 객체라고 표현하고 물체를 개체라고 표현하고 있습니다. 객체가 어우러져 개체를 만든다는 개념입니다. 물론 실제로는 이런 상하개념이 아닙니다마는. 똑같이 생각할수는 없다고 생각합니다만, 이런 관점에서는 객체가 더 어울린다고 생각합니다.
-
굴돌, 2004-04-24 04:04 :
위에 언급한 출처에서 object를 instance라고 예기하였는데 instance는 개체입니다. 표준어 사전에서 예기하는 객체의 의미하고는 거리가 있습니다. 개체(instance)가 대상(객체)이 될 수도 있지만 주체도 될 수 있죠. 하지만 제가 언어학자도 아니고, "교양있는 사람들이 두루 쓰는 현대 서울말"에 맞는 쪽이 '객체'인지 '개체'인지도 모르고, 또 이미 그것을 '객체'로 바꾸기에는 늦지 않았나 싶습니다. =.=a oriented쪽은 잘 모르겠습니다. 이래서 초기에 외래어를 들여오는 사람들이 자신에게 익숙한 언어가 아닌 두루 쓰이는 언어를 사용해야 하는데...대한민국이라는 지역 범위와 현대라는 불명확한 시간 범위에 걸친 표준적인 언어를 이해하고 있는게 쉽지는 않을 것 같네요. 그러면서 그 분에야 선구자이기까지 하다면...;;; 자꾸 토론이 길어지네요. 주인장님에게 죄송합니다. T.T...이글이 마지막입니다. T.T
-
류광, 2004-04-27 20:04 :
모두들 의견 감사합니다. 조만간 정리 차원의 글을 하나 더 올릴께요...
-
neolith, 2004-04-29 21:04 :
차라리 '오브젝트 중심 프로그래밍' 이라고 애초에 소개되었다면 어땠을까 하는 생각이 드네요. 오브젝트는 여러분이 생각하는대로 오브젝트이지, 객체에 가깝지도, 개체에 가깝지도 않은 또 다른 존재라는 생각이 듭니다
-
굴돌, 2004-05-04 14:05 :
오타 수정합니다. 04년 4월 24일자 글에서 "'객체'로 바꾸기"가 아니라 "'개체'로 바꾸기" 입니다.
-
김창준, 2004-05-12 13:05 :
-
류광, 2004-05-12 15:05 :
의견란의 자동 링크가 이상하게 작동하네요. 손을 봐야겠습니다.
-
류광, 2004-05-12 15:05 :
이제 되었습니다. 김창준님 링크 감사합니다.
-
정진혁, 2005-05-27 23:05 :
개체가 '인스턴스'라고 여겨진다고 해도 틀린건 아닙니다. UML에서 Object Diagram 이란 다이어그램에서도 오브젝트는 클래스를 지칭하는것이 아닌, 인스턴스를 지칭하는거니까요. 인스턴스와 개체를 완전히 다른 뜻이 아닙니다. 인스턴스가 개체일수도 있고 개체가 아닐수도 있지만 개체는 인스턴스 맞습니다. 또한, 지향 이란 말도 사실 다른 사람들이 많이 쓰니까 저도 쓰지만 속으로는 object-based 즉, 개체 기반 이라고 생각합니다.
-
류광, 2005-05-28 01:05 :
neolith님이나 정진혁님 의견이나... 이제는 번역의 문제가 아니라 OO 자체에 대한 문제제기로 가고 있는 것 같습니다.. ^^
이 논의에 대해 지금 하고 있는 생각은.... Object와 Oriented를 어떻게 번역하느냐와 Object-Oriented가 무엇을 말하는 것이냐가 완전히 같은 문제가 아니게 된 것 같다는 점입니다... OO를 무엇으로 생각하든, oriented라는 용어 자체를 '~기반'이나 '~중심'으로 번역할 수는 없는 일입니다. based나 centered, centric이 존재하는 한 말이죠... 마찬가지로 object를 오브젝트라고 하는 것은 그냥 음차일 뿐이구요.
좀 더 생각을 정리해서 다시 한 번 글을 써보겠습니다...
-
정진혁, 2005-06-10 23:06 :
번역을 하는 사람에게 있어서 의역은 필요한가 필요하지 않은가? 에 대한 대답을 아시는 분이라면, OO 자체에 대한 문제제기가 필요한가 아닌가? 에 대한 대답도 아시리라 생각됩니다. based나 centered, centric이 존재하는 한 기반이란 말을 쓸수 없다는 말씀에도 동의할수 없습니다. 하나의 단어가 다른 단어로 번역될수 있듯이, 다른 단어가 똑같은 하나의 단어로도 번역될수도 있는거니까요. 예를 들어, block이라는 단어는 하나의 단어이지만, 하드웨어에서는 메모리 블록 같은 영역을 지칭하는 말이지만, 유닉스에서 block이란 '대기하다'의 뜻이 되버리죠. appropriate와 corresponding이 다른 뜻이지만 둘다 똑같이 '해당' 이라고 번역될수도 있는 거구요.
-
정진혁, 2005-06-10 23:06 :
사실 object-oriented를 "개체 중심"으로 번역하는 것이 맞다고 하더라도 아무도 그렇게 쓰지 않는다면 여기서 논의한 것은 시간 낭비에 불과하다고 생각합니다. 따라서 이 글을 읽은 여러분들이라도 "객체지향"이라는 잘못된 번역 대신 "개체 중심"이라는 용어를 사용해 준다면 언젠가는 올바른 단어를 사용할 날이 오겠지요.
-
류광, 2005-06-11 00:06 :
정진혁님/ 의역의 필요성과 OO에 대한 문제제기의 필요성이 직접적으로 관련이 있을까요? 의역에 대한 정의가 저와는 다른 것 같습니다. 뜻을 옮기는 게 의역일 뿐이고 영->한에서는 어차피 뜻을 옮길 수밖에 없습니다. 결국 뜻을 제대로 옮기는 게 문제인데, 위에서 제가 한 말은 현재 상황에서 옮기고자 하는 말과 뜻이 우리의 인식 속에서 과연 일치하는가... 라는 것입니다.
한편 기술적인 문제로, 블럭, 해당 등의 예가 -oriented를 지향 대신 기반이라고 해도 되는 근거가 될 수는 없다고 봅니다. 용어 선택에는 변별력이라는 것도 필요합니다.
그리고, 갑자기 "객체지향"이 잘못된 번역이라는 단정을 깔고 있는 답글은 다시는 것은... 다른 글이라면 모를까, 지금 이 글에서는 반칙입니다 :)
-
정진혁, 2005-06-11 01:06 :
변별력을 말씀하셨는데, 아무 기준도 없는 상황에서 누가 기준이 되는 변별력을 말씀하시는지 통 모르겠습니다. 기준이 없는 상황에서 변별력 운운하는거 자체가 말이 안되는거 아닐까요? 그리고, 언어란건, 의사 소통의 수단이라고 생각합니다. 만약, 객체지향이 무엇인지 통 이해하지 못하는 사람들을 위해서 설명하는데 '기반'이라는 표현이 그 뜻에 가깝고, 그렇게 그 뜻을 벗어나지 않는다면, 충분히 쓸만한 근거가 된다고 생각합니다. '지향'이라는 어려운 단어로 아무리 이야기 해봤자 이해를 못하는데, 과연 어떻게 하는게 옳은 일일까요?
-
정진혁, 2005-06-11 01:06 :
류광님과 저의 관점의 차이는 류광님은 oriented와 based라는 단어가 철자가 다르다는게 기준이라고 주장하시는 것이고, 저는 철자가 다르다고 뜻이 다른건 아니라고 주장하는데 있는거 같습니다. 그 기준의 차이는 아무도 정해준 바가 없구요. 이러한 논란 조차도 저는 우리나라에는 ANSI나 IEEE같은 존재가 없기 때문이 아닐까 생각해봅니다. 만약 어떠한 단체가 oriented가 '기반' 이다 또는 '지향'이다라고 못 박았고, 그 내용을 모든 구성원들이 동의했다면 이러한 논란 조차도 없었을 것입니다 미래지향이란 단어가 개인적으로 와닿으실지 몰라도 객체지향이나 인간지향, 고객지향 같은 단어 보다는 인간중심, 고객중심, 객체중심이란 단어가 대부분이 더 와닿으실겁니다.
-
류광, 2005-06-11 01:06 :
(앗 수정하느라고 글을 잠시 삭제했는데 답글을 올리셨네요. 이 글은 위의 정진혁님 답글 위로 가야 합니다....)
변별력의 기준은 이미 있습니다. 영어에서 oriented와 based가 완전히 같은 단어가 아니라는 것이 바로 기준입니다. oriented와 based가 한국어에서(심지어는 구체적으로 OO에서) 하나의 단어로 통합될 거라고 생각하지는 않습니다..,
그런 맥락에서... 만일 기반이라는 용어로 OO를 더 잘 설명할 수 있다면, 더 이상 "지향"이라는 용어의 문제가 아니라는 것이 제 생각입니다. object-oriented라는 용어 자체를 버리고 object-based를 사용해야 한다는 주장이 더 먼저 나와야 하는 것 아닌가 하는 것입니다.... 마찬가지로 중심이라는 용어로 OO를 더 잘 설명할 수 있다면 object-centric이나 object-centered라는 용어를 주장해야 하겠지요... ("gae(k)che giban"이라는 용어를 쓰자고 주장하는 것은 좀 무리겠구요.. ^^)
과연 기반이라는 용어로 OO를 더 잘 설명할 수 있는가에 대해서도 이야기를 해봐야 겠지만 일단 지금 제 관심의 초점은 그것이 아니므로 일단 생략하구요.... 다만 개인적으로는 지향이라는 용어가 특별히 더 어렵고 생소한 용어는 아니라고 생각합니다. 저번에 어디선가 말했지만 미래지향이라는 말은 많이 쓰이니까요....
-
류광, 2005-06-11 01:06 :
oriented와 based가 철자가 달라서 다른 단어인것은 아니죠.. ^^ 뜻이 다르지 않나요? 그리고 그 두 단어가 하나로 합쳐지지 않고 아직도 서로 다른 의미를 가지고 공존하는 것은 영어권 사용자들의 언어적인 합의에 의한 것이구요... 그런 합의를 무시할 수는 없는 일입니다.
저는 좀 조심스럽습니다. 기술 신비주의일지도 모르겠지만 애초에 based나 centric, centered라고 하지 않고 oriented라고 한 것에는 뭔가가 있지 않을까요? 또는 애초의 의도가 지금은 사라졌을까요? 잘 모르겠습니다...
미래를 지향하는 것처럼 객체를 지향한다는 것으로 OO를 설명하기가 힘든 이유는 또 무엇일까요? 또는 과연 그럴까요? 당시 OO의 수준에서 지향은 "희망"을 나타내는 말이었을까요? 그 부분에 대해서도 좀 더 고민을 해봐야겠습니다....
-
정진혁, 2005-06-11 14:06 :
oriented와 based가 뜻이 다르다고 주장하시는건, 류광님 번역에는 뜻이 다른 단어가 한국어로 똑같이 번역된 적이 없다고 주장하시는 것처럼 들리네요. 설마 정말 그러신건 아니겠지요? oriented가 '지향' 이라고 번역된다는 것에 대해서도 뭔가 어폐가 있지 않나요? 정말 원뜻을 중요시한다면 말이죠. 영어권 사용자들의 언어적인 합의를 한국어 번역에 갖다대지 마십시오. 저는 지금 영어권 사용자들의 언어적인 합의를 말하는게 아니라, 영어를 한국어로 번역하는데 있어서의 언어적인 합의를 말하는 것입니다. 영어를 원어 그대로 말한다면 두 다른 영단어가 하나의 한국어 단어로 합쳐지는 일은 없겠지요. 하지만 언어가 다르니, 어쩔수 없이 그래야 하는 상황이 벌어지는건 저보다 잘 아시리라 생각합니다.
-
정진혁, 2005-06-11 14:06 :
oriented의 번역 object 뒤에 붙는 oriented란 접미사의 번역도 잘못되었다. oriented는 어떤 방향이나 대상을 가리키는, 즉 "지향하는"이 아니라, 이미 가리키고 있는 대상을 주된 관심사로 삼고 있다는 뜻으로, "중심의", "위주의"라는 뜻이 맞는 말이다. 즉, object-oriented란 "object를 중심으로 하는"이란 뜻이다. 이것 역시 Apple 94에 나와있다: "As the name implies, object-oriented programs are built around objects."
"이름이 암시하는 것처럼, object-oriented 프로그램은 object를 중심에 두고 만들어진 것이다"
참고 Object-Oriented Programming and the Objective-C Language, Apple Computer, Inc., 1994 객체지향을 내 것으로, 김형일, 마이크로소프트웨어, 2002년 1월호
-
류광, 2005-06-11 15:06 :
oriented와 based는 뜻이 다른 단어니다. 이걸 제 개인적인 주장으로 받아들이시면 곤란합니다...
뜻이 다른 단어가 같은 한국어 단어로 번역되는 것은 그 한국어 단어가 두 가지 뜻 모두를 담당할 수 있거나, 아니면 기존 뜻과 함께 새로운 뜻으로도 확장되길 바랄 때에 한한 것입니다. 지금 경우는.... ~기반이 oriented의 뜻까지 포함하도록 확장되길 바라기는 힘들것 같다는 것이 제 생각입니다.
oriented를 지향이라고 번역하는 것에 대해서는 별로 문제될 게 없다고 봅니다. 한자어 사용이나 또는일제에 의한 의한 주입식 번역어 채택 문제를 거론하는 것이 아니라면 말이죠.... "향"이라는 말이 들어간 걸로 충분하지 않을까요.
영어->한국어 번역에서 영어권 사용자의 합의를 무시할 수 있다는 이야기는 상당히 위험합니다. object와 oriented 모두 다른 분야에서도 쓰이는 상황에서는 더욱 그렇습니다. 앞에서도 말했듯이 만일 우리가 이해하고 있는 OO와 object-oriented가 다른 것을 의미한다면, 번역이 아니라 다른 차원의 문제제기가 필요한 것입니다.
마이크로소프트웨어의 글을 인용하셨는데 이 시리즈 자체가 그런 주장에 대한 문제제기입니다. (사실 80년대 후반에도 같은 주장을 하는 글이 마소에 실린 적이 있습니다. ) Apple 94의 그 문구는 그냥 객체 지향적 프로그램은 이름 그대로 객체를 중심에 두고 만들어진 것이다... 라고 번역해도 됩니다. 그 말이 반드시 ~지향과 충돌한다고는 보지 않습니다. (프로그램을 구성하는 모든 요소들이 공간 상에 배치되어 있고 모두가 객체를 "바라보고" 있다고 상상해 보시길....)
~중심이나 ~위주는 저도 상당히 공감합니다만 역시 변별력 차원에서 지향을 유지하는 게 나을 것 같다는 생각입니다.... ~본위 라는 것도 있는데 좀 고답스럽죠?
-
정진혁, 2005-06-16 11:06 :
기술신비주의일지 모른다고 이전 글에서 이야기 하셨는데, 제가 보기엔 그런거 같습니다. 문맥을 무시하고 based와 oriented의 차이점을 논하는것도 우수운 일이구요. 영어권 사용자의 합의를 무시하지 않으려면 원어를 사용하십시오. 그렇지 않고 변별력을 생각한답시고 새로운 신조어들을 만들어 낸다면, UNP의 번역자처럼' 떠돌이' '파수꾼' 같은 황당한 번역이 될것입니다. 언어와 표현은 기존에 익숙한 단어로 알기쉽게 풀이해서 설명하는것이 가장 좋다고 생각하구요. 이 이상의 논란은 무의미한거 같군요. 더이상 이런 논란해봤자. '당신이 STL을 알아?' 꼴 될거 같네요 ㅎ
-
류광, 2005-06-17 02:06 :
정진혁님 마음을 가라앉히고 차분히 다시 생각해 보세요. 지금까지의 논의는 의미가 있었습니다.
based와 oriented의 차이점을 문맥을 무시하고 논하지도 않았고 영어권 사용자의 합의를 존중하는 것과 번역을 포기하는 것은 다른 차원의 문제입니다. 신조어나 UNP 언급은 지금까지의 논의로 볼 때 엉뚱합니다.
어떤 분인지 또 왜 그렇게 감정이 격해졌는지 모르겠는데 말투가 거친 부분은 제가 이해하도록 하겠습니다.
그리고 중요한 점을 제기하셨는데, 기존의 익숙한 단어로 풀이하는 것으로 충분하지 않은 경우가 많다는 게 번역의 어려움입니다. 신조어가 필요할 수도 있고 또 기존 단어의 "확장"이 필요할 때도 있습니다. 지향은 확장이 필요한 경우일 수도 있는데 역시 좀 더 생각을 해봐야겠습니다.
-
정진혁, 2005-06-19 23:06 :
기존의 익숙한 단어로 풀이하는게 충분하지 않은 경우가 많다는게 번역의 어려움이지요. 그리고, 기존의 익숙한 단어로 풀이한다는 것 자체도 어려운거라고 생각하구요. 번역가들은 변별력을 유지하는가 아니하는가, 영어권 사용자의 합의를 무시하는가 무시하지 않는가가 좋은 번역, 나쁜 번역을 나누는 기준일지 모르지만, 독자의 입장으로 볼때는 그 표현이 합당하고 이해하기 쉬운가, 그렇지 않은가가 좋은 번역, 나쁜 번역을 나누는 기준이 될것이구요. 그리고 그 기준은 번역가가 아무리 잘났어도 독자의 기준에 맞추어야 하는게 맞는거라구 생각하구요. 여태껏 전산쪽 번역이 다른 분야보다 번역이 욕먹는 경우가 많은거 같구요. 여태껏 많은 번역가 중에서 알기쉽게 풀이해서 나쁜 번역가로 오명을 쓰는 경우보다는, 신조어를 만들어 내서 독자가 읽기 어려운 번역이 더 많았네요. 그리고, 알아야 알기쉽게 번역할수 있는거구요. 알지 못하면 알기 쉽게 번역하기보다는, 신조어라고 인식하는 경우가 많지요. 개인적으로 '부호화'라는 번역이 그런 번역이 아닌가 생각합니다. 여러 학사 석사 논문에서 많이 쓰이는 '부호화' 라는 표현은 encoding을 표현한 건데, 저는 개인적으로 이런 번역에 대해 동의하지 않습니다. 특히 전자와 컴퓨터 과학에서 같이 쓰이는 encoding이라는 용어는 '부호화'라고 해버리면 그 단어를 접했을때 왠지 뜻이 와닿지 않거든요. 이런 번역은 많습니다. 특히, 대학에서 쓰이는 표현들중에서요. 그리고, 그런 번역가들을 제일 경멸하구요. 그래서 언행이 거칠어진 점 이해 바랍니다. 그리고, 이 논의는 '객체지향'에 대한 논의였는데, '번역'에 대한 논의는 아니라고 생각합니다. 물론 류광님이 말씀하시고자 하는 바는 알겠지만.
-
정진혁, 2005-06-20 00:06 :
워낙 번역가가 오역하는 경우가 많은지라, 류광님이 번역을 잘하시는지 못하시는지 별 관심도 없었는데, 이번 논의로 흥미가 생겨서 하나 찍어서 번역을 제대로 하셨는가 봤는데, 좀 실망스럽네요. code reading이란 책의 번역 미리보기를 보니까, 몇 페이지 안 지나서 오역이 눈에 뜨이네요. '임베디드 또는 공간이 제한된 응용 프로그램들 (플로피 디스크 한 장으로 배포되는 여러 GNU/Linux 또는 FreeBSD 배포판 등)의 경우, 저장 공간 몇 바이트를 저장하기 위해서 코드가 아주 길어지기도 한다.' 여기서 원문이 어떤지는 잘 모르겠지만, 문맥상으로 볼때, '저장 공간 몇 바이트를 저장하기 위해서' 가 아니라 '저장 공간 몇 바이트를 아끼기 위해서' 가 맞는거 같네요. 변별력이 중요하지요. ㅎ
-
류광, 2005-06-20 01:06 :
오역 보고 감사합니다. 조만간 정오표에 추가하겠습니다...
그러나 지금 논의와 직접 관련이 있는 것인지요? 예를 들어서.. 반대로 제 번역서에 오역을 하나도 발견하지 못했다고 해도 위의 논의에 나온 제 이야기를 그대로 수긍하시지는 않을 거라고 믿습니다...
encoding도 흥미로운 예인데요. code가 부호가 되고 en-이 ~화가 된 것이라고 하겠습니다. 그런데 부호화보다 인코딩이 더 와닿는다면, 정진혁님이 이미 인코딩 자체 또는 code라는 단어에 익숙해있기 때문이 아닐까 합니다. 이 문제는 한자냐 영어냐의 문제로 갈 수도 있는데 그 자체로 중요한 주제이므로 다음 기회에....
그리고 신조어는 필요합니다. 효율적인 의사소통을 위해서는 개념이나 사물에 간결하고 함축적인 이름을 붙여야 하는 것은 동의하시겠구요. 만일 적당한 이름이 없으면 새로 만들 수밖에 없죠. 그리고 신조어를 만드는 것과 알기 쉽게 풀이하는 것이 배치되지도 않습니다. 신조어를 만들고 알기 쉽게 한 번 풀이해 주면 그만입니다. 물론 이것이 신조어냐 아니냐, 또 굳이 설명이 필요하냐 아니냐는 번역가에 따라, 책에 따라, 또 대상 독자에 따라 다를 수 있습니다. 이 문제와 독자가 이해하기 쉬운 책이라는 문제에 대해서는 http://occamsrazr.net/tt/index.php?pl=18 를 참고하세요...
갑자기 번역가에 대한 불만으로 이야기가 흘렀는데^^ 크게 봐서 개발자의 언어생활 문제로 봤으면 좋겠습니다....
마지막으로 이 논의는 OO의 번역어에 대한 논의로 시작한 것임을 알려드립니다. 제가 말하고자 하는 바를 알겠다고 하시니 저도 그만 만족하겠습니다.
-
정진혁, 2005-06-22 05:06 :
사족이지만, 영어를 한글로 바꾸는 과정에서 영어권 사용자간의 합의를 무시하는 것이 위험한 생각이지만, 번역가가 주관적으로 신조어를 만드는 것도 위험한 생각 아닐까요? 우리가 자주 쓰는 단어인 오리엔테이션을 보더라도, 어떤 출발점, 기준점, 시작점을 의미하죠. 하지만 '지향' 이라는 단어는 출발점 보다는 '목적지'를 의미하는 단어이죠. 출발점이 목적지로 바뀌었는데 어떻게 잘 이해가 될런지 통 알수가 없네요. 오브젝트가 목적지라면 오브젝트를 만드는데 주안점을 두어야 하는데 왜 오브젝트지향 프로그램은 오브젝트를 가지고 '프로그램'을 만들까요? 프로그램 가지고 '오브젝트'를 만들어야 정상 아닌가요? 왜 영한사전에 oriented를 찾아보면 '지향' 이라고는 나와있는데, 왜 한영사전에 '지향'으로 찾아보면 'oriented'가 안 나오고 'intention; aim; inclination' 같은 단어만 나오는걸까요? 지향(志向)[명사][하다형 타동사] 1.생각이나 마음이 어떤 목적을 향함. 국어사전을 보니 목적지란 뜻이 맞네여. 출발점을 목적지로 바꾼 류광님이 영어권 사용자의 합의를 무시한건가요? 아니면 출발점을 '기반'으로 바꾼 제가 영어권 사용자의 합의를 무시한건가요?
-
류광, 2005-06-22 17:06 :
파고들어가니 재미있는 이야기가 많이 나오네요~ :)
혹시 "일단 방향은 제대로 잡았네요" 같은 표현 쓰지 않으시나요? 흔히 말하는 (신입생, 신규 사원) 오리엔테이션의 원래 의미는 신참들에게 적절한 방향과 지침을 잡아주는 행사라고 알고 있습니다.
오리엔테이션이라고 하니 왜 지도와 나침반을 가지고 목표점을 찾아가는 레저 활동도 생각이 나고.. 거기서 '지침'이라는 단어도 떠오르는군요. 어쨌거나 오브젝트가 목적지라면~ 으로 시작하는 질문은 정말 의미가 큰 것 같습니다....(그나저나 목적지의 '목적'도 object이네요..^^) 앞의 여러 제 글들로 짐작하시겠지만 이 부분이 제가 확실하게 정리가 안 되고 있는 부분입니다. 지금 상황에서는
"프로그래밍/설계 도중 만나는 무수한 문제들을 해결할 때 방향이 되고 지침이 되는 것이 바로 객체이다...."
쪽에 마음이 제일 많이 끌리고 있습니다. 물론 이는 object-oriented가 실제로 우리가 하고 있는 OO를 제대로 반영하는 용어라는 가정 하에서 최대한 그에 맞게 해석하려고 하다 보니 나온 이야기이고.... 만일 우리가 하는 OO가 사실은 객체들을 "기반"으로 깔고 위로 쌓아올리는 방식이라면 object-oriented가 아니라 object-based라고 불러야 하겠죠(실제로 VB, JavaScript 등의 언어들은 obejct-based language라고도 합니다).
-
류광, 2005-06-22 17:06 :
아, 노파심에서 잠깐 말씀드리면... VB, JavaScript 등을 object-based라고 하는 것에는 (꼭 객체를 기반으로 쌓아 올린다는 뜻보다는) OO 비슷한 표기가 가능하긴 하지만 OO의 모든 특징들을 지원하지는 않는다는 뜻이 포함된 경우도 많습니다....
-
트랙백이 자꾸 실패해서 댓글로 남깁니다. 트랙백 하려던 제 글은, 객체는 지향의 대상인가(http://crosscutter.info/4) 입니다. 류광님이 번역하신 책들은 언제나 번역품질은 안심하고 사보고 있습니다. 좋은 번역 늘 감사합니다.
-
안녕하세요~ 고맙습니다. 글 잘 읽었습니다. 아무래도 세 번째 글을 써야 할 것 같네요~ 조만간 정리해 보겠습니다.
-
이지현, 2008-01-31 02:01 :
객체/개체 지향/기반 으로 이분화 된 해석이 논란이 되었던 듯 해서 썰을 풀어 볼까 합니다.
개와 객을 구분해 본다면, 개는 공간분할의 의미, 객은 차별화를 의미합니다.
엄밀히 말해 객체와 개체는 포함관계를 가질 수 없는 독립적인 개념인거죠. 객체는 특유의 규칙(rule) 영역이 분리된 modularity를 추구하는 '개념' 의미이고, 개체는 규칙 영역의 분리가 아닌 공간 영역의 구분을 갖는 의미로, 객체든 무엇이든 어떠한 규칙에 따라 '실제 구성', '실현된 것'을 의미하죠. '규칙성' 을 부모로 갖는 '개념' 중에 객체가 있는 것이고, '규칙성'도 '객체'도 선택적인 부모로 가질 수 있는게 '개체' 라는 것입니다. 어느쪽도 한쪽에 포함되지는 않습니다.
구체적으로 이야기 해 본다면, 같은 DNA를 갖고 복제된 두 마리의 양이 단지 공간 구분 되는 형태를 의미할 때 개체이고. 객체는 서로 다른 DNA와 같이 개성이 있는 대상을 가리킵니다.
따라서 어떠한 작업을 준비하기 위해 메모리에 생성된 같은 형태와 내용의 복수 덩어리를 객체 라고 표현하는 것은 무리가 있습니다.
[개체 기반]의 해석은 Object Oriented가 갖는 취지가 재사용에 국한 되지 않기 때문에 적확하지 않은 경우라 하겠습니다.
Object Oriented란, 출발을 '범용 규칙'에 둘 것이냐 '객체 규칙'에 초점을 둘 것이냐의 문제로, 이전의 프로그래밍 개념들이 '범용 규칙'에서 출발했던 것을 '객체 규칙'으로 한단계 움직여 나간 것을 의미합니다. 내 조상이 크로마뇽이냐 중시조인 모모씨냐로 이야기 하는 것 처럼 말이죠. 아키텍쳐자체가 하나의 커다란 객체군이 될 수 있고, 과거 단순룰에서 체계를 갖춘 복합룰을 모범으로 삼기에 '지향'이란 표현이 가능하고, 아키텍쳐의 구현이 객체에서 출발하기에 기반이 될 수 있습니다.
정리하면, 객체는 Advanced rule을 함의하고 Designtime 공간 상에서 구현된다면 개체는 Reused realization을 함의하며 Runtime 공간 상에서 구현된다고 하겠습니다. 개체화는 과거에도 사용되어 왔고, 객체화는 OO개념 이후로 구체화 된 것이죠.
즉. Object Oriented 란, 객체 지향/객체 기반 두 가지 다로 해석될 수 있는 용어이되, 자의적인 해석을 내려 본다면 객체 근간(뿌리와 줄기 : 합치면 방향성을 가지고, 그로 인해 지향과 기반을 함의한) 으로 해석을 내리는게 적확하다는 의견입니다. 개체 지향/개체 기반으로의 해석은 어설프다는 것입니다.
-
해석이 아니라 번역에 대한 논의를 하려고 했던 것인데 좀 와전된 것 같습니다. 세 번째 글도 읽어 보시길~(본문 끝에 링크가 있습니다).
객체냐 개체냐의 관계에 대해서 개인적인 생각입니다. 객체는 개념상에서의 어떤 것을, 개체는 실체화된 어떤 것을 나타낸다고 생각합니다. 객체는 나무, 집, 지붕, 부엌 등이 될 수 있겠고, 개체는 우리 집, 집 앞에 심어져 있는 그 사과나무, 저기 있는 구멍 뚤린 지붕 등등으로 말입니다. 즉, 인스턴스(instance)의 개념인 것이죠. 실험을 할때 개체들을 갖고 실험을 하면서 각 개체들의 특성을 파악하죠. 같은 종의 벌이라고 하더라도 돌연변이 개체가 있을 수도 있고 말이죠. 위 구분에 동의 하신다면 OO에서 Object를 개체가 아닌 객체로 번역해야 한다는 부분에 동의하실 것이라 생각합니다. Design 및 Analysis는 개념적으로 작업하는 단계인 이상 실제 instance에 무슨 값이 들어갈까 보다는 어떤 객체들로 구분을 해둘까 하는 것이 맞다고 생각 합니다.
Orient에 있어서는...물론 한국어족의 정서상 '지향'보다 '중심'이 익숙하다고 하면 어쩔 수 없는 부분입니다만... '지향'과 '중심'이라는 두 단어의 사전적 의미만 놓고 따져 본다면 OO에서 '중심'에 있는 것은 Architecture이지 Object가 아니라고 생각합니다. "object로 분류하는 방식을 지향한다.'라는 의미에서 '지향'이라는 표현이 적당하다고 생각합니다. OO에서 object로 나누는 것이 시작이요 끝인 것이 아니며 많은 개발 방법론에서 예기 하듯이 object를 먼저 나누는 것이 아니라 시스템 구조를 먼저 파악한 다음에 실제 구현에 있어서 structured방식으로 라이브러리들이나 함수관계등을 구조화 해서 시스템을 구축 하는 것 보다는 OO방식으로 객체들을 나눠 두는 것이 '개발, 수정, 관리'등에서 효과적이겠다라고 이해하고 있습니다.
물론 OO에서 Object들도 structure를 갖습니다만 앞에서 예기한 structured방식이란 과거에 사용했던 library에 함수들 및 기타 등등을 넣어서 개발했던 방식을 예기한 것입니다. 이 structured방식이 library를 structure에 맞춰 계획한 후에 각 library들을 나눠서 개발했던 형태여서 그런것이 아닌가 싶습니다.