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

정보처리기사 필기 2022년도 1회 제2과목 : 소프트웨어 개발 기출문제 해설
(아래 문제 해설은 가답안을 이용한 것으로, 최종 확정된 답안이 나오면 추가 수정하겠습니다!)
(해당 문제들의 원저작권은 자격검정 시행기관인 한국산업인력공단에 있습니다.)
21. 클린 코드(Clean Code)를 작성하기 위한 원칙으로 틀린 것은? 1번
1) 추상화 : 하위 클래스/메소드/함수를 통해 애플리케이션의 특성을 간략하게 나타내고, 상세 내용은 상위 클래스/메소드/함수에서 구현한다.
2) 의존성 : 다른 모듈에 미치는 영향을 최소화하도록 작성한다.
3) 가독성 : 누구든지 읽기 쉽게 코드를 작성한다.
4) 중복성 : 중복을 최소화할 수 있는 코드를 작성한다.
: '클린 코드'란 누구나 쉽게 이해하고 수정 및 추가할 수 있는 단순, 명료한 코드, 즉 잘 작성된 코드를 의미한다.
클린 코드 작성 원칙에는 '가독성', '단순성', '의존성 배제', '중복성 최소화', '추상화'가 있으며, 이 중 '추상화'는 상위 클래스/메소드/함수에서는 간략하게 애플리케이션의 특성을 나타내고, 상세 내용은 하위 클래스/메소드/함수에서 구현한다.
22. 단위 테스트에서 테스트의 대상이 되는 하위 모듈을 호출하고, 파라미터를 전달하는 가상의 모듈로 상향식 테스트에 필요한 것은? 2번
1) 테스트 스텁 (Test Stub)
2) 테스트 드라이버 (Test Driver)
3) 테스트 슈트 (Test Suites)
4) 테스트 케이스 (Test Case)
: 테스트 대상의 하위 모듈을 호출하고, 매개 변수(파라미터)를 전달하고, 모듈 테스트 수행 후의 결과를 도출하는 도구는 '테스트 드라이버' 이다. 테스트 드라이버는 상향식 테스트에 필요하다.
참고로, 테스트 스텁은 제어 모듈이 호출하는 타 모듈의 기능을 단순히 수행하는 도구로, 하향식 테스트에서 필요하다.
테스트 슈트는 테스트 대상 컴포넌트나 모듈, 시스템에 사용되는 테스트 케이스의 집합이다.
테스트 케이스는 사용자의 요구사항을 정확하게 준수했는지 확인하기 위한 입력 값, 실행 조건, 기대 결과 등으로 만들어진 테스트 항목의 명세서이다.
23. 스택(Stack)에 대한 옳은 내용으로만 나열된 것은? 3번
ㄱ. FIFO 방식으로 처리된다.
ㄴ. 순서 리스트의 뒤(Rear)에서 노드가 삽입되며, 앞(Front)에서 노드가 제거된다.
ㄷ. 선형 리스트의 양쪽 끝에서 삽입과 삭제가 모두 가능한 자료 구조이다.
ㄹ. 인터럽트 처리, 서브루틴 호출 작업 등에 응용된다.
1) ㄱ, ㄴ
2) ㄴ, ㄷ
3) ㄹ
4) ㄱ, ㄴ, ㄷ, ㄹ
: 스택은 리스트의 한쪽 끝으로만 자료의 삭제, 삽입이 이루어지는 선형구조로, 후입선출(LIFO; Last In First Out)의 방식으로 처리된다. 스택의 용도로는 재귀호출, 후위표기법, 서브루틴 호출, 인터럽트 처리, 깊이 우선 탐색 등이 있다.
보기에서 스택에 대한 옳은 내용으로 'ㄹ'만 맞으므로 정답은 3번이다.
24. 소프트웨어 모듈화의 장점이 아닌 것은? 2번
1) 오류의 파급 효과를 최소화한다.
2) 기능의 분리가 가능하여 인터페이스가 복잡하다.
3) 모듈의 재사용 가능으로 개발과 유지보수가 용이하다.
4) 프로그램의 효율적인 관리가 가능하다.
: 모듈화란 소프트웨어의 성능을 향상시키거나 시스템의 수정 및 재사용, 유지 관리 등이 용이하도록 시스템의 기능들을 모듈 단위로 나누는 것을 의미한다. 독립성이 높은 모듈일수록 모듈을 수정하더라도 다른 모듈들에게는 거의 영향을 미치지 않으며, 오류가 발생해도 쉽게 발견하고 해결할 수 있다. 인터페이스가 복잡해진다는 것은 소프트웨어 모듈화의 장점이 아니겠죠.
25. 소프트웨어 프로젝트 관리에 대한 설명으로 가장 옳은 것은? 4번
1) 개발에 따른 산출물 관리
2) 소요인력은 최대화하되 정책 결정은 신속하게 처리
3) 주어진 기간은 연장하되 최소의 비용으로 시스템을 개발
4) 주어진 기간 내에 최소의 비용으로 사용자를 만족시키는 시스템을 개발
: 프로젝트 관리(Project Management)는 주어진 기간 내에 최소의 비용으로 사용자를 만족시키는 시스템을 개발하기 위한 전반적인 활동이다. 관리 유형에는 일정 관리, 비용 관리, 인력 관리, 위험 관리, 품질 관리가 있다.
26. 정형 기술 검토(FTR)의 지침으로 틀린 것은? 4번
1) 의제를 제한한다.
2) 논쟁과 반박을 제한한다.
3) 문제 영역을 명확히 표현한다.
4) 참가자의 수를 제한하지 않는다.
: 정형 기술 검토(FTR; Formal Technical Review)에는 동료검토, 워크스루, 인스펙션이 있다. 정형 기술 검토는 의제를 제한하고 논쟁과 반박을 제한해야 한다. 또한 참가자의 수를 제한하는 특징이 있다.
27. 소프트웨어 재공학의 주요 활동 중 기존 소프트웨어 시스템을 새로운 기술 또는 하드웨어 환경에서 사용할 수 있도록 변환하는 작업을 의미하는 것은? 2번
1) Analysis
2) Migration
3) Restructuring
4) Reverse Engineering
: 소프트웨어 재공학은 새로운 요구에 맞도록 기존 시스템을 이용하여 보다 나은 시스템을 구축하고, 새로운 기능을 추가하여 소프트웨어 성능을 향상시키는 것이다. 소프트웨어 재공학의 주요 활동에는 분석, 개조, 이식, 역공학이 있으며 위 문제의 내용은 이 중에서 이식(Migration, Portable)을 의미한다.
28. 정보시스템 개발 단계에서 프로그래밍 언어 선택 시 고려할 사항으로 가장 거리가 먼 것은? 4번
1) 개발 정보시스템의 특성
2) 사용자의 요구사항
3) 컴파일러의 가용성
4) 컴파일러의 독창성
: 컴파일러의 독창성과는 관계가 없다.
29. 소프트웨어 패키징에 대한 설명으로 틀린 것은? 1번
1) 패키징은 개발자 중심으로 진행된다.
2) 신규 및 변경 개발소스를 식별하고, 이를 모듈화하여 상용제품응로 패키징한다.
3) 고객의 편의성을 위해 매뉴얼 및 버전관리를 지속적으로 한다.
4) 범용 환경에서 사용이 가능하도록 일반적인 배포 형태로 패키징이 진행된다.
: 패키징은 개발자 중심이 아닌 사용자 중심으로 진행된다.
30. 자료 구조의 분류 중 선형 구조가 아닌 것은? 1번
1) 트리
2) 리스트
3) 스택
4) 데크
: 트리는 비선형 구조이다.
참고로 선형 구조에는 배열, 리스트, 스택, 큐, 데크가 있고 비선형 구조에는 트리와 그래프가 있다.
31. 아주 오래되거나 참고문서 또는 개발자가 없어 유지보수 작업이 아주 어려운 프로그램을 의미하는 것은? 4번
1) Title Code
2) Source Code
3) Object Code
4) Alien Code
: 문제의 내용은 외계인 코드(Alien Code)를 의미한다.
참고로 나쁜 코드(Bad Code)에는 외계인 코드와 스파게티 코드가 있고, 스파게티 코드는 코드의 로직이 서로 복잡하게 얽혀 있는 코드를 말한다.
32. 소프트웨어를 재사용함으로써 얻을 수 있는 이점으로 가장 거리가 먼 것은? 4번
1) 생산성 증가
2) 프로젝트 문서 공유
3) 소프트웨어 품질 향상
4) 새로운 개발 방법론 도입 용이
: 소프트웨어 재사용은 이미 개발되어 인정받은 소프트웨어의 전체 혹은 일부분을 다른 소프트웨어 개발이나 유지에 사용하는 것이다. 이로 인한 이점에는 개발시간과 비용의 단축, 소프트웨어 품질 향상, 생산성 향상, 프로젝트 실패 위험 감소, 시스템 구축 방법에 대한 지식 공유, 시스템 명세·설계·코드 등의 문서 공유 등이 있다.
33. 인터페이스 간의 통신을 위해 이용되는 데이터 포맷이 아닌 것은? 1번
1) AJTML
2) JSON
3) XML
4) YAML
: 인터페이스 간의 통신을 위해 이용되는 데이터 포맷에는 JSON, XML, YAML 등이 있다.
34. 프로그램 설계도의 하나인 NS Chart에 대한 설명으로 가장 거리가 먼 것은? 3번
1) 논리의 기술에 중점을 두고 도형을 이용한 표현 방법이다.
2) 이해하기 쉽고 코드 변환이 용이하다.
3) 화살표나 GOTO를 사용하여 이해하기 쉽다.
4) 연속, 선택, 반복 등의 제어 논리 구조를 표현한다.
: N-S 차트는 화살표나 GOTO를 사용하지 않는다.
N-S 차트는 논리의 기술에 중점을 둔 도형을 이용한 표현 방법으로 박스 다이어그램, Chapin Chart라고도 부른다.
연속, 선택 및 다중 선택, 반복 등의 제어 논리 구조를 표현하고, 이해하기 쉽고 코드 변환이 용이하다. 또한 조건이 복합되어 있는 곳의 처리를 시각적으로 명확히 식별하는 데 적합하며 단일 입구와 단일 출구로 표현한다. N-S 차트는 읽기는 쉽지만 작성하기가 어려우며, 임의로 제어를 전이하는 것이 불가능하다. 그리고 총체적인 구조 표현과 인터페이스를 나타내기는 어렵다.
35. 순서가 A, B, C, D로 정해진 입력자료를 push, push, pop, push, push, pop, pop, pop 순서로 스택연산을 수행하는 경우 출력 결과는? 1번
1) B D C A
2) A B C D
3) B A C D
4) A B D C
: 스택은 리스트의 한쪽 끝으로만 자료의 삭제와 삽입이 이루어지는 선형의 자료 구조이다.
push push 니까 A, B를 순서대로 넣고 pop이니까 위에 있던 B를 꺼낸다. 그리고 다시 push push니까 C, D를 순서대로 마저 넣어준다. 그다음 A, C, D 이렇게 넣어있는 상태에서 pop pop pop이니까 위부터 D, C, A를 꺼낸다. 그럼 정답은 B D C A이다.
36. 분할 정복(Divide and Conquer)에 기반한 알고리즘으로 피벗(pivot)을 사용하며 최악의 경우 n(n-1)/2회의 비교를 수행해야 하는 정렬(Sort)은? 4번
1) Selection Sort
2) Bubble Sort
3) Insert Sort
4) Quick Sort
: 분할 정복에 기반한 알고리즘으로 피벗을 사용하며 최악의 경우 n(n-1)/2회의 비교를 수행해야 하는 정렬은 '퀵 정렬 (Quick Sort)'이다.
참고로 '퀵 정렬'은 레코드의 많은 자료 이동을 없애고 하나의 파일을 부분적으로 나누어 가면서 정렬하는 방법으로 키를 기준으로 작은 값은 왼쪽에, 큰 값은 오른쪽 서브 파일로 분해시키는 방식으로 정렬한다. 정렬 방식 중 가장 빠른 방식이며, 분할과 정복을 통해 자료를 정렬한다. 이때 기준값인 피봇(pivot)을 중심으로 정렬할 자료들을 2개의 부분집합으로 분할한다.
37. 화이트 박스 검사 기법에 해당하는 것으로만 짝지어진 것은? 1번
ㄱ. 데이터 흐름 검사
ㄴ. 루프 검사
ㄷ. 동등 분할 검사
ㄹ. 경계값 분석
ㅁ. 원인 결과 그래프 기법
ㅂ. 오류예측 기법
1) ㄱ, ㄴ
2) ㄱ, ㄹ
3) ㄴ, ㅁ
4) ㄷ, ㅂ
: 화이트 박스 검사 기법에 해당하는 것에는 기초 경로 검사(Base Path Testing), 제어 구조 검사(Control Structure Testing)가 있으며, 이 제어 구조 검사에 조건 검사, 루프 검사, 데이터 흐름 검사가 포함되어 있다. 따라서 ㄱ의 데이터 흐름 검사와 ㄴ의 루프 검사만 화이트 박스 검사 기법이므로 정답은 1번이다.
보기의 동등 분할 검사, 경계값 분석, 원인 결과(효과) 그래프 기법, 오류 예측 기법은 블랙 박스 검사 기법에 해당된다.
38. 소프트웨어 품질 관련 국제 표준인 ISO/IEC 25000에 관한 설명으로 옳지 않은 것은? 3번
1) 소프트웨어 품질평가를 위한 소프트웨어 품질평가 통합모델 표준이다.
2) System and Software Quality Requirements and Evaluation으로 줄여서 SQuaRE라고 한다.
3) ISO/IEC 2501n에서는 소프트웨어의 내부 측정, 외부 측정, 사용품질 측정, 품질 측정 요소 등을 다룬다.
4) 기존 소프트웨어 품질 평가 모델과 소프트웨어 평가 절차 모델인 ISO/IEC 9126과 ISO/IEC 14598을 통합하였다.
: ISO/IEC 25000은 ISO에서 제정한 소프트웨어 품질평가 통합모델 표준으로, 줄여서 SQuaRE라고 한다. 이는 기존 소프트웨어 품질 평가 모델과 소프트웨어 평가 절차 모델인 ISO/IEC 9126과 ISO/IEC 14598을 통합한 것이다.
(제가 알아본 바에 의하면 '품질측정'은 ISO/IEC 2502n에서 다루는 것으로 알고 있습니다... 확실하지 x)
39. 코드 인스펙션과 관련한 설명으로 틀린 것은? 3번
1) 프로그램을 수행시켜보는 것 대신에 읽어보고 눈으로 확인하는 방법으로 볼 수 있다.
2) 코드 품질 향상 기법 중 하나이다.
3) 동적 테스트 시에만 활용하는 기법이다.
4) 결함과 함께 코딩 표준 준수 여부, 효율성 등의 다른 품질 이슈를 검사하기도 한다.
: '인스펙션(Inspection)'은 요구사항 검증 방법 중의 하나로, 요구사항 명세서 작성자를 제외한 다른 검토 전문가들이 요구사항 명세서를 확인하면서 결함을 발견하는 형태의 검토 방법이다. 정적 테스트는 프로그램을 실행하지 않고 명세서나 소스 코드를 대상으로 분석하는 테스트인데 인스펙션이 이에 속한다.
40. 프로젝트에 내재된 위험 요소를 인식하고 그 영향을 분석하여 이를 관리하는 활동으로서, 프로젝트를 성공시키기 위하여 위험 요소를 사전에 예측, 대비하는 모든 기술과 활동을 포함하는 것은? 2번
1) Critical Path Method
2) Risk Analysis
3) Work Breakdown Structure
4) Waterfall Model
: 이는 위험 분석(Risk Analysis)을 의미한다.
'자격증 > 기출 해설' 카테고리의 다른 글
[정보처리기사] 정보처리기사 필기 2022년도 1회 제5과목 기출문제 해설 (0) | 2022.03.15 |
---|---|
[정보처리기사] 정보처리기사 필기 2022년도 1회 제4과목 기출문제 해설 (0) | 2022.03.15 |
[정보처리기사] 정보처리기사 필기 2022년도 1회 제3과목 기출문제 해설 (0) | 2022.03.11 |
[정보처리기사] 정보처리기사 필기 2022년도 1회 제1과목 기출문제 해설 (0) | 2022.03.09 |