IT 이야기2009. 2. 22. 03:43

추상화는 사람이 세상을 인지하는 기본적인 기술이고 모든 소프트웨어 개발의 필수적인 첫 단계이다.
사실 대부분의 사람에게 객체지향의 추상화보다는 추상회화가 더 익숙하다. 미술의 추상화는 대상을 극도로 간략화하고 순수감성을 절대시하는 회화 양식으로 자연형태 그대로를 묘사대상으로 하지 않고 기하학적인 색채평면 형태만을 묘사한다. 그러나 전산에서의 추상화는 조금 의미가 다르다.


추상화는 4가지 특징이 있는데

첫째 추상화를 통한 간략화

이러한 간략화의 대표적인 예가 지도이다. 지도는 주요 도로, 많이 알려진 건물, 강, 지하철 역 등 실제의 세계를 고도로 추상화하여 우리가 길을 쉽게 찾을 수 있도록 도와준다. 만약 지도에 모든 건물과 나무, 도로 블럭 하나 하나까지 모두 표시한다면 오히려 정보를 얻고 원하는 지역을 찾는 데 방해가 되기만 할 뿐이다.


둘째 추상화를 통한 강조(관점)

그러나 단순히 간략화가 추상화는 아니다. 앞의 지리적 지도는 사람이 위치를 쉽게 찾을 수 있게 되어 있는 추상화의 하나의 예이며 기상 지도, 인구 밀도 지도 등 실세계의 다른 특징들을 실제 사용자가 어떻게 사용하길 원하느냐의 의도와 문제를 보는 관점에 맞게 추상화시킬 수 있다. 강조란 관점을 가진다는 전제조건이 있다. 그리고 추상화 혹은 추상화시킨다는 것은 어느 특정 관점에서의~ 라는 말이 생략되어 있다고 생각해도 좋다. 이런 강조를 통해 복잡한 자료, 모듈, 시스템 등으로부터 핵심적인 부분을 간추려 볼 수 있게 된다.



셋째 추상화를 통한 일반화

수학은 순수한 일반화를 지향하는 학문이다. 그리고 우리가 하는 소프트웨어는 공학이긴 하지만 수학과 닮았다. 높은 산위에서 쳐다보면 개인 개인을 그 사람의 눈이 큰지 코가 오똑한지 등의 차이점이 아닌 사람이 가지는 기본적인 공통점을 통해 인식할 수 있게 된다. 추상화와 일반화는 다르지만 이렇게 추상화는 일반화를 사용한다.



네째 조직과 분리를 통한 추상 계층화

Brian Buchanan은『Theory of library classification = 문헌분류이론』(정필모, 오동근 공역(1998))의 한국어판 서문에서“아마도 패턴과 순서에 대한 관심은 우리 인간들이 타고 나는 모양이다. 이러한 의미에서 인간을 분류하는 동물(classifying animal)이라고 정의할 수 있을 것이다. 이것은 카오스(혼돈)에 대한 두려움을 바탕으로 하고 있고, 또한 통제할 수 없는 환경을 통제함으로서 불안정한 세계에서 안전하다는 망상을 갖고자 하는 욕망에서 생겨나는 듯하다.” 라고 말한바 있다.

우리는 이러한 추상화를 통해 공통점과 차이점을 찾아내고 차이점을 다시 더 큰 공통점으로 묶는 과정을 통해 사물을 트리 형태로 계층화 시킨다.


'IT 이야기' 카테고리의 다른 글

멘탈 ?  (0) 2009.03.01
소프트웨어의 변증법  (0) 2009.02.23
십계 - 변화의 속도  (0) 2009.02.04
금붕어 이야기  (0) 2009.02.04
형식적 민주주의와 형식적 방법론  (0) 2009.02.04
Posted by bleujin