Data Abstraction   자료 추상화, 데이터 추상화

(2021-02-24)

ADT, Abstract Data Type, 추상 자료형, 추상 데이터 타입, 추상 데이터형


1. 자료 추상화 (Data Abstraction)

  ㅇ 여러 자료형을 하나로 묶어(단순화) 더 높은 단계로 정의(추상화)하는 것
     - 例) 사용자 정의 자료형으로써 구조체 등

  ㅇ 결국,
     - 컴퓨터에 저장되는 비트(0,1) 및 메모리 공간 관점이 아닌,
     - 인간 사고와 유사한 관점으로 보려는 것 
     - (즉, 기계적 처리 관점 -> 인간이 데이터를 다루는 관점)


2. 추상 자료형 (Abstract Data Type, ADT)

  ㅇ 새로운 자료형을 직접 추상적으로 정의한 형태
     - 그 형태로써, `자료` 및 `연산`을 모두 하나의 단위로 묶어둠

  ㅇ 즉,
      . 자료형에 속하는 값들의 집합을 고려해보고,
      . 그에 적용 가능한 연산들을 정의해 가면서,
      . 이를 추상화시켜 구현하는 것

  ㅇ (장점)
     - 외부로부터 내부 자료를 함부로 접근 못하게함
        . 자료형에 대한 의도되지 않은 변화를 최소화하고,
        . 이를 마치 블랙박스 처럼 취급할 수 있게 함
     * 이를두고, 캡슐화(Encapsulation) 또는 정보은닉(Information Hiding) 라고도 함


3. 추상 자료형의 특징

  ㅇ `자료` 및 `연산`을 모두 하나의 단위로 묶음
     - 사용자 정의 자료형 (user defined data type)
     - 사용자 정의 연산 (user defined operation type)

  ㅇ 자료의 캡슐화 (data encapsulation) 또는 정보은닉(information hiding)을 도모함
     - 세부 구현 사항을 감춤
        . 형태 및 연산수학적으로 만 정의되어 있고, 
        . 구현의 세부사항을 정의 않고, 
        . 그 기능이 무엇인지 만 나열함
     - 인터페이스를 다양화시킬 수 있음
        . 내부의 데이터에 접근은 못하지만, 사용은 가능
        . 즉, 데이터의 저장 방법을 몰라도 사용은 가능
        . 따라서, 더 많은 정보를 줄 수 있음
     - 변경이 전체에 영향을 미치지 않게 함

  ㅇ 결국,
     - 내부적으로는, 데이터함수(메소드)를 서로 연결짓고,
     - 외부적으로는, 데이터의 표현 방식을 사용자로부터 숨김
     - 따라서, 구현자와 사용자를 분리해 줄 수 있음
        . 사용자는 목적에 맞게, 가져다 사용 만 하면 됨

  ※ 자료 추상화(추상 자료형)에 의해, 
     - 비로소 객체지향 프로그래밍 기법이 가능하게 됨



Copyrightⓒ   차재복 (Cha Jae Bok)    " 정보통신 및 과학기술 지식을 간결하게 정리,체계화시키고 있습니다. "