본문 바로가기
정보처리기사, 정보처리산업기사

[정보처리기사/ 정보처리산업기사] 개정 후 실기 기출 문제 정리 요약본 5탄

by 시스코킹 2021. 7. 2.
반응형

트리 기반 인덱스
- 인덱스를 저장하는 블록들이 트리 구조를 이루고 있는 것으로 상용 DBMS에서는 트리 구조 기반의 B+
트리 인덱스를 주로 활용


- B 트리 인덱스

-> 일반적으로 사용하는 인덱스 방식
 -> 루트 노드에서 하위 노드로 키값의 크기를 비교하면서 데이터를 검색
 -> 모든 리프 노드의 레벨은 같음

 

- B+ 트리 인덱스
 -> 단말 노드가 아닌 노드로 구성된 인덱스 세트와 단말 노드로만 구성된 순차 세트로 구분
 -> 인덱스 세트에 있는 노드들은 단말 노드에 있는 키 값을 찾아갈 수 있는 경로로만 제공
 -> 순차 세트에 있는 단말 노드가 해당 데이터 레코드의 주소를 가리킴
 -> 인덱스 세트에 있는 모든 키 값이 단말 노드에 다시 나타나므로 단말 노드 만을 이용한 순차 처리

가능

 

 

 


비트맵 인덱스
- 인덱스 칼럼의 데이터를 Bit 값인 0 또는 1로 변환하여 인덱스 키로 사용하는 방법
- 키 값을 포함하는 로우(Row)의 주소를 제공
- 데이터가 Bit로 구성되어 있어 효율적인 논리 연산이 가능하고 저장공간이 작음

 

 

 


함수 기반 인덱스
- 칼럼의 값 대신 칼럼의 특정 함수나 수식을 적용하여 산출된 값을 사용
- B+ 트리 인덱스 또는 비트맵 인덱스를 생성하여 사용
- 데이터를 입력하거나 수정할 때 함수를 적용하기 때문에 부하가 발생할 수 있음
- 사용자 정의 함수를 사용했을 경우 시스템 함수보다 부하가 더 크다
- 대소문자, 띄어쓰기 등에 상관없이 조회할 때 유용하게 사용

 

 

 


개인키 / 공개키 암호 방식
- 암호화 방식의 키와 복호화 방식의 키가 같을 때
 -> 개인키 / 비밀키 / 대칭키 암호 방식
 -> 종류 : 전위 기법, 대수 기법, 합성 기법(DES)
- 암호화 방식의 키와 복호화 방식의 키가 다를 때
 -> 공개키 / 비대칭키
 -> RSA 기법

 

 

 


접근통제 보안 모델
- 보안 정책을 구현하기 위한 정형화된 모델
- 기밀성 모델
 -> 군사적인 목적으로 개발된 최초의 수학적 모델로 기밀성 보장이 최우선
- 무결성 모델
 -> 기밀성 모델에서 발생하는 불법적인 정보 변경을 방지하기 위해 무결성을 기반으로 개발된 모델
 -> 데이터 일관성 유지에 중점을 두어 개발

 

 

 

 

DBMS 접속 기술
- JDBC(Java DataBase Connectivity)
 -> Java 언어
 -> 썬 마이크로시스템에서 출시
 -> Java SE에 포함되어 있고 JDBC 클래스는 java.sql, javax.sql에 포함
 -> 접속하려는 DBMS에 대한 드라이버 필요

 


- ODBC(Open DataBase Connectivity)
 -> 개발 언어와 상관 없음
 -> 마이크로소프트에서 출시
 -> MS-Access, DBase, DB2, Excel, Text 등 다양한 데이터베이스에 접근 가능

 


- MyBatis
 -> JDBC 코드를 단순화하여 사용할 수 있는 SQL Mapping 기반 오픈소스 접속 프레임워크
 -> SQL 문장을 분리하여 XML 파일을 만들고 Mapping을 통해 SQL을 실행
 -> SQL을 거의 그대로 사용할 수 있어 국내 환경에 적합

 

 


단문 SQL 테스트
- DDL, DML, DCL이 포함되어 있는 SQL과 TCL을 직접 실행하여 테스트
- DESCRIBE 명령어를 이용하면 DDL로 작성된 테이블이나 뷰의 속성, 자료형, 옵션들을 확인할 수 있음
- DCL로 설정된 사용자 권한은 사용자 권한 정보가 저장된 테이블을 SELECT문으로 조회하거나 SHOW
명령어로 확인할 수 있음
 -> Oracle : SELECT * FROM DBA_ROLE_PRIVES WHERE GRANTEE = 사용자;
 -> MySQL : SHOW GRANTS FOR 사용자@호스트;

 

 


절차형 SQL 테스트
- 프로시저, 사용자 정의 함수, 트리거 등의 절차형 SQL은 디버깅을 통해 기능의 적합성 여부 검증, 실행
을 통해 결과를 확인하는 테스트를 수행
- SHOW 명령어를 통해 오류 내용을 확인
 -> SHOW ERRORS;
