정보처리기사 필기시험을 대비해서 2과목 소프트웨어 개발을 인프런 강의를 보면서 정리한 포스트입니다. 틀린 부분이 있을 수도 있습니다.
인프런 강의 🔽
[지금 무료]정보처리기사 자격증 대비 교육(필기)| 국립안동대학교 SW융합교육원 - 인프런 강의
현재 평점 4.9점 수강생 1,484명인 강의를 만나보세요. NCS개정 정보처리기사 필기 합격을 위한 핵심요약 특강으로 CBT 필기시험과 필답형 실기시험을 효율적으로 학습 할수 있습니다. NCS 학습모듈,
www.inflearn.com
2과목 소프트웨어 개발 목차
1. 데이터 입출력 구현 (자료구조)
2. 통합구현
3. 제품소프트웨어 패키징 (배포)
4. 애플리케이션 테스트
5. 인터페이스 구현
1. 선형/비선형 구조
선형 구조
- 큐, 스택, 데크, 리스트 , 연결리스트
비선형 구조
- 그래프, 트리, 인접행렬
스택 응용 분야
- 인터럽트의 처리, 수식의 계산, 서브루틴의 복귀번지 저장, 후위표현의 연산, 깊이 우선 탐색(DFS)

2. 트리
트리 관련 용어


🌟 차수와 트리의 차수를 비교하는 문제가 많이 나온다고 합니다. 또한 단말 노드 같은 경우엔 레벨이 제일 낮은 노드가 아닌, 차수가 0인 노드를 말합니다.
3. 트리 순회, 연산식
🌟 트리 순회
- 전위 순회(Preorder) : 루트 => 왼쪽자식 => 오른쪽 자식 순으로 순회
- 중위 순회(Inorder) : 왼쪽자식 => 루트 => 오른쪽 자식 순으로 순회
- 후위 순회(Postorder) : 왼쪽 자식 => 오른쪽 자식 => 루트 순으로 순회

4. 정렬
선택 정렬 (Select Sort)
- n 개의 레코드 중에서 최솟값(또는 최댓값)을 찾아 배열의 첫 번째위치에 놓고 이를 반복하여 정렬하는 방법
-
- 전체 숫자를 보고 가장 작은 숫자를 골라서 맨 앞자리 배치.
- 그 다음으로 작은 숫자를 찾아서 두번째자리 배치
- 위 과정을 반복하면서 정렬.
-
- 최상, 최악, 평균시간 복잡도: O(N^2)

버블 정렬 (Bubble Sort)
- 인접한 데이터를 비교하면서 그 크기에 따라 데이터 위치를 바꾸어 정렬하는 방법이다.
-
- 앞에서 부터 순서대로 진행
- 숫자가 이미 정렬이 되어있다면 변경 X , 왼쪽의 숫자가 더 크면 자리 변경
* 서로 인접한 두 개를 비교해간다는 것이 특징.
-
- 최상, 치악 평균 시간 복잡도 : O(N^2)

삽입 정렬(Insertion Sort)
- 정렬된 파일에 새로운 하나의 레코드를 순서에 따라 삽입시켜 정렬하는 방법이다
- 최상 시간 복잡도 : O(N)
- 최악 평균시간 복잡도 : O(N^2)

5. 검색
선형 검색
- 원하는 레코드를 찾을 때 까지 처음부터 끝까지 차례로 하나씩 비교하면서 검색한다
- 데이터가 모인 집합 (배열, 링크드 리스트 등)의 처음부터 끝까지 하나씩 순서대로 비교하며 원하는 값을 찾아 내는 알고리즘이다
- 순차 검색이라고도 한다
- 단점 : 단순한 방식으로 정렬되지 않은 검색에 가장 유용하며 평균 검색 시간이 많이 소요된다.
- 평균 검색 횟수 : (n+1)/2
🌟이분 검색 (계산 검색)
- 탐색 효율이 좋고 탐색 시간이 적게 소요된다
- 검색할 데이터가 정렬 되어 있어야한다
- 비교 횟수를 거듭할 때마다 검색 대상이 되는 데이터의 수가 절반으로 줄어든다
- 대상 범위의 첫 번째 원소의 위치를 Low로, 마지막 원소의 위치를 High로 두고서 그 중간 원소의 위치인 Mid를 (Low +High)/2
- 찾고자하는 Key와 중간값을 비교한다
- Key > 중간값 : Low를 (Mid +1)로 두고서 계속 수행 => 키가 중간값보다 크기 때문에 중간값보다 1 큰 곳에서부터 탐색
- Key < 중간값 : High를 (Mid -1 )로 두고서 계속 수행 => 키가 중간값 보다 작기 때문에 최대 범위를 중간값 이하로
- Key = 중간값 : 검색 완료


