Home 추상 자료형 Abstract Data Type
Post
X

추상 자료형 Abstract Data Type

추상 자료형 ADT

추상 자료형이란 데이터의 추상적인 모델을 나타내는 개념입니다.

사람이 자료를 다루는 관점에서 자료구조를 표현한 것이라고 할 수 있습니다.

데이터에 대한 연산을 정의하고, 어떤 연산이 수행되어야 하는 지를 명시하는 것에 집중합니다.


자료구조 Data Structure

자료구조는 추상 자료형에서 정의된 기능들을 구현한 함수나 명령, 데이터들의 관계를 말합니다.

또한, 추상화 되어있는 ADT를 실제로 데이터를 어떻게 저장하고 관리할 지 구체적인 세부 사항들을 구현한 것입니다.

ADT는 기능을 명시하는 것에 집중한다면 자료구조는 실제 구현을 하는 단계로 데이터의 물리적, 논리적 관계를 고려해 성능을 최적화하는 것에 집중합니다.


예시

Stack의 기능들을 떠올려보자.

  • stack : 스택을 담을 데이터
  • push : 스택에 새 요소를 추가한다.
  • pop : 스택의 맨 마지막 요소를 꺼낸다.
  • peek : 스택의 맨 마지막 요소를 확인한다.

여기까지는 어떻게 구현할 지는 아직 명시하지 않고 스택의 기능을 명시해놓은 ADT 입니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Stack {
  constructor() {
    this._arr = [];
  }

  push(item) {
    this._arr.push(item);
  }

  pop() {
    return this._arr.pop();
  }

  peek() {
    return this._arr[this._arr.length - 1];
  }
}

위 코드는 배열을 이용해 구현한 Stack으로 ADT를 실제로 구현한 자료구조입니다.

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.