자격증/정보처리기사

2020년 03회 정보처리기사 필기 2과목(소프트웨어 개발) 문제 정리

Declan Andrew 2021. 3. 4. 20:00
반응형

2020년 03회 기출 리뷰 (2020.08.22)

 

 

1.  인터페이스 보안을 위해 네트워크 영역에 적용될 수 있는 솔루션

 

- IPSec : 네트워크 계층에서 IP 패킷 단위의 데이터 변조 방지 및 은닉 기능 제공

- SSL : TCP/IP 계층과 애플리케이션 계층 사이에서의 인증, 암호화, 무결성을 보장하는 프로토콜

- S-HTTP(HTTPS) : 클라이언트와 서버간 전송되는 모든 메시지를 암호화하는 프로토콜

 

보안 관련이므로 SMTP는 해당이 되지 않는다. (전자 우편 프로토콜)

 

 

2. 소프트웨어 공학의 기본 원칙

 

- 품질 높은 소프트웨어 상품 개발 

- 지속적인 검증 시행

- 결과에 대한 명확한 기록 유지

 

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

 

 

3. 패키지 소프트웨어 표준

 

- ISO/IEC 9126 : 소프트웨어 품질 특성 및 척도에 대한 표준화

- ISO/IEC 12119 : 소프트웨어의 품질 평가를 위해 정보 기술과 소프트웨어 패키지에 대한 품질 요구사항 및 시험사항을 규정한 국제 표준이다. 주로 패키지 소프트웨어에 대한 품질 평가에 적용한다

- ISO/IEC 14598 : 소프트웨어 제품 평가 프로세스 및 평가 모듈 제공(품질 평가 프로세스) ISO/IEC 9126 규정에 따른다.

- ISO/IEC 25000 : 하나로 통합

 

 

4. 클린 코드 작성 원칙

 

- 가독성

- 단순성

- 의존성 배제

- 중복성 최소화

- 추상화

 

 

5. 테스트 유형

 

1. 블랙박스 테스트 유형

  - 경계값 분석(Boundary Value Analysis)

  - 동치(동등) 분할 검사(Equivalence Partitioning Testing)

  - 원인-효과 그래프 검사(Cause-Effect Graphing Testing)

  - 오류 예측 검사(Error Guessing)

  - 비교 검사(Comparison Testing)

 

2. 화이트박스 테스트 유형

  - 기초 경로 검사

  - 제어 구조 검사

    - 조건 검사(Condition Testing)

    - 루프 검사(Loop Testing)

    - 데이터 흐름 검사(Data Flow Testing)

 

블랙박스는 내부를 모르는 상태로 인풋과 아웃풋으로만 판단,

화이트박스는 내부 코드 단위 테스트

 

 

6. 제어흐름 그래프

cyclomatic 수 계산공식

1. Edge(화살표) - Node(동그라미) + 2

2. 또는 막혀있는 공간 + 1

 

그림의 cyclomatic 수는

첫번째 공식으로는 

6(Edge) - 4(Node) + 2 = 4

 

두번째 공식으로는 

막혀있는 공간 3개 + 1 = 4

 

 

7. 다음 자료에 대해 선택 정렬을 이용하여 오름차 순으로 정렬

 

[37, 14, 17, 40, 35]

 

선택 정렬은 가장 작은 값을 찾아 첫 번째 값과 교환한다.

그 후 정렬된 값을 제외한 나머지 인덱스 중

가장 작은 값을 찾아 정렬되지 않은 인덱스 중 가장 처음 값과 자리를 교환한다.

 

1회전 : [14, 37, 17, 40, 35] (14가 제일 작아 첫번째 값과 교환, 그 후 14는 정렬에서 제외)

2회전 : [14, 17, 37, 40, 35] (17이 제일 작으므로 37과 교환, 그 후 17는 정렬에서 제외)

3회전 : [14, 17, 35, 40, 37] (남은 값중 35가 가장 작으므로 맨 앞값인 37과 교환, 그 후 35는 정렬에서 제외)

4회전 : [14, 17, 35, 37, 40] (마지막으로 정렬되지 않은 40과 제일 작은 값인 37을 교환하여 정렬을 마친다.)

 

 

8. 형상 관리 도구의 주요 기능

 

- 저장소(Repository) : 최신 버전의 파일들과 변경 내역에 대한 정보들이 저장되어 있는 곳

- 가져오기(Import) : 버전 관리가 되고 있지 않은 아무것도 없는 저장소에 처음으로 파일을 복사

- 체크아웃(Check-Out) : 프로그램을 수정하기 위해 저장소에서 파일을 받아 옴.

소스 파일과 함께 버전 관리를 위한 파일들도 받음

- 체크인(Check-In) : 체크아웃 한 파일의 수정을 완료 한 후 저장소의 파일을 새로운 버전으로 갱신

- 커밋(Commit) : 체크인을 수행할 때 이전에 갱신 된 내용이 있는 경우 충돌을 알리고

diff 도구를 이용해 수정 후 갱신완료

- 동기화(Update) : 저장소에 있는 최신 버전으로 자신의 작업 공간을 동기화함

 

 

9. 트리 운행법

이진 트리 운행법

- Preorder 운행(전위 순회) : Root -> Left -> Right 순

- Inorder 운행(중위 순회) : Left -> Root  -> Right 순

