정보 은닉 (Information Hiding)

I. 인터페이스로만 객체 접근, 정보 은닉

가. 정보 은닉(Information Hiding)의 개념

코드 내부 데이터와 메서드를 숨기고 공개 인터페이스를 통해서만 접근이 가능하도록 하는 코드 보안 기술

나. 정보 은닉의 목적

– 객체에 포함된 정보의 손상과 오용 방지
– 데이터 변경 시에도 다른 객체에 영향 없이 독립성 유지
– 객체를 부품화하여 이식성과 호환성 확보

 

II. 정보 은닉을 위한 접근제한자 및 코드

가. 정보 은닉을 위한 접근제한자

접근제한자접근 권한특징
public모든 클래스, 패키지모든 권한 부여
private해당 클래스 내최소 권한 부여
protected동일 패키지 내상속 시 타패키지 사용
package동일 패키지 내default 접근제한자

나. 정보 은닉 코드

public class Car{
private int speed;  // 클래스 내 사용 가능
public void setSpeed(int speed){ // speed 변수 값 입력
  this.speed = speed;
}
public int getSpeed(){ // speed 변수 값 출력
return speed;
}
}

– speed 변수는 클래스 내에서만 사용되며, setSpeed, getSpeed 메서드를 통해서만 변수 접근

 

III. 정보 은닉과 캡슐화의 비교

항목정보 은닉캡슐화
목적코드의 보호데이터/함수 모듈화
특징I/F를 통해서만 접근속성/메서드 기능 집합
기법public, private 등Class
장점무결성, 보안성 확보재사용성, 유지보수용이

콘텐츠 사용 시 출처 표기 부탁 드리고, 궁금한 점이나 의견은 댓글 남겨주세요^^