본문 바로가기

길게 쓰기/객체지향의 탄생 (공식)

객체지향 생각의 도구4-한두깨 객체지향 프로그래밍 미리보기

한번 읽고 두번 깨닫는 객체지향 프로그래밍 미리보기


책이 2019년 1월말에 출간 예정인데 블로그 독자들에게 미리보기를 제공합니다.


보시고 댓글과 질문 많이 남겨주시면 감사합니다. +.+




5) 관찰 : 사물이나 현상을 주의하여 자세히 살펴보는 것.

 

모든 지식은 관찰에서부터 시작된다. 우리는 세계를 정밀하게 관찰할 수 있어야 한다. 그래야만 행동의 패턴들을 구분해내고, 패턴들로부터 원리들을 추출해내고, 사물들이 가진 특징에서 유사성을 이끌어내고, 행위모형을 창출해낼수 있으며, 효과적으로 혁신할 수 있다. 관찰은 보이는 것을 표현하는게 아니라 어떤 것을 보이게 하는 것이다. 발견은 모든 사람들이 보는 것을 보고 아무도 생각하지 않는 것을 생각하는 것으로 이루어져 있다. 진정한 창조자는 가장 평범하고 비루한 것들에서도 주목할만한 가치를 찾아낸다. 세속적인 것의 장엄함, 모든 사물에 깃들어 있는 매우 놀랍고도 의미심장한 아름다움을 감지한다.

 

– 생각의 탄생, 관찰 편

 

위의 관찰에 대한 발췌문구를 객체지향에 대입해 다시 풀어보자.

 

모든 객체지향 소프트웨어의 지식은 관찰에서부터 시작된다. 우리는 소프트웨어로 만들 사물을 정밀하게 관찰할 수 있어야 한다. 그래야만 요구사항과 관련된 객체들을 구분해내고, 잘 관찰된 객체들로부터 원하는 결과 값을 얻을 수 있다. 관찰은 보이는 요구사항을 표현하는 게 아니라 눈에 덜 띄는 요구사항을 구체적으로 보이게 하는 것이다. 객체의 발견은 모든 사람들이 보는 것을 보고 아무도 생각하지 않는 것을 생각하는 것으로 이루어져 있다. 진정한 개발자는 가장 평범하고 비루한 것들에서도 주목할 만한 객체와 객체간의 관계를 찾아낸다. 세속적인 것의 장엄함, 소프트웨어로 구현할 모든 현상에 깃들어 있는 매우 놀랍고도 의미심장한 아름다움을 감지하여 코드로 구현한다.

– 한번 읽고 두번 깨닫는 객체지향 프로그래밍(김동헌)

 

사람이 현실 속 사물을 관찰하듯, 객체지향적인 개발을 할 때, 개발자는 객체화할 대상을 관찰한다. 우리는 관찰이 사물에 대한 지식을 얻는데 중요한 사고력임을 알 것 같긴 한데, 구체적으로 어떤 방법으로 관찰해야 하지? 라고 생각할 수 있다. 그냥 유심히 뚫어지게 사물을 보다 보면 우리가 원하는 데이터를 수집할 수 있을까? 라고 궁금할 수 있다.

먼저, 수동적인 보기가 아닌 적극적인 관찰이 되어야 한다. 예를 들어 음악은 우리에게 그냥 듣는 것주의 깊게 듣는 것을 구분하도록 한다.고 어느 작곡가가 얘기 했다. 마치 화가가 세상의 사물을 그림으로 그리듯이 객체지향에서 세상의 모든 것을 객체로 생성하려면 사물과 현상을 적극적으로 관찰해야 한다. 나의 모든 감각정보를 활용하여 사물에 깃들여 있는 객체의 속성과 메소드와 객체간의 관계를 감지해야 한다.

이때 우리는 사물 하나하나 보다는 사물들끼리 상호 작용 하여 일어나는 현상을 더 유심히 관찰해야 한다. 그래서 아래의 관점으로 관찰 한다.

 

※ 점(=객체 하나하나) 보다 선(=객체 간의 협력관계)으로 접근한다.

 

그래서 적극적인 관찰을 통해 객체지향 개발을 할 때는 다음과 같이 한다.

 

관찰로 사물과 현상(=요구사항)에 관련된 데이터를 인식한다. 이때 점(= 객체 하나하나) 보다 선(=객체간의 협력(관계))으로 접근 한다. 이 데이터는 사물과 현상의 본질을 꿰뚫는 단서를 제공해야 한다. () 이 사물의 관찰 과정에서 드러나는 데이터들은, 사물의 중요한 특징을 누락하지 않아야 한다. 그러나 이 특징들이 지나치게 많아 과잉정보가 되어, 사물의 판단과 해석에 지장을 주어서는 안 된다. ()


 Yes24: http://bitly.kr/DAg9t
 알라딘: http://bitly.kr/aSMu2
 교보문고: http://bitly.kr/utfU7
 인터파크: http://bitly.kr/ffJjy