캡슐화(Encapsulation)

캡슐화 요약

캡슐화는 데이터(속성)와 이를 처리하는 함수를 하나로 묶는 개념입니다.
인터페이스를 제외한 객체의 세부 내용은 외부에서 접근이 제한되기 때문에, 외부 변경에 의한 영향을 줄일 수 있습니다.
캡슐화된 객체는 재사용성과 응용성이 높습니다.
객체 간 메시지를 주고받을 때 상대 객체의 세부 내용을 몰라도 되므로 인터페이스가 단순해지고, 객체 간 결합도도 낮아집니다.

캡슐화 기출 문제

2024년 1회

04. 객체지향에서 정보 은닉과 가장 밀접한 관계가 있는 것은?

① Encapsulation

② Class

③ Method

④ Instance



해설 보기
정답: ①

캡슐화(Encapsulation)는 객체지향의 핵심 개념 중 하나로, 객체 내부의 세부 구현 내용을 외부에 숨기고 필요한 인터페이스만 공개하는 기법입니다. 따라서 정보 은닉과 가장 밀접한 개념으로 간주됩니다.

② 클래스는 유사한 객체를 묶는 공통된 구조를 표현하는 단위이지만, 정보 은닉 그 자체와는 직접적으로 연결되지는 않습니다.
③ 메서드는 객체가 수행할 수 있는 동작(함수)으로, 상태를 변경할 수 있지만 은닉 자체를 담당하지는 않습니다.
④ 인스턴스는 클래스의 실체화된 객체이므로 정보 은닉의 원리를 적용받는 대상일 뿐 직접적인 개념은 아닙니다.

캡슐화 부가 설명

캡슐화(Encapsulation)는 객체지향 프로그래밍의 핵심 개념 중 하나로, 데이터를 보호하고 코드의 복잡도를 줄이는 데 중요한 역할을 합니다. 오늘은 이 개념이 어떤 의미를 가지는지, 그리고 실무에서 왜 중요한지 간단하게 정리해보겠습니다.

캡슐화의 기본 개념과 의미

캡슐화는 데이터(속성)와 그 데이터를 처리하는 함수를 하나로 묶는 것을 의미합니다. 즉, 객체의 내부 구현은 감추고, 외부에서는 제공된 인터페이스를 통해서만 접근할 수 있도록 만드는 원리입니다. 이를 통해 객체 외부에서 직접 속성에 접근하지 못하게 하여 데이터의 무결성을 보호하고, 모듈 간 결합도를 낮추는 효과가 있습니다.

외부 영향에 강한 구조를 만드는 이유

캡슐화된 객체는 인터페이스를 제외한 세부 내용이 은폐되어 있기 때문에 외부에서 직접적으로 접근하거나 수정할 수 없습니다. 이렇게 정보 은닉이 이루어지면 외부 모듈의 변경이 내부 동작에 미치는 영향을 최소화할 수 있습니다. 즉, 외부에서 내부 구현을 몰라도 객체와 상호작용할 수 있기 때문에 유지보수와 확장성이 뛰어난 구조를 만들 수 있게 되는 것이죠.

재사용성과 응용성의 향상

캡슐화는 객체의 독립성을 높여주기 때문에 동일한 객체를 다양한 곳에서 재사용하거나 응용하기가 수월해집니다. 특정 기능이 객체 내부에 잘 정의되어 있으면, 그 객체만 별도로 떼어내 다른 프로젝트나 모듈에 적용하는 것도 어렵지 않게 됩니다. 따라서 재사용성과 응용성이 크게 높아지며 개발 생산성도 함께 향상됩니다.

객체 간 결합도를 낮추는 구조

캡슐화는 객체 간의 메시지 전달을 중심으로 동작합니다. 이때 객체는 상대 객체의 세부 구현을 몰라도 인터페이스만 알면 메시지를 주고받을 수 있기 때문에, 서로 강하게 결합될 필요가 없습니다. 인터페이스가 단순해지면서 자연스럽게 결합도는 낮아지고, 시스템 전체가 더 유연해지는 효과를 얻게 되는 것이죠. 결과적으로 유지보수가 쉬운 코드, 변경에 유연한 구조가 만들어집니다.

자료 흐름도(DFD)

Subscribe
Notify of
0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x