정보처리기사_필기/소프트웨어 개발_문제풀이

2020_06_06 필기기출

느리지만 꾸준하게 2021. 4. 29. 23:15
21. 정렬된 N개의 데이터를 처리하는데 O(Nlog2N)의 시간이 소요되는 정렬 알고리즘은?

1. 선택정렬

2. 삽입정렬

3. 버블정렬

4. 합병정렬

 

<문제 해설>
선택정렬 : O(n^2)
삽입정렬 : O(n^2)
버블정렬 : O(n^2)
합병정렬 : O(Nlog2N)

O(1) : 상수형 복잡도 (해시 함수)
O(logN) : 로그형 복잡도 (이진 탐색)
O(N) : 선형 복잡도 (순차 탐색)
O(NlogN) : 선형 로그형 복잡도 (퀵 정렬, 병합정렬)
O(N^2) : 제곱형 (거품 정렬, 삽입 정렬, 선택 정렬)

22. White Box Testing 에 대한 설명으로 옳지 않은 것은?

1.Base Path Testing, Boundary Value Analysis가 대표적인 기법이다.

2.Source Code 의 모든 문장을 한번 이상 수행함으로서 진행된다.

3.모듈 안의 작동을 직접 관찰 할 수 있다.

4.산출물의 각 기능별로 적절한 프로그램의 제어구조에 따라 선택, 반복 등의 부분들을 수행함으로써 논리적 경로를 점검한다.

 

White Box Testing 종류 : Condition Testing, Loop Testing, Data Flow Testing
Black Box Testing 종류 : Equivalence Partitioning Testing, Boundary Value Testing, Cause-Effect Graphing Testing, Error Guessing, Comparison Testing

 

23. 소프트웨어 품질 측정을 위해 개발자 관점에서 고려해야 할 항목으로 거리가 먼 것은?

1.정확성

2.무결성

3.사용성

4.간결성

<문제 해설>
소프트웨어 품질측정 개발자 관점
정확성, 신뢰성, 효율성, 무결성, 유연성, 이식성, 재사용성, 상호운용성

 

24. 인터페이스 구현 검증도구 중 아래에서 설명하는 것은?

     

1.xUnit

2.STAF

3.FitNesse

4.RubyNode

 

인터페이스 구현 검증 도구
xUnit : Java, C++ 등 다양한 언어 지원하는 단위 테스트 프레임워크
STAF : 서비스 호출 및 컴포넌트 재사용 등 환경 지원하는 테스트 프레임워크
FitNesse : 웹 기반 테스트케이스 설계, 실행, 결과 확인 등을 지원하는 테스트 프레임워크
NTAF : FitNesse의 장점인 협업 기능과  STAF의 장점인 재사용 및 확장성을 통합한 네이버의 테스트 자동화 프레임워크이다.
Selenium : 다양한 브라우저 및 개발 언어 지원하는 웹 애플리케이션 테스트 프레임워크
Watir : Ruby를 사용하는 애플리케이션 테스트 프레임워크
Ruby : 인터프리터 방식의 객체지향 스크립트 언어

 

25. EAI(Enterprise Application Integration)의 구축 유형으로 옳지 않은 것은?

1.Point-to-Point

2.Hub&Spoke

3.Message Bus

4.Tree

 

<문제 해설>
EAI 구축 유형 : 기업 내 각종 애플리케이션 및 플랫폼 간의 정보 전달 연계 통합등 상호연동이 가능하게 해주는 솔루션 // 그림 확인해야함
Point - to - Point : 가장 기본적인 애플리케이션 통합 방식 1:1로 연결
Hub & Spoke : 단일 접점인 허브 시스템을 통해 데이터 전송하는 중앙 집중형 방식
Message Bus : 애플리케이션 사이에 미들웨어를 두어 처리하는 방식
Hybrid : Hub & Spoke 와 Message Bus 혼합 방식

 

26. 다음 트리를 전위 순회(preorder traversal)한 결과는?

     

 

1.+*AB/*CDE

2.AB/C*D*E+

3.A/B*C*D+E

4.+**/ABCDE

 

<문제 해설>
전위순회 : 루트를 먼저 방문 ex) +**/ABCDE
중위순회 : 왼쪽 하위트리를 방문한 뒤 루트를 방문 ex) A/B*C*D+E
후위순회 : 하위트리를 방문한 뒤 루트를 방문 ex) AB/C*D*E+
[해설작성자 : 윤지야보고싶다]

전위 : root -> left -> right
중위 : left -> root -> right
후위 : left -> right -> root

 

 

27. 인터페이스 보안을 위해 네트워크 영역에 적용될 수 있는 솔루션과 거리가 먼 것은?

1.IPSec

2.SMTP

3.SSL

4.S-HTTP

 

SMTP는 이메일 송/수신에 사용되는 프로토콜이다.

 

 

