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 |
장점 | 무결성, 보안성 확보 | 재사용성, 유지보수용이 |