- Postorder 운행(후위 순회) : Left -> Right -> Root 순

 

 

10. 소프트웨어 품질 목표

 

- 기능성 : 사용자 요구사항 정확하게 만족

- 신뢰성 : 요구된 기능을 정확하고 일관되게 오류없이 수행

- 사용성 : 사용자와 컴퓨터 사이에 발생하는 어떠한 행위에 대해 사용자가 정확하게 이해하고 사용하며

향후 다시 사용하고 싶은 정도

- 효율성 : 요구하는 기능을 할당된 시간동안 한정된 자원으로 얼마나 빨리 처리할 수 있는지 정도

- 유지보수성 : 환경 변화 or 새 요구사항 발생 시 소프트웨어 개선 및 확장할 수 있는 정도

- 이식성 : 타 환경에서도 얼마나 쉽게 적용할 수 있는지 정도

 

 

11. 알고리즘 설계 기법

 

- 분할 정복 알고리즘(Divide and Conquer) : 그대로 해결 할 수 없는 문제를 작은 문제로 분할하여

문제를 해결하는 알고리즘

- Greedy(탐욕 알고리즘) : 현재 시점에서 가장 최적의 방법을 선택하는 알고리즘

- Backtracking : 모든 조합을 시도하여 문제의 답을 찾는 알고리즘

 

 

12. 형상 관리 역할

 

- 이전 리버전이나 버전에 대한 정보에 접근하여 배포본 관리에 유용

- 불필요한 사용자의 소스 수정 제한

- 동일 프로젝트에 대해 여러 개발자가 동시에 개발 가능

 

프로젝트의 버전과 수정사항을 관리하지만 개발 비용을 관리하지 않느다.

 

 

13. 제품 소프트웨어 패키징 도구 활용시 고려사항

 

- 적합한 암호화 알고리즘 고려

- 여러가지 이기종 콘텐츠 및 단말기 간 연동 고려

- 사용자 편의성을 위한 복잡성 및 비효율성 문제 고려

 

 

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

 

- 암호화(Encryption) : 콘텐츠 및 라이선스를 암호화하고 전자 서명을 할 수 있는 기술

- 키 관리(Key Management) : 콘텐츠를 암호화한 키에 대한 저장 및 분배 기술

- 암호화 파일 생성(Packager) : 콘텐츠를 암호화한 콘텐츠로 생성하기 위한 기술

- 식별 기술(Identification) : 콘텐츠에 대한 식별 체계 표현 기술

- 저작권 표현(Right Expression) : 라이선스 내용 표현 기술

- 정책 관리(Policy Management) : 라이선스 발급 및 사용에 대한 정책 표현 및 관리 기술

- 크랙 방지(Tamper Resistance) : 크랙에 의한 콘텐츠 사용 방지 기술

- 인증(Authentication) : 라이선스 발급 및 사용의 기준이 되는 사용자 인증 기술

 

 

15. 파티션 유형

 

- 범위 분할(Range Partitioning) : 지정한 열의 값을 기준으로 분할

- 해시 분할(Hash Partitioning) : 해시 함수를 적용한 결과 값에 따라 데이터 분할

- 조합 분할(Composite Partitioning) : 범위 분할 후 해시 함수를 적용하여 다시 분할

 

 

16. 애플리케이션 통합 테스트 유형

 

- 상향식 통합 테스트

  - 프로그램 하위 모듈에서 상위 모듈로 통합하면서 테스트

  - 하나의 주요 제어 모듈과 관련된 종속 모듈의 그룹인 클러스터 필요

  - 상위 모듈 개발이 완료되지 않은 경우 드라이버(Driver)를 사용하기도 함

  - 깊이 우선 방식 또는 너비 우선 방식이 있다.

  - 상위 컴포넌트를 테스트 하고 점증적으로 하위 컴포넌트를 테스트 한다.

  - 하위 컴포넌트 개발이 완료되지 않은 경우 스텁(Stub)을 사용하기도 한다.

 

- 회귀 테스트

  - 이미 테스트 된 프로그램의 테스팅 반복

  - 통합 테스트로 인해 변경된 모듈이나 컴포넌트에 새로운 오류가 있는지 확인

 

- 빅뱅 테스트

  - 통합 테스트(Integration Test) 중 비점진적 통합방식

 

 

18. 소프트웨어 재공학의 장점

 

- 위험부담 감소

- 비용 절감

- 시스템 명세의 오류 억제

 

 

19. 인수 테스트(Acceptance Test)의 종류

 

- 사용자 인수 테스트

- 운영상의 인수 테스트

- 계약 인수 테스트

- 규정 인수 테스트

- 알파 테스트

- 베타 테스트

 

 

20. 트리

 

트리의 차수(degree) : 전체 트리 중에서 가장 많은 차수

노드의 차수(degree) : 각 노드에서 뻗어나온 가지의 수 e.g. B의 차수는 3(D, E, F)

단말 노드(Terminal Node) = 잎 노드(Leaf Node) : 자식이 하나도 없는, Degree가 0인 노드

e.g. D, E, H, I, G

 

Level : 근 노드의 레벨은 1, 뎁스별로 레벨 1이 추가 (e. g. C 노드의 Level은 2이고, G 노드의 Level은 3이다.)

 

기타 용어 ) Procedure : 절차형 SQL을 활용하여 특정 기능을 수행하는 일종의 트랜잭션 언어

 

반응형