추상 자료형

JngHoon_2·2022년 10월 11일
0

자료구조

목록 보기
3/10

소프트웨어의 개발과 유지보수에 있어서 가장 중요한 문제는 "어떻게 소프트웨어 시스템의 복잡성을 관리할 것인가"이다. 이러한 복잡성에 대처하기 위하 새로운 아이디어들이 등장하였고 이들을 구체화한 프로그래밍 방법론과 언어들이 개발되었다. 이러한 방법론이나 언어의 핵심이 추상화(abstruction)이다.

추상화란 복잡한 자료, 모듈, 시스템 등으로부터 핵심적인 개념이나 기능을 간추려 내는 것을 말한다. 즉, 어떤 시스템의 간략화 된 기술 또는 명세로서 시스템의 정말 핵심적인 구조나 동작에만 집중하는 것이다.

추상 자료형(Abstruct Data Type: ADT)은 추상화한 자료형, 즉 추상적으로 정의한 자료형을 의미한다. 구체적으로는 자료의 집합과 자료에 가해지는 연산들의 집합에 대한 수학적 명세이다. 이러한 추상 자료형은 그 자료형의 구현으로 부터 분리된 자료형을 의미하는데, 자료나 연산이 무엇(what)인가는 정의되지만 이들을 컴퓨터에서 어떤 프로그래밍 언어를 이용해 어떻게(how) 구현할 것인지는 정의 하지 않는다.

추상 자료형을 표현할 때는 먼저 객체를 정의하고, 다음으로 연산들을 정의한다. 객체는 주로 집합의 개념을 사용하여 표현하고, 연산의 정의에는 연산의 이름, 매개변수, 연산의 결과, 연산이 수행하는 기능 들을 기술한다.

추상 자료형을 컴퓨터 프로그램으로 구현할 때는 보통 구현에 관한 세부사항들은 외부에서 모르게 하고 외부에는 간단한 인터페이스(interface)만을 공개한다. 사용자는 공개된 인터페이스만 사용하고 이것이 어떻게 구현되었는지를 알 필요가 없다 추후에 구현 방법이 변경될 수 있지만, 인터페이스만 정확하게 지켜진다면 사용자는 변경된 내용을 알 수도 없고 사용하는데도 전혀 문제가 없다.

이것이 정보은닉의 기본 개념이다. 즉, "구현으로부터 명세의 분리"가 추상 자료형의 중심 아이디어이다.

profile
주니어 AOS/iOS 개발자를 꿈꾸는 학생입니다🐤

0개의 댓글