Data Abstraction

Data Abstraction


자료형은 값과 연산으로 정해진다. 데이터 추상화(data abstraction)는 연산을 사용하는 방법과 내부에서 처리하는 방법을 나눈다.

자료형(data type)가능한 값의 집합과 그 값에 적용할 수 있는 연산의 묶음이다.
추상 자료형(abstract data type, ADT)값과 연산의 의미로 정의하고 저장 방식은 정하지 않는다.
데이터 추상화연산의 의미를 알면 내부 저장 방식을 몰라도 자료를 다룰 수 있다.

같은 + 기호도 자료형이 결과를 정한다

두 피연산자에 같은 숫자 모양을 넣고 자료형만 바꾼다. 자료형이 허용하는 값과 + 연산의 의미가 바뀌면 결과도 바뀐다.

초록 칸은 선택한 자료형의 + 연산이 만든 결과다.

사용자는 연산의 의미만 보고 목록을 다룬다

연산을 호출하면 경계 밖에서는 반환값과 호출 뒤 상태만 보인다. 저장 공간을 다루는 일은 경계 안의 구현이 맡는다.

사용자가 알아야 하는 것

구현이 결정하는 것

새 원소를 저장할 공간을 확보하는 방법

공간이 부족할 때 기존 원소를 옮기는 방법

꺼낸 원소의 자리를 정리하는 방법

점선 상자 안의 방법은 호출 결과에 드러나지 않는다. 초록 줄은 방금 호출에서 구현이 반드시 처리한 일이다. 공간이 부족할 때만 필요한 일은 결과에 나타나지 않는다.

요구사항에서 ADT를 고르고 구현에서 비용을 따진다

요구사항이 필요한 결과를 정하면 그 결과를 만드는 ADT와 연산의 의미가 정해진다. 작업량은 그 뒤에 고르는 구현이 정한다.

왼쪽에서 오른쪽으로 결정 순서를 따른다. 초록 테두리 칸이 요구사항이 고른 ADT다.