본문 바로가기

Homo Design

첫단어 (First Word)


인간이란 언어를 통해 의사소통을 하는 능력을 가지고 있으며, 이는 인간의 문화를 극적으로 발전시키는 원동력이기도 하다. 이러한 언어는 말, 문자, 손짓, 행동 모두를 의미하게 된다.
 
헬렌 켈러의 이야기를 보면 헬렌 켈러가 어떻게 처음에 말을 시작하는지에 대해서 자세하게 묘사되어 있다.
헬렌 켈러는 Miracle Worker라는 제목으로 영화와 TV 드라마로 제작되었으며, 여기에는 앤 설리반 교사의 헌신적인 노력이 잘 나타나 있다.

- 1962년에 나온 영화
- 관련 사이트 : http://www.imdb.com/title/tt0056241/

 

 

 

 

 

 


- 2000년 TV로 제작된 드라마
- 관련 사이트 : http://www.imdb.com/title/tt0246786/














위의 드라마에서 앤 설리반 교사가 헬렌 켈러에게 말과 그 의미를 가르치기 위해서 많은 노력을 하는 장면들이 나타난다. 그 중에 하나는 식사를 하기 전에 반드시 그 음식 이름을 어떻게 든 표현해야 하고, 그래야지만 밥을 주는 모습도 나타난다. 정말이지 무엇을 사람에게 인식시킨다는 과정이 이리도 힘들다는 것은, 특히나 아무것도 보고 듣지도 말하지도 못하는 어린 아이에게 알려주는 과정이란 길고 험난하다고까지 느껴진다.

늘상 우리는 인간이 태어나면서 자연적으로 성장해가며 그가 배워가는 과정을 당연한 것처럼 여기지만, 헬렌 켈러와 같은 어린 아이가 배워가는 과정은 흡사 우리가 패러다임 시프트를 옮겨가는 과정과 유사하게 느껴졌다. 즉, 기존 전통적인 절차지향(procedural)적인 사고 방식에서 객체지향 (Object-Oriented)로의 전향은 위와 같은 모습일게다.

드라마에서 다음과 같은 극적인 장면이 나온다. 설리반 교사의 많은 노력에도 불구하고 그다지 진전이 없던 어느날 식사 시간, 헬렌 켈러는 '물' 이라는 단어를 처음 사용하게 된다. 이에 흥분한 설리반 교사는 헬렌 켈러를 이끌고 우물가로 데리고 가서, 펌프질을 하며 쏟아지는 물에 헬렌 켈러의 손을 대며 물을 느끼게 해준다.

설리반 교사가 흥분한 이유는 이 단어가 헬렌 켈러에게는 '첫단어(first word)' 였기 때문이다. 설리반 교사는 컵에 담겨진 물과 펌프를 통해 흘러나오는 물이 헬렌 켈러에게 동일한 개념의 물이라는 것을 설명하고자 함이었다. 이렇듯 인간에게 있어서 첫단어(first word)는 상당히 중요한 의미가 담겨져 있다. 많이 인용되고 있는 김춘수님의 '꽃'이라는 시만 보아도 이 첫단어는 사물을 인식하는 주체(object)에게는 상당한 의미가 있는 것이다.

많은 개발자들이 객체지향으로 전환을 했고, 또 새로이 객체지향언어를 통해 이러한 개념을 보고 배우고 듣고자 한다. 이미 많이 성숙한 개념이고 많은 부분이 기술로 정착화되었지만, 객체지향이라는 개념을 실제로 적용하는데는 상당한 노력이 들 것이다. 인간이 가지고 있는 특징 중에 하나는 무엇이든 자기 합리화라는 차원에서 외부 환경을 내재화시키는 것이다. 이는 극한의 상황이나 환경을 자유자재로 사용하고자 하는 상황에서 분명 큰 장점으로 발휘하게 된다. 하지만, 패러다임 전환이나, 잘못된 혹은 오해하고 있는 개념을 다른 개념으로 전환하고자 하는 노력에 있어서 큰 장애물이 아닐 수 없다. 그렇기 때문에 이 첫단어(first word)라는 개념은 이러한 상태에서 상당한 중요한 의미를 가진다.

객체지향이라는 개념을 잘 모르거나 잘못 이해하고 있는 개발자가 이를 이해하기 위해서 다양한 시도를 하겠지만, 첫단어와 같은 느낌이나 깨달음을 얻기 전까지는 객체지향이라는 개념은 이 개발자에게 그냥 이론이나 먼나라 이야기로만 여겨질 수 있다. 커뮤니케이션을 수행하는 수단인 언어가 말, 글, 손짓, 행동과 같이 다양하게 나타날 수 있는 것처럼 객체지향 개념은 프로그래밍 언어, 설계, 분석, 테스트 등과 같이 많은 부분에서 적용가능한 개념이다. 즉, 반드시 객체지향 프로그래밍 언어로만 작성된 시스템이 객체지향 시스템이라고 할 수 없으며, 어셈블리 언어로 만들었다고 하더라도 객체지향에 대한 개념이 들어가면 이를 객체지향 시스템이라고 할 수 있다. 많은 시스템들이 객체지향 언어로 개발되고 있지만, 객체지향 개념이 컴포넌트/서비스를 이루고 있는 기반이 된다고 했을때 과연 객체지향 개념에서 적용되는 원리들이 잘 적용되어서 개발되는지에 대한 부분은 의구심을 가질 수 밖에 없으며, 이를 개발하는 개발자가 정확한 개념을 가지고 있는지가 중요한 요소이다.

컴포넌트를 만들든 서비스를 만들든 그 누구든지 반드시 객체지향 개념을 가지고 있어야 하며, 이는 반드시 첫단어를 말하는 경험을 가지고 있어야 한다. 이에 대해서 설명하지 못하는 개발자는 객체지향 개념에 대해서 막연한 상태의 개념을 가지고 있다고 보아도 무방할 것이다.

반응형