프로그래밍 노트/객체지향프로그래밍

[객체지향] 추상화에 대해서

깡냉쓰 2022. 9. 7. 01:05
728x90
반응형

초기 지하철 노선도는 지형 위에 구불구불한 운행 노선과 불규칙적인 역 간의 거리를 사실적으로 묘사하였었다.

문제는 사실적인 정보가 오히려 지하철을 이용하는 승객들로 하여금 노선도를 이해하기 어렵게 만들었다는 점이다.

지하철 노선도 디자인에서 가장 중요한 것은 얼마나 사실적으로 묘사했느냐가 아니고 역과 역 사이의 연결성을 얼마나 직관적으로 표현했느냐인 것이다.

그 후 사실적인 지형과 축적은 무시하고 역 사이의 연결성에만 집중한 혁신적인 지하철 노선도를 창조하게 된다.

승객이 꼭 알아야 하는 사실만 정확하게 표현하고(연결, 열차를 갈아타는 것) 몰라도 되는 정보는 무시함으로써 이해하기 쉽고 단순하며 목적에 부합하는 지하철 노선도를 만든 것이다.

즉 ,지하철 노선을 추상화한 것이다.


추상화는 목적에 맞게 현상을 단순하게 만드는 것이다.

불필요한 부분을 무시함으로써 현실에 존재하는 복접성을 극복하는 것이며 복잡한 현실을 단순화하기 위해 사용하는 인간의 가장 기본적인 인지 수단이라고 할 수 있다.

복잡성을 다루기 위해 추상화는 두 차원에서 이뤄진다.

1. 구체적인 사물들 간의 공통점은 취하고 차이점은 버리는 일반화를 통해 단순하게 만드는 것
2. 중요한 부분을 강조하기 위해 불필요한 세부 사항을 제거함으로써 단순하게 만드는 것

객체지향 패러다임은 객체라는 추상화를 통해 현실의 복잡성을 극복한다. 그리고 객체지향 패러다임을 이용해 유용하고 아름다운 애플리케이션을 개발하기 위한 첫걸음은 추상화의 두 차원을 올바르게 이해하고 적용하는 것이다.

벤츠, 아우디, 테슬라 → 모두 바퀴 4개달린 자동차
모든 제조사 모델들을 자동차 하나로 단순화(추상화)하여 바라봄

출처) 객체지향의 사실과 오해

728x90
반응형