28. 평가 점수에 따른 성적부여는 다음 표와 같다. 이를 구현한 소프트웨어를 경계값 분석 기법으로 테스트 하고자 할 때 다음 중 테스트 케이스의 입력 값으로 옳지 않은 것은?

     

 

 

1.59

2.80

3.90

4.101

 

29. 반정규화(Denormalization) 유형중 중복 테이블을 추가하는 방법에 해당하지 않는 것은?

1.빌드 테이블의 추가

2.집계 테이블의 추가

3.진행 테이블의 추가

4.특정 부분만을 포함하는 테이블의 추가

 

<문제 해설>
반 정규화 유형 중 중복 테이블 추가 방법
진행 테이블 추가 / 집계 테이블 추가 / 특정 부분만을 포함하는 테이블 추가

 

 

30. ISO/IEC 9126의 소프트웨어 품질 특성 중 기능성(Functionlity)의 하위 특성으로 옳지 않은 것은?

1.학습성

2.적합성

3.정확성

4.보안성

 

<문제 해설>
ISO/IEC 9126 의 기능성의 하위특성에는 적합성,정확성,상호 운용성,보안성,준수성 등이 있다

학습성은 사용성(Usability)의 하위 특성이다.

ISO/IEC 9126 하위특성 기능성 신뢰성 사용성 효율성 유지보수성 이식성
-기신사효유이-

ISO/IEC 9126 제품특성
기능성 : 적합성 정확성 성호운용성 보안성 준수성
신뢰성 : 성숙성 결함허용성 복구성
사용성 : 이해성 학습성 운용성 준수성
효율성 : 시간반응성 자원효율성 준수성
유지보수성 : 분석성 변경성 안정성 시험성 준수성
이식성 : 적응성 설치성 공존성 대체성 준수성

 

 

31. 다음 트리의 차수(degree)와 단말 노드(terminal node)의 수는?

     

1.차수: 4, 단말 노드: 4

2.차수: 2, 단말 노드: 4

3.차수: 4, 단말 노드: 8

4.차수: 2, 단말 노드: 8

 

<문제 해설>
트리의 차수 : 전체 트리에서 가장 큰 차수 ex) A,C,E => 차수 2  
단말 노드 : 자식이 없는 노드 ex) D,G,H,F

 

 

32.디지털 저작권 관리(DRM)의 기술 요소가 아닌 것은?

 

1.크랙 방지 기술

2.정책 관리 기술

3.암호화 기술

4.방화벽 기술

 

<문제 해설>
디지털 저작권 관리 (DRM)의 기술 요소
암호화 / 키 관리 / 암호화 파일 생성 / 식별 기술 / 저작권 표현 /
정책 관리 / 크랙 방지 / 인증

 

33. 소프트 웨어 테스트에서 오류의 80%는 전체 모듈의 20% 내에서 발견된다는 법칙은?

1.Brooks의 법칙

2.Boehm의 법칙

3.Pareto의 법칙

4.Jackson의 법칙

 

<문제 해설>
오류의 80%는 전체의 20%내에서 발견된다는 법칙 -> 파레토 법칙
+ 지연되는 프로젝트에 인력을 더 투입하면 오히려 더 늦어진다. - Brooks의 법칙
+ 동일 테스트 케이스로 동일 테스트 반복 시 더 이상 결함이 발견되지 않은 현상 : 살충제 페러독스 Pesticide Paradox
+ 결함을 모두 제거해도 사용자 요구사항을 만족시키지 못하면 해당 소프트웨어는 품질이 높다고 말할 수 없다. : 오류 - 부재의 궤변
Absence of Errors Fallacy
시험에 brooks랑 pareto만 나왔던걸로 기억(2015~2020기준)

 

34. 소프트웨어 형상 관리의 의미로 적절한 것은?

1.비용에 관한 사항을 효율적으로 관리하는 것

2.개발 과정의 변경 사항을 관리하는 것

3.테스트 과정에서 소프트웨어를 통합하는 것

4.개발 인력을 관리하는 것

 

<문제 해설>
소프트웨어 형상 관리 : 개발과정에서 소프트웨어의 변경사항을 관리하기 위해 개발된 일련의 활동.

 

 

35. 알고리즘 시간복잡도 O(1)이 의미하는 것은?

1.컴퓨터 처리가 불가

2.알고리즘 입력 데이터 수가 한 개

3.알고리즘 수행시간이 입력 데이터 수와 관계없이 일정

4.알고리즘 길이가 입력 데이터보다 작음

 

 

<문제 해설>
알고리즘 시간 복잡도
비례하지 않는(항상 일정한) O(1)
로그에 비례하는 O(log2^n)
정비례하는(선형) O(n)
로그*변수에 비례하는(선형 로그) O(nlog2^n)
제곱에 비례하는 O(n^2)
세제곱에 비례하는 O(n^3)
지수 비례하는 O(2^n)
팩토리얼에 비례하는 O(n!)

 

 

36. 소스코드 품질분석 도구 중 정적분석 도구가 아닌 것은?

1.pmd

2.cppcheck

3.valMeter

