본문으로 바로가기

2과목 : 소프트웨어 개발

 

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

1. 선택정렬
2. 삽입정렬
3. 버블정렬
4. 합병정렬

- 선택정렬 : 정렬되지 않은 데이터들에 대해 가장 작은 데이터를 찾아 가장 앞의 데이터와 교환해나가는 방식
- 삽입정렬 : 아직 정렬되지 않은 임의의 데이터를 이미 정렬된 부분의 적절한 위치에 삽입해 가며 정렬하는 방식
- 버블정렬 : 서로 이웃한 데이터들을 비교하며 가장 큰 데이터를 가장 뒤로 보내며 정렬하는 방식
- 합병정렬 : 합병 정렬 또는 병합 정렬(merge sort)은 O(n log n) 비교 기반 정렬 알고리즘이다. 일반적인 방법으로 구현했을 때 이 정렬은 안정 정렬에 속하며, 분할 정복 알고리즘의 하나

 

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

1. Base Path Testing, Boundary Value Analysis가 대표적인 기법이다.
2. Source Code 의 모든 문장을 한번 이상 수행함으로서 진행된다.
3. 모듈 안의 작동을 직접 관찰 할 수 있다.
4. 산출물의 각 기능별로 적절한 프로그램의 제어구조에 따라 선택, 반복 등의 부분들을 수행함으로써 논리적 경로를 점검한다.

화이트박스 테스트(White Box Test) : 모듈의 원시 코드를 오픈시킨 상태에서 원시 코드의 논리적인 모든 경로를 테스트하는 방식
 - 화이트박스 테스트의 종류
  - 제어 흐름 테스트(Control flow testing)
  - 데이터 흐름 테스트(Data flow testing)
  - 분기 테스트(branch testing)
  - 경로 테스트(path testing)

