기출문제/정보처리기사
2021년 1회 정보처리기사 기출문제 3번
엉클지니
2025. 3. 23. 15:56
3. 객체지향 개념에서 연관된 데이터와 함수를 함께 묶어 외부와 경계를 만들고 필요한 인터페이스만을 밖으로 드러내는 과정은?
① 메시지(Message) ❷ 캡슐화(Encapsulation)
③ 다형성(Polymorphism) ④ 상속(Inheritance)
이 문제는 객체지향 개념에서 연관된 데이터와 함수를 함께 묶어 외부와 경계를 만들고 필요한 인터페이스만을 밖으로 드러내는 과정에 대한 질문입니다. 문제를 쉽게 이해할 수 있도록 분석하고 해설하겠습니다. 😊
문제 분석
객체지향 프로그래밍(OOP)에서는 데이터와 함수를 **하나의 단위(객체)**로 묶어 관리하는 개념이 중요합니다. 또한, 객체의 내부 구현은 숨기고, 외부에서 접근할 수 있는 인터페이스만 제공하는 것이 핵심입니다. 이러한 개념을 정확히 설명하는 것이 **캡슐화(Encapsulation)**입니다.
각 보기를 살펴봅시다!
① 메시지(Message)
- 설명: 객체 간의 메시지 전달은 객체지향에서 중요한 개념입니다. 객체는 다른 객체에 메시지를 보내고, 그에 대한 응답을 받습니다. 그러나 캡슐화와는 다른 개념으로, 메시지 전달은 객체 간의 통신을 나타냅니다.
- 결론: 메시지는 객체 간의 통신 개념이지, 데이터와 함수의 묶음을 의미하지 않습니다.
❷ 캡슐화(Encapsulation)
- 설명: 캡슐화는 **연관된 데이터(속성)**와 **함수(메서드)**를 하나의 객체로 묶는 과정입니다. 이렇게 묶인 객체는 내부 구현을 숨기고, 외부에 필요한 인터페이스만 제공하여 데이터의 보호와 접근을 관리합니다.
- 예: 객체의 속성은 외부에서 직접 접근할 수 없고, 메서드를 통해서만 데이터를 변경하거나 가져올 수 있게 합니다.
- 결론: 캡슐화는 데이터와 함수를 묶고, 외부와의 경계를 만드는 핵심 개념입니다. 정답입니다! ✅
③ 다형성(Polymorphism)
- 설명: 다형성은 같은 이름의 메서드가 다양한 방식으로 동작하도록 하는 개념입니다. 즉, 동일한 메서드가 여러 클래스에서 다르게 구현될 수 있게 합니다. 이는 객체지향에서의 다양한 형태를 지원하는 특성으로, 캡슐화와는 다릅니다.
- 결론: 다형성은 메서드의 형태나 동작 방식에 관한 개념이지, 데이터와 함수의 묶음을 다루지 않습니다.
④ 상속(Inheritance)
- 설명: 상속은 하위 클래스가 상위 클래스의 속성과 메서드를 상속받아 사용하는 개념입니다. 이를 통해 코드의 재사용성을 높이고, 계층적인 관계를 만듭니다. 그러나 캡슐화와는 다르게 상속은 데이터와 함수의 묶음보다는 클래스 간의 관계를 다루는 개념입니다.
- 결론: 상속은 객체 간의 관계를 나타내는 개념이지, 내부 데이터를 감추고 인터페이스를 제공하는 과정은 아닙니다.
결론
객체지향 개념에서 연관된 데이터와 함수를 함께 묶어 외부와 경계를 만들고, 필요한 인터페이스만을 밖으로 드러내는 과정은 바로 **캡슐화(Encapsulation)**입니다.
정답은 **❷ 캡슐화(Encapsulation)**입니다! ✅
요약표
번호 설명 맞는지?
① | 메시지(Message): 객체 간의 통신, 데이터와 함수의 묶음과는 관련 없음 | 아니오 |
❷ | 캡슐화(Encapsulation): 데이터와 함수를 묶고, 외부와 경계를 만드는 과정 | 맞아요 |
③ | 다형성(Polymorphism): 동일 메서드의 다양한 구현, 데이터와 함수 묶음 아님 | 아니오 |
④ | 상속(Inheritance): 클래스 간의 관계 설정, 데이터와 함수 묶음 아님 | 아니오 |
중요한 포인트 💡
- 캡슐화는 객체의 내부 구현을 숨기고, 외부에서 필요한 인터페이스만 제공하여 객체를 안전하게 다룰 수 있게 하는 중요한 개념입니다.
- 다형성과 상속은 객체지향 프로그래밍의 또 다른 중요한 개념들이지만, 캡슐화와는 다른 역할을 합니다.
😊