- 데이터베이스에 변화를 줄 수 있는 SQL문은 주석 처리 후 출력문을 이용하여 결과 확인
 -> Oracle : DBMS_OUTPUT.ENABLE; / DBMS_OUTPUT.PUT_LINE(데이터);
 -> MySQL : SELECT 데이터;

 

 

 

ORM 프레임워크
- ORM을 구현하기 위한 구조와 구현을 위해 필요한 여러 기능들을 제공하는 소프트웨어
- JAVA : JPA, Hibernate, EclipseLink, DataNucleus, Ebean 등
- C++ : ODB, QxOrm 등
- Python : Django, SQLAlchemy, Storm 등
- iOS : DatabaseObjects, Core Data 등
- .NET : NHibernate, DatabaseObjects, Dapper 등
- PHP : Doctrine, Propel, RedBean 등

 

 


배치 스케줄러
- 일괄 처리 작업이 설정된 주기에 맞춰 자동으로 수행되도록 지원해주는 도구
- 잡 스케줄러라고도 함

- 스프링 배치
 -> Spring Source 사와 Accenture 사가 공동 개발한 오픈소스 프레임워크
 -> 스프링 프레임워크의 특성을 그대로 가져와 스프링의 기능을 모두 사용할 수 있음
 -> 데이터베이스나 파일의 데이터를 교환하는데 필요한 컴포넌트를 제공
 -> 로그 관리, 추적, 트랜잭션 관리, 작업 처리 통계, 작업 재시작 등의 다양한 기능 제공
 -> 구성요소 : Job, Job Launcher, Step, Job Repository

 

 


- Quatz
 -> 스프링 프레임워크로 개발되는 응용 프로그램들의 일괄 처리를 위한 다양한 기능을 제공하는 오픈
소스 라이브러리
 -> 수행할 작업과 수행 시간을 관리하는 요소들을 분리하여 일괄 처리 작업에 유연성을 제공
 -> 구성요소 : Scheduler, Job, JobDetail, Trigger

 

 

 


PCB(Process Control Block)
- 운영체제가 프로세스에 대한 중요한 정보를 저장해 놓은 곳
- 프로세스가 생성될 때마다 고유의 PCB를 생성하고 프로세스 완료 시 제거됨
- PCB에 저장되는 정보
 -> 프로세스 현재 상태
 -> 포인터
 -> 프로세스 고유 식별자
 -> 스케줄링 및 프로세스의 우선순위
 -> CPU 레지스터 정보
 -> 주기억장치 관리 정보
 -> 입출력 상태 정보
 -> 계정 정보

 

 

 

 

 

프로세스 상태 전이

 

준비
 -> 프로세스가 프로세서를 할당받기 위해 기다리고 있는 상태
 -> 프로세스는 준비상태 큐에서 실행 준비
 -> Job 스케줄러에 의해 수행

 


- 실행
 -> 준비상태 큐에 있는 프로세스가 프로세서를 할당받아 실행되는 상태
 -> 프로세스 수행이 완료되기 전에 프로세스에게 주어진 할당 시간이 종료되면 프로세스는 준비 상태
로 전이
 ->실행 중인 프로세스에 입출력 처리가 필요하면 실행중인 프로세스는 대기상태로 전이
 -> CPU 프로세스에 의해 수행
- 대기 : 프로세스에 입출력 처리가 필요하면 현재 실행중인 프로세스가 중단되고, 입출력 처리가 완료될
때까지 대기하고 있는 상태

 

 


프로세스 상태 전이 관련 용어
- Dispatch : 준비 상태에 대기하고 있는 프로세스 중 하나가 프로세스를 할당받아 실행 상태로 전이되는
과정
- Wake up : 입출력 작업이 완료되어 프로세스가 대기 상태에서 준비 상태로 전이되는 과정
- Spooling : 입출력 장치의 공유 및 상대적으로 느린 입출력장치의 처리 속도를 보완하기 위해 입출력할
데이터를 직접 장치에 보내지 않고 나중에 한꺼번에 입출력하기 위해 디스크에 저장하는 과정

 

 


스케줄링의 개요
- 문맥 교환
 -> 하나의 프로세스에서 다른 프로세스로 CPU가 할당되는 과정에서 발생되는 것

 

 


프로세스 스케줄링의 기법
- 비선점 스케줄링
 -> 강제 종료 불가능
 -> 이미 할당된 CPU를 다른 프로세스가 강제로 빼앗아 사용할 수 없음
 -> 프로세스가 CPU를 할당받으면 완료될 때 까지 사용
 -> 프로세스 응답 시간 예측이 용이
 -> 일괄 처리 방식에 적합

 -> 중요한(짧은) 작업이 중요하지 않은(긴) 작업을 기다리는 경우가 발생할 수 있음
 -> FCFS, SJF, 우선순위, HRN, 기한부 등의 알고리즘

반응형

댓글