Notice
Recent Posts
Recent Comments
Link
«   2026/05   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
Archives
Today
Total
관리 메뉴

ki-sd 님의 블로그

[2026-03-20] 캡슐화(Encapsulation)와 데이터 은닉화 본문

JavaStudy

[2026-03-20] 캡슐화(Encapsulation)와 데이터 은닉화

ki-sd 2026. 4. 13. 17:45

객체 지향의 4대 핵심 특징 중 첫 번째인 '캡슐화'를 학습하며, 데이터를 은닉하는 것이 시스템의 안정성에 어떤 영향을 미치는지 깨달았다.

 

1. 접근 지정자(Access Modifier)의 통제력 클래스와 멤버에 대한 외부 접근을 제한하는 네 가지 보안 단계를 확립했다.

  • private: 오직 같은 클래스 내부에서만 접근 가능 (가장 강력한 은닉).
  • (default): 같은 패키지 내에서만 접근 가능 (접근 지정자를 생략했을 때).
  • protected: 같은 패키지는 물론, 다른 패키지라도 상속 관계인 자식 클래스에서는 접근 가능.
  • public: 패키지나 상속 관계에 상관없이 어디서든 자유롭게 접근 가능.

2. 데이터 은닉화(Data Hiding)의 실전 적용

  • 외부에서 객체의 변수(필드)에 직접 객체.변수 = 값 형태로 접근하여 데이터를 조작하게 두면, 잘못된 값이 입력되어 시스템이 붕괴될 위험이 있다.
  • 따라서 모든 인스턴스 변수는 private으로 선언하여 외부 접근을 원천 차단하고, 오직 검증 로직이 포함된 public 메서드(Getter, Setter)를 통해서만 우회적으로 데이터를 읽고 쓰도록 강제하는 것이 캡슐화의 핵심이다.
  • 실습 적용: 크롤링한 음악 데이터를 관리하는 시스템을 구축하며, 캡슐화를 적용했다. 코드가 길어지는 수고로움이 있지만, 유지보수성과 데이터의 무결성을 획기적으로 끌어올릴 수 있음을 체감했다.