Taking baby-developer steps

[객체지향의 사실과 오해] 3. 타입과 추상화 - 1.추상화가 뭘까 본문

CS 지식/객체지향

[객체지향의 사실과 오해] 3. 타입과 추상화 - 1.추상화가 뭘까

Surin Lee 2023. 11. 12. 22:27

추상화가 왜 중요할까?

 현대의 지하철 노선도를 생각해보자. 실제 지형, 축적은 무시하고 역 사이 연결성에만 집중해있다. 승객들은 지하철을 갈아탈 때 지형, 축적은 관심이 없다. 중요한 것은 역의 순서와 갈아타는 역이다. "승객"꼭 "알아야 하는 사실"만 정확하게 표현하고 몰라도 되는 정보는 무시함으로서 이해하기 쉽고 단순하며 목적에 부합한다.

 

복잡성을 극복하는 추상화

 추상화란 불필요한 부분을 가지치기해 사물의 본질을 드러나게 하는 과정이다. 현실에 존재하는 복잡성을 극복할 수 있다. 가장 좋은 추상화는 "목적에 부합"하는 것이다. 이 책에서는 추상화를 다음과 같이 정의한다.

 추상화 : 양상, 세부사항, 구조를 좀 더 명확하게 이해하기 위해 특정 절차나 물체를 의도적으로 생략하거나 감춤으로써 복잡도를 극복하는 방법
추상화는 다음 두 차원에서 이뤄진다.
1. 구체적인 사물들 간의 공통점은 취하고 차이점은 버리는 일반화를 통해 단순하게 만든다.
2. 중요한 부분을 강조하기 위해 불필요한 세부 사항을 제거함으로써 단순하게 만든다.

모든 경우에 추상화의 목적은 복잡성을 이해하기 쉬운 수준으로 단순화 하는 점이다.

 즉 추상화는 "일반화하거나" "가지치기 하거나" 하는 방식으로 할 수 있다. 

Comments