4.checkstyle

 

<문제 해설>
정적 분석 도구
pmd :소스 코드에 대한 미사용 변수 최적화안된 코드 등 결함을 유발할 수 있는 코드 검사
cppcheck : C/C++ 코드에 대한 메모리 누수 오버플로우 등 분석
SonarQube : 중복 코드 복잡도 코딩 설계 등을 분석하는 소스 분석 통합 플랫폼
checkstyle : 자바 코드에 대해 소스코드 표준을 따르고 있는지 검사한다.
ccm : 다양한 언어의 코드 복잡도를 분석한다.
cobertura : 자바 언어의 소스코드 복잡도 분석 및 테스트 커버리지 측정


동적 분석 도구
Avalanche : Valgrind 프레임워크 및 STP기반 / 프로그램 결함 및 취약점 분석
valgrind : 프로그램 내에 존재하는 메모리 및 쓰레드 결함 분석

 

37. 검증 검사 기법 중 개발자의 장소에서 사용자가 개발자 앞에서 행하는 기법이며, 일반적으로 통제된 환경에서 사용자와 개발자가 함께 확인하면서 수행되는 검사는?

1.동치 분할 검사

2.형상 검사

3.알파 검사

4.베타 검사

 

<문제 해설>
동치 분할 검사 : 입력 자료에 초점을 맞춰 케이스를 만들고 검사하는 방법 - 블랙박스 테스트 종류
알파 테스트 : 개발자의 장소에서 사용자가 개발자 앞에서 행하는 테스트 기법 - 인수 테스트 종류
베타 테스트 : 선정된 최종 사용자가 여러명의 사용자 앞에서 행하는 테스트 기법 - 인수 테스트 종류
[해설작성자 : 거상 주작섭]

형상 검사(구성 검토, 검사) : 구성 요소, 목록, 유지보수를 위한 모든 사항이 표현되었는가를 검사

 

 

 

38. 하향식 통합에 있어서 모듈 간의 통합 시험을 위해 일시적으로 필요한 조건만을 가지고 임시로 제공되는 시험용 모듈을 무엇이라고 하는가?

1.Stub

2.Driver

3.Procedure

4.Function

 

<문제 해설>
상향식 : Driver
하향식 : Stub

 

1. Stub : 하향식 통합시 위 모듈이 없으므로, 하위 모듈들 역할을 하는 스텁(Stub)을 이용
2. Driver : 상향시 통합시 상위 모듈이 없으므로, 상위 모듈 역할을 하는 테스트 드라이버(Driver)를 이용
3. Procedure : 특정 작업을 수행하는, 이름이 있는 PL/SQL BLOCK
4. Function : 함수 Stub : 하향식 통합시 위 모듈이 없으므로, 하위 모듈들 역할을 하는 스텁(Stub)을 이용
2. Driver : 상향시 통합시 상위 모듈이 없으므로, 상위 모듈 역할을 하는 테스트 드라이버(Driver)를 이용
3. Procedure : 특정 작업을 수행하는, 이름이 있는 PL/SQL BLOCK
4. Function : 첫 번째 집합의 임의의 한 원소가 두 번째 집합의 오직 한 원소에만 대응하는 관계

 

 

39. SW 패키징 도구 활용 시 고려 사항과 거리가 먼 것은?
1. 패키징 시 사용자에게 배포되는 SW이므로 보안을 고려한다.
2. 사용자 편의성을 위한 복합성 및 비효율성 문제를 고려한다.
3. 보안상 단일 기종에서만 사용할 수 있도록 해야 한다.
4. 제품 SW 종류에 적합한 암호화 알고리즘을 적용한다.

<문제 해설>
패키징 고려사항
- 사용자의 운영체제, CPU, 메모리 등에 필요한 최소 환경 정의
- UI는 편의성, 직관성을 고려해야하고 매뉴얼과 일치시켜 패키징
- 소프트웨어와 하드웨어가 함께 관리될 수 있도록 Managed Service 형태로 제공
- 암호화, 모듈화하여 배포(다양한 기종에서 사용이 가능해야함)

 

 

40. 외계인코드(Alien Code)에 대한 설명으로 옳은 것은?

1.프로그램의 로직이 복잡하여 이해하기 어려운 프로그램을 의미한다.

2.아주 오래되거나 참고문서 또는 개발자가 없어 유지보수 작업이 어려운 프로그램을 의미한다.

3.오류가 없어 디버깅 과정이 필요 없는 프로그램을 의미한다.

4.사용자가 직접 작성한 프로그램을 의미한다.

 

 

<문제 해설>
외계인 → 없는 존재 = 코드에 대해 아는 사람이 없음 → 어려움

 

아주 오래되거나 참고 문서 또는 개발자가 없어 유지보수 작업이 어려운 프로그램 코드

프로그램의 로직이 복잡하여 이해하기 어려운 프로그램을 의미한다.
→나쁜코드, 코드의 로직이 얽혀 스파게티 코드라고도 함.