본문 바로가기

기타/객체지향의 탄생(2013)

객체지향의탄생-속성

유독 주변을 잘 관찰하고 기억하는 친구들이 있다. 친구들은 한번 갔던 길이나 거리의 간판을 보고 바로 기억하여, 필요할때 편리하게 써먹곤 한다. 나는 친구들이 부러웠다. 나는 10번을 가보기전에는 갔던 길이나 거리의 간판을 봐도 기억하지 못했다. 친구들은 타고난 관찰자 들이다.

 

타고난 관찰자들을 책에서도 드라마에서도 보곤한다. 자전거 여행이란 수필 책을 읽으면 보이는 자연과 음식과 사람에 대해 어떻게 이렇게 새밀하게 관찰하고 묘사했는지 탄성을 지를때가 있다. 보리밭, 대나무숲에 대해 몇페이지에 걸쳐 관찰하고 묘사하기도 한다. 쑥된장국의 냄새를 "먹이 피라미드 밑바닥의 아린 냄새"라고 묘사하는 부분을 읽을때면, 이 책의 저자가 세상을 보는 관찰력과 통찰력이 경지에 이르렀구나 하며 감탄하곤 한다.

 

내가 즐겨보는 드라마는 CSI 수사물이다. CSI 라스배가스, 마이애미, 뉴욕 3편의 드라마를 시즌 별로 계속 이어서 보느라고 이 책쓰기도 미루고 드라마에 빠지곤 했다. CSI에는 선진국 미국의 발달된 문명과 그들의 쾌락, 범죄를 다뤘고, 범죄를 과학적으로 해결하는 과정을 담았다. CSI요원들은 개의 후각과 같은 관찰력과 섬세함을 갖고 있다. 나 같으면 발견못할 벼룩보다 작은 증거물을 채취하여 범인을 잡곤한다. CSI 요원들이야말로 위대한 관찰자라고 생각하곤 했다.

 

사물의 속성을 찾는 일은, 남들같으면 못찾거나 찾았어도 무시할 실날 같은 증거를 찾아내는 CSI요원이나, 쑥된장국 같이 무심코 먹는 음식에도 그 특유의 속성을 발견하여 기발하게 비유하는 수필가와 같아야 한다.

 

우리 개발자가 어느 객체를 설계하기로 했다면 일단 그 객체가 어떤 특징을 갖고 있는지 관찰하여 정의해야 한다. 그 특징들이 속성이며 속성은 객체 고유의 특징을 정의 할 수 있는 단어로 드러낸 것이다.

 

예를 들어 자동차에는 '움직일때의 빠르기'라는 속성을 속에 품고 있다. 만약 자동차를 객체로 모델링 한다면 기본적으로 '움직일때의 빠르기'라는 속성이 스며들어 있기 때문에, 이 속성을 정의 할 수 있는 단어로 밖으로 드러내야 할 것이다. '움직일때의 빠르기'는 '속도' 라는 단어로 정의 된다. 그래서 자동차 객체 모델링을 통해 '속도'라는 속성이 문서나 프로그램을 통해 드러나야 한다.

 

객체의 속성을 찾는 일은 객체 안에 숨겨진 고유 특징을 찾아내는 일이기 때문에, 그 객체에 대해 잘 알고 있어야 한다. 그리고 그 객체의 중요하고 핵심적인 특징만 밖으로 추출할 수 있어야 한다.

 

객체의 중요하고 핵심적인 특징만 추출하는 일은 '관찰'과 '추상화'의 과정과 동일하다. 특히 추상화의 정의와 속성을 추출하는 정의가 동일하다. 추상화도 어느 사물의 중요하고 핵심적인 특징만 추출하는 과정이기 때문이다. 객체를 정의하고 속성을 정의하고 메소드를 정의하고 객체간의 관계를 정의할 때 모두 관찰과 추상화 과정이 요구된다.

 

그래서 속성을 찾아내는 일은 객체를 잘 '관찰' 하고 객체의 주요 특징을 밖으로 '추상화' 하는 사고 능력이 요구된다.

 

 

덧 ) 이 객체지향의 탄생 원고는 제가 책으로 내려다가 일단 잘 안되었는데요. 이유는 비문이 많다. 단락내 주제가 중복된다. 어떤 상황 설명을 과장한다.등 입니다. 그래도 원고를 일단 블로그에 몽땅 풀어보고 언젠가 제대로 교정해서 다시 도전할 생각입니다. 비문이 많다. 단락내 주제가 중복된다. 어떤 상황 설명을 과장한다. 이점을 감안해서 읽고 객체지향을 이해하는데 도움이 되셨으면 좋겠습니다. 의견도 주셨으면 좋겠습니다. 원고 조금만 교정하면 괜찮을것 같은 출판사 관계자분의 피드백도 환영합니다. 특별한 일 없으면 매주 월수 발행 예정입니다.

 

'기타 > 객체지향의 탄생(2013)' 카테고리의 다른 글

객체지향의탄생-생성자  (0) 2015.03.09
객체지향의 탄생-메소드  (0) 2015.03.04
객체지향의 탄생-클래스  (0) 2015.02.25
객체지향의 탄생-객체  (8) 2015.02.23
객체지향의 탄생-진입장벽  (0) 2015.02.16