4.4 추상화 계층

값을 나타내고(자료형을 사용하여) 값을 구성하는(리스트와 사전을 사용하여) 몇몇 방법들을 학습하면서, 이제 추상화의 중심 개념과 위의 방법들을 연결시키고자 한다. 현실적인 추상화를 나타내는 것은 그 표현이 알고리즘을 개발한 사람으로부터 이해될 수 있고, 컴퓨터가 설계에 의해 허용된 간단한 동작을 수행하는 것을 가능하게 하기 위해서 추상화의 값들을 구성하는 방법이다. 문제를 해결하기 위한 과정을 표현하기 위해 간단한 예제와 함께 시작할 것이다. 그 후 더 복잡한 사례들을 고려할 것이다.
추상화의 각 열은 속성의 이름이고 각 행은 주어진 사례에 대해 각 속성 값을 갖는 표에 의해 도표로 보여 질 수 있다는 것을 이전에 학습했다.

개별적인 속성 값은 적절한 자료형을 사용하여 나타낼 수 있다. 예를 들어, 특정 도시의 온도를 나타내기 위해서는 정수를 사용한다. 또한 습도, 바람 값도 정수로 표현될 수 있다. 도시의 이름은 문자열로 표현될 수 있다.

주어진 사례에 대해 다양한 값을 표현하기 위해, 자료구조(리스트나 사전과 같은)가 필요하다.

값 사이의 관계를 의미 있는 방식으로 유지하기 위한 자료구조는 추상화를 나타내는 값을 구성하는 간단한 방법이다.

세상은 복잡하기 때문에, 복잡한 개체를 추상화하는 것은 그만큼 복잡하다. 추상화에서 복잡한 개체의 각 측면은 속성에 의해 표현되기 때문에, 더 많은 측면이 있을수록, 더 많은 속성이 추상화의 부분이 되어야 한다. 추상화는 현실 세계를 단순화한다는 사실에도 불구하고, 추상화하는 작업은 복잡해질 수 있다.

복잡한 것들을 관리하기 위해서 사람들이 사용하는 방법중 하나는 계층 구조를 사용하는 것이다. 계층구조에서는 모델링 된 하나의 개체가 상위 속성의 관점에서 정의된다. 각 상위 계층의 속성들은 일부 하위계층의 속성을 포함할 수 있다. 두 번째 계층의 속성들은 세 번째 계층의 속성들로 구성될 수 있고, 이런 방식으로 이어진다. 이러한 절차는 모든 속성들이 기본 자료형(숫자, 문자)으로 나타내어질 때까지 계속된다.

a person을 나타내는 계층은 다음 그림에서 볼 수 있다. 여기, person은 name, birthday, address 이 세 개의 상위 계층으로 정의된다. name 속성은 first name, last name으로 구성된다. birthday 속성은 month, day, year으로 구성된다. address 속성은 street address, city, zip code, 및 state abbreviation로 구성된다. 이러한 각 하위 계층 속성은 기본 자료형(type)에 의해 직접적으로 표현될 수 있다. 예를 들어, month은 문자열이고, day은 정수이다.

../_images/Abstraction-Hierarchy-Example.png

그림 4-18. 계층적 설명의 예

Leave a Reply

Your email address will not be published. Required fields are marked *

*