정보처리기사 CBT
종목 메뉴

개념 한 쪽

캡슐화 정의·정보은폐 관계·장점 정리

객체지향의 물음 중 캡슐화는 '묶는다'와 '숨긴다'로 요약된다. 시험에서는 캡슐화의 정의, 정보은폐와의 관계, 장점이 아닌 것 고르기를 묻는다.

2026-10-15 기준 · 정보처리기사 대시보드

이 개념을 문제로 확인하고 싶으면 이 개념 문제 10개 풀기 회원용

가입 없이 오늘의 10문제 바로 풀기 →

시험에 이렇게 나온다

출제기준 단원 「캡슐화」의 공개 문제 3개를 묻는 꼴별로 나누면 이렇습니다.

묻는 꼴문제 수무엇을 묻나
개념 연관 선택1정보은폐와 가장 관련된 개념을 선택한다
정의·용어 매칭1자료와 연산을 한 테두리에 묶는 용어를 묻는다
옳지 않은 문장 고르기(장점·특성)1캡슐화의 장점 또는 설명 중 틀린 것을 고른다

뜻

캡슐화(Encapsulation)는 객체지향 시스템에서 자료 부분과 연산 또는 함수 부분처럼 정보처리에 필요한 기능을 한 테두리 안에 묶는 것이다. 데이터와 그 데이터를 다루는 기능을 하나의 단위로 감싸고 외부에서 내부를 직접 건드리지 못하게 보호한다. 이름 그대로 알약 캡슐에 성분을 감싸 넣는 모습을 떠올리면 된다.

캡슐화는 정보은폐와 가장 밀접하게 이어진다. 정보은폐는 객체 내부의 데이터나 처리 로직을 외부에서 직접 보거나 건드리지 못하도록 숨기는 설계 원칙이고, 캡슐화가 이 원칙을 프로그래밍으로 실현하는 구체적인 기법이다. 원칙을 '왜'라고 하면 캡슐화는 '어떻게'에 해당한다. 비슷한 보기들과의 구분도 중요하다. 클래스는 캡슐화가 이루어지는 설계도이자 단위일 뿐이고, 메시지는 객체 사이의 통신 수단이며, 상속성은 코드 재사용을 위한 개념이라 정보은폐와 직접 대응되지 않는다.

캡슐화의 장점을 거꾸로 묻는 문제가 단골이다. 캡슐화는 정보 은닉과 모듈화를 통해 재사용성을 높이므로, '재사용이 불가능하다'는 설명은 명백한 오답이다. 내부 구현이 숨겨져 있으면 내부 코드가 바뀌어도 외부에 노출된 부분이 같다면 다른 곳에 영향을 주지 않아 변경이 쉽고, 결합도가 낮아지며, 객체 사이의 상호작용이 노출된 접점을 통해서만 일어나 인터페이스가 단순해진다. 다만 캡슐화가 소프트웨어의 분석 단계를 간단하게 만들지는 않는다. 객체와 책임을 정확히 나누는 작업은 오히려 더 정교한 분석·설계를 요구하므로, '분석 단계를 단순화한다'는 보기는 장점이 아니다.

예제

자동차를 운전한다고 하자. 운전자는 핸들과 페달이라는 접점만으로 차를 다룬다. 엔진 내부가 어떻게 돌아가는지 몰라도 되고, 함부로 내부를 만질 수도 없다. 캡슐화된 객체가 이와 같아서, 겉으로 드러난 조작 방법만 쓰고 내부 데이터와 처리 과정은 숨겨 둔다.

회사에서 쓰던 계산 모듈을 다른 프로그램에 다시 쓴다고 하자. 모듈 내부가 캡슐화되어 있으면 겉으로 약속된 사용법만 그대로 지키면 되므로 코드를 처음부터 짜지 않아도 된다. 내부를 고쳐야 할 일이 생겨도 겉모습이 바뀌지 않으면 다른 프로그램들은 영향을 받지 않는다. 이것이 캡슐화가 재사용성을 높인다는 말의 실제 모습이다.

대표 기출 3문항

객체 지향의 기본 원리인 정보은폐와 가장 밀접한 관계가 있는 것은?

  1. 캡슐화(encapsulation)
  2. 클래스(class)
  3. 메시지(message)
  4. 상속성(inheritance)
정답과 해설 보기

정답 ① · 객체 지향의 정보은폐 원리와 가장 밀접한 개념을 고르는 문제이다. 정보은폐는 모듈이나 객체의 내부 구현 세부사항을 외부로부터 감추고 필요한 인터페이스만 노출하는 설계 원칙이다.

정보은폐는 내부 구현을 숨기고 외부와의 상호작용만 노출하는 것으로, 이를 구현하는 핵심 기법이 캡슐화이다.

캡슐화(Encapsulation)의 장점이라고 볼 수 없는 것은?

  1. 소프트웨어 변경시 파급효과를 최소화 한다.
  2. 소프트웨어의 분석단계가 간단해진다.
  3. 소프트웨어 컴포넌트(Component)의 재사용을 쉽게 한다
  4. 캡슐화된 객체 간에 인터페이스가 단순화 된다.
정답과 해설 보기

정답 ② · 캡슐화의 장점이 아닌 것을 고르는 문제이다. 캡슐화는 객체의 내부 자료와 연산을 하나로 묶고 내부 구현을 정보 은닉하여 외부와의 결합도를 낮추는 객체지향 개념이다.

캡슐화는 내부 구현을 감추어 복잡도를 낮추지만, 분석 단계 자체를 단순화시키지는 않으므로 ②가 옳지 않다.

객체지향 시스템에서 자료부분과 연산(또는 함수)부분 등 정보처리에 필요한 기능을 한 테두리에 묶는 것을 무엇이라고 하는가?

  1. Information hiding
  2. Class
  3. Integration
  4. Encapsulation
정답과 해설 보기

정답 ④ · 객체지향에서 자료와 연산을 하나로 묶는 개념을 묻는 문제이다. 캡슐화(Encapsulation)는 객체의 자료부분과 그 자료를 처리하는 연산(메서드)을 하나의 단위로 묶고 외부의 직접 접근을 제한하는 개념이다.

객체지향 프로그래밍에서 데이터(자료)와 메서드(연산)를 하나의 단위로 묶어 외부로부터 보호하는 개념은 캡슐화(Encapsulation)이다.

자주 묻는 물음

캡슐화의 정의를 한 문장으로 쓰면?
자료 부분과 연산(함수) 부분 등 정보처리에 필요한 기능을 한 테두리로 묶고 외부 접근을 제한하는 것이다. 데이터와 그것을 다루는 기능을 하나의 단위로 감싸 내부를 숨긴다.
정보은폐와 캡슐화는 어떤 관계인가요?
정보은폐가 내부 구현을 외부로부터 숨기는 설계 원칙이라면, 캡슐화는 그 원칙을 실현하는 구체적인 기법이다. 정보은폐는 '왜'에, 캡슐화는 '어떻게'에 해당한다.
캡슐화의 장점이 아닌 것은 무엇인가요?
소프트웨어의 분석 단계를 단순화한다는 설명이다. 캡슐화는 재사용성 향상, 변경 파급 최소화, 결합도 감소, 인터페이스 단순화가 장점이며, '재사용이 불가능하다'는 설명도 오답이다.
이 개념 문제 10개 풀기 회원용

정보처리기사 풀이 세트에서 이 개념의 문제 10개를 바로 풀어 보세요.