더북(TheBook)

추상화(abstraction)란 개념을 이해하기에 아주 좋은 예입니다. 그래서 파이썬을 하이 레벨 언어에서도 추상화가 더 많이 되어 있다고 말합니다. 바로 이런 이유 때문입니다. 연산도 마찬가지입니다. 연산을 명세할 때 함수 이름과 매개변수, 반환값만 표기할 뿐 내부적으로 어떻게 구현(implementation)했는지는 감춥니다.

사용자인 프로그래머는 내부 구현과 상관없이 명세만 보고도 이 함수를 잘 사용할 수 있을 것입니다. 이렇게 추상 데이터 타입을 정의하면 어떤 이점이 있을까요? ADT만 프로그래머에게 제공한다면 데이터 타입 설계자는 내부적으로 객체를 바꾸거나 함수 구현을 변경해야 할 때, 이를 사용자들에게 알릴 필요가 없습니다. 애초에 프로그래머들은 객체 표현이나 연산 구현을 알고 있지 않기 때문입니다.

이 장에서는 자료 구조를 공부하는 데 꼭 필요한 개념인 빅오와 추상 데이터 타입을 알아보았습니다. 다음 장에서는 선형 자료 구조 중에서 가장 기본인 배열을 알아보겠습니다.

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