다섯 살도 알 수 있게 · SW공학
캡슐화·정보은닉이 뭐예요?
캡슐화와 정보은닉을, 작가가 서랍 속 메모는 숨기고 완성된 챕터만 제출함으로 건네는 이야기로 풀어봤어요.
편집장이 작가의 서랍 속 메모를 직접 꺼내 고쳐요.서랍 속은 원래 작가만 보던 곳이에요.
다들 서로 서랍에 손을 대니 메모끼리 앞뒤가 안 맞아요.서랍 속을 아무나 건드리면, 메모끼리 앞뒤가 안 맞게 꼬여요.
캡슐화는 서랍 속은 숨기고, 정해진 창구로만 건네는 거예요.서랍 속을 바꿔도 제출함 모양만 그대로면 바깥에선 아무도 몰라요.
안을 감추기서랍은 작가만 열어요
창구로만 공개완성본만 건네요
직접 접근 막기서랍을 남이 못 열어요
안은 바꿔도 돼요창구 모양만 같으면요
미완성 메모는 잠긴 서랍에 두고, 완성된 챕터만 제출함에 넣어요.서랍 속을 바꿔도 제출함 모양만 같으면 바깥에선 아무도 몰라요.
캡슐화해도 설계 자체의 실수는 못 막아요.캡슐화는 '안을 숨기는 것'이지, 설계를 잘 짜는 것까지 보장하진 않아요.
한 줄로
캡슐화·정보은닉은 데이터와 기능을 하나로 묶어 안은 숨기고, 정해진 창구(인터페이스)로만 주고받게 하는 거예요.
캡슐화는 객체의 속성(데이터)과 메서드(기능)를 하나로 묶고, 외부에는 공개(public) 인터페이스만 노출해 내부 구현을 감추는(정보은닉) 객체지향의 핵심 원칙이에요. 내부 구조(비공개/private)를 자유롭게 바꿔도 외부 호출 방식이 그대로면 영향이 없어 변경에 강해지고, 의도치 않은 직접 조작도 막아줘요.
어른들은 이렇게 불러요
- 캡슐화
Encapsulation - 데이터+기능을 하나로 묶기. 안은 숨기고 창구만 공개해요.
- 정보은닉
Information Hiding - 서랍을 잠그는 것. 내부 세부를 바깥에 숨기는 설계 원칙이고, 캡슐화는 이를 이루는 대표 방법이에요.
- 인터페이스(공개 메서드)
Public Interface - 제출함. 바깥과 주고받는 유일한 창구예요.
- private 변수
Private Field - 잠긴 서랍 속 메모. 바깥에서 직접 못 건드려요.
- getter/setter
Getter/Setter - 창구 직원이 메모를 대신 꺼내주는 손. 서랍을 열어주는 대신, 메모를 정해진 방식으로만 건네줘요.
- 모듈화
Modularity - 서랍을 책상마다 따로 두기. 안을 잘 감춘 부품일수록 독립된 모듈로 나누기 쉬워요.
- 리팩토링
Refactoring - 서랍 속 메모를 정리하기. 창구 모양은 그대로 두고 안만 정리해요. → 겉은 그대로, 속만 다시 다듬기
- 단위테스트
Unit Test - 창구에 직접 넣어보는 확인. 제출함(공개 인터페이스)만 보고도 동작을 검증할 수 있어요.
다음 이야기
미리 몰려보는 가짜 독자들 →