추상자료형

정의

An abstract data type (ADT) is a data type that is organized in such a way that the specification of the operations on the objects is separated from the representation of the objects and the implementation of the operations.
💡 데이터와 그 데이터에 적용할 수 있는 연산을 추상적인 수준에서 정의

데이터의 구현 세부사항을 숨기고 사용자추상자료형이 제공하는 연산을 통해서만 데이터와 상호작용한다.

 

핵심개념

자료형의 추상화

데이터의 구현방식의 세부사항에 대해 숨기고 데이터와 관련 된 연산을 통해서만 상호작용할 수 있도록 정의한 데이터타입이다.

연산의 집합

데이터타입에 대해 수행할 수 있는 연산을 정의한다. 연산이 수행될 때 내부 데이터가 어떻게 관리되는지는 추상화된다.

인터페이스와 구현의 분리

추상자료형의 핵심으로, 사용자(클라이언트)는 ADT가 제공하는 인터페이스를 통해 데이터와 상호작용하며, 실제 데이터가 어떻게 저장되고, 연산이 어떻게 수행되는지는 알 필요가 없다.

예를 들어, 리스트(List) ADT가 있다면, 사용자는 “추가”, “삭제”, “검색” 등의 기능을 사용할 수 있지만, 이 리스트가 배열로 구현되었는지, 연결 리스트로 구현되었는지는 몰라도 된다.

 

예시

예시에서 스택의 연산들이 어떻게 구현되었는지는 숨기고 스택의 개념과 연산의 정의만을 제공한다. 스택은 배열, 연결리스트 등 여러 방법으로 구현할 수 있으나 사용자는 이를 신경 쓸 필요 없다.