[정보처리기사필기 정리] 2과목 - 소프트웨어 개발
0. 상향식테스트, 하향식 테스트
1. 블랙박스 테스트
2. 화이트 박스 테스트
3. 인수 테스트
4. 트리란
5. EAI
6. 형상관리
7. DRM
8. 소프트웨어 패키징 도구
9. 인터페이스 보안
10.인터페이스 구현
11. 정렬
12. 스택, 큐
13. 모듈
14. 테스트 오라클
0. 상향식 테스트와 하향식 테스트
0-1. 상향식 테스트
: 맨 아래에서 하나씩 말아올리며 위로 올라가는 테스트 방식.
필요한 임시 모듈 → 테스트 드라이버 사용(Test Driver)
0-2. 하향식 테스트
: 맨 위에서부터 하나씩 내려가면서 하는 테스트 방식 : 절차식
필요한 임시 모듈 → 테스트 스텁 사용 (Test Stub)
*테스트 단계
1. 단위 테스트 (Unit Testing) : 개발자가 함
- 정적 테스트 : 소스 코드를 실행 시키지않고 소스코드 내부 확인
- 동적 테스트 : 단위모듈을 만들어서 입출력 값을 넣어보는 것
2. 통합 테스트 (Intergration Testing) : 모듈 단위로 테스트가 끝나고 모듈을 모아서 테스트
- 상향식 테스트 : 아래서 부터 쭉 올라옴 (드라이버)
- 하향식 테스트 : 메인페이지에서 쭉 내려옴 (스텁)
- 빅뱅 테스트 : 모든걸 한번에 같이 테스트 (모든게 다 구현되어있어야함) : 비점진적 테스트
- 백콤 테스트 : 위 아래로 같이 테스트 (상,하향식 다 사용) = 드라이버, 스텁 둘 다 사용
테스트 하네스 도구
- 테스트 드라이브 : 상향식
- 테스트 스텁 : 하향식
- 테스트 슈트 : 모아둔건
- 테스트 케이스 :하나의 케이스(회원가입 케이스, 로그인 케이스)
- 테스트 스크립트 : 테스트의 절차
- 목 오브젝트 : 목까지밖에없는 테스트 (생각만 할 수있는)
3. 시스템 테스트 (System Testing)
- 기능 : 사용자의 요구사항에 만족하는 지 기능 테스트
- 비기능 : 보안, 성능, 안정성, 신뢰성, 자원활용력 등
4. 인수 테스트 (사용자가 하는 테스트) → 상세내용은 3번 확인!
- 알파테스트
- 베타테스트
관련기출)
05. 테스트 드라이버(Test Driver)에 대한 설명으로 틀린 것은?
1) 시험대상 모듈을 호출하는 간이 소프트웨어이다.
2) 필요에 따라 매개변수를 전달하고 모듈을 수행한 후의 결과를 보여 줄 수 있다.
3) 상향식 통합 테스트에서 사용된다.
4) 테스트 대상 모듈이 호출하는 하위 모듈의 역할을 한다. : 하향식테스트의 설명
(2021 3회 정보처리기사 필기)
1. 블랙박스 테스트 (Black Box Testing)
: 블랙 박스 - 안이 보이지 않는 캄캄한 상자. 기능이 완전히 작동되는 것을 입증하는 테스트로 "기능테스트"라고 한다.
- 사용자의 요구사항 명세를 보면서하는 테스트. 구현된 기능을 테스트 함.
- 인터페이스에서 실시되는 테스트
- 테스트 과정의 후반부에 적용
1-1. 블랙박스 테스트의 종류
동치 분할 검사 [Equivalence Partitioning Testing] |
입력 자료에 초점을 맞춰 테스트 케이스 만들고 검사한다. 동등 분할 기법이라고도 한다. |
경계값 분석 [Boundary Value Analysis] |
입력 자료에만 치중한 동치 분할 기법을 보완하기 위한 기법. 입력 조건의 경계값을 테스트 케이스로 선정하여 검사하는 기법. [입력조건의 중간값보다 경계값에서 오류가 발생될 활률이 높다는 점을 이용] |
원인 - 효과 그래프 검사 [Cause-Effect Graping Testing] |
입력 데이터 간의 관계와 출력에 영향을 미치는 상황을 체계적으로 분석한 다음 효용성이 높은 테스트 케이스를 선정하는 검사 기법. |
오류 예측 검사 [Error Guessing] |
과거의 경험이나 확인자의 감각으로 테스트. *다른 블랙박스 테스트 기법으로 찾아낼 수 없는 오류를 찾아내는 보충적 검사 기법. "데이터 확인 검사" 라고도 한다. |
비교 검사 [Comparison Testing] |
여러 버전의 프로그램에 동일한 테스트 자료를 제공 → 동일한 결과가 출력되는지 테스트하는 기법 |
관련문제)
21. 평가 점수에 따른 성적부여는 다음 표와 같다. 이를 구현한 소프트웨어를 경계 값 분석 기법으로 테스트 하고자 할 때 다음 중 테스트 케이스의 입력 값으로 옳지 않은 것은?
평가 점수 | 성적 |
80 ~ 100 | A |
60 ~ 79 | B |
0 ~ 59 | C |
1) 59 : C의 경계값에 해당
2) 80 : A, B의 경계값에 해당
3) 90 : A의 중간값에 해당
4) 101 : A의 경계값에 해당
(2020 1~2회 정보처리기사 필기)
25. 블랙박스 테스트의 유형으로 틀린 것은?
1) 경계값 분석
2) 오류 예측
3) 동등 분할 검사
4) 조건, 루프 검사 : 화이트 박스 테스트 기법
(2020 3회 정보처리기사 필기)
37. 블랙박스 테스트 기법으로 거리가 먼 것은??
1) 기초 경로 검사 : 화이트 박스 테스트 기법
2) 동치 클래스 분해
3) 경계값 분석
4) 원인 결과 그래프
(2020 4회 정보처리기사 필기)
2. 화이트박스 테스트 (White Box Testing)
: 안에가 보이는 것을 의미. 즉, 소스 코드를 다 볼 수 있으므로,
모듈의 원시 코드를 오픈시킨 상태에서 원시 코드의 논리적인 모든 경로를 테스트하여 테스트 설계
- 설계된 절차에 초점을 둔 구조적 테스트. 테스트 과정의 초기에 적용.
- 원시코드(모듈)의 모든 문장을 한번 이상 실행함으로써 수행.
- 프로그램의 제어 구조에 따라 선택, 반복 등의 분기점 부분들을 수행 함으로써 논리적 경로를 제어.
2-1. 화이트 박스 테스트의 종류
기초 경로 검사 [Base Path Testing] |
*대표적인 화이트 박스 테스트 기법이다. 테스트 케이스 설계자가 절차적 설계의 논리적 복잡성을 측정할 수 있게 해주는 테스트 기법. 결과는 경로의 기초를 정의하는데 지침으로 사용. |
제어 구조 검사 [Control Structure Testing] |
- 조건검사 (Condition Testing) : 프로그램 모듈 내에 있는 논리적 조건을 테스트. - 루프검사 (Loop Testing) : 프로그램의 반복(Loop) 구조에 초점을 맞춰 실행하는 데스트 - 데이터 흐름 검사 (Data Flow Testing) : 프로그램에서 변수의 정의와 변수 사용의 위치에 초점을 맞춰 실시하는 테스트. |
관련문제)
32. White Box Testing에 대한 설명으로 옳지 않은 것은?
1) Base Path Testing, Boundary Value Analysis가 대표적인 기법이다. : Boundary Value Analysis는 블랙박스 테스트 기법
2) Source Code의 모든 문장을 한 번 이상 수행함으로써 진행 된다.
3) 모듈 안의 작동을 직접 관찰할 수 있다.
4) 산출물의 각 기능별로 적절한 프로그램의 제어구조에 따라 선택, 반복 등의 부분들을 수행함으로써 논리적 경로를 점검 한다.
(2020 1~2회 정보처리기사 필기)
66. 화이트박스 검사로 찾기 힘든 오류는? ?
1) 논리 흐름도
2) 자료 구조 : 화이트 박스 검사는 설계된 절차에 대한 테스트
3) 루프 구조
4) 순환 복잡도
(2019 3회 정보처리기사 필기)
3. 인수 테스트 [Acceptance Test]
: 개발한 소프트웨어가 사용자의 요구사항을 충족하는 지를 테스트하는 것.
→ 사용자 입장에서 테스트를 하고, 개발된 것을 받아 들일지 말지 결정하는 것.
*인수 테스트의 종류
- 사용자 인수 테스트 : 사용자가 시스템 사용의 적절성 여부 확인
- 운영상의 인수 테스트 : 시스템 관리자가 백업 / 복원 시스템, 재난 복구, 사용자 권리 등 테스트
- 계약 인수 테스트 : 계약상의 인수/ 검수 조건을 준수하는 지 여부 확인
- 규정 인수 테스트 : 규정에 맞게 개발 되었는지 확인
- 알파 테스트 : 개발자 앞에서 사용자가 행하는 테스트 기법, 통제된 환경에서 검사
- 베타 테스트 : 선정된 최종 사용자가 여러 명의 사용자 앞에서 행하는 테스트 기법, 개발자에 의해 제어되지 않는 환경에서 검사
관련문제)
26. 검증 (Validation) 검사 기법 중 개발자의 장소에서 사용자가 개발자 앞에서 행해지며,
오류와 사용상의 문제점을 사용자와 개발자가 함께 확인하면서 검사하는 기법은?
1) 디버깅검사
2) 형상검사
3) 자료구조 검사
4) 알파 검사
(2020 9월 정보처리기사 필기)
4. 트리란?
: 뒤집힌 나무 모양으로 자료를 저장하는 구조.
4-1. 트리의 차수
* Node(노드) : 트리의 기본 요소. 자료항목과 다른 항목에 대한 가지(Branch)를 합친것.
→ A,B,C,D,E,F,G,H,I,J,K,L,M
* Root Node(루트 노드) : 트리 최상위 노드.
→ A
* Degree(차수) : 각 노드에서 뻗어 나온 가지의 수
→ A = 3, B = 2, C = 1, D = 3
* Terminal Node (단말 노드) = 잎 노드 (Leaf Node) : 자식이 하나도 없는 노드. 디그리가 0인 노드
→ K, L, F, G, M, I, J
* Son Node (자식 노드) : 어떤 노드에 연결된 다음 레벨 노드들
→ D의 자식 노드 : H, I, J
* Parent Node (부모 노드) : 어떤 노드에 연결된 이전 레벨의 노드들
→ E, F의 부모 노드 : B
* Brother Node, Silbling(형제 노드) : 동일한 부모를 갖는 노드들
→H의 형제 노드 : I, J
* 트리의 차수(Degree): 노드들의 디그리 중에서 가장 많은 수(트리에서 가장 자식을 많이 낳은 수)
→노드 A나 D가 3개의 디그리를 가지므로 앞 트리 의 디그리는 3.
* Depth (깊이) : 노드가 가지는 최대 깊이, 최대 레벨을 의미
→최대 레벨 4까지 뻗어나갔기 때문에 깊이 4에 해당.
관련문제)
31. 다음 트리의 차수 (degree) 와 단말 노드 (terminal node) 의 수는?
1) 차수: 4, 단말 노드: 4
2) 차수: 2, 단말 노드: 4
3) 차수: 4, 단말 노드: 8
4) 차수: 2, 단말 노드: 8
(2020 6월 정보처리기사 필기)
* 트리의 차수 : 노드들의 차수중에 제일 많은 수 = C, E가 자식이 둘씩있으므로 2차수.
* 단말노드 : 자식이 없는 노드 = D,G,H,F = 4개
4-2. 트리의 순회
*트리순회 방식
- 중위 순회 (Inorder) : Left - Root - Right
- 전위 순회 (Preorder) : Root - Left - Right
- 후위 순회 (Postorder) : Left - Right - Root
*기본 왼쪽 → 오른쪽 방향 공통.
*순회하는 방향의 노드 끝으로 한바퀴를 돌고 다음 노드로 넘어가기! (자세한 설명은 그림 예시로 이해)
* 부모 노드인 Root 노드를 어떤 순서로 방문하는지가 핵심
연습 이미지)
*중위순회 : D-B-E-A-F-C-G
*전위순회 : A-B-D-E-C-F-G
*후위순회 : D-E-B-F-G-C-A
5. EAI (Enterprise Application Integration)
: 기업 내 각종 애플리케이션 및 플롯폼 간의 정보 전달, 연계 통합 등 상호 연동이 가능하게 해주는 솔루션.
비즈니스간 통합 및 연계성을 증대시켜 효율성 및 각 시스템 간의 확정성을 높여준다.
즉 , 애플리케이션들끼리 연결시키는 방법.
EAI 구축 유형
- Point-to-point : 중간 미들웨어를 두지 않고 각 애플리케이션간 연결
- 솔루션 구매없이 통합.
- 상대적으로 저렴하게 통합 가능
- 변경, 재사용 어려움
- Hub & Spoke : 단일 접점이 허브 시스템을 통해 데이터를 전송하는 중앙 집중적 방식
- 모든 데이터 전송 보장
- 확장, 유지보수 용이
- 허브 장애 시 전체 영향
- Message Bus : 애플리케이션 사이에 미들웨어를 두어 처리, 미들웨어를 통한 통합
- 어댑터가 각 시스템과 버스를 두어 연결.
- 뛰어난 확장성, 대용량 처리 가능
- Hybrid : Hub & Spoke 와 Message Bus의 혼합 방식
- 그룹 내에서는 Hub & Spoke을, 그룹 간에는 Message Bus방식 사용
- 필요의 경우 한가지 방식으로도 구현이 가능
- 데이터 병목 현상 최소화
관련문제)
22. EAI (Enterprise Application Integration) 구축유형 중 Hybrid 에 대한 설명으로 틀린 것은?
1) Hub & Spoke 와 Message Bus 의 혼합방식이다.
2) 필요한 경우 한 가지 방식으로 EAI 구현이 가능하다.
3) 데이터 병목현상을 최소화할 수 있다.
4) 중간에 미들웨어를 두지 않고 각 애플리케이션을 point to point로 연결한다. : hybrid에 대한 설명이 아님 = point to point
(2020 9월 정보처리기사 필기)
6. 형상관리 (Configuration Management)
: 소프트웨어의 변경사항을 관리하기 위해 개발된 활동. = 지금의 형상. 현재의 모습을 관리한다는 뜻
형상관리를 통해 변경사항을 체계적으로 관리 및 추적 가능
쉽게 말하면, 소프트웨어를 만들때마다 버전 1.0, 버전 2.0 등의 방식으로 그때의 변경사항을 통해 형상을 관리한다.
- 소프트웨어 개발 과정에서 발생하는 모든 변경을 관리하는 활동
- 협업을 진행하는 멤버들의 공유 및 변경 이력 관리
- 소스코드, 각종 설계문서, 회의록 등의 모든 문서가 형상관리 대상 BUT 비용은 제외
- 대표적인 형상관리 도구 : SVN, CVS, Git
- SVN, CSV - 클라이언트.서버 방식 (중앙집중식)
- GIT - 분산 저장식
- 식별(어떤 형상들이 있는지) -> 통제 (Base 라인 설계, 변경요구 수용) -> 감사 (확인) -> 기록
관련문제)
32. 제품 소프트웨어의 형상 관리 역할로 틀린 것은?
1) 형상 관리를 통해 이전 리비전이나 버전에 대한 정보에 접근 가능하여 배포본 관리에 유용
2) 불필요한 사용자의 소스 수정 제한
3) 프로젝트 개발비용을 효율적으로 관리 : 비용과는 전혀 관련 없음
4) 동일한 프로젝트에 대해 여러 개발자 동시 개발 가능
(2020 8월 정보처리기사 필기)
32.형상관리의 개념과 절차에 대한 설명으로 틀린 것은 ?
1) 항상 식별은 형상 관리 계획을 근거로 형상관리의 대상이 무엇인지 식별하는 과정이다.
2) 형상관리를 통해 가시성과 추적성을 보장함으로써 소프트웨어의 생산성과 품질을 높일 수 있다.
3) 형상 통제과정에서 형상 목록의 변경요구를 즉시 수용 및 반영해야한다. : 즉시 수용 및 반영은 아님
4) 형상감사는 형상관리 계획대로 형상관리가 진행되고 있는지, 형상 항목의 변경이 요구사항에 맞도록 제대로 이루워졌는지 등을
살펴보는 활동이다.
(2021 3회 정보처리기사 필기)
7. DRM ( 디지털 저작권 관리 )
: 디지털 콘텐츠의 생성, 유통, 이용까지의 전 과정에 걸쳐 사용되는 디지털 콘텐츠 관리 및 보호 기술을 뜻한다.
디지털 콘텐츠 - 노래 파일, 사진 파일 등.
이러한 파일들의 저작권을 인정해주기 위해, 파일을 암호화하고 원본임을 증명할 수 있게 전자서명 같은 것을 넣는것.
"디지털 콘텐츠를 보호하기 위한 암호와나 인증"
DRM 기술요소
- 암호화 : 콘텐츠 및 라이선스 암호화
- 키관리 : 콘텐츠를 암호화한 키에 대한 저장 및 배포 기술
- 식별 기술 : 콘텐트에 대한 식별 체계 표현 기술
- 저작권 표현 : 라이선스의 내용 표현 기술
- 정책관련 : 라이선스 발급 및 사용에 대한 정책 표현
- 크랙 방지 : 크랙에 의한 콘텐츠 사용 방지 기술
- 인증 : 라이선스 발급 및 사용의 기준이 되는 인증 기술
- 인터페이스 : 상이한 DRM 플랫폼 간의 상호 호환성 인터페이스
- 사용권한 : 콘텐츠의 사용에 대한 권한을 관리하는 기술
관련문제)
34. 디지털 저작권 관리 (DRM) 기술과 거리가 먼 것은?
1) 콘텐츠 암호화 및 키 관리
2) 콘텐츠 식별체계 표현
3) 콘텐츠 오류 감지 및 복구 : DRM기술과는 관련성 없음.
4) 라이센스 발급 및 관리
(2020 8월 정보처리기사 필기)
40. 저작권 관리 구성요수 중 패키져(Packager)의 주요 역할로 옳은 것은?
1) 콘텐츠를 제공하는 저작권자를 의미한다. : 저작권자
2) 콘텐츠를 메타 데이터와 함께 배포 가능한 단위로 묶는다
3) 라이선스를 발급하고 관리한다. :클리어링 하우스
4) 배포된 콘텐츠의 이용 권한을 통제한다. : DRM 컨트롤러
(2021 3회 정보처리기사 필기)
8. 소프트웨어 패키징 도구
: 소프트웨어 배포를 위해 패키징하는 떄, 디지털 콘텐츠의 지적 재산권을 보호하고 관리하는 기능을 제공한다.
관련문제)
39. SW 패키징 도구 활용 시 고려 사항과 거리가 먼 것은?
1) 패키징 시 사용자에게 배포되는 SW이므로 보안을 고려한다.
2) 사용자 편의성을 위한 복합성 및 비효율성 문제를 고려한다. : 사용자의 편의성 고려해야함.
3) 보안상 단일 기종에서만 사용할 수 있도록 해야 한다. :소프트웨어를 적용하고, 배포하는데 단일기종에만 사용할 수 있도록하는 것은 말이 되지않음.
4) 제품 SW 종류에 적합한 암호화 알고리즘을 적용한다.
(2020 8월 정보처리기사 필기)
9. 인터페이스 보안
- 네트워크 영역
: 인터페이스 송,수신 간 스니핑(누군가 지켜보는 것) 등을 이용한 데이터 탈취 및 변조 위협을 방지하기 위해 네트워크 트래픽에 대한 암호화를 설정.
ex) IPSec, SSL, S-HTTP - 애플리케이션 영역
: 소프트웨어 개발 보안 가이드를 참조. 애플리케이션 코드 상의 보안 취약점을 보완하는 방향으로 보안 기능을 적용.
ex) 시큐어코딩, 암호화 - 테이터 베이스 영역
: 데이터베이스, 스키마, 엔티티의 접근 권한과 프로지저, 트리거 등 데이터 베이스 동작 객체의 보안 취약점에 보안기능을 적용.
* 네트워크 영역 솔루션 문제가 출제 비중이 높음.
*네트워크 영역 암호화 적용방식
IPSec
(IP Security)
|
*네트워크 계층에서 IP 패킷 단위의 데이터 변조 방지 및 은닉기능을 제공하는 프로토콜. *암호화 수행시 양방향 암호화를 지원. |
SSL | TCP/IP 계층과 애플리케이션 계층 사이에서 인증, 암호화, 무결성을 보장하는 프로토콜 |
S-HTTP | 클라이언트와 서버 간에 전송되는 모든 메시지를 암호화하는 프로토콜 |
관련문제)
27. 인터페이스 보안을 위해 네트워크 영역에 적용될 수 있는 솔루션과 거리가 먼 것은?
1) IPsec
2) STMP. : 서버 통신관련 방법(메일전송 시 STMP서버로 메일전송 > 해당 서버에서 해당 메일주소로 전송하는 것)
3) SSL
4) S-HTTP
(2020 8월 정보처리기사 필기)
10. 인터페이스 구현
구분 | 설명 |
JSON (JavaScript Object Notation) |
비동기식 브라우저/서버 통신을 위해 "속성-값" 쌍으로 이루어진 데이터객체를 전달하기 위한 사람이 읽기 쉬운 텍스트를 사용하는 개방형 표준 포맷. |
REST (REpresentational State Transfer) |
URL 자원을 활용하여 HTTP 메서드를 주고 받는 웹 아키텍쳐 |
AJAX (Asynchronous JavaScript and XML) |
자바 스크립트를 이용해, 클라이언트와 서버 간의 xml 데이터를 교환 및 제어함으로 이용자가 웹 페이지와 자유롭게 상호작용 할 수 있도록 하는 비동기 통신 기술. |
XML
(eXtensible Markup Language)
|
*특수한 목적을 갖는 마크업 언어를 만드는데 사용되는 다목적 마크업 언어 *HTML문법이 각 웹 브라우저에서 상호호환적이지 못하다는 문제 해결을 위해 개발 *SGML의 복잡함을 해결하기 위해 개발 |
*JSON 데이터 예시 )
출처 : http://tcpschool.com/json/json_basic_structure
*JSON 객체
{
"name": "식빵",
"family": "웰시코기",
"age": 1,
"weight": 2.14
}
*JSON 배열
"dog": [
{"name": "식빵", "family": "웰시코기", "age": 1, "weight": 2.14},
{"name": "콩콩", "family": "포메라니안", "age": 3, "weight": 2.5},
{"name": "젤리", "family": "푸들", "age": 7, "weight": 3.1}
]
*REST 데이터 예)
- URL 주소를 입력해 해당화면을 보는 것이 아닌, JSON데이터만 주도록 구현하는 것.
- 필요 할 때 마다 해당 주소의 데이터를 요청해서 받는 것.
*AJAX 예)
- 웹페이지의 새로고침 없이 데이터를 변경하고 불러오는 것
- 네이버 실시간 검색어 내용이 AJAX의 예시라고 할 수 있다. (새로고침 없이 데이터가 계속해서 변경되는 것.)
11. 정렬 (버블 정렬, 선택 정렬, 삽입 정렬)
- 버블 정렬 (Bubble Sort)
1. 앞에서 부터 순서대로 진행
2. 숫자가 이미 정렬이 되어있다면 변경 X , 왼쪽의 숫자가 더 크면 자리 변경
* 서로 인접한 두 개를 비교해간다는 것이 특징.
- 선택 정렬 (Selection Sort)
1. 전체 숫자를 보고 가장 작은 숫자를 골라서 맨 앞자리 배치.
2. 그 다음으로 작은 숫자를 찾아서 두번째자리 배치
3. 위 과정을 반복하면서 정렬
- 삽입 정렬 (Insertion Sort)
1. 숫자를 하나씩 비교
2. 해당 숫자가 더 작은 숫자가 없을 때까지 앞으로 보내서 자리를 찾아줌
3. 원래 자리에서 하나씩 숫자칸이 밀리게 됌.
정렬 내용이 이해가 어렵다면
아래에 자세한 예시로 이해하기
12. 스택, 큐
◇ 스택 (Stack)
: LIFO (Last In First Out)
마지막에 들어온 값이 처음으로 나가는 것.
- 통로가 1개인 자료구조.
- Overflow : 완전히 꽉 찼을때
- Underflow : 완전히 비어있을 때
- 삽입(Push)와 제거(Pop)은 모두 스택의 한 쪽 끝에어만 일어남
- Push 작업
1. 스택이 가득 찼는지 확인
2. 스택이 가득 차있으면, 오류발생 후 종료
3. 스택이 가득 차지않았으면 Top 증가
4. Top이 가르키는 스택 위치에 데이터 추가
- Pop 작업
1. 스택이 비어있는 지 확인
2. 비어있다면 오류 발생 후 종료
3. 비어있지 않다면, Top이 가르키는 데이터 제거
4. Top 값 감소
◇ 큐 (Queue)
: FIFO (First In First Out)
처음에 들어온 값이 처음으로 나가는 것.
- 통로가 2개인 자료구조
- 맨 앞 혹은 맨 뒷 노드에만 접근 가능
- Overflow : 완전히 꽉 찼을때
- Underflow : 완전히 비어있을 때
- enqueue : 큐 끝인 (Rear)에서 요소를 추가하는 작업
- dequeue : 맨 앞 (front)에서 제거하는 작업
- 선형큐를 의 문제점을 보완한데 환형 큐
관련문제)
45. 순서가 A,B,C,D로 정해진 입력자료를 push, push, pop, push, pop, pop, pop순서로 스택연산을 수행하는 경우 출력 결과는?
1) B D C A
2) A B C D
3) B A C D
4) A B D C
(2022 1회 정보처리기사 필기)
13. 모듈
- 소프트웨어 구조를 이루며, 다른 것들과 구별될 수 있는 독립적인 기능을 갖는 단위.
- 하나 또는 몇개의 논리적인 기능을 수행하기 위한 명령어들의 집합이라고도 할 수있다.
- 서로 모여 하나의 완전한 프로그램으로 만들어 질 수 있다.
응집도 ↑ 결합도↓
14. 테스트 오라클 유형
: 참인지 거짓인 판단하기위해 미리 정의된 참값과 비교하는 것.
- 참 오라클
: 모든 입력값에 대해 기대하는 결과를 확인하는 전수 테스트 - 샘플링 오라클 (보통 기업에서 사용)
: 특정 몇몇 입력값들에 대해서만 결과를 제공 - 휴리스틱 오라클
: 샘플링 오라클을 개선.
특정값에 대한 올바른 결과를 제공하고, 나머지는 추정으로 처리 - 일관성 검사
: 이전 수행결과와 현재 수행 결과가 동일한지 검증