영국에 지하철이 처음 생기고 이후 런던 지하철 전 노선을 쉽게 알아볼 지하철 노선도를 만들었다. 이때 실제 지형도에 맞는 위치에 구불구불한 운행 노선과 불규칙적인 역 간의 거리를 사실적으로 묘사했다. 그 결과 노선도는 매우 이해하기 어려웠다.
지하철 노선도 디자인에서 가장 중요한 것은 얼마나 사실적으로 지형을 묘사했느냐가 아니라 역과 역 사이의 연결성을 얼마나 직관적으로 표현했느냐다.
해리 벡은 사실적인 지형과 축척은 무시하고 역 사이의 연결성에만 집중한 지하철 노선도를 창조했다. 이 노선도는 역의 순서와 갈아타는 역의 표시를 제외하면 어느 것 하나 정확한 것이 없었다. 하지만 현재까지 계속 쓰이고 있는 것은 해리 벡의 지하철 노선도다.
노선도의 핵심은 정확성을 버리고 그 목적에 집중한 결과다. 지하철 노선도의 목적은 지형이 아닌 연결이다.(추상화)
해리 벡은 지하철 승객들을 면밀하게 관찰해 승객이 꼭 알아야 하는 사실만 정확하게 표현하고 몰라도 되는 정보는 무시함으로써 이해하기 쉽고 단순하며 목적에 부합하는 지하철 노선도를 창조해 낼 수 있었다.
즉, 지하철 노선을 추상화한 것이다.
추상화를 통한 복잡성 극복
현실은 복잡하며 예측 불가능한 혼돈의 덩어리다.
나비효과는 현실의 복잡성을 이해하고 예측하는 것이 얼마나 어려운지를 잘 설명해 주는 적절한 메타포다.
인간이 지닌 인지 능력과 저장 공간은 현실의 복잡성 전부를 받아들이기에는 부족하다. 따라서 인간은 본능적으로 이해하기 쉽고 예측 가능한 수준으로 현실을 분해하고 단순화하는 전략을 따른다.
해리 벡이 고안한 추상화는 지형 정보를 제거하고 역 사이 연결성을 강조함으로써 지하철 노선도 목적에 맞게 현실을 단순화했다.
진정한 추상화란 현실에서 출발하되 불필요한 부분을 도려내 가면서 사물의 놀라운 본질을 드러나게 하는 과정이다.
만약 런던 곳곳의 정확한 위치와 실제 거리를 알고자 했다면 당연히 초기 런던 지하철 노선도가 적절한 노선도이다. 중요한 것은 목적이다.
어떤 추상화도 의도된 목적이 아닌 다른 목적으로 사용된다면 오도될 수 있다.
현상은 복잡하다. 법칙은 단순하다. 버릴 게 무엇인지 알아내라.
이 책에서는 추상화를 다음과 같이 정의한다.
추상화
어떤 양상, 세부 사항, 구조를 좀 더 명확하게 이해하기 위해 특정 절차나 물체를 의도적으로 생략하거나 감춤으로써 복잡도를 극복하는 방법이다.
복잡성을 다루기 위해 추상화는 두 자원에서 이뤄진다[Kramer 2007].
• 첫 번째 자원은 구체적인 사물들 간의 공통점은 취하고 차이점은 버리는 일반화를 통해 단순하게 만드는 것이다.
• 두 번째 자원은 중요한 부분을 강조하기 위해 불필요한 세부 사항을 제거함으로써 단순하게 만드는 것이다.
모는 경우에 추상화의 목적은 복잡성을 이해하기 쉬운 수준으로 단순화하는 것이라는 점을 기억하라.
객체지향 패러다임은 객체라는 추상화를 통해 현실의 복잡성을 극복한다.
추상화의 두 차원을 반드시 이해하고 적용하자
객체지향과 추상화
모두 트럼프일 뿐
엘리스 이야기 예시
앨리스는 분명한 경계를 가지는 식별 가능한 하나의 객체다.
3명의 정원사 역시 객체다. 클로버 병사들 역시 객체다. 하얀 토끼도 객체다.
위 장면에 객체는 제각기 독특한 모습을 하고 있지만, 앨리스는 이 객체들 대부분을 하나로 아울러 생각하고 있다. '기껏해야 트럼프에 불과해' 그렇다. 앨리스는 객체들 중에서 하얀 토끼를 제외한 모든 객체를 '트럼프'라는 하나의 개념으로 단순화해서 바라보고 있다.
과감하게 차이점을 무시하고 공통점만 취해 단순화해 버렸다.
그룹으로 나누어 단순화하기
정원사, 병사, 신하, 왕자, 공주, 하객 등 얼핏 보면 비슷해보이지만 각 인물들에게는 다양한 측면에서 서로를 구별할 수 있는 독특한 특징이 있다.
이처럼 명확한 경계를 가지고 서로 구별할 수 있는 구체적인 사람이나 사물을 객체지향 패러다임에서는 객체라고 한다.
앨리스는 인물들을 하나씩 살펴보면서 자신이 알고 있는 '트럼프'의 의미에 적합한 인물은 '트럼프'그룹에 포함하고 이외 적합하지 않은 인물은 그룹에서 제외했다.
결과적으로 두 개의 그룹으로 나눴다. 하나는 트럼프 그룹, 나머지 하나는 토끼 그룹이다.
이제 트럼프와 토끼라는 두 개의 렌즈를 통해 정원을 바라보는 것은 정원에 내재된 복잡성을 효과적으로 감소시킨다.
개념
구체적이고 실제적인 객체들 모두를 개별적인 단위로 취급하기에는 인간이 지닌 인지능력은 턱없이 부족하다. 따라서 사람들은 본능적으로 공통적인 특성을 기준으로 객체를 여러 그룹으로 묶어 동시에 다뤄야 하는 가짓수를 줄임으로써 상황을 단순화하려고 노력한다.
공통점을 기반으로 객체들을 묶기 위한 그릇을 개념(concept)이라고 한다.
개념이란 일반적으로 우리가 인식하고 있는 다양한 사물이나 객체에 적용할 수 있는 아이디어나 관념을 뜻한다.
개념 적용 예시
길거리를 빠른 속도로 누비는 교통수단 = 자동차 개념 적용
하늘을 나는 교통수단 = 비행기 개념 적용
개념을 이용하면 객체를 여러 그룹으로 분류(classification)할 수 있다.
개념은 공통점을 기반으로 객체를 분류할 수 있는 일종의 체라고 할 수 있다.
결국 각 객체는 특정한 개념을 표현하는 그룹의 일원으로 포함된다.
하트 여왕은 트럼프 그룹에 일원
하얀 토끼는 토끼 그룹에 일원
이처럼 객체에 어떤 개념을 적용하는 것이 가능해서 개념 그룹의 일원이 될 때 객체를 그 개념의 인스턴스라고 한다.
객체란 특정한 개념을 적용할 수 있는 구체적인 사물을 의미한다. 개념이 객체에 적용됐을 때 객체를 개념의 인스턴스라고 한다.
개념은 세상의 객체들을 거르는 데 사용하는 렌즈를 제공한다. 이 렌즈를 통해 세상을 바라보면 수백 수천 개의 다양한 객체가 존재하는 복잡한 세상을 몇 개의 개념만으로 단순화할 수 있다.
개념은 객체를 분류할 수 있는 틀을 제공한다.
'IT책, 강의 > 객체지향의 사실과 오해(역할, 책임, 협력 관점에서 본 객체지향)' 카테고리의 다른 글
04 역할, 책임, 협력 - 1 (0) | 2022.12.13 |
---|---|
03 타입과 추상화 - 2 (0) | 2022.12.06 |
02 이상한 나라의 객체 -3 (0) | 2022.11.28 |
02 이상한 나라의 객체 -2 (1) | 2022.11.25 |
02 이상한 나라의 객체 -1 (1) | 2022.11.23 |