정처기 22년 4월 24일 기출 오답정리_03
2025. 1. 22. 14:40

[2과목:소프트웨어 개발]

 

*통합 테스트(Integration Test)

- 상향식

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

- 하향식

 : 상위 모듈에서 하위 모듈 방향으로 / 깊이 우선 통합법, 넓이 우선 통합법 사용

 

* 이진 탐색(Binary Search)

- low, middel, high 값을 사용

- 찾고자 하는 데이터를 중앙에 위치한 중간 값과 비교

- 전제조건 : 데이터 목록은 오름차순으로 정렬되어 있어야 함 

1단계. 배열의 중간 값 찾기 >> 검색 값과 비교

2단계. 중간 값보다 검색 값이 크다면 >> 오른쪽 구간을 탐색

    중간 값보다 검색 값이 작다면 >> 왼쪽 구간을 탐색

3단계. 값이 발견 될 때까지 반복

>> Q. 다음을 이진 검색 방법으로 14를 찾을 경우 비교되는 횟수는?  3회

          [ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ]

     1회. 1~15의 중간값 : 8

                14 > 8 이므로, 오른쪽 구간 탐색

     2회. 8~15의 중간값 : 12

                14> 12 이므로, 오른쪽 구간 탐색

     3회. 13~15의 중간값 : 14

                14=14 이므로 탐색 종료.

 

- 워크스루(Walkthrough)

  : 팀원들이 함께 검토하는 비공식적인 검토 기법

- 인스펙션(Inspection)

  : 산출물(요구사항명세서 등)을 체계적이고 공식적인 방식으로 검토하여 결함을 발견하는 기법

   - 인스펙션 순서

   : 계획 > 사전 교육(배경지식) > 준비 단계(자료) > 인스펙션 회의 > 수정 > 후속 조치(수정반영확인)

 

- 복호화 : 디코딩. 부호화 된 데이터를 부호화 되기 전 형태로 바꾸어 사람들이 읽을 수 있는 형태로 되돌려 놓는 것

- 크랙 : 소프트웨어나 시스템의 보안 기능을 무력화하거나 제거하여 정품인증 등을 우회하는 행위(주로 불법적 목적)

- 형상관리 : 소프트웨어 개발 과정에서 발생하는 변경 사항을 관리하기 위한 일련의 활동 (버전관리, 변경사항 추적)

 

- 테스트 케이스(Test Case)

: 테스트의 목표와 방법이 정해진 에 작성.

 결함이 있더라도 정상적인 결과가 나올 수 있기 때문에 결함을 검사 할 수 있는 테스트 케이스를 찾아야 함.

 개발된 서비스가 정의된 요구 사항을 준수하는지 확인하기 위한 입력값, 실행조건, 예상결과의 집합.

 테스트 오라클 : 테스트의 예상 결과를 제공하는 메커니즘. 테스트 케이스 결과가 맞는지 틀린지 판단

 

- DRM(Digital Right Management)

: 디지털 콘텐츠와 디바이스의 사용을 제한하기 위해 하드웨어 제조업자, 저작권자, 출판업자 등이 사용할 수 있는 접근 제어 기술

 

- RCS(Revision Control System)

: 동시에 소스를 수정하는 것을 방지하며 다른 방향으로 진행된 개발 결과를 합치거나 변경 내용을 추적할 수 있는 소프트웨어 버전 관리 도구

 

* 테스트 기법

- 화이트박스 테스트

: 내부 로직과 구조 고려.

  정적 분석(코드만 분석)과 동적 분석(코드 실행).

  논리흐름도(Logical Flow Diagram) 통해서 코드 흐름 분석.

  Test Coverage 기준으로 테스트 데이터 선택

- 블랙박스 테스트

: 내부 구조를 고려하지 않고, 외부 동작과 요구사항 명세를 기반으로 입출력 결과를 테스트

 

*알고리즘

- 알고리즘 : 문제를 해결하기 위한 명확한 단계의 집합. 컴퓨터가 이를 수행하기 위해 순서대로 실행되는 명령어로 구성됨

- 검색(Searching) : 정렬되어 있든 아니든 키값을 찾는 방법

 1) 선형 검색(Linear Search) : 정렬 여부와 관계없이 작동

 2) 이진 검색(Binary Search) : 정렬된 데이터에서만 작동

-  정렬(Sorting) : 흩어져있는 데이터를 키값을 이용하여 순서대로 열거\

 

*버블 정렬

: 인접한 두 데이터를 비교하여 정렬

1단계. 첫번째 요소부터 인접한 두 요소 비교

2단계. 두 요소의 크기를 비교하여 위치 교환

3단계. 한번의 PASS 동안 가장 큰 값이 배열 끝으로 이동

4단계. 배열 전체가 정렬될 때까지 위 과정 반

>> Q. 버블 정렬을 이용하여 다음을 오름차순으로 정렬할 경우, PASS1의 결과는?

          [ 9 6 7 3 5 ]   >>  [ 6 7 3 5 9 ]

   PASS1 : 첫번째 요소인 9를 각 요소와 비교

 

*단위테스트에서의 Stub과 Driver

- 스텁(Stub) : 테스트 중 모듈이 호출하는 가상의모듈. 데이터를 제공 

- 드라이버(Driver) : 테스트 할 모듈을 호출하여 테스트 결과를 검증 (결과값을 전달 받음)

 

*IDE(Integrated Development Environment)

: 소프트웨어 개발을 위해 필요한 다양한 도구들을 하나의 환경에 통합한 프로그램

- Coding, Compile(사람의 고급언어를 컴퓨터의 저급언어로 변환), Debugging, Deployment(배포)

 

*트리 순회

- 트리의 구성요소 : 루트 노드(최상위 노드) / 왼쪽 서브트리 / 오른쪽 서브트리

- 종류 (데이터를 처리하는 순서)

 1) 전위 순회(Preorder) : Root > Left > Right

 2) 중위 순회(Inorder) : Left > Root > Right

 3) 후위 순회(Postorder) : Left > Right > Root   

 

- JSON(JavaScript Object Notation)

 : 속성-값 쌍(Attribute-Value Pairs)으로 이루어진 데이터 오브젝터를 전달하기 위해 사용하는 개방형 표준 포맷

 

*순서가 있는 리스트

- Stack : LIFO(Last-In-First-Out)

- Queue(큐) : FIFO(First-In-First-Out)

 

*단위테스트 도구

- JUnit(Java) 제이유닛

- CppUnit(C++) 씨피피유닛

- NUnut(.NET) 엔유닛

- Pytest(Python) 파이테스

- HttpUnit(웹 어플리케이션)

 

 

oxxxxooooo

oxxoooxoox

12/20

60점

2과목은 고득점 취득하도록 기출 많이 돌리기