📚 2과목 1회독을 마치고 풀어본 CBT에서 헷갈리는 부분, 놓친 부분 정리
이진 검색(Binary Search)
동작 방식
1) 배열의 중간 값을 찾음
2) 중간 값과 검색 값을 비교
2-1) 중간 값이 검색 값과 같으면 종료
2-2) 중간 값보다 검색 값이 크면 오른쪽 구간 탐색
2-3) 중간 값보다 검색 값이 작으면 왼쪽 구간 탐색
3) 값을 찾거나 간격이 빌 때까지 반복
* 전제조건 : 데이터 목록은 반드시 사전에 오름차순으로 정렬되어 있어야 한다.
테스트 케이스(Test Case)
- 구현된 소프트웨어가 사용자의 요구사항을 정확하게 준수했는지 확인하기 위해 설계된 입력값, 실행조건, 기대 결과 등으로 구성된 테스트 항목에 대한 명세서를 의미한다.
- 테스트의 목표 및 테스트 방법을 결정하고 테스트 케이스를 작성해야 한다.
- 테스트 케이스 실행이 통과인지 실패인지 판단하기 위한 기준, 사전에 정의된 참값을 입력하며 비교하는 기법 및 활동을 테스트 오라클(Test Oracle)이라 한다.
RCS(Revision Control System)
- 다른 방향으로 진행된 개발 결과를 합치거나 변경 내용을 추적할 수 있는 소프트웨어 버전 관리 도구
- 소스 파일의 수정을 한 사람으로 제한, 동시 소스 수정 X
알고리즘
- 주어진 작업을 수행하는 컴퓨터 명령어를 순서대로 나열한 것
- 검색(Searching)은 정렬이 되지 않은 데이터 혹은 정렬이 된 데이터 중에 키 값에 해당하는 데이터를 찾는 알고리즘
- 정렬(Sorting)은 흩어져있는 데이터를 키 값을 이용하여 순서대로 열거하는 알고리즘
버블 정렬
- 첫 위치부터 시작해서 오른쪽 값과 비교
단위 테스트(Unit Test)
- 구현 단계에서 각 모듈의 개발을 완료한 후 개발자가 명세서의 내용대로 정확히 구현되었는지 테스트- 모듈 내부의 구조를 구체적으로 볼 수 있는 구조적 테스트를 주로 시행- 테스트할 모듈을 호출하는 모듈도 있고, 테스트할 모듈이 호출하는 모듈도 있다.
- Test Stub : 제어 모듈이 호출하는 타 모듈의 기능을 단순히 수행하는 도구. 일시적으로 필요한 조건만을 가지고 있음.
테스트 대상 모듈이 호출하는 하위 모듈의 역할을 한다. ✨하향식✨
- Test Driver : 테스트의 대상이 되는 하위 모듈을 호출하고, 파라미터를 전달하는 가상의 모듈 ✨상향식 테스트에 필요✨
- Test Suites : 테스트 대상 컴포넌트나 모듈, 시스템에 사용되는 테스트 케이스의 집합
단위테스트 도구
1) CppUnit : C++ 프로그래밍 언어용 단위 테스트 도구
2) JUnit : Java 프로그래밍 언어용 단위 테스트 도구
3) HttpUnit : 웹 브라우저 없이 웹 사이트 테스트를 수행하는 데 사용되는 오픈소스 테스트 프레임워크
테스트 수행 도구 : 자료흐름도, 기능 테스트, 입력 도메인 분석, 랜덤 테스트
통합 테스트(Integration Test)
- 시스템을 구성하는 모듈의 인터페이스와 결합을 테스트
1) 상향식 통합 테스트 (Bottom Up Intergration Test)
- 프로그램의 하위 모듈에서 상위 모듈 방합으로 통합
- 하나의 주요 제어 모듈과 관련된 종속 모듈의 그룹인 클러스터(Cluster) 필요
2) 하향식 통합 테스트 (Top Down Intergration Test)
- 상위 모듈에서 하위 모듈 방향으로 통합- 깊이 우선 통합법, 넓이 우선 통합법 사용
- 초기부터 사용자에게 시스템 구조를 보여줌.
* 모듈 간의 인터페이스와 시스템의 동작이 정상적으로 잘 되고 있는지 빨리 파악하고자 할 때는 ✨하향식✨
위험 모니터링(Monitoring)
- 위험 요소 징후들에 대하여 계속적으로 인지하는 것
화이트/블랙박스 테스트
1) 화이트박스 테스트 (개발자 관점)
- 내부 구조와 동작을 검사
- 논리흐름도(Logic-Flow Diagram)을 이용하여 이해 가능
- 테스트 데이터를 이용해 실제 프로그램을 실행함으로써 오류를 찾는 동적 테스트(Dynamic Test)에 해당
- 테스트 데이터를 선택하기 위해 검증기준(Test Coverage)을 정한다.
- 종류 : 기초경로 검사 / 조건 검사 / 루프 검사 / 데이터 흐름 검사
2) 블랙박스 테스트 (사용자 관점)
- 내부 구조나 작동 원리를 모르는 상태에서 입력에 따른 출력 결과를 테스트
- 구조를 고려하지 않기 때문에 테스트 케이스는 프로그램 또는 모듈의 요구나 명세를 기초로 결정한다.
- 종류 : 동치(동등)분할 검사 / 경계값 분석 / 원인-효과 검사 / 오류 예측 검사 / 비교 검사
인스펙션(Inspection)
- 요구사항 명세서 작성자를 제외한 다른 검토 전문가들이 요구사항 명세서를 확인하며 결함 발견
- 과정 : 계획 → 사전교육 → 준비 → 인스펙션 회의 → 수정 → 후속조치
📌정적 테스트에 가까움
인터페이스 통신 데이터 포맷
1) XML(Extensible Markup Language)
- HTML의 단점을 보완한 인터넷 언어, SGML의 복잡한 단점을 개선한 특수한 목적의 마크업 언어
2) AJAX(Asynchronous JavaScript And XML)
- 자바스크립트를 사용하여 웹 서버와 클라이언트 간 비동기적으로 XML 데이터를 교환하고 조작하기 위한 웹 기술
- XMLHttpRequest 객체를 이용해 전체 페이지를 새로 로드하지 않고 필요한 부분만 로드한다.
3) REST(Representational State Transfer)
- 웹과 같은 분산 하ㅣ퍼미디어 환경에서 자원의 존재/상태 정보를 표준화된 HTTP 메서드로 주고받는 웹 아키텍처
- HTTP URI를 통해 자원을 명시하고, HTTP 메서드(POST, GET, PUT, DELETE)를 통해 해당 자원에 대한 생성, 조회, 갱신, 삭제 등의 명령을 적용할 수 있는 분산 하이퍼미디어 시스템을 위한 소프트웨어 아키텍처
4) YAML
- JSON과 비슷하게 사람이 읽기 쉬운 형태의 데이터 표현 형식
- 태그를 사용하지 않고 공백 위주로 데이터를 구분하므로 한 줄로 작성할 수 없다.
5) JSON(JavaSrcipt Objec Notation)
- 속성-값 쌍(Attribute-Value Pairs)으로 이루어진 데이터 오브젝트를 전달하기 위해 사용하는 개방형 표준 포맷
- AJAX(Asynchronous JavaScript And XML)에서 많이 사용되고 XML을 대체하는 주요 데이터 포맷
- 언어 독립형 포맷으로 다양한 프로그래밍 언어에서 사용되고 있다.
클린 코드(Clean Code) 작성 원칙
1) 추상화 : 상위클래스는 프로그램 특성만 간략하게 / 하위클래스는 세부적 내용 구현
2) 의존성(배제) : 다른 모듈에 미치는 영향을 최소화하여 변경 시 영향이 가지 않도록
3) 중복성(최소화) : 코드의 중복을 최소화
4) 가독성 : 누구든지 읽기 쉽게 작성
5) 단순성 : 코드를 단순하게 작성
검증과 확인
- 검증(Verification) : 소프트웨어가 요구사항에 부합하게 구현되었는가? ✨개발자 위주✨
- 확인(Validation) : 소프트웨어가 고객의 의도에 따라 구현되었는가? ✨사용자 위주✨
소프트웨어 재공학 주요활동
1) 분석(Analysis) : 기존 소프트웨어를 분석하여 재공학 대상 선정
2) 이식(Migration) : 기존 소프트웨어를 다른 운영체제나 하드웨어 환경에서 사용할 수 있도록 변환
3) 재구조(Restructuring) : 기존 소프트웨어를 향상시키기 위해 코드를 재구성 (기능, 외적 동작은 변하지 않음)
4) 역공학(Reverse Engineering) : 기존 소프트웨어를 분석하여 소스코드를 얻어내는 작업 (소스코드로 소프트웨어를 만드는 작업의 역작업)
NS Chart(Nassi-Schneiderman Chart)
- 논리의 기술에 중점을 두고 도형을 이용한 표현 방법, 3가지 기본 구조만으로 논리를 표현 (표준화 가능)
- 기본 구조의 입구와 출구는 각 하나씩
- 이해하기 쉽고 코드 변환이 용이하다.
- 연속, 선택, 반복 등의 제어 논리 구조를 표현한다.
- Flow Chart의 최대 단점인 화살표가 표시되지 않음
정형 기술 검토(FTR)의 지침
- 제품 검토에 집중, 의제를 제한, 논쟁과 반박 제한, 문제영역을 정확히, 해결책이나 개선책은 나중에, 자원과 시간일정을 할당, 메모를 공유, 과정과 결과 재검토, 참가자수 제한, 사전준비 강요
ISO/IEC 25000
- SW 품질 평가 통합 모델- SQuaRE로도 불림- ISO/IEC 9126, ISO/IEC 12119, ISO/IEC 14598 3개 표준을 통합한 모델0) 2500n : 개요 및 품질관리1) 2501n : 품질모델2) 2502n : 품질측정3) 2503n : 품질요구4) 2504n : 품질평가5) 2505n : 확장분야
EAI(Enterprise Application Integration)
- 모듈 연계의 한 방식
- EAI Hybrid = Hub&Spoke && Message Bus = 데이터 병목 현상을 최소화 할 수 있다. 중간에 미들웨어를 둔다.
- Hub&Spoke = 그룹 내의 담당 허브가 고장나면 전체에 영향
- Message Bus = 그룹 담당
인터페이스 구현 검증 도구
- xUnit, STAF, FitNesse, NTAF, Selenium, Watir
인터페이스 보안 - 암호화 도구
- IPSec, SSL, S-HTTP 등
'자격증 > 정보처리기사' 카테고리의 다른 글
2023년 정보처리기사 3회 필기 시험 후기 (0) | 2023.07.19 |
---|---|
[정보처리기사] CBT 5과목 정보시스템 구축관리 기억할 내용 (0) | 2023.07.17 |
[정보처리기사] CBT 4과목 프로그래밍 언어 활용 기억할 내용 (0) | 2023.07.14 |
[정보처리기사] CBT 3과목 데이터베이스 구축 기억할 내용 (0) | 2023.07.13 |
[정보처리기사] CBT 1과목 소프트웨어 설계 기억할 내용 (0) | 2023.07.11 |