N° 01 — 목록
'parnas' (1)
-
Software Architecture/PrinciplesPrinciples - 05. 캡슐화와 정보 은닉
계기판 뒤에 엔진이 있다 — 캡슐화와 정보 은닉운전자가 자동차를 몰 때 보는 건 계기판이다 — 속도계, 연료 게이지, 엔진 경고등. 엔진 내부의 실린더 배열이나 점화 타이밍은 보이지 않는다. 엔진이 터보에서 하이브리드로 바뀌어도, 계기판이 같으면 운전자는 모른다. 이것이 캡슐화(encapsulation)다 — 내부 구현을 숨기고 외부에 필요한 것만 노출한다.David Parnas는 1972년 논문에서 모듈을 나누는 기준으로 "무엇이 변할 수 있는가"를 제시했다. 변할 가능성이 있는 것을 모듈 안으로 숨기고, 변하지 않는 것만 인터페이스로 노출한다. 그러면 내부가 바뀌어도 외부(다른 모듈)가 영향을 받지 않는다.캡슐화의 두 층 — 데이터 은닉과 구현 은닉데이터 은닉은 객체의 내부 상태(필드)를 외부에서 직..