안녕하세요! 꿈꾸me입니다~
오늘은 2022년도 1회 정보처리기사 필기 제1과목 기출문제 해설을 올립니다.
추후에 차근차근 나머지 과목들에 대해서도 올릴 테니 기다려주세요~

정보처리기사 필기 2022년도 1회 제1과목 : 소프트웨어 설계 기출문제 해설
(아래 문제 해설은 가답안을 이용한 것으로, 최종 확정된 답안이 나오면 추가 수정하겠습니다!)
(해당 문제들의 원저작권은 자격검정 시행기관인 한국산업인력공단에 있습니다.)
제1과목 : 소프트웨어 설계
1. User Interface 설계 시 오류 메시지나 경고에 관한 지침으로 가장 거리가 먼 것은? 4번
1) 메시지는 이해하기 쉬워야 한다.
2) 오류로부터 회복을 위한 구체적인 설명이 제공되어야 한다.
3) 오류로 인해 발생될 수 있는 부정적인 내용을 적극적으로 사용자들에게 알려야 한다,
4) 소리나 색의 사용을 줄이고 텍스트로만 전달하도록 한다.
: 텍스트로만 전달하면 오히려 알아차리기 어려울 수 있음
2. 다음 중 애자일(Agile) 소프트웨어 개발에 대한 설명으로 틀린 것은? 2번
1) 공정과 도구보다 개인과의 상호작용을 더 가치 있게 여긴다.
2) 동작하는 소프트웨어보다는 포괄적인 문서를 가치 있게 여긴다.
3) 계약 협상보다는 고객과의 협력을 가치 있게 여긴다.
4) 계획을 따르기보다 변화에 대응하기를 가치 있게 여긴다.
: 애자일 개발 4가지 핵심 가치를 보자.
1 - 프로세스와 도구보다는 개인과 상호작용에 더 가치를 둔다.
2 - 방대한 문서보다는 실행되는 SW에 더 가치를 둔다.
3 - 계약 협상보다는 고객과 협업에 더 가치를 둔다.
4 - 계획을 따르기보다는 변화에 반응하는 것에 더 가치를 둔다.
3. 소프트웨어 설계에서 요구사항 분석에 대한 설명으로 틀린 것은? 3번
1) 소프트웨어가 무엇을 해야 하는가를 추적하여 요구사항 명세를 작성하는 작업이다.
2) 사용자의 요구를 추출하여 목표를 정하고 어떤 방식으로 해결할 것인지 결정하는 단계이다.
3) 소프트웨어 시스템이 사용되는 동안 발견되는 오류를 정리하는 단계이다.
4) 소프트웨어 개발의 출발점이면서 실질적인 첫 번째 단계이다.
: 요구사항 분석은 소프트웨어 개발의 실제적인 첫 단계로 개발 대상에 대한 사용자의 요구사항을 이해하고 문서화(명세화)하는 활동을 의미한다. 보기 3번 같은 경우와는 관련이 없다.
4. 객체 지향 기법에서 상위 클래스의 메소드와 속성을 하위 클래스가 물려받는 것을 의미하는 것은? 4번
1) Abstraction
2) Polymorphism
3) Encapsulation
4) Inheritance
: 위 문제는 상속(Inheritance)을 의미하는 문장이다.
참고로 보기 1번은 추상화, 보기 2번은 다형성, 보기 3번은 캡슐화를 뜻한다.
5. 설계 기법 중 하향식 설계 방법과 상향식 설계 방법에 대한 비교 설명으로 가장 옳지 않은 것은? 4번
1) 하향식 설계에서는 통합 검사 시 인터페이스가 이미 정의되어 있어 통합이 간단하다.
2) 하향식 설계에서 레벨이 낮은 데이터 구조의 세부 사항은 설계 초기 단계에서 필요하다.
3) 상향식 설계는 최하위 수준에서 각각의 모듈들을 설계하고 이러한 모듈이 완성되면 이들을 결합하여 검사한다.
4) 상향식 설계에서는 인터페이스가 이미 성립되어 있지 않더라도 기능 추가가 쉽다.
: 상향식 설계에서는 인터페이스가 이미 성립되어 있지 않아 기능 추가가 어렵다.
6. 자료흐름도(DFD)의 각 요소별 표기 형태의 연결이 옳지 않은 것은? 3번
1) Process : 원
2) Data Flow : 화살표
3) Data Store : 삼각형
4) Terminator : 사각형
: 자료흐름도의 4가지 기본 요소 중 Data Store(자료 저장소)은 삼각형이 아닌 〓 두 줄 형태이고 이 안에 자료 저장소의 이름을 기입한다.
7. 소프트웨어 개발에 이용되는 모델(Model)에 대한 설명 중 거리가 먼 것은? 4번
1) 모델은 개발 대상을 추상화하고 기호나 그림 등으로 시각적으로 표현한다.
2) 모델을 통해 소프트웨어에 대한 이해도를 향상할 수 있다.
3) 모델을 통해 이해 당사자 간의 의사소통이 향상된다.
4) 모델을 통해 향후 개발될 시스템의 유추는 불가능하다.
: 모델을 통해 향후 개발될 시스템을 유추할 수 있다.
8. 다음의 설명에 해당하는 언어는? 3번
객체 지향 시스템을 개발할 때 산출물을 명세화, 시각화, 문서화하는데 사용된다. 즉, 개발하는 시스템을 이해하기 쉬운 형태로 표현하여 분석가, 의뢰인, 설계자가 효율적인 의사소통을 할 수 있게 해준다. 따라서, 개발 방법론이나 개발 프로세스가 아니라 표준화된 모델링 언어이다.
1) JAVA
2) C
3) UML
4) Python
: 시스템 개발 과정에서 의사소통이 원활히 이루어지도록 표준화한 대표적인 객체 지향 모델링 언어는 'UML(Unified Modeling Language)'이다.
9. 다음 내용이 설명하는 UI설계 도구는? 2번
- 디자인, 사용방법설명, 평가 등을 위해 실제 화면과 유사하게 만든 정적인 형태의 모형
- 시각적으로만 구성 요소를 배치하는 것으로 일반적으로 실제로 구현되지는 않음
1) 스토리보드 (Storyboard)
2) 목업 (Mockup)
3) 프로토타입 (Prototype)
4) 유스케이스(Usecase)
: 위 설명은 '목업'에 해당되는 내용으로, 목업은 디자인, 사용 방법 설명, 평가 등을 위해 와이어프레임보다 좀 더 실제 화면과 유사하게 만든 정적인 형태의 모형이다. 또한 시각적으로만 구성 요소를 배치하는 것으로 실제로 구현되지는 않는다. 목업 툴에는 대표적으로 파워 목업, 발사믹 목업 등이 있다.
10. 애자일(Agile) 기법 중 스크럼(Scrum)과 관련된 용어에 대한 설명이 틀린 것은? 3번
1) 스크럼 마스터(Scrum Master)는 스크럼 프로세스를 따르고, 팀이 스크럼을 효과적으로 활용할 수 있도록 보장하는 역할 등을 맡는다.
2) 제품 백로그(Product Backlog)는 스크럼 팀이 해결해야 하는 목록으로 소프트웨어 요구사항, 아키텍쳐 정의 등이 포함될 수 있다.
3) 스프린트(Sprint)는 하나의 완성된 최종 결과물을 만들기 위한 주기로 3달 이상의 장기간으로 결정된다.
4) 속도(Velocity)는 한 번의 스프린트에서 한 팀이 어느 정도의 제품 백로그를 감당할 수 있는지에 대한 추청치로 볼 수 있다.
: '스프린트'는 실제 개발 작업을 진행하는 과정으로, 보통 2~4주 정도의 기간 내에서 진행한다.
참고로 애자일 모형은 스프린트 또는 이터레이션이라고 불리는 짧은 개발 주기를 반복하며, 반복되는 주기마다 만들어지는 결과물에 대한 고객의 평가와 요구를 적극 수용한다.
11. UML 다이어그램 중 정적 다이어그램이 아닌 것은? 3번
1) 컴포넌트 다이어그램
2) 배치 다이어그램
3) 순차 다이어그램
4) 패키지 다이어그램
: 순차 다이어그램은 동적 다이어그램이다.
참고로 정적 모델링에서는 주로 구조적 다이어그램을 사용하고, 동적 모델링에서는 주로 행위 다이어그램을 사용한다.
구조적 다이어그램에는 클래스 다이어그램, 객체 다이어그램, 컴포넌트 다이어그램, 패키지 다이어그램 등이 있고, 행위 다이어그램에는 유스케이스 다이어그램, 시퀀스 다이어그램, 상태 다이어그램, 활동 다이어그램 등이 있다.
12. LOC 기법에 의하여 예측된 총 라인수가 36000라인, 개발에 참여할 프로그래머가 6명, 프로그래머들의 평균 생산성이 월간 300라인일 때 개발에 소요되는 기간을 계산한 결과로 가장 옳은 것은? 4번
1) 5개월
2) 10개월
3) 15개월
4) 20개월
: LOC(원시 코드 라인 수; source Line of Code)기법은 상향식 비용 산정 기법 중 하나로, 소프트웨어 각 기능의 원시 코드 라인 수의 비관치, 낙관치, 기대치를 측정하여 예측치를 구하고 이를 이용하여 비용을 산정하는 기법이다.
개발에 소요되는 기간(개발기간) = 노력(인월)/투입 인원 = 120/6 = 20개월
노력(인월) = LOC/1인당 월평균 생산 코드 라인 수 = 36000/300 = 120명
13. 클래스 설계 원칙에 대한 바른 설명은? 2번
1) 단일 책임 원칙 : 하나의 클래스만 변경 가능해야 한다.
2) 개방-폐쇄의 원칙 : 클래스는 확장에 대해 열려 있어야 하며 변경에 대해 닫혀있어야 한다.
3) 리스코프 교체의 원칙 : 여러 개의 책임을 가진 클래스는 하나의 책임을 가진 클래스로 대체되어야 한다,
4) 의존관계 역전의 원칙 : 클라이언트는 자신이 사용하는 메소드와 의존관계를 갖지 않도록 해야 한다.
: 개방-폐쇄의 원칙은 기존의 코드를 변경하지 않고 기능을 추가할 수 있도록 설계해야 한다는 원칙이다. 공통 인터페이스를 하나의 인터페이스로 묶어 캡슐화하는 방법이 대표적이다.
참고로 단일 책임 원칙은 객체는 단 하나의 책임만 가져야 한다는 원칙이고,
리스코프 교체(치환)의 원칙은 자식 클래스는 최소한 자신의 부모 클래스에서 가능한 행위는 수행할 수 있어야 한다는 설계 원칙이고,
의존관계 역전의 원칙은 각 객체들 간의 의존 관계가 성립될 때, 추상성이 낮은 클래스보다 추상성이 높은 클래스와 의존 관계를 맺어야 한다는 원칙이다.
14. GoF(Gangs of Four) 디자인 패턴에서 생성(Creational) 패턴에 해당하는 것은? 3번
1) 컴퍼지트(Composite)
2) 어댑터(Adapter)
3) 추상 팩토리(Abstract Factory)
4) 옵서버(Observer)
: 디자인 패턴에서 생성패턴에 해당하는 것은 '추상 팩토리'이다.
참고로 생성패턴에는 추상 팩토리, 빌더, 팩토리 메소드, 프로토 타임, 싱글톤이 있고,
구조패턴에는 어댑터, 브리지, 컴포지트, 데코레이터, 퍼싸드, 플라이웨이트, 프록시가 있고,
행위패턴에는 책임 연쇄, 커맨드, 인터프리터, 반복자, 중재자, 메멘토, 옵서버, 상태, 전략, 템플릿메소드, 방문자가 있다.
15. 아키텍처 설계과정이 올바른 순서로 나열된 것은? 1번
가. 설계 목표 설정
나. 시스템 타입 결정
다. 스타일 적용 및 커스터마이즈
라. 서브시스템의 기능, 인터페이스 동작 작성
마. 아키텍처 설계 검토
1) 가→ 나→ 다→ 라→ 마
2) 마→ 가→ 나→ 라→ 다
3) 가→ 마→ 나→ 라→ 다
4) 가→ 나→ 다→ 마→ 라
: 소프트웨어 아키텍처의 설계과정
1. 설계 목표 설정 : 전체 시스템의 설계 목표를 설정
2. 시스템 타입 결정 : 시스템과 서브시스템의 타입을 결정하고 설계 목표와 함계 고려하여 아키텍처 패턴 선택
3. 아키텍쳐 패턴 적용 : 아키텍처 패턴을 참조하여 시스템의 표준 아키텍쳐를 설계
4. 서브시스템 구체화 : 서브시스템의 기능 및 서브시스템 간의 상호작용을 위한 동작과 인터페이스를 정의
5. 검토 : 아키텍쳐가 설계 목표에 부합하는지, 요구사항이 잘 반영되었는지, 설계의 기본 원리를 만족하는지 등을 검토
16. 사용자 인터페이스를 설계할 경우 고려해야 할 가이드 라인과 가장 거리가 먼 것은? 1번
1) 심미성을 사용성보다 우선하여 설계한다.
2) 효율성을 높이게 설계해야 한다,
3) 발생하는 오류를 쉽게 수정할 수 있어야 한다.
4) 사용자에게 피드백을 제공해야 한다.
: UI는 심미성보다 사용성이 우선되어 설계된다.
17. 소프트웨어 설계에서 자주 발생하는 문제에 대한 일반적이고 반복적인 해결 방법을 무엇이라고 하는가? 2번
1) 모듈 분해
2) 디자인 패턴
3) 연관 관계
4) 클래스 도출
: 디자인 패턴은 각 모듈의 세분화된 역할이나 모듈들 간의 인터페이스와 같은 코드를 작성하는 수준의 세부적인 구현 방안을 설계할 때 참조할 수 있는 전형적인 해결 방식 또는 예제를 의미한다.
18. 객체지향 분석기법의 하나로 객체 모형, 동적 모형, 기능 모형의 3개 모형을 생성하는 방법은? 2번
1) Wirfs - Block Method
2) Rumbaugh Method
3) Booch Method
4) Jacobson Method
: 럼바우(Rumbaugh) 방법은 객체지향 분석 방법론 중 가장 일반적으로 사용되는 방법으로 분석 활동을 객체모델, 동적모델, 기능모델로 나누어 수행하는 방법이다. 분석 활동은 객체 모델링 → 동적 모델링 → 기능 모델링 순으로 이루어진다.
19. 입력되는 데이터를 컴퓨터의 프로세서가 처리하기 전에 미리 처리하여 프로세서가 처리하는 시간을 줄여주는 프로그램이나 하드웨어를 말하는 것은? 2번
1) EAI
2) FEP
3) GPL
4) Duplexing
: 입력되는 데이터를 컴퓨터의 프로세서가 처리하기 전에 미리 처리하여 프로세서가 처리하는 시간을 줄여주는 프로그램이나 하드웨어는 FEP(Front End Processor)를 말한다. 본 단계 처리 전에 필요한 작업을 미리 처리하므로 시간을 절약할 수 있다는 장점이 있다.
20. 객체 지향 개념 중 하나 이상의 유사한 객체들을 묶어 공통된 특성을 표현한 데이터 추상화를 의미하는 것은? 2번
1) Method
2) Class
3) Field
4) Message
: 클래스(Class)는 공통된 속성과 연산(행위)을 갖는 객체의 집합으로, 객체의 일반적인 타입을 의미한다. 클래스는 각각의 객체들이 갖는 속성과 연산을 정의하고 있는 틀로 객체지향 프로그램에서 데이터를 추상화하는 단위이다.
'자격증 > 기출 해설' 카테고리의 다른 글
[정보처리기사] 정보처리기사 필기 2022년도 1회 제5과목 기출문제 해설 (0) | 2022.03.15 |
---|---|
[정보처리기사] 정보처리기사 필기 2022년도 1회 제4과목 기출문제 해설 (0) | 2022.03.15 |
[정보처리기사] 정보처리기사 필기 2022년도 1회 제3과목 기출문제 해설 (0) | 2022.03.11 |
[정보처리기사] 정보처리기사 필기 2022년도 1회 제2과목 기출문제 해설 (0) | 2022.03.09 |