본문 바로가기
프로그래밍 언어/JAVA

[Java] 데이터 접근 권한 설정 - 캡슐화

by 티옌.liy 2022. 11. 12.

객체지향 프로그래밍의 3대 꽃 중 하나인 캡슐화는

데이터 보안을 위한 접근 권한 설정용으로 사용하는데

 

우리가 일상생활에서 가족, 친구, 회사 동료 등

누구인가에 따라 공유하는 정보를 다르게 주는데

남에게는 그런 정보 공유를 일체 안하지 않는가.

 

캡슐화가 딱 저거다.

간단하지 않은가.


1. 캡슐화 (encapsulation)

사전적 정의는 객체의 속성과 행위를 하나로 묶어, 실제 구현내용을 감추어 은닉하는 방법론이라 한다.

즉, 객체의 맴버 변수와 메서드를 클래스로 묶고, 외부에서 객체의 값이나 기능에 접근 못하게 숨기는 것이다.

 

접근 제어 지시자로 접근 권한을 부여하는데, 아래 글에 정리해두었다.

 

[Java] 접근 제어 지시자(private, protected, public)

1. 접근 제어 지시자 (Access Modifier) 클래스 외부에서 클래스의 맴버 변수, 메서드, 생성자를 접근할 수 있는 권한을 설정하는 키워드이다. 1.1 비공개 (private) private 지시자는 같은 클래스 내부에서

tyen.tistory.com

 

 

2. 캡슐화 사용 목적

캡슐화를 사용하는 이유가 여러가지 인데, 아래 2가지 장점 때문에 사용한다.

 

2.1 중복 코드 예방

대부분의 정보는 캡슐화로 은폐하고, 통합된 인터페이스를 제공하여 일관된 기능을 구현한다.

즉, 실제 이용자들이 알 필요 없는 부분은 숨겨서 혼란을 줄이고 사용하기 좋게 편의성을 제공하는 것이다.

 

2.2 버그 발생 최소화

객체가 데이터를 처리하는 방식을 비공개 함으로써, 외부에서 임의로 버그를 발생하지 않게 한다.

즉, 내부 인원 외에 다른 사람이 임의로 값이나 기능을 수정하면 대참사가 벌어지기에, 보안등급으로 제한하는 것이다.


객체 지향 언어를 하면서 캡슐화를 하지 않는건

군대에서 보안을 하지 않는것과 같아서

수 많은 버그와 보안 이슈로 야밤의 등대가 된다.

 

특히, C언어를 막 배운 1학년 학부생이

public을 남발하면서 캡슐화를 안하고

코딩하는 경우를 보게되는데

 

향후, 상사와 사수의 사랑의 매가

public하게 변하므로

미리 캡슐화하는 습관을 들이는게 좋다.

댓글