6. 해싱 함수의 종류
해싱(hashing)은 레코드 키 값을 어떤 해싱 함수에 의해 주소로 변환시켜 해당 주소 위치에 레코드를 저장하는 방식(키-주소 변환 방법)으로 키 변환 값이 같은 경우 오버플로우 문제가 발생하지만 검색할 때 찾고자 하는 레코드의 키 값을 주소 변환에 의해 해당 위치를 검색하므로 조사 횟수가 상당히 작은 방식의 검색이다.
- 제산 방법(Division Method)
- 중간 제곱 방법(Mid-Square Method)
- 중첩 방법 (Folding Method)
- 기수 변환 방법 (Radix Conversion Method)
- 무작위 방법 (Random Method)
- 계수 분석 방법 (Digit Analysis Method)

7. 단위 테스트
단위 테스트 정의
- 하나의 모듈을 기준으로 독립적으로 진행되는 가장 작은 단위의 테스트이다
- 애플리케이션을 구성하는 하나의 기능이 올바르게 동작하는지를 독립적으로 테스트하는 것이다
- 구현단계에서 각 모듈의 개발을 완료한후 개발자가 명세서의 내용대로 정확히 구현되었는지 테스트한다
- 모듈 내부의 구조를 구체적으로 볼 수 있는 구조적 테스트를 주로 시행한다.
단위 테스트 지원도구 (xUnit)
- JUnit: Java 프로그래밍 언어에 사용되는 테스트 도구로서 데이터를 테스트한 다음 코드에 삽입한다
- NUnit: 모든 .net 언어에 널리 사용되는단위 테스트 프레임워크로 병렬로 실행할 수 있는 데이터 중심 테스트를 지원한다
- JMockit : 오픈소스 단위 테스트 도구로 기록 및 검증 구문으로 API를 Mocking 할 수 있다
- EMMA : 코드 분석 오픈소스 툴킷으로 Java 기반이므로 외부 라이브러리 종속성이 없으며 소스 코드에 액세스할 수 있다
- PHPUnit : PHP 프로그래머를 위한 단위 테스트 도구이다
- HttpUnit : Java 프로그램용 GUI가 없는브라우저를 포함하는 오픈소스 Java 라이브러리이다
- DBUnit : 데이터베이스 단위 테스트를 지원하는 프레임워크이다
8. 블랙박스 테스트 VS 화이트박스 테스트
블랙박스 테스트(Black Box Test)
- 소프트웨어가 수행할 특정 기능을 알기 위해 각 기능이 완벽히 작동되는 것을 입증하는 테스트로 기능 테스트라고도한다
- 대표적인 명세 기반 기법이다
- 등가 분할의 경계 부분에 해당하는 입력값에서 결함이 발견될확률이 경험적으로 높아서 결함을 방지하기 위해 경계값까지 포함하여 테스트하는 기법이다
- 🌟종류 : 동치 분할 검사, 원인 효과 그래프, 오류 예측 검사, 비교 검사, 경계값 분석
화이트 박스 테스트(White Box Test)
- 모듈의 원시 코드를 오픈시킨 상태에서 코드의 논리적 모든 경로를 테스트하는 방법이다
- Source Code의 모든 문장을 한번이상 수행함으로써 진행된다
- 화이트박스 테스트의 이해를 위해 논리 흐름도를 이용할 수 있다
- 테스트 데이터를 이용해 실제 프로그램을 실행함으로써 오류를 찾는 동적 테스트(Dynamic Test)에 해당한다
- 🌟 종류 : 기초 경로 검사, 루프 테스트, 데이터 흐름 테스트, 제어 구조 검사
'{etc} > qualifications' 카테고리의 다른 글
| [정보처리기사] 3과목 데이터베이스 구축 정리 및 요약 (1) (1) | 2026.01.20 |
|---|---|
| [정보처리기사] 2과목 소프트웨어 개발 정리 및 요약 (2) (0) | 2026.01.20 |
| [정보처리기사] 1과목 소프트웨어 설계 정리 및 요약(2) (1) | 2026.01.17 |
| [정보처리기사] 1과목 소프트웨어 설계 정리 및 요약 (1) (1) | 2026.01.17 |
| 제 53회 SQLD 합격 시험 후기, 공부법 (4) | 2024.06.20 |