더북(TheBook)


1.2추상 자료형


자료 구조에는 추상 자료형이라는 개념이 있습니다. 흔히 ADT(Abstract Data Type)라고 부릅니다. 어려워 보이는 추상 자료형은 간단히 말해 자료 구조에서 삽입·탐색·삭제 등을 담당하는 함수들의 사용 설명서입니다. 이름에 ‘추상’이 들어가는 이유는 추상 자료형은 인터페이스(함수의 이름, 인자, 반환형 등을 명시한 것)와 구현을 분리했기 때문입니다. 글만 읽어서는 어떤 의미인지 이해하기 쉽지 않으니 파이썬의 리스트를 사용해 추상 자료형을 이해해 봅시다.

다음은 리스트에서 데이터를 삽입(insert)하는 append() 함수입니다.

>>> help(list.append)

Help on method_descriptor:


append(...)

L.append(object) -> None -- append object to end


L.append(object) -> None을 보면 함수의 이름(append), 인자(object), 반환형(None)을 알 수 있습니다. 이 부분이 인터페이스입니다.

하지만 append() 함수가 어떻게 구현되었는지는 알 수 없습니다. 아니 알 필요가 없습니다. 어떻게 구현되었는지 몰라도 우리는 append() 함수를 이용해 데이터를 삽입할 수 있기 때문입니다. 이러한 특징을 인터페이스와 구현이 분리되었다고 말합니다. 그리고 이 두 가지를 분리하는 것을 ‘추상화한다’라고 표현합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.