도입
복합 데이터
데이터 객체들을 조합해서 복합 데이터 compound data를 형성함으로써 추상을 구축한다.
복합 데이터를 사용하면
- 언어의 원시 데이터 객체를 사용할 때보다 더 높은 수준에서 데이터를 다룰 수 있다.
- 프로그램의 모듈성modularity도 높일 수 있다.
데이터 추상화 data abstraction
데이터 객체의 표현을 다루는 부분과 그러한 객체를 실제로 활용하는 부분을 분리한다는 개념은 하나의 강력한 설계 방법론이다.
2.1 데이터 추상화
함수의 경우, 함수 자체를 어떤 연산들의 집합이 아닌 함수적 추상으로 간주할 수 있다.
- 함수의 세부적인 구현 방법을 숨길 수 있고
- 함수 자체를 아예 전체적인 행동 방식이 동일한 다른 임의의 함수로 대체할 수도 있다
이를 복합 데이터에 적용한 것이 데이터 추상화이다.
데이터 추상화의 핵심은
- 복합 데이터 객체를 사용하는 프로그램이 추상 데이터에 대해 작동하도록 프로그램의 구조를 짜는 것
- 다시 말해 프로그램은 데이터에 대해 최소한의 가정만 두고 구체적concrete 데이터 표현은 해당 데이터를 사용하는 프로그램과는 독립적으로 두어야 한다.