본문 바로가기
CS_정리 & 정보처리기사 💾

[정보처리기사] 2020_06_06 (1회,2회 통합)_2과목

by 개발하는윤기사 2023. 3. 21.
728x90
반응형


2과목 : 소프트웨어 개발

 

 

 

21. 정렬된 N개의 데이터를 처리하는데 O(Nlog2N)의 시간이 소요되는 정렬 알고리즘은?     

① 선택정렬

② 삽입정렬     

③ 버블정렬

④ 합병정렬

 

🍎

1. 선택정렬 : O(n^2)

2. 삽입정렬 : O(n^2)

3. 버블정렬 : O(n^2)

4. 합병정렬 : O(Nlog2N)


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

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

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

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

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

 

🍎

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. 소프트웨어 품질 측정을 위해 개발자 관점에서 고려해야 할 항목으로 거리가 먼 것은?     

① 정확성

② 무결성     

③ 사용성

④ 간결성

 

🍎

소프트웨어 품질 측정을 위해 개발자 관점에서 고려해야 할 항목

- 정확성, 신뢰성, 효율성, 무결성, 유연성, 이식성, 재사용성, 상호운용성

 


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

- 서비스 호출, 컴포넌트 재사용 등 다양한 환경을 지원하는 테스트 프레임워크
- 각 테스트 대상 분산 환경에 데몬을 사용하며 테스트 대상 프로그램을 통해 테스트를 수행하고, 통합하며 자동화하는 검증 도구

① xUnit

② STAF     

③ FitNesse

④ RubyNode

 

🍎

인터페이스 구현 검증 도구

1. xUnit : Java, C++ 등 다양한 언어 지원하는 단위 테스트 프레임워크

2. STAF : 서비스 호출 및 컴포넌트 재사용 등 환경 지원하는 테스트 프레임워크

3. FitNesse : 웹 기반 테스트케이스 설계, 실행, 결과 확인 등을 지원하는 테스트 프레임워크

4. NTAF : FitNesse의 장점인 협업 기능과 STAF의 장점인 재사용 및 확장성을 통합한 네이버의 테스트 자동화 프레임워크이다.

5. Selenium : 다양한 브라우저 및 개발 언어 지원하는 웹 애플리케이션 테스트 프레임워크

6. Watir : Ruby를 사용하는 애플리케이션 테스트 프레임워크

7. Ruby : 인터프리터 방식의 객체지향 스크립트언어

 


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

① Point-to-Point

② Hub&Spoke     

③ Message Bus

④ Tree

 

🍎

EAI 구축 유형 : 기업 내 각종 애플리케이션 및 플랫폼 간의 정보 전달 연계 통합 등 상호연동이 가능하게 해주는 솔루션 

1. Point - to - Point : 가장 기본적인 애플리케이션 통합 방식 1:1로 연결

2. Hub&Spoke : 단일 접점인 허브 시스템을 통해 데이터 전송 하는 중앙 집중형 방식

3. Message Bus : 애플리케이션 사이에 미들웨어를 두어 처리하는 방식

4. Hybrid : Hub &Spoke와 Message Bus 혼합 방식

 


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

① +*AB/*CDE

② AB/C*D*E+     

③ A/B*C*D+E

④ +**/ABCDE

 

🍎

1. 전위순회 : 루트를 먼저 방문  = root -> left -> right [ ex) +**/ABCDE ]

2. 중위순회 : 왼쪽 하위트리를 방문한 뒤 루트를 방문 = left -> root -> right [ ex) A/B*C*D+E ]

3. 후위순회 : 하위트리를 방문한 뒤 루트를 방문 = left -> right -> root [ ex) AB/C*D*E+ ]

 


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

① IPSec

② SMTP     

③ SSL

④ S-HTTP

 

🍎

1. IPSec(Internet Protocol Security) : 네트워크에서의 안전한 연결을 설정하기 위한 통신 규칙 또는 프로토콜 세트, 암호화와 인증이 추가됨

2. SMTP(Simple Mail Transfer Protocol) : 이메일 송/수신에 사용되는 프로토콜

3. SSL(Secure Sockets Layer) : 웹사이트와 브라우저 사이에 전송되는 데이터를 암호화하여 인터넷 연결을 보호하기 위한 기술

4. S-HTTP(Secure-HTTP) : 웹 상에서 네트워크 트래픽을 암호화하는 방법 

 


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

① 59

② 80     

③ 90

④ 101

 

🍎

경계값 분석 기법이라는 것은 경계가 되는 곳을 확인하는 것!

= 0, 59, 60, 79, 80, 100, 101 이상


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

① 빌드 테이블의 추가     

② 집계 테이블의 추가     

③ 진행 테이블의 추가     

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

 

🍎

반 정규화 유형 중 중복 테이블 추가 방법

진행 테이블 추가 / 집계 테이블 추가 / 특정 부분만을 포함하는 테이블 추가

 


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

① 학습성

② 적합성     

③ 정확성

④ 보안성

 

🍎

ISO/IEC 9126의 기능성 하위 특성에는

적합성, 정확성, 보안성, 상호운용성, 준수성 등이 있다!!

 


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

① 차수: 4, 단말 노드: 4

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

③ 차수: 4, 단말 노드: 8

④ 차수: 2, 단말 노드: 8

 

🍎

트리의 차수는 트리 노드들의 차수중 최대 차수를 의미한다! => 2

단말 노드는 자식이 없는 노드를 의미한다! => D, F, G, H

 


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

① 크랙 방지 기술

② 정책 관리 기술     

③ 암호화 기술

④ 방화벽 기술

 

🍎

디지털 저작권 관리(DRM)의 기술 요소

암호화 / 키 관리 / 암호화 파일 생성 / 식별 기술 / 저작권 표현 / 정책 관리 / 크랙 방지 / 인증

 


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

① Brooks의 법칙

② Boehm의 법칙     

③ Pareto의 법칙

④ Jackson의 법칙

 

🍎

1. 오류의 80%는 전체의 20% 내에서 발견된다는 법칙 -> 파레토(Pareto) 법칙

2. 지연되는 프로젝트에 인력을 더 투입하면 오히려 더 늦어진다는 법칙 - Brooks의 법칙

3. 동일 테스트 케이스로 동일 테스트 반복 시 더 이상 결함이 발견되지 않은 현상 - 살충제 패러독스 (Pesticide Paradox)

4. 결함을 모두 제거해도 사용자 요구사항을 만족시키지 못하면 해당 소프트웨어는 품질이 높다고 말할 수 없다 : 부재의 궤변 (Absence of Errors Fallacy)


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

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

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

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

④ 개발 인력을 관리하는 것

 

🍎

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

 


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

① 컴퓨터 처리가 불가

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

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

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

 

🍎

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

 


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

① pmd

② cppcheck     

③ valMeter

④ checkstyle

 

🍎

1. pmd :소스 코드에 대한 미사용 변수 최적화가 안 된 코드 등 결함을 유발할 수 있는 코드 검사

2. cppcheck : C/C++ 코드에 대한 메모리 누수 오버플로우 등 분석

3. SonarQube : 중복 코드, 복잡도 코딩 설계 등을 분석하는 소스 분석 통합 플랫폼

4. checkstyle : 자바 코드에 대해 소스코드 표준을 따르고 있는지 검사

5. ccm : 다양한 언어의 코드 복잡도를 분석

6. cobertura : 자바 언어의 소스코드 복잡도 분석테스트 커버리지 측정

 


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

① 동치 분할 검사

② 형상 검사     

③ 알파 검사

④ 베타 검사

 

🍎

1. 동치 분할 검사 : 입력 자료에 초점을 맞춰 케이스를 만들고 검사하는 방법 - 블랙박스 테스트 종류

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

3. 알파 테스트 : 개발자의 장소에서 사용자가 개발자 앞에서 행하는 테스트 기법 - 인수 테스트 종류

4. 베타 테스트 : 선정된 최종 사용자가 여러 명의 사용자 앞에서 행하는 테스트 기법 - 인수 테스트 종류

 


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

① Stub

② Driver     

③ Procedure

④ Function

 

🍎

상향식 : Driver / 하향식 : Stub

 


39. SW 패키징 도구 활용 시 고려 사항과 거리가 먼 것은?     

① 패키징 시 사용자에게 배포되는 SW이므로 보안을 고려한다.     

② 사용자 편의성을 위한 복합성 및 비효율성 문제를 고려한다.     

③ 보안상 단일 기종에서만 사용할 수 있도록 해야 한다.     

④ 제품 SW 종류에 적합한 암호화 알고리즘을 적용한다.

 

🍎

- 사용자의 운영체제, CPU, 메모리 등에 필요한 최소 환경 정의

- UI는 편의성, 직관성을 고려해야 하고 매뉴얼과 일치시켜 패키징

- 소프트웨어와 하드웨어가 함께 관리될 수 있도록 Managed Service 형태로 제공

- 암호화, 모듈화 하여 배포(다양한 기종에서 사용이 가능해야 함)

 


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

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

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

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

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

 

🍎

말 그대로 외계인 코드는 코드에 대해 아는 사람이 없다는 것을 뜻하고,

아주 오래되거나 참고 문서나 개발자가 없어 유지보수가 어려운 코드를 의미!

 

728x90
반응형