3. 타입과 추상화
지하철 노선도는 위치와 거리 등의 세부 정보는 최대한 생략하고 역간의 연결에 대한 정보만을 전달하는데 집중한다. 정확성보다 사용자의 목적에 집중하여 추상화한 것이다.
추상화를 통하여 복잡성을 극복할 수 있다.
추상화
- 어떤 양상, 세부 사항, 구조를 좀 더 명확하게 이해하기 위해 특정 절차나 물체를 의도적으로 생략하거나 감춤으로써 복잡도를 극복하는 방법.
- 복잡성을 다루기 위한 추상화의 2단계
- 구체적인 사물들 간의 공통점은 취하고 차이점은 버리는 일반화를 통해 단순화한다
- 중요한 부분을 강조하기 위해 불필요한 세부 사항을 제거함으로써 단순하게 만든다
- 모든 경우에 추상화의 목적은 복잡성을 이해하기 쉬운 수준으로 단순화하는 것
사람들은 본능적으로 공통적인 틁성을 기준으로 객체를 여러 그룹으로 묶어 동시에 다뤄야 하는 가짓수를 줄임으로써 상황을 단순화하려고 노력한다. 이때 객체를 묶기 위한 그릇을 개념(concept)이라고 한다.
객체를 적절한 개념에 따라 분류하지 못한 애플리케이션은 유지 보수가 어렵고 변화에 쉽게 대처하지 못한다.
적절한 분류 체계는 앱을 다루는 개발자의 머릿속에 객체를 쉽게 찾고 조작할 수 있는 정신적인 지도를 제공한다.
타입은 개념이다.
객체의 타입은 객체가 어떤 행동을 하느냐에 따라 결정된다.