본문 바로가기

Computer Science&Engineering/자료구조

추상 데이터 타입 (Abstract Data Type) 이란

# 데이터 타입(Data type)이란

: 자료와 연산들의 모음

예를 들어, int 형 데이터 타입은 .. -2, -1, 0, 1, 2 ... 와 같은 정수 자료와 +, -, /, * % 등의 연산들의 모음이다.

 

# 추상 데이터 타입(Abstract Data Type, ADT)이란

: 추상적으로 수학적으로 정의된 데이터 타입

: 어떠한 자료와 자료의 연산이 정의되어 있다. 연산은 추상 데이터 유형과 외부 간의 인터페이스 역할을 한다. 실제로 자료와 연산이 어떻게 구현되었는 지는 사용자가 알 필요가 없다.

 

예를 들어, 자연수를 추상 데이터 타입으로 정의하자면,

자료는 0부터 INT_MAX까지의 정수

연산은 zero(), is_zero(), add(x,y), sub(x,y), equal(x,y), successor(x) 등이 될 수 있다.

 

일상 생활에서 추상 데이터 타입과 비슷한 사례를 찾아보면 자판기가 있을 수 있다. 자판기 안에서 어떤 일이 일어나는 지 모르지만, 원하는 음료수 버튼을 누르면 해당 음료수가 나오도록 되어있다. 이 때 버튼을 누르는 것이 연산을 통해 외부에서 추상 자료형 내부의 자료에 접근하는 것이라고 할 수 있다. 따라서 추상 자료형의 인터페이스(연산, 사용법)만 알면, 내부 자료나 실제 구현을 몰라도 사용할 수 있다.

 

ADT 예시, 자판기

이외에 선풍기도 마찬가지다. 선풍기를 사용할 때 버튼을 눌러서 turn_on(), turn_off() 등의 기능을 사용하지만 어떻게 구현된지는 모른다. 이렇듯 자료와 연산이 추상적으로 구현되어 있어, 실제 내부 구현은 모르지만 연산을 통해 자료에 접근할 수 있는 자료 형태를 추상 자료형이라고 한다.

 

# 프로그래밍 언어에서 ADT 구현

: C에서는 struct 를 활용하여 구현

: C++이나 java 에서는 class 를 활용한다. 

 

 

 

# 이화여대 민동보교수님 2018년 2학기 Data Structure 수업자료와 도서 뇌를 자극하는 알고리즘 등 참고하여 작성

반응형