정보처리기사(필기) 📝 01-1. 소프트웨어 설계 - 오답 정리
Q. 정형 기술 검토(FTR)의 지침사항으로 옳은 내용 모두를 나열한 것은?
✔️ ① 의제를 제한한다.
✔️ ② 논쟁과 반박을 제한한다.
✔️ ③ 문제 영역을 명확히 표현한다.
④ 참가자의 수를 제한하지 않는다.
정형 기술 검토 지침사항
- 의제와 그 범위를 유지하라.
- 참가자의 수를 제한하라.
- 각 체크리스트를 작성하고, 자원과 시간 일정을 할당하라.
- 개발자가 아닌 제품의 검토에 집중하라.
- 논쟁과 반박을 제한하라.
- 검토 과정과 결과를 재검토하라.
Q. 다음 중 추상화(Abstraction) 방법이 아닌 것은?
① 제어 추상화
② 기능 추상화
③ 데이터 추상화
✔️ ④ 구조 추상화
추상화 방법
- 제어 추상화: 시스템의 제어 흐름을 단순화하는 방법
- 기능 추상화: 시스템의 기능을 단순화하는 방법
- 데이터 추상화: 시스템의 데이터를 단순화하는 방법
Q. 소프트웨어 아키텍처 모델 중 MVC(Model-View-Controller)와 관련한 설명으로 틀린 것은?
① MVC 모델은 사용자 인터페이스를 담당하는 계층의 응집도를 높일 수 있고, 여러 개의 다른 UI를 만들어 그 사이의 결합도를 낮출 수 있다.
② 모델(Model)은 애플리케이션이 “무엇”을 할 것인지를 정의하는 부분으로, 내부 비즈니스 로직을 처리하기 위한 역할을 할 것이다.
✔️ ③ 뷰(View)는 모델(Model)과 제어(Controller)가 각각 무엇을 해야 할지를 알고 있어야 한다.
④ 제어(Controller)는 모델(Model)에 명령을 보냄으로써 모델의 상태를 변경할 수 있다.
MVC 모델
- Model: 데이터와 비즈니스 로직을 관리한다. 사용자가 편집하길 원하는 모든 데이터를 가지고 있어야 한다.
- View: 모델에 있는 데이터를 사용자 인터페이스에 보이는 역할(UI)를 담당한다. 모델이 가지고 있는 정보를 따로 저장해서는 안 된다.
- Controller: 모델에 명령을 보냄으로써 모델의 상태를 변경할 수 있다. 사용자의 요청을 받아서 그 요청을 분석하고, 필요한 업무 처리 로직을 호출한다. 모델이나 뷰에 대해서 알고 있어야 한다.
Q. GoF(Gang of Four) 디자인 패턴과 관련한 설명으로 틀린 것은?
① 디자인 패턴을 목적(Purpose)으로 분류할 때 생성, 구조, 행위로 분류할 수 있다.
✔️ ② Bridge Pattern은 기존에 구현되어 있는 클래스에 기능 발생 시 기존 클래스를 재사용할 수 있도록 중간에서 맞춰주는 역할을 한다.
③ Behavioral Pattern은 클래스나 객체들이 상호작용하는 방법과 책임을 분산하는 방법을 정의한다.
④ Factory Pattern은 상위 클래스에서 객체를 생성하는 인터페이스를 정의하고, 하위 클래스에서 인스턴스를 생성하도록 하는 방식이다.
- Bridge Pattern: 기능 클래스 계층과 구현의 클래스 계층을 연결하고, 구현부에서 추상 계층을 분리하여 각자 독립적으로 변형할 수 있도록 해주는 패턴이다.
- 기존에 구현되어 있는 클래스에 기능 발생 시 기존 클래스를 재사용할 수 있도록 중간에서 맞춰주는 역할을 한다. ⇒ Adaptor Pattern
Q. 럼바우의 객체지향 분석 기법에서 자료 흐름도를 이용하여 여러 프로세스 간의 자료 흐름을 기술하는 모델링은?
① Dynamic Modeling
② Object Modeling
✔️ ③ Functinal Modeling
④ Static Modeling
- 자료 흐름도는 데이터 흐름을 표현하는 다이어그램으로, 기능 모델링에서 프로세스 간의 데이터 흐름을 기술하는 데 사용된다.
Q. GoF의 디자인 패턴에서 행위 패턴에 속하는 것은?
① Builder
✔️ ② Visitor
③ Prototype
④ Bridge
GoF 디자인 패턴
- 구조: Adaptor, Bridge, Composite, Decorator, Facade, Flyweight, Proxy
- 행위: Chain of Responsibility, Iterator, Command, Interpreter, Memento, Observer, State, Strategy, Visitor, Template Method, Mediator
- 생성: Factory, Singleton, Prototype, Builder, Abstract Factory
Q. 객체지향 분석 방법론 중 Coad-Yourdon 방법에 해당하는 것은?
✔️ ① E-R 다이어그램을 사용하여 객체의 행위를 데이터 모델링하는 데 초점을 둔 방법이다.
② 객체, 동적, 기능 모델로 나누어 수행하는 방법이다.
③ 미시적 개발 프로세스와 거시적 개발 프로세스를 모두 사용하는 방법이다.
④ Use Case를 강조하여 사용하는 방법이다.
Q. 메시지 지향 미들웨어에 대한 설명으로 틀린 것은?
✔️ ① 느리고 안정적인 응답보다는 즉각적인 응답이 필요한 온라인 업무에 적합하다.
② 독립적인 애플리케이션을 하나의 통합된 시스템으로 묶기 위한 역할을 한다.
③ 송식측과 수신측의 연결 시 메시지 큐를 활용하는 방법이 있다.
④ 상이한 애플리케이션 간 통신을 비동기 방식으로 지원한다.
MOM(Message-Oriented Middleware)
- 메시지 기반의 비동기형 메시지를 전달하는 방식의 미들웨어다.
- 온라인 업무보다는 이기종? 분산 데이터 시스템의 데이터 동기를 위해 많이 사용한다.
Q. HIPO에 대한 설명으로 옳지 않은 것은?
① HIPO는 일반적으로 가시적 도표(Visual Table), 총체적 다이어그램(Overview Diagram), 세부적 다이어그램(Detail Diagram)으로 구성된다.
✔️ ② 가시적 도표는 시스템에 있는 어떤 특별한 기능을 담당하는 부분의 입력, 처리, 출력에 대한 전반적인 정보를 제공한다.
③ HIPO 기법은 문서화의 도구 및 설계 도구 방법을 제공하는 기법이다.
④ HIPO의 기본 시스템 모델은 입력, 처리, 출력으로 구성된다.
가시적 도표
- 시스템의 전체 기능과 흐름을 가시적으로 보여주는 도표이다.
- 목차와 비슷한 역할을 하며, 문서의 구조를 시각적으로 정리하여 내용을 빠르게 찾거나 이해할 수 있도록 도와준다.
Q. 럼바우의 분석 기법에서 다음 설명에 해당하는 것은?
- 자료 흐름도를 이용하여 다수의 프로세스들 간의 자료 흐름을 중심으로 처리 과정을 표현한 모델링이다.
- 어떤 데이터를 입력하여 어떤 결과를 구할 것인지를 표현하는 것이다.
✔️ ① 기능 모델링
② 동적 모델링
③ 객체 모델링
④ 정적 모델링
Q. 객체지향 기법에서 클래스들 사이의 ‘부분-전체(part-whole)’ 관계 또는 ‘부분(is-a-part-of)’의 관계로 설명되는 연관성을 나타내는 용어는?
① 일반화
② 추상화
③ 캡슐화
✔️ ④ 집단화
객체지향 기법에서의 관계성
- is member of: 연관성(Association), 참조 및 이용 관계
- is part of: 집단화(Aggregation), 객체 간의 구조적인 집약 관계
- is a: 일반화(Generalization), 특수화(Specializtion), 클래스 간 개념적인 포함 관계
Q. 대표적으로 DOS 및 Unix 등의 운영체제에서 조작을 위해 사용하던 것으로, 정해진 명령 문자열을 입력하여 시스템을 조작하는 사용자 인터페이스는?
① GUI (Graphical User Interface)
✔️ ② CLI (Command Line Interface)
③ CUI (Cell User Interface)
④ MUI(Mobile User Interface)
사용자 인터페이스의 종류
- CUI: 문자 방식의 명령어 입력 사용자 인터페이스
- GUI: 그래픽 환경 기반의 마우스 입력 사용자 인터페이스
- WUI: 인터넷과 웹 브라우저를 통해 웹페이지를 열람하고 조작하는 인터페이스
- CLI: 사용자가 컴퓨터 자판 등을 이용해 명령 문자열을 입력하여 체계를 조작하는 인터페이스
Q. 개체-관계(E-R 모델)에 대한 설명으로 옳지 않은 것은?
① 개체 타입과 관계 타입을 이용해서 현실 세계를 개념적으로 표현하는 방법이다.
② E-R 다이어그램은 E-R 모델을 그래프 방식으로 표현한 것이다.
③ E-R 다이어그램의 다이아몬드 형태는 관계 타입을 표현하며, 연관된 개체 타입들을 링크로 연결한다.
✔️ ④ 현실 세계의 자료가 데이터베이스로 표현될 수 있는 물리적 구조를 기술하는 것이다.
개체 관계도(ERD, Entity-Relationship Diagram)
- 데이터 베이스 설계 단계에서 데이터 구조들과 그들간의 관계를 표현하는 방법이다.
- 현실 세계의 자료가 데이터베이스로 표현될 수 있는 개념적 구조를 기술하는 것이다.
Q. 소프트웨어 재공학의 주요 활동 중 다음 설명에 해당하지 않는 것은?
“기존 소프트웨어를 분석하여 소프트웨어 개발 과정과 데이터 처리 과정을 설명하는 분석 및 설계 정보를 재발견하거나 다시 만들어내는 작업”
① Analysis
✔️ ② Reverse Engineering
③ Restructuring
④ Migration
역공학(Reverse Engineering)
- 현재 프로그램으로부터 데이터, 아키텍처, 그리고 절차에 관한 분석 및 설계 정보를 추출하는 작업이다.
Q. 소프트웨어 품질 목표 중 정해진 조건 아래에서 소프트웨어 제품의 정확하고 일관된 결과를 얻기 위해 요구된 기능을 오류 없이 수행하는 정도의 품질 기준을 갖는 것은?
① Intergrity
② Flexibility
③ Efficiency
✔️ ④ Reliability
소프트웨어 품질 목표
- 정확성(Correctness): 사용자의 요구 기능을 충족시키는 정도를 의미한다.
- 신뢰성(Reliability): 정확하고 일관된 결과를 얻기 위해 요구된 기능을 오류 없이 수행하는 정도를 의미한다.
- 효율성(Efficiency): 요구되는 기능을 수행하는 데 필요한 자원의 소요 정도나 자원의 낭비 정도를 의미한다.
- 무결성(Integrity): 허용되지 않는 사용이나 자료의 변경을 제어하는 정도를 의미한다.
- 이식성(Portability): 다양한 하드웨어 환경에서도 운용 가능하도록 쉽게 수정될 수 있는 정도를 의미한다.