추상 자료형(ADT)
추상 자료형에 대해서 이야기 해보겠습니다.
자료구조를 처음 공부할 때, 추상 자료형이라는 용어를 처음 들었습니다.
그 당시에는 좀 생소한 용어라서 이해가 잘 되지 않았지만 이것 저것 공부를 하다보니 이 개념을 자연스럽게 받아들일 수 있었습니다.
추상 자료형 또는 ADT(Abstract Data Type)라고도 부릅니다.
일반적으로는 컴퓨터 공학에서 주로 사용되는 용어입니다. 간단히 말해서 추상 자료형은 어떤 기능들에 대해서 나열한 것입니다. 단, 추상 자료형에서는 기능들에 대한 세부적인 구현에 대해서는 이야기 하지 않습니다.
사실 처음 이 말을 보면, 어떤 의미인지 크게 와닿지는 않을 겁니다. 저 또한 그랬습니다.
(바로 이해가 되신다면...축하드립니다.)
추상 자료형(ADT)의 예시
여기에 우리들에게 익숙한 스마트폰이 있다고 생각해봅시다.
스마트폰에는 이름에 걸맞게 많은 기능들이 있습니다.
예를 들어서, 사진촬영, 통화, 게임, 손전등, SNS, 메모 etc...
위에 나열한 것 외에도 사용자에 따라서 정말 많은 기능을 수행합니다.
여기서의 주목할 점은 저는 스파트폰의 기능에 대해서 이야기를 했지, 기능에 대한 구현에 대해서는 이야기 하지 않았습니다. 왜 그랬을까요? 그것은 알 필요가 없기 때문입니다. 예시를 또 하나 들어보면, 사용자들이 인스타라는 어플을 사용할 때,인스타라는 어플이 어떻게 사진과 글을 업로드하고, 친구추가기능이 어떻게 구현이 되어 있는지 사용하는 기능의 뒷면은 알 필요가 없습니다.
여기에서 인스타의 ADT(추상 자료형)은
- 사진 업로드
- 글 업로드
- 친구 추가기능
이라고 말할 수 있습니다.
이쯤 되면, ADT(추상자료형)가 무엇인지 감을 잡았을 거라고 생각합니다.
추상자료형에 대한 정의는 사용되는 분야마다 조금씩 달라지지만, 큰 개념은 비슷합니다.
자료구조에서의 ADT는 기능의 구체적인 구현은 언급하지 않고, 순수하게 어떤 기능들이 있는지 나열한 것 이라고 할 수 있습니다.
자료구조를 공부할 때는 ADT에 대한 이야기를 거의 필수적으로 하기 때문에 ADT의 의미가 무엇인지에 대해서 살펴봤습니다.
'컴퓨터 > 자료구조' 카테고리의 다른 글
자료구조 : 스택(Stack) (0) | 2021.03.23 |
---|---|
자료구조와 알고리즘 (0) | 2021.02.27 |