[Sec 1. 자료 구조]
선형 구조
- 배열(Array) : 데이터 연속 배치
- 리스트(List) : 간편, 효율, 빠름, 인덱스 사용으로 포인터가 없음 → 자료의 삽입, 삭제가 어려움
- 연결 리스트 : 각 노드는 링크(Pointer) 정보를 가짐 → 자료의 삽입, 삭제가 용이함, 선형 리스트에 비해 느림
- 스택(Stack) : 한 쪽 끝에서만 자료의 삽입(Push)과 삭제(Pop)가 이루어지는 자료구조
후입선출(LIFO) 구조, Top이라는 포인터 사용, Overflow, Underflow 발생 가능
- 큐(Queue) : 한 쪽 끝에서 삽입(enQueue), 반대쪽 끝에서 삭제(deQueue)
선입선출(FIFO) 구조, 삽입 시 Rear 포인터, 삭제 시 Front 포인터
- 데크(Deque) : 입력/삭제가 양쪽 끝에서 모두 발생할 수 있는 자료구조
Scroll(입력제한 데크) : 입력은 한쪽에서만, 출력은 양쪽에서
Shelf(출력제한 데크) : 입력은 양쪽에서, 출력은 한쪽에서만
비선형 구조
- 트리(Tree) : 노드와 간선으로 구성, 부모-자식 관계의 계층적 구조
순회 방법
- 중위 순회(Inorder) : 왼쪽 자식 → 부모 → 오른쪽 자식
- 후위 순회(Postorder) : 왼쪽 자식 → 오른쪽 자식 → 부모
- 전위 순회(Preorder) : 부모 → 왼쪽 자식 → 오른쪽 자식
트리 종류 : 이진 트리, 완전 이진 트리, 포화 이진 트리, 편향 이진 트리, 균형 이진 트리, 이진 탐색 트리, AVL 트리, B-트리, 신장 트리
- 깊이가 H인 이진 트리의 최대 노드 수/포화 이진트리의 노드 수 : 2ᴴ-1
- 특정 레벨 L에서의 최대 노드 수/포화 이진트리의 노드 수 : 2⁽ᴸ⁻¹⁾
- 그래프(Graph)
종류
- 무방향 그래프 : 최대 간선 수 = n(n-1)/2
- 방향 그래프 : 최대 간선 수 = n(n-1)
표현 방법
- 인접 행렬 : 그래프의 정점을 2차원 배열로 만든 것
- 인접 리스트 : 인접한 정점들을 연결 리스트로 표현
순회 방법
- 깊이 우선 탐색(DFS) : 스택 이용 (깊스)
- 너비 우선 탐색(BFS) : 큐 이용 (바비큐)
수식 표기법
- 중위 표기법 : A+B
- 전위 표기법 : +AB
- 후위 표기법 : AB+
해싱 : 주어진 키를 해시함수에 대입해 나온 해시값을 인덱스로 사용하여 데이터에 직접 접근
- 해시 테이블
버킷 : 저장 공간, 행
슬롯 : 버킷 내 개별적인 공간
충돌 : 서로 다른 키가 같은 버킷 또는 슬롯에 할당되려고 할 때
동의어 : 충돌로 인해 같은 버킷이나 슬롯을 공유하게 되는 키
오버플로 : 더 이상 데이터를 저장할 수 없는 상태
- 개방 주소법 : 해시 테이블 내의 다른 위치를 순차적으로 검색 (다른 공간도 열어두고 검색)
- 폐쇄 주소법 : 해당 버킷의 끝에 레코드 연결 (다른 공간은 막아두고 레코드 연결)
- 재해싱 : 다른 해시 함수를 사용하여 새로운 주소 계산
- 해싱 함수 종류
제산법(Division)
중간 제곱법(Mid Square)
중첩법(Folding)
숫자 분석법(Digit Analysis)
기수 변환법(Radix Exchange)
무작위 방법(Pseudo Random)
[Sec 2. 데이터 조작 프로시저 작성]
프로시저 : 데이터베이스 내에 저장되어 자동 실행되는 일련의 SQL 쿼리 집합
- 저장형 객체
Stored Function : IN
Stored Procedure : IN, OUT, INOUT
Stored Package : 프로시저와 함수 모음
Trigger
- 행 트리거 : FOR EACH ROW, 각 행에 발생할 때마다 실행
- 문장 트리거 : 한 번만 실행
ORM 프레임워크 : 객체지향 프로그래밍과 관계형 데이터베이스 간의 호환성 격차 해결 목적
- SQL Mapper : iBatis, Mybatis, jdbc Templetes
- QR Mapping(ORM) : JPA, Hibernate
[Sec 3. 데이터 조작 프로시저 최적화]
쿼리 성능 측정 : 응답 시간, CPU, 메모리 사용량 등
- SQL 처리 흐름 : 구문 분석 → 실행 → 인출(SELECT문에서)
- SQL 성능 개선 절차
문제 식별 → 통계 확인 → SQL문 재구성 → 인덱스 재구성 → 실행 계획 유지 관리
- 코드 인스펙션 절차
계획 → 개관(사전 교육) → 준비 → 검토(인스펙션) → 재작업(수정) → 추적(후속 조치)
'Data Analysis > 정보처리기사' 카테고리의 다른 글
| [2과목 소프트웨어 개발] 03. 제품 소프트웨어 패키징 (0) | 2024.04.18 |
|---|---|
| [2과목 소프트웨어 개발] 02. 통합 구현 (0) | 2024.04.18 |
| [1과목 소프트웨어 설계] 04. 인터페이스 설계 (0) | 2024.04.17 |
| [1과목 소프트웨어 설계] 03. 애플리케이션 설계 (1) | 2024.04.17 |
| [1과목 소프트웨어 설계] 02. 화면 설계 (0) | 2024.04.17 |