블랙박스 테스트(Black Box Test) : 소프트웨어 검사 방법 중 하나로 어떤 소프트웨어를 내부 구조나 작동 원리를 모르는 상태에서 소프트웨어의 동작을 검사하는 방법
 - 블랙박스 테스트의 종류
  - 동치 분할 검사(Equivalence Partitioning Testing)
  - 경계값 분석(Boundary Value Analysis)
  - 원인-효과 그래프 검사(Cause-Effect Graphing Testing)
  - 오류 예측 검사(Error Guessing)
  - 비교 검사(Comparison Testing

 

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

1. 정확성
2. 무결성
3. 사용성
4. 간결성

 

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

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

1. xUnit
2. STAF
3. FitNesse
4. RubyNode

- xUnit : 개발 언어별 단위테스트용 프레임워크를 칭하는 말
- Fitnesse : 웹 서버, 위키 및 소프트웨어 자동 테스트 도구

 

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

1. Point-to-Point
2. Hub&Spoke
3. Message Bus
4. Tree

EAI : 송·수신 데이터를 식별하기 위해 송·수신 처리 및 진행 현황을 모니터링하고 통제하는 시스템
 - EAI 구축 유형
  - Point-to-Point
   - 기존 애플리케이션 시스템은 필요에 의해 개별적으로 구축됐기 때문에 각각의 애플리케이션을 다른 애플리케이션과 연계
  - Hub & Spoke
   - 모든 데이터가 허브를 통해 전송
   - 모든 데이터가 허브를 통해 전송데이터 전송이 보장되며, 유지보수 비용 절감
  - Message Bus
   - 데이터 전송하는데 버스를 이용함으로 병목 현상 발생가능
   - 대량의 데이터 교환에 적합

 

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

1. +*AB/*CDE
2. AB/C*D*E+
3. A/B*C*D+E
4. +**/ABCDE

 

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

1. IPSec
2. SMTP
3. SSL
4. S-HTTP

IPSec : 통신 세션의 각 IP패킷을 암호화하고 인증하는 안전한 인터넷 프로토콜 통신을 위한 인터넷 프로토콜 스위트
SMTP : 인터넷에서 이메일을 보내기 위해 이용되는 프로토콜
SSL : 통신 보안을 제공하기 위해 설계된 암호 규약
S-HTTP : 웹상에서 네트워크 트래픽을 암호화하는 주요 방법 중 하나

 

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

평가 점수 성적
80~100 A
60~79 B
0~59 C

1. 59
2. 80
3. 90
4. 101

 

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

1. 빌드 테이블의 추가
2. 집계 테이블의 추가
3. 진행 테이블의 추가
4. 특정 부분만을 포함하는 테이블의 추가

반정규화 : 시스템의 성능 향상, 개발 및 운영의 편의성 등을 위해 정규화된 데이터 모델을 통합, 중복, 분리하는 과정으로 의도적으로 정규화 원칙을 위배하는 행외
 - 중복 테이블을 추가하는 방법
  - 집계 테이블의 추가
  - 진행 테이블의 추가
  - 특정 부분만을 포함하는 테이블의 추가

 

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

1. 학습성
2. 적합성
3. 정확성
4. 보안성

ISO/IEC 9126 : 소프트웨어 품질 평가를위한 국제 표준
 - ISO/IEC 9126의 품질 특성
   - 기능성(Functionality)
    - 적합성
    - 정확성
    - 상호운용성
    - 보안성
    - 준수성

  - 신뢰성(Reliability)
   - 성숙성
   - 결함허용성
   - 회복성

  - 사용성(Usability)
   - 이해성
   - 학습성
   - 운용성
   - 호감성

  - 효율성(Efficiency)
   - 시간 반응성
   - 자원 효율성

  - 유지보수성(Maintainability)
   - 분석성
   - 변경성
   - 안전성
   - 시험성

  - 이식성(Portability)
   - 적응성
   - 설치성
   - 상호공존성
   - 대체성

 

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

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

 

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

1. 크랙 방지 기술
2. 정책 관리 기술
3. 암호화 기술
4. 방화벽 기술

디지털 저작권 관리(Digital Rights Management) : 각종 미디어의 접근 및 사용권한을 서버 인증을 통해 중앙집중식으로 통제하는 것
  - DRM의 기술요소
  - 암호화
  - 키 관리
  - 암호화 파일 생성
  - 식별 기술
  - 저작권 표현
  - 정책 관리
  - 크랙 방지
  - 인증
  - 인터페이스
  - 이벤트 보고
  - 사용 권한

 

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

1. Brooks의 법칙
2. Boehm의 법칙
3. Pareto의 법칙
4. Jackson의 법칙

- Brooks의 법칙 : 새로운 인력을 추가할수록 미팅, 인터페이스 합의, 의사소통 등 커뮤니케이션 비용이 월등히 증가하여 프로젝트가 지연되는 현상
- Boehm의 법칙 : 컴퓨터 프로그램을 설계, 개발, 운영, 유지보수에 관련된 문서를 작성하는 데 필요한 과학적인 지식의 실용

 

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

1. 비용에 관한 사항을 효율적으로 관리하는 것
2. 개발 과정의 변경 사항을 관리하는 것
3. 테스트 과정에서 소프트웨어를 통합하는 것
4. 개발 인력을 관리하는 것

 

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

1. 컴퓨터 처리가 불가
2. 알고리즘 입력 데이터 수가 한 개
3. 알고리즘 수행시간이 입력 데이터 수와 관계없이 일정
4 .알고리즘 길이가 입력 데이터보다 작음

 

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

1. pmd
2. cppcheck
3. valMeter
4. checkstyle

정적분석 도구
 - PMD
 - FindBugs
 - CheckStyle
 - Cppcheck

 

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

1. 동치 분할 검사
2. 형상 검사
3. 알파 검사
4. 베타 검사

동치 분할 검사 : 입력 자료에 초점을 맞춰 테스트 케이스를 만들고 검사하는 방법
형상 검사 : 구성 요소, 목록, 유지보수를 위한 모든 사항이 표현되었는가를 검사하는 방법
베타 검사 : 선정된 최종 사용자가 여러 명의 사용자 앞에서 행하는 테스트 방법

 

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

1. Stub
2. Driver
3. Procedure
4. Function

하향식 통합 테스트 : 프로그램의 상위 모듈에서 하위 모듈 방향으로 통합하면서 테스트하는 기법
 - 테스트 드라이버 : 상위 모듈 없이 하위 모듈이 있는 경우 하위 모듈 구성
   (이미 존재하는 하위 모듈과 존재하지 않는 상위 모듈 간의 인터페이스 역할을 함)
   (소프트웨어 개발이 완료되면 드라이버는 본래의 모듈로 교체)
 - 테스트 스텁 : 상위 모듈은 있지만 하위 모듈이 없는 경우 하위 모듈 대체
   (일시적으로 필요한 조건만을 가지고 임시로 제공되는 가짜 모듈의 역할을 함)
   (시험용 모듈이기 때문에 일반적으로 드라이버보다 작성하기 쉬움)

 

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

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

소프트웨어 패키징 : 모듈별로 생성한 실행 파일들을 묶어 배포용 설치 파일을 만드는 것
 - 개발자가 아닌 사용자 중심으로 진행
 - 소스 코드는 향후 관리를 고려하여 모듈화하여 패키징
 - 사용자의 편의성 및 실행 환경을 우선
 - 다양한 환경에서 소프트웨어를 사용할 수 있도록 일반적인 배포 형태로 패키징

 

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

1. 프로그램의 로직이 복잡하여 이해하기 어려운 프로그램을 의미한다.
2. 아주 오래되거나 참고문서 또는 개발자가 없어 유지보수 작업이 어려운 프로그램을 의미한다.
3. 오류가 없어 디버깅 과정이 필요 없는 프로그램을 의미한다.
4. 사용자가 직접 작성한 프로그램을 의미한다.