정보 은닉

정보 은닉(information hiding), 정보 감춤, 정보 은폐는 컴퓨터 과학 분야에서 컴퓨터 프로그램에서 변경될 가능성이 가장 높은 설계 결정을 분리하여 설계 결정이 변경될 경우 프로그램의 다른 부분이 광범위하게 수정되지 않도록 보호하는 원칙이다. 보호에는 구현(세부 사항은 변경될 수 있음)으로부터 프로그램의 나머지 부분을 보호하는 안정적인 인터페이스 제공이 포함된다. 다른 방식으로 작성된 정보 은닉은 프로그래밍 언어 기능(예: 개인 변수) 또는 명시적인 내보내기 정책을 사용하여 클라이언트가 클래스 또는 소프트웨어 구성 요소의 특정 측면에 액세스하지 못하도록 방지하는 기능이다.

 개요 
'캡슐화'라는 용어는 종종 정보 은닉과 같은 의미로 사용된다. 하지만 둘 사이의 차이점에 모두가 동의하는 것은 아니다. 정보 은닉이 원칙이고 캡슐화가 기술이라고 생각할 수도 있다. 소프트웨어 모듈은 정보를 모듈이나 인터페이스를 제공하는 다른 구성으로 캡슐화하여 정보를 숨긴다.

정보 은닉의 일반적인 용도는 데이터의 물리적 저장 레이아웃을 숨겨 데이터가 변경될 경우 변경 사항이 전체 프로그램의 작은 하위 집합으로 제한되도록 하는 것이다. 예를 들어 부동소수점 스칼라 변수 3개 이상을 사용하는 프로그램에서 3차원 점(x, y, z)을 표현한다면, 그 표현은 크기가 3인 단일 배열 변수인 정보 은닉으로 설계된 모듈로 변경된다. 해당 변경으로부터 프로그램의 나머지 부분을 보호한다는 점에 주의가 필요하다.

객체 지향 프로그래밍에서 정보 은닉(유형 중첩을 통한)는 불확실한 구현(설계 결정)에 대한 코드의 종속성을 잘 정의된 인터페이스로 전환하여 소프트웨어 개발 위험을 줄인다. 인터페이스의 클라이언트는 인터페이스를 통해서만 작업을 수행하므로 구현이 변경되더라도 클라이언트는 변경할 필요가 없다.

 캡슐화 

 같이 보기 
 상속 (객체 지향 프로그래밍)
 모듈성 (프로그래밍)
 가상 상속
 변수 영역

 출처 




 각주 

분류:객체 지향 프로그래밍
분류:프로그래밍 원칙