728x90
반응형
ADT - Abstract Data Type
추상적으로 정의된 자료형
데이터를 추상화하여 논리적인 구조를 정의한 것
게임에서 캐릭터를 구현한다고 하면,
캐릭터의 동작, 속성들은 컴퓨터가 연산할 수 있는 자료형으로 정의되어야 한다.
현실에 존재하는 개념 등을 구현하기 위해 원하는 자료형으로 만든 것을 의미.
Python으로 예를 들면
Python에서는 주로 Class를 통해 추상 자료형을 만든다.
예를 들어 '자동차' 라는 개념의 추상자료형을 만들고, 이 추상자료형의 속성으로 이름, 브랜드를 정의할 수 있다.
class Car:
def __init__(self, name, brand):
self.name = name
self.brand = brand
def describe(self):
print(f"이 차의 이름은 {self.name}이고, {self.brand}에서 만들었습니다.")
car1 = Car("Model S", 'Tesla')
car2 = Car("소나타", '현대')
car1.describe()
car2.describe()
print(type(car1))
# 이 차의 이름은 Model S이고, Tesla에서 만들었습니다.
# 이 차의 이름은 소나타이고, 현대에서 만들었습니다.
# <class '__main__.Car'>
위에서 찍은 type(car1)의 결과를 보면, Car라는 고유의 자료형(Data Type)을 가지고 있는 것을 확인 가능하다.
이처럼 추상 자료형도 일반적인 자료형과 같이 실제 자신만의 자료형을 갖게 된다.
추상 자료형(ADT)의 특징
추상 자료형에서는 기능들에 대한 세부적인 구현에 대해 이야기하지 않는다.
-> 추상 자료형(ADT)을 생성할 때는 사용자로 하여금, 그 안에 들어가는 세부적인 구현 방법을 알지 않아도 기능을 사용할 수 있게끔 만들어야 한다.
* ADT와 관련된 개념 +
Array(Data Structure) vs List(ADT)
728x90
반응형
'CS' 카테고리의 다른 글
hash map # hash function # 충돌 hash collision (2) | 2023.11.11 |
---|---|
컴퓨터의 음의 정수 표현 (0) | 2023.11.10 |