메뉴 건너뛰기

어느 기계를 다룰 때를 예로 들어보자.

 

한 기계와의 모든 상호작용은 "시작", "정지" 버튼과 같이 제어판에 있는 버튼을 통하여 이루어진다.

그 기계는 우리가 직접적으로 내부에 접근하는 것을 막고자 하여 외부가 덮혀져 있다.

그래서, 기계의 내부는 사용자로부터 감춰져 있다.

이것이 캡슐화(encapsulation)의 원칙이다.

 

기계의 사용 설명서는 우리가 특정 버튼을 누를 때 기계가 어떤게 작동되어야 하는지를 알려준다.

그것은 기계의 내부가 어떻게 구현되어(구성되어) 있는지 알려주지 않는다.

그것은 어떤 버튼을 눌렀을 때 기계의 전기적, 기계적 연속적인 동작을 알려주지는 않는다.

그러므로, 그 사용 설명서는 무엇을 기계가 하는 지와 어떻게 그것을 하는지를 명확히 구분한다.

이 구분이 추상화(abstraction)의 원칙이다.

 

정의: Data Encapsulation(자료 캡슐화) 또는 Information Hiding(정보 감춤)은 한 자료 객체의 세부 구현을 외부 세계로부터 감추는 것이다.

 

정의: Data Abstraction(자료 추상화)는 자료 객체의 구현과 그것의 명세를 구분 짓는 것이다.

       즉 어떻게 이루어졌는지는 알려주지 않고, 어떻게 사용하는지만 알려준다.