본문 바로가기

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

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

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


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


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



6) 추상화

우리는 앞의 객체지향 사고의 과정 2단계에서 우리는 우리가 인식한 많은 데이터 중에 의미 있는 데이터만 가져오고 나머지는 버리고, 우리는 의미 있는 데이터들을 모아 더 큰 단위의 의미 있는 정보로 만들 수 있다.고 했다. 이 사고력이 추상화라고 했다.

 

※ 우리는 인식한 많은 데이터 중에 의미 있는 데이터만 가져오고 나머지는 버린다.

 

추상화는 문제 해결에 필요한 부분만 취하고 불필요한 부분은 제거하여 대상을 간결하고 이해하기 쉽게 만드는 사고 과정이다. 나는 내가 관찰하고 생각한 것 중에서 가장 중요한 한 가지 요소를 제외하고는 모두 다 버렸다. 라고 어느 과학자가 얘기했다. 과학자, 화가, 시인들은 모두, 복잡한 체계에서 하나만 남겨두고 모든 변수를 제거하여 핵심적 의미를 발견하려고 애쓴다. 진정한 의미에서 추상화란 현실에서 출발하되, 불필요한 부분을 도려내가면서 사물의 중대하고 놀라운 본질을 드러나게 하는 과정이다. 추상화의 본질은 한 가지 특징만 잡아내는 것이다. 추상화는 곧 단순화이다.

 

※ 우리는 의미 있는 데이터들을 모아 더 큰 단위의 의미 있는 정보로 만들 수 있다.

 

예를 들어 분석은 큰 문제를 작은 문제로 쪼개가는 방향성을 가진다. 추상화는 반대로 여러 문제들을 하나로 통합하는 방향성을 가진다. 둘은 방법은 다르나 복잡한 것을 단순하게 한다는 같은 목적을 가진다. 의미 있는 데이터들을 모아 더 큰 단위의 의미 있는 정보로 만드는 단순화 작업을 하면, 어떻게 가치 있는 결과물을 만들어 낼지 윤곽이 잘 드러난다.

 

우리는 인식한 많은 데이터 중에 의미 있는 데이터만 가져오고 나머지는 버린다.

우리는 의미 있는 데이터들을 모아 더 큰 단위의 의미 있는 정보로 만들 수 있다.

여기서 중요한 것은, 두 개의 사고가 따로 일어나는 것이 아니다. 둘이 마치 자전거 앞바퀴와 뒷바퀴처럼 동시에 상호 작용 한다. 추상화는 최대한 사물과 현상을 단순화 하는 것이다. 그래서 단순화를 하다보면 여러가지 특징들이 하나의 특징으로 통합되기도 한다. 그래서 의미 있는 데이터만 가려내려는 노력과 동시에 이 데이터들을 연결해서 더 큰 단위의 의미 있는 정보를 창출하는 시도를 같이할 수 있다.

관찰에서 사물보다는 현상을 기준으로 관찰해야 한다고 이야기 했다. 이유는, (=객체 하나 하나) 보다 선(객체 간의 협력관계)으로 접근 한다.는 접근법 때문이다. 이 점과 선을 추상화에도 대입할 수 있다.

 

점의 추상화 = 우리는 인식한 많은 데이터 중에 의미 있는 데이터만 가져오고 나머지는 버린다.

선의 추상화 = 우리는 의미 있는 데이터들을 모아 더 큰 단위의 의미 있는 정보로 만들 수 있다.

 

점이란 하나의 독립된 대상을 의미한다. 추상화를 통해 대상의 관찰 결과 중에 특히 의미 있는 특징(데이터)을 뽑아내는 단순화 작업은 점의 추상화라고 할 수 있다. 선이란 여러 데이터들이 같이 협력하기 위해 연결된 상태와 같다. 이 연결된 상태를 더 간결하고 견고하게 다시 정의하고 연결하는 일은 선의 추상화라고 할 수 있다. , 바람직한 추상화 작업은 드러나지 않은 특징()과 관계()를 단순화를 통해 드러내는 일이다. 참고로, 추상화 사고를 구체적으로 적용 할 수 있는 3가지 도구가 있다. 이 도구들은 다음 장에서 구체적으로 다룬다.


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