1
RAID 구성
데이터를 분할하여 여러 개의 하드디스크에서 병렬로 데이터를 읽어들이는 장치 및 방식
단계가 높을수록 데이터 보존 신뢰도 및 속도가 우수함
Raid 0 : 최소 디스크 개수 2
(Striped Disk Array wiout Fault Tolerance)
데이터 스트립 제공
여러 개의 하드디스크에 데이터 분산 저장
저장속도가 빠름
데이터를 중복해서 기록하지 않음
데이터 오류가 발생했을 때, 모든 데이터를 잃을 수 있다
오류 검출 기능이 없기 때문에 복원 불가능
데이터 손실 위험이 큼
Raid 1 : 최소 디스크 개수 2
(Mirroring and Duplexing)
한 개의 실제 사용 디스크 - 백업용 디스크로 구분됨
Mirroring이 특징
오류 검출 기능이 없지만, 데이터 저장의 안정성이 뛰어남
저장 공간이 Raid 0의 2배가 필요함
Raid 0에 비해 느림
Raid 2
(Hamming code ECC)
기록용 디스크 - 복구용 디스크로 구분
에러 검출은 Hamming Code를 사용함
Raid 3 : 최소 디스크 개수 3
(Parallel Transfer with Parity)
Raid 0의 Strip방식이 기본 구조 + 에러 검출 용 Parity 정보를 별도의 디스크에 저장
byte 단위 데이터 저장
균등한 데이터 저장
동기화 과정이 필요함
Parity 정보를 저장하는 디스크에 장애가 발생하면 복구가 불가능
Parity 디스크 병목 현상 가능성이 있음
Raid 4 : 최소 디스크 개수 3
(Independent Data Disks with Shared Partiy DIsk)
Raid 0의 Strip방식이 기본 구조 + 에러 검출 용 Parity 정보를 별도의 디스크에 저장
block 단위 데이터 저장
불균형 데이터 저장
동기화 과정이 필요없고, Raid 3에 비해 성능이 좋음
Parity 정보를 저장하는 디스크에 장애가 발생하면 복구가 불가능
Parity 디스크 병목 현상 가능성이 있음
Raid 5 : : 최소 디스크 개수 3
(Independent Data Disks with Distributed Partiy DIsk)
Raid 3,4를 보완한 방식
Parity 정보를 별도의 디스크에 저장하지않고, 모든 디스크에 분산 저장한다.
모든 디스크에 분산되어있어, 성능 저하 발생
디스크 3개 기준, 2개 이상의 디스크에 장애가 발생할 경우 복구 불가능
Hot/Spare 디스크를 따로 두어서 장애 발생에 대응함
Raid 6 : 최소 디스크 개수 4
(Independent Data Disks with Two Independent Distributed Partiy Schemes)
Raid 5와 같은 개념이지만, 데이터 안정성 강화
하나의 Parity 정보를 듀얼로 분산 저장하는 방식
Parity 정보를 이중으로 저장하면 Raid 5보다 떨어지는 성능
스토리지가 많은 시스템에서 주로 사용
2
데이터베이스 트랜잭션 / Redo / Undo
트랜잭션
(Database Transaction)
DBMS 또는 유사한 시스템에서 상호작용하는 단위
트랜잭션의 ACID
원자성 (Atomicity) 분리할 수 없는 하나의 단위로 작업은 모두 완료되거나 모두 취소되어야 한다.
일관성 (Consistency) 사용되는 모든 데이터는 일관되어야 한다.
격리성 (Isolation) 접근하고 있는 데이터는 다른 트랜잭션으로부터 격리되어야 한다.
영속성 (Durability) 트랜잭션이 정상 종료되면 결과는 영구적으로 적용되어야 한다.
데이터베이스 내에서 한꺼번에 수행되어야 할 연산
(=전부 성공하거나, 전부 실패하거나)
Redo
복구를 할 때, 사용자가 했던 작업을 그대로 다시 한다
Undo
사용자가 했던 작업을 반대로 진행한다
(=사용자의 작업을 원상태로 돌린다 = Rollback)
3
데이터베이스 이상현상 (Anomaly)
정규화를 진행하지 않은 데이터베이스는 데이터의 이상현상에 의해 무결성이 저하됨
이상 현상의 종류
삽입 이상 (Insertion anomaly)
특정 데이터가 존재하지 않아 중요한 데이터를 데이터베이스에 삽일할 수 없을 때 발생
삭제 이상(Deletion anomaly)
특정 정보를 삭제할 때, 원하지 않는 정보도 삭제되는 현상
업데이트 이상(Update anomaly)
특정 데이터를 업데이트 했을 때, 정상적으로 바뀌지 않는 경우 및 너무 많은 행을 업데이트 하는 경우
4
임시 키 무결성 프로토콜
(Temporal Key Integrity Protocol)
IEEE 802.11의 무선 네트워킹 표준으로 사용되는 보안 프로토콜
IEEE 802.11i의 작업 그룹과 와이파이 얼라이언스에서 WEP를 하드웨어의 교체 없이 대체하기 위해 고안
5
사용자 인터페이스 ( User Interface)
인터페이스란
서로 다른 두개의 시스템, 장치 사이에서 정보나 신호를 주고받는 경우의 접점이나 경계면
인터페이스의 종류
CLI (Command-Line Interface)
글자의 입출력을 통해 사용자와 컴퓨터간 소통하는 방식
ex ) cmd
GUI (Graphical User Interface)
그래픽을 이용해 사용자와 소통하는 방식
ex ) windows
NUI (Natural User Interface)
인간의 자연스러운 움직임으로 직접적으로 소통하는 방식
ex) 화면 터치, 음성 인식
OUI (Organic User Interface)
자연 그대로의 상태 특성들을 반영한 장치 제어
ex) 빛을 이용해 책상이 키보드가 됨
6
소스코드 품질 분석 도구
소스 코드의 코딩 스타일, 코드에 설정된 코딩 표준, 복잡도, 메모리 누수현상 등을
발견하기 위한 툴
정적 분석 도구 (Static Analysis Tool)
소스 코드의 실행 없이, 코드의 의미를 분석해 결함을 찾아내는 원시적 코드 분석 기법
pmd
cppcheck
SonarQube
checkstyle
ccm
cobertuna
동적 분석 도구 (Dynamic Analysis Tool)
소스 코드를 실행하여 프로그램 동작이나 반응을 추적하고 코드에 존재하는
메모리 누수, 스레드 결함 등을 분석하는 기법
Avalanche
Valgrind
7
JUnit
자바 프로그래밍 언어를 이용한 xUnit의 테스트 기법으로써 숨겨진 단위 테스트를 끌어내어
정형화시켜 단위 테스트를 쉽게 해주는 테스트용 프레임워크
8
화이트 박스 테스트 (White Box Test) / 블랙박스 테스트 (Black Box Test)
화이트 박스 테스트 (White Box Test)
모듈의 원시 코드를 오픈시킨 상태에서 원시 코드의 논리적인 모든 경로를 테스트하여
테스트 케이스를 설계하는 방법
기초 경로 검사
(Base Path Testing)
테스트 케이스 설계자가 절차적 설계의 논리적 복잡성을 측정할 수 있게 해주는 테스트 기법
테스트 측정 결과는 실행 경로의 기초를 정의하는 지침으로 사용
제어 구조 검사
(Control Structure Testing)
제어 구조 검사 종류
조건 검사 (Condition Testing)
프로그램 모듈 내에 있는 논리적 조건을 테스트하는 설계 기법
루프 검사 (Loop Testing)
프로그램의 반복 구조에 초점을 맞춰 실시하는 테스트 케이스 설계 기법
데이터 흐름 검사 (Data Flow Testing)
변수의 정의와 변수 사용의 위치에 초점을 맞춰 실시하는 테스트 케이스 설계 기법
블랙 박스 테스트 (Black Box Test)
소프트웨어가 수행할 특정 기능을 알기 위해서 각 기능이 완전히 작동되는 것을 입증하는 테스트
동치 분할 검사 (Equivalence Partitioning Testing)
입력 자료에 초점을 맞춰 테스트 케이스를 설계하는 기법
(= 동등 분할 기법)
경계값 분석 (Boundary Value Analysis)
입력 조건의 중간값 보다 경계값에서 오류가 발생될 확률이 높다는 점을 이용해
입력 조건의 경계값에 초점을 맞춘 테스트 케이스 설계 기법
원인 효과 그래프 검사 (Cause-Effect Graphing Testing)
입력 데이터 간의 관계와 출력에 영향을 미치는 상황을 분석한 다음
효용성이 높은 테스트 케이스를 선정하여 검사
비교 검사 (Comparison Testing)
여러 버전의 프로그램에 동일한 테스트 자료를 제공하여 동일한 결과가 출력되는지 테스트 하는 기법
오류 예측 검사 (Error Guessing)
과거의 경험이나 확인자의 감각으로 테스트 하는 기법
(=데이터 확인 검사)
9
정보보호 관리체계 인증
(Information Security Management System)
기업이 주요 정보 자산을 보호하기 위한 정책 수립, 관리, 운영에 대한 정보보호 관리체계가
기준에 적합한지를 심사하여 인증을 부여
국내 IT기업은 ISMS 인증을 무조건 획득하여야 함
ISMS-P
기존 ISMS 인증에 개인정보에 대한 보호가 포함된 더 큰 범위의 인증체계
인터넷 진흥원 / 인증기관이 증명하는 제도
10
데이터베이스 키 (Database Key)
슈퍼 키 (Super Key)
데이터베이스 유일성을 만족하는 키
후보 키 (Candidate Key)
데이터베이스의 유일성과 최소성을 만족하는 키
기본키의 자격이 있는 값
기본 키 (Primary Key)
후보 키에서 선택된 키
복합 키 (Composite Key)
2개 이상의 속성을 사용한 키
대체 키 (Surrogate Key)
후보 키 중, 기본 키로 사용되지 않은 키
외래 키 (Foregin Key)
기본 키를 참조하는 속성 키
테이블 간 관계를 나타냄
11
워터링 홀 (Watering Hole)
공격 대상이 방문할 가능성이 있는 합법적 웹사이트를 미리 악성코드에 감염시킨뒤
잠복하면서 피해자의 컴퓨터에 악성코드를 추가로 설치하는 공격
12
V 다이어그램
(= V diagram OR V&V Diagram)
V&V 및 테스팅에 대한 절차를 V자 형태로 표현한 다이어그램
13
Python의 기본 문법
자료형의 선언이 없다
(= 자동으로 지정되는 변수의 자료형)
세미콜론 필요 없음
조건/반복문 사용 시, 코드 블록은 콜론 ( : )과 여백으로 구분
변수에 연속 값 적용 가능
ex ) a,b,c = 1,2,3
데이터 입출력 함수
input()
키보드로 입력받아서 변수에 저장하는 함수
문자열로 취급
a = input("test")
형변환 방법
ex ) int(input())
print()
변수나 문자 등 다양한 값을 출력하는 함수
리스트 선언 형식 (두 방법 모두 결과는 동일)
1. 리스트명 = [1,2, ... ]
2. 리스트명 = list([1,2, ...])
리스트명.append("3")
리스트 마지막에 값을 추가하는 함수
리스트명.insert(3,"4")
리스트 중간에 값을 사입할 때 사용하는 함수
del 리스트[2]
리스트의 위치를 기준으로 요소 삭제
리스트.remove("2"]
리스트의 값을 기준으로 요소 삭제
리스트의 주요 메소드
pop(위치)
위치에 있는 값을 출력하고, 해당 요소를 삭제한다
index(값)
값이 저장된 요소의 위치를 반환
count(값)
값이 저장된 요소의 개수를 반환
extend(리스트)
리스트의 끝에 새로운 리스트를 추가하여 확장한다.
reverse()
리스트의 순서를 역순으로 뒤집는다.
sort(reverse = true/false)
리스트를 정렬한다.
reverse의 값을 토대로 오름차순/내림차순이 결정된다
reverse 인자를 입력하지 않았을 경우 오름차순 정렬
copy()
리스트를 복사한다.
Range
연속된 숫자를 생성하는 것
range(value)
0부터 value까지 연속된 숫자를 생성한다.
test =list(range(3))
// test = 0,1,2
range(value1,value2)
value1부터 value2까지 연속된 숫자를 생성한다.
range(value1,value2,value3)
value1부터 value2까지 value3만큼 증가하면서 연속된 숫자를 생성한다.
'시스템 & 정보보안 > 정처기 실기' 카테고리의 다른 글
정처기 실기 기출/요점 문제 정리 _2 (0) | 2023.04.13 |
---|---|
2023 정보처리기사 실기 요점 주요 기출 문제 (2) | 2023.04.09 |
정보처리기사 실기 요점정리_202103 (0) | 2023.04.02 |