프로그래밍을 공부하다 보면 평소에는사용하지 않던 말들이 튀어나오거나, 평소에 사용하던 단어이지만 문맥상 늘 사용하던 그 뜻이 아닌 것 같은 경우가 종종 있습니다. 이렇게 프로그래밍을 공부하는 학생들을 괴롭히는 용어 중의 하나가 "추상화(Abstraction)"가 아닌가 합니다.
국어 사전에서 "추상"을 다음과 같이 정의합니다.
이런 국어 사전의 정의에 근거하여 제가 프로그래밍에서의 추상화를 설명해 보겠습니다.
국어 사전에서 "추상"을 다음과 같이 정의합니다.
추상 [抽象, abstraction] : 대상으로서의 소여(所與) 전체로부터 특정성질이나 공통징표(共通徵表)를 분리하고, 골라내는 정신작용.좀 어려운 말들이 사용되긴 했지만 무슨 뜻인지는 알 수 있습니다. 추상이란, '생각'을 이용하여 어느 대상의 특징을 분리하고 골라내는 과정입니다. 따라서 추상화(抽象畫가 아니라 抽象化) 란 어떤 대상을 그것이 가진 특징만을 골라내는 생각하는 과정이라 할 수 있습니다.
이런 국어 사전의 정의에 근거하여 제가 프로그래밍에서의 추상화를 설명해 보겠습니다.
똑같은 사람을 그리더라도 사실주의 화가는 있는 그대로를 표현합니다. 반면에 추상주의 화가는 표현 대상을 분석해서 그 표현 대상이 갖고 있는 주요한 특징 외에는 모두 버리고, 자기가 갖고 있는 표현 도구 몇 가지(예를 들어 점, 선, 색)만을 이용해서 화폭안에 인물을 재창조합니다. 이렇게 추상주의 화가가 그린 인물은 실제 모델과는 아주 다른 모습이 됩니다.즐거운 주말 되세요. :)프로그래머들은 모두 추상주의 예술가입니다. 우리는 코드로 사람을 표현해야 하고, 코드로 자동차를 그려야 하며, 코드로 보험 업무를 그려야 합니다. 이 세상을 코드로 표현해야 합니다. 실제 세계의 것을 분석해서 주요한 특징을 제외한 나머지는 버리고 코드로 다시 그려내는 것, 이것을 추상화라고 합니다.
'Short Talk' 카테고리의 다른 글
| 프로그래밍을 시작하려는 40대 직장인께 드린 메일 (0) | 2009/09/17 |
|---|---|
| 그대를 O(n!) 동안 기다려 왔습니다. (0) | 2009/09/17 |
| 내가 추상화(Abstraction)을 설명한다면 (0) | 2009/09/12 |
| 삼성 이재용 전무의 인터뷰를 읽고 (0) | 2009/09/06 |
| <뇌를 자극하는 알고리즘> 예약 판매 (0) | 2009/09/04 |
| 아니, 왜 윈도우7가지고 시비야? (2) | 2009/08/30 |
TAG 추상화



