일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- splunk db connect
- 오블완
- metacodem
- 탈중앙화
- aws 트리거
- 정처기필기
- 스마트컨트랙트
- web3
- amazon s3 트리거
- web3 보안
- AWS CLI
- aws lambda
- 메타코드
- 정보처리기사
- web shell
- ELB
- AWS SSM
- 보안 그룹
- metacode
- File Upload
- 정처기 필기
- 티스토리챌린지
- web security academy
- Path Traversal
- 정처기
- 메타코드M
- 스마트 컨트랙트
- Session Manager
- systems manager
- 블록체인
- Today
- Total
min8282
[정보처리기사] 메타코드M, 정보처리기사 필기 2주차(소프트웨어 개발) 본문
안녕하세요! 오늘은 제가 메타코드에서 제공하는 정보처리기사 필기 강의를 수강하면서 2주차 강의 중 소프트웨어 개발부분에서 배운 내용을 정리해 보았습니다.
이번 포스팅에서는 정보처리기사_소프트웨어 개발에서 중요한 개념 중 하나인 자료구조, 애플리케이션 테스트 종류와 특성에 대해 정리해 보겠습니다.
💡 메타코드 장학생 혜택
저는 이번에 메타코드 장학생으로 선발되어 필기 강의를 무료로 수강하고 있어요.
메타코드 강의를 통해 정보처리기사 필기를 효율적으로 준비하고 있습니다.
2-1. 논리 데이터 저장소 확인
자료 구조(Data Structure)
자료구조란 데이터를 효율적으로 저장하고 관리하기 위한 체계적인 방법론입니다. 다양한 작업(검색, 삽입, 삭제, 정렬 등)에서 최적의 성능을 보장하기 위해 설계되었습니다.
자료구조의 분류
1. 선형 구조 (Linear Data Structure)
데이터가 순차적으로 나열된 구조입니다. 각 요소가 인접한 요소와 연결되어 있어 한 번에 한 방향으로 접근 가능합니다.
주요 선형 구조
- 리스트 (List)
- 데이터를 연속적으로 저장.
- 예: 배열(Array), 연결 리스트(Linked List).
- 스택 (Stack)
- LIFO(Last In, First Out): 마지막으로 들어간 데이터가 가장 먼저 나옴.
- 예: 함수 호출 스택, 괄호 검사.
- 큐 (Queue)
- FIFO(First In, First Out): 먼저 들어간 데이터가 가장 먼저 나옴.
- 예: 작업 스케줄링.
- 원형 큐와 우선순위 큐 같은 변형도 존재.
- 데크 (Deque)
- Double-Ended Queue: 양쪽 끝에서 삽입과 삭제가 모두 가능한 큐.
- 예: 슬라이딩 윈도우 알고리즘.
2. 비선형 구조 (Non-Linear Data Structure)
데이터가 계층적이거나 망형 구조로 연결되어 있습니다. 요소 간 관계가 복잡하며, 순차적 접근이 아닌 특정 조건에 따라 접근합니다.
주요 비선형 구조
- 트리 (Tree)
- 계층적 데이터 표현.
- 루트 노드를 중심으로 자식 노드로 확장.
- 예: 이진 탐색 트리(Binary Search Tree), 힙(Heap), AVL 트리.
- 활용: 파일 디렉토리 구조, 데이터베이스 인덱스.
- 그래프 (Graph)
- 정점(Vertex)과 간선(Edge)으로 구성된 네트워크 구조.
- 방향 그래프와 무방향 그래프가 존재.
- 활용: 네트워크 연결, 소셜 미디어 관계, 최단 경로 탐색.
소프트웨어 테스트
소프트웨어가 예상대로 작동하는지 확인하기 위해 오류를 찾아내고 품질을 보장하는 과정입니다. 테스트는 개발 단계에서 발생할 수 있는 문제를 조기에 발견하여, 시스템의 안정성을 높이는 데 중점을 둡니다.
테스트 케이스
테스트 케이스란 소프트웨어의 특정 기능이나 동작을 검증하기 위해 입력값, 실행 조건, 예상 결과를 정의한 집합입니다. 테스트의 목표와 방법을 정한 후 작성되며, 주요 목적은 결함을 검사하는 것입니다.
- 구성 요소:
- 입력값: 테스트 시 사용되는 데이터.
- 실행 조건: 테스트를 실행하기 위한 환경 및 상황.
- 예상 결과: 올바른 동작에 따른 출력 결과.
테스트 오라클
테스트 오라클은 테스트 결과가 올바른지 판단하기 위한 기준입니다. 사전에 정의된 참값을 기반으로 결과를 비교합니다.
- 종류:
- 참 오라클: 모든 입력값에 대해 정확한 결과를 제공.
- 샘플링 오라클: 특정 입력값에 대해서만 결과를 제공.
- 휴리스틱 오라클: 일부 입력값에 대해 추정된 결과를 제공.
- 일관성 검사 오라클: 동일한 입력값에 대해 일관된 결과를 도출.
테스트 레벨
소프트웨어 테스트는 개발 단계에 따라 다음과 같은 레벨로 나뉩니다.
1. 단위 테스트 (Unit Test)
- 개별 모듈을 시험하여 정확히 구현되었는지 점검.
- 화이트 박스 테스트와 블랙 박스 테스트 기법과 연관.
- 주요 목표:
- 오류에 따른 예상치 못한 결과 확인.
- 잘못된 계산식 및 무한 루프 탐지.
2. 통합 테스트 (Integration Test)
- 개별 모듈이 결합될 때 상호작용의 정확성을 검증.
- 방식:
- 상향식 (Bottom-Up):
- 하위 모듈부터 상위 모듈로 테스트 진행.
- Test driver가 상위 모듈을 대신.
- 하향식 (Top-Down):
- 상위 모듈부터 하위 모듈로 테스트 진행.
- Stub이 하위 모듈을 대신.
- 상향식 (Bottom-Up):
3. 시스템 테스트 (System Test)
- 모든 기능이 통합된 상태에서 시스템이 요구사항을 만족하는지 확인.
4. 인수 테스트 (Acceptance Test)
- 최종 사용자가 요구사항을 충족하는지 확인.
- 알파 테스트: 내부 환경에서 진행.
- 베타 테스트: 실제 사용자가 소프트웨어를 사용해 피드백 제공.
테스트 기법
1. 화이트 박스 테스트
- 코드 내부 구조를 기반으로 테스트.
- 주요 기법:
- 데이터 흐름 검사.
- 루프 검사.
2. 블랙 박스 테스트
- 외부 동작에 초점을 맞춘 테스트.
- 주요 기법:
- 경곗값 분석.
- 동등 분할 기법(동치 클래스 분해).
- 원인-결과 그래프.
경곗값 분석 예시
점수 성적 범위가 90~100일 때:
- 올바른 테스트 입력: 89, 90, 100.
- 잘못된 입력: 101, 60.
추가 테스트 기법
알파 테스트
• 내부 팀 또는 선택된 사용자가 통제된 개발자 환경에서 진행되는 테스트
베타 테스트
• 개발자 없이 실제 사용자가 소프트웨어를 사용해 보고 피드백을 제공하는 테스트
강도 테스트(Stress test)
• 시스템에 과다 정보량을 부과하여 과부하 시에도 시스템이 정상적으로 작동되는지 테스트
메타코드 정보처리기사 강의링크)
https://www.metacodes.co.kr/edu/read2.nx?EM_IDX=15027&EP_IDX=15203&M2_IDX=31635#study_plan
정보처리기사 필기 환급 챌린지ㅣ합격 인증 시 100% 환급 (제세공과금 22% 제외)
www.metacodes.co.kr
메타코드 카페
https://cafe.naver.com/love3339
메타코드M | ADsP, SQLD, ... : 네이버 카페
빅데이터분석기사, 정보처리기사, SQLD, ADsP, AWS 자격증 취득 등 빅데이터 전문가 지식 공유 커뮤니티
cafe.naver.com