본문 바로가기
정보처리기사

[소프트웨어 설계] 17. 객체지향

by reve5 2022. 2. 26.

2. 객체지향 프로그램에서 데이터를 추상화하는 단위는?
① 메소드 ② 클래스
③ 상속성 ④ 메시지


>> 정답 2번

 

클래스는 캡슐화를 통해 정보은닉이 되면서 데이터를 복제 상속할 수 있게 되었다. 

추상화란 기능의 공통적인 부분이므로 클래스는 상속 및 복제를 통해 공통적인 기능을 제공한다.

 


3. 객체지향 기법에서 클래스들 사이의 '부분-전체(part-whole)' 관계 또는 '부분(is-a-part-of)'의 관계로 설명되는 연관성을 나타내는 용어는?
① 일반화 ② 추상화
③ 캡슐화 ④ 집단화

>> 정답 4번

 



4. 객체지향 기법의 캡슐화(Encapsulation)에 대한 설명으로 틀린 것은?
① 인터페이스가 단순화 된다.
② 소프트웨어 재사용성이 높아진다.
③ 변경 발생 시 오류의 파급효과가 적다.
④ 상위 클래스의 모든 속성과 연산을 하위 클래스가 물려받는 것을 의미한다.

>> 정답 4번

4번은 상속에 대한 이야기다






7. 객체지향에서 정보 은닉과 가장 밀접한 관계가 있는 것은?
① Encapsulation ② Class
③ Method ④ Instance


>> 정답 1번

1번 캡슐화 영어 표현

2번 클래스

3번 메소드

4번 인스턴스 = 객체


4. 객체지향 기법에서 같은 클래스에 속한 각각의 객체를 의미하는 것은?
① instance ② message
③ method ④ module


>> 정답 1번

 

1번 인스턴스 = 객체


5. 객체지향 설계에서 객체가 가지고 있는 속성과 오퍼레이션의 일부를 감추어서 객체의 외부에서는 접근이 불가능하게 하는 개념은?
① 조직화(Organizing)
② 캡슐화(Encapsulation)
③ 정보은닉(Infomation Hiding)
④ 구조화(Structuralization)


>>
2021년 2회 기준 2번 3번 둘다 정답



11. 객체에게 어떤 행위를 하도록 지시하는 명령은?
① Class ② Package
③ Object ④ Message


>> 정답 4번


3. 객체지향 개념에서 연관된 데이터와 함수를 함께 묶어 외부와 경계를 만들고 필요한 인터페이스만을 밖으로 드러내는 과정은?
① 메시지(Message)
② 캡슐화(Encapsulation)
③ 다형성(Polymorphism)
④ 상속(Inheritance)


>> 정답 2번


2. 클래스 다이어그램의 요소로 다음 설명에 해당하는 용어는?

- 클래스의 동작을 의미한다.
- 클래스에 속하는 객체에 대하여 적용될 메서드를 정의한 것이다.
- UML에서는 동작에 대한 인터페이스를 지칭한다고 볼 수 있다.

① Instance ② Operation
③ Item ④ Hiding


>> 정답 2번


9. 객체지향의 주요 개념에 대한 설명으로 틀린 것은?
① 캡슐화는 상위클래스에서 속성이나 연산을 전달받아 새로운 형태의 클래스로 확장하여 사용하는 것을 의미한다.
② 객체는 실세계에 존재하거나 생각할 수 있는 것을 말한다.
③ 클래스는 하나 이상의 유사한 객체들을 묶어 공통된 특성을 표현한 것이다.
④ 다형성은 상속받은 여러 개의 하위 객체들이 다른 형태의 특성을 갖는 객체로 이용될 수 있는 성질이다.


>> 정답 1번


https://www.youtube.com/watch?v=EKQvA0692kU&list=PLKpxllD6C8CnkSWfqRJsHOYtbBFnvtrcY&index=18 


절차(구조적) 지향 > 프로그램을 하나의 큰 절차(순서)로 구성


데이터
상수 = 변하지 않는 것
변수 = 의미(값)을 넣을 수 있는 것
배열 = 같은 타입의 여러개의 의미(값)을 포함한 것
구조체 = 서로 다른 종류의 데이터를 포함한 것
데이터 = 입력된 값 그 자체
정보=  별도의 의미를 부여하는 데이터

기능
실행문 명령을 실행하는 문장
분기문 조건에 따라 실행하게 하는 문장, 조건제어
반복문 반복하여 실행하는 문장, 반복제어, 루프문
함수 원할때만 여러번 반복할 수 하는 문장

모든 데이터 타입의 집합체 = 구조체를 함수로 결과를 내는 게 일반적인 절차지향 프로그램 구조

>> 절차 지향 프로그램은 프로그램을 한 덩어리로 구성(하나의 큰 절차(순서)로 구성 따라서 원하지 않는 접근을 차단할 방법이 없다.

데이터와 기능을 묶어서 캡슐화를 한다면?

정보은닉 가능
재사용 및 확장(유지보수) 용의함
>> 이렇게 묶인 요소(데이터구조 + 함수)를 클래스라고 한다.

클래스 = 데이터 구조 + 함수 >> 캡슐화(정보은닉, 재사용, 확장(유지보수)

클래스 재사용 = 복제 = 인스턴스화(복제과정)
복제된 결과물 = 인스턴스 = 객체(결과물 통칭)

객체 = 같은 형태, 다른 내용 가능

클래스 확장 > 상속

상속 : 해당 클래스(데이터 구조 + 함수) + A를 더할 수 있다 >> 객체 생성도 가능


위의 모두 객체지향에 속한 개념

객제지향 = 정보은닉, 재사용, 확장(유지보수)
>> 여러 객체들이 서로 메시지를 보내면서 기능 및 데이터 사용 요청, 결과를 통해 프로그래밍이 진행된다.


정보은닉 = 캡슐화 > 클래스(데이터 구조, 함수)
재사용 = 복제 = 인스턴스 = 객체
확장(유지보수) = 상속 

객체 지향의 최종목표 = 다형성

여러 기능을 할 수 있는 객체에게 특정 기능만 하도록 해서 하나의 것에서 여러 가지를 할 수 있도록 하는 기능 (유튜브를 보는 것이 정확)


댓글