추상 자료형
From Wikipedia, the free encyclopedia
추상 자료형(abstract data type, ADT)은 컴퓨터 과학에서 자료들과 그 자료들에 대한 연산들을 명기한 것이다. 추상 자료형은 구현 방법을 명시하고 있지 않다는 점에서 자료 구조와 다르다. 비슷한 개념의 추상적 자료 구조는 각 연산의 시간 복잡도를 명기하고 있지만 추상적 자료형에서는 이것조차 명기하지 않는다.
추상 자료형은 인터페이스와 구현을 분리하여 추상화 계층을 둔 것이다. 예를 들어 전기 밥솥을 추상 자료형에 비유한다면 그 속에 들어가는 밥은 자료가 되고, 밥솥에 있는 취사, 예약취사 버튼들과 남은 시간을 표시하는 디스플레이에 어떤 내용들이 표시되어야 하는지를 명기한 것이다. 추상 자료형에서는 이것들이 어떻게 구성되는지 관심이 없고, 몇 와트의 전기를 소모하는지에 대해서도 관심이 없다.
자료에 대한 연산은 자료에 대하여 질의를 던지는 것과 자료를 변경하기 위한 연산으로 나뉜다. 유명한 자료구조인 스택에서 자료를 변경하기 위한 연산은 기본적으로 push와 pop이 있다. 여기에 자료에 대하여 질의를 던지는 연산으로 스택의 크기를 알 수 있는 size 연산, 스택이 가득차거나 비었는지를 알 수 있는 full, empty 연산이 있고, 추가적으로 pop을 하면 제거될 자료를 볼 수 있는 peek 연산 등을 정의할 수 있다. 만약 여기에 각 연산들은 모두 상수 시간 복잡도(즉, O(1))에 일어나야 한다고 명기한다면 이것은 '추상적 자료 구조'가 된다.