[정처기 실기] 정처기 실기 벼락치기
⚡🤪 정처기 실기 10일 벼락치기 💥⚡
💢 병행 제어 미보장 시 문제점
-
Lost Update 갱신손실 : 먼저 실행된 트랜잭션 결과 나중에 실행된 트랜잭션이 덮어쓸 때
-
Dirty Read 현황 파악오류 : 트랜잭션 중간 수행 결과 다른 트랜잭션이 참조
-
Inconsistency 모순성 : 두 트랜잭션이 동시에 실행 > 데이터베이스 관성 결여
-
Cascading Rollback 연쇄복귀 : 특정 트랜잭션이 처리 취소 시 트랜잭션이 처리한 곳의 부분 취소하지 못함
💢 비즈니스 연속성 계획 관련 용어
-
BCP (Business Continuity Planning) : 재난 및 재해 상황을 대비하여 비즈니스 연속성을 유지하기 위한 업무 복구에 대한 계획
-
BIA (Business Impact Analysis) : BCP를 구축하기 위한 비즈니스 영향 분석
-
RTO (Recovery Time Objective) : 업무중단 시점 ~ 업무 복구되어 다시 가동될 때까지의 시간, 재해 시 복구 목표 시간 선정
-
RPO (Recovery Point Objective) : 업무중단 시점 ~ 데이터 복구되어 정상가동될 때 데이터의 손실 허용 시점, 재해 시 복구 목표 지점 선정
-
DRP (Disaster Recovery Plan) : 재난 복구 계획
-
DRS (Disaster Recovery System) : 재해 복구 시스템
💢 라우팅 알고리즘
-
목적지까지의 최적 경로를 산출하기 위한 법칙
-
거리 벡터 알고리즘
-
인접 라우터와 정보를 공유하여 목적지까지의 거리와 방향을 결정
-
벨만-포드 알고리즘 사용
-
-
링크 상태 알고리즘
-
링크 상태 정보를 모든 라우터에 전달하여 최단 경로 트리를 구성
-
다익스트라 알고리즘 사용
-
💢 절차형 SQL
-
프로시저 : 일련의 쿼리들을 마치 하나의 함수처럼 실행
-
사용자 정의 함수 : 수행 겨로가를 단일 값으로 반환
-
트리거 : 삽입, 갱신, 삭제 등의 이벤트가 발생할 때마다 관련 작업 자동으로 수행
💢 객체지향 설계 원칙(SOLID)
-
단일 책임의 원칙 (Single Responsibility Principle) : 하나의 클래스는 하나의 목적을 위해서 생성, 클래스가 제공하는 모든 서비스는 하나의 책임을 수행하는 데 집중
-
개방 폐쇄 원칙 (Open Close Principle) : 확장에는 열려 있고, 변경에는 닫혀 있어야 함
-
리스코프 치환의 원칙 (Liskov Substitution Principle) : 서브타입은 어디서나 자신의 기반 타입으로 교체할 수 있어야 함
-
인터페이스 분리의 원칙 (Interface Segregation Principle) : 자신이 사용하지 않는 인터페이스는 구현 X, 사용하지 않는 인터페이스 때문에 영향 받아선 안됨
-
의존성 역전의 원칙 (Dependency Inversion Principle) : 추상을 매개로 메시지 주고받음으로써 관계 최대한 느슨하게
💢 결합도 (Coupling)
외부의 모듈과의 연관도 또는 모듈 간의 상호의존성 (모듈 내부 X), 결합도 ↓ → 품질 ↑
-
내용 결합도 : 다른 모듈 내부에 있는 변수나 기능 사용, 결합도 가장 높음
-
공통 결합도 : 파라미터가 아닌 모듈 밖에 선언되어 있는 전역 변수 참조
-
외부 결합도 : 외부에서 도입된 데이터 포맷, 통신 프로토콜, 디바이스 인터페이스 공유
-
제어 결합도 : 단순히 값만 전달되는게 아닌 어떻게 처리를 해야 한다는 제어 요소 전달
-
스탬프 결합도 : 배열이나 객체, 구조 등 전달
-
자료 결합도 : 모듈 간 인터페이스로 전달되는 파라미터를 통해서만 상호작용, 결합도 가장 낮음
💢 응집도 (Cohesion)
모듈의 독립성, 모듈 내부 구성요소 간 연관 정도, 응집도 ↓ → 품질 ↓
-
우연적(Coincidental) 응집도 : 서로 다른 상위 모듈에 의해 호출되어 연관성 없는 서로 다른 기능 수행, 응집도 가장 낮음
-
논리적(Logical) 응집도 : 유사한 성격을 갖거나 특정 형태로 분류되는 처리요소들이 한 모듈에서 처리되는 경우
-
시간적(Temporal) 응집도 : 특정 시간에 처리되어야 하는 활동들을 한 모듈에서 처리할 경우
-
절차적(Procedural) 응집도 : 모듈이 다수의 관련 기능을 가질 때 모듈 안 구성요소들이 그 기능을 순차적으로 수행
-
통신적(Communication) 응집도 : 동일한 입출력을 사용하여 다른 기능을 수행하는 활동들이 모여 있을 경우
-
순차적(Sequential) 응집도 : 모듈 내에서 한 활동으로 나온 출력값을 다른 활동이 사용
-
기능적(Functional) 응집도 : 모듈 내부의 모든 기능이 단일한 목적을 위해 수행, 응집도 가장 높음
💢 데이터 암호화 전송을 위한 기술
-
IPSec : IP계층, 무결성과 인증을 보장하는 인증 헤더 + 기밀성을 보장하는 암호화 이용
-
SSL/TLS : 전송/응용계층, 클라이언트-서버 간 웹 데이터 암호화, 상호 인증 및 전송 시 데이터 무결성 보장
-
S-HTTP : 웹상에서 네트워크 트랳픽 암호화, 클라이언트-서버 간 전송되는 모든 메시지 각각 암호화
💢 데이터베이스 암호화 기법
-
API 방식 : 애플리케이션 레벨에서 암호 모듈(API) 적용, 애플리케이션 서버에 부하 발생
-
Plug-In 방식 : 암복호화 모듈이 DB 서버에 설치됨, DB서버에 부하 발생
-
TDE 방식 : DB 서버의 DBMS 커널이 자체적으로 암복호화 기능 수행, 내장된 암호화 기능(TDE, Transparent Data Encryption) 이용
-
Hybrid 방식 : API방식 + Plug-in방식
💢 보안 관련 용어
-
이블 트윈(Evil Twin) 공격 : 공격자는 합법적인 Wifi 제공자처럼 행세, 핫스팟에 연결한 무선 사용자들의 정보를 탈취
-
난독화(Obfuscation) : 코드의 가독성을 낮춰 역공학에 대해 대비하기 위해 프로그램 코드의 일부 또는 전체를 변경
-
랜섬웨어(Ransomware) : 감염된 시스템의 파일들을 암호화하여 복호화할 수 없도록 하고, 암호화된 파일을 인질처럼 잡고 몸값을 요구
-
사이버 킬체인(Cyber Kill Chain) : 지능적, 지속적 사이버 공격에 대해 7단계 프로세스별 공격 분석 및 대응을 체계화
-
제로데이 공격(Zero Day Attack) : 보안 취약점이 발견되어 널리 공표되기 전에 해당 취약점을 악용하여 이루어지는 공격
-
악성 봇(Malicious Bot) : 스스로 실행되지 못하고 해커의 명령에 의해 원격에서 제어 또는 실행
-
웜(Worm) : 스스로를 복제하여 네트워크 등의 연결을 통해 전파
💢 접근 통제 모델
-
벨-라파둘라 모델 (BLP)
-
미 국방부 지원 보안 모델
-
기밀성 강조
-
No Read Up / No Write Down
-
-
비바(Biba) 모델
-
벨-라파둘라 모델 단점 보완
-
무결성 보장하는 최초의 모델
-
No Read Down / No Write Up
-
💢 네트워크 계층 프로토콜
-
IP (Internet Protocol) : 송수신 간의 패킷 단위로 데이터 교환하는 네트워크에서 정보를 주고받는 데 사용
-
ARP (Address Resolution Protocol) : IP 주소를 MAC 주소(물리 주소)로 변환
-
RARP (Reverse Address Resolution Protocol) : 물리 네트워크 주소(MAC)은 알지만 IP 주소를 모르는 경우, 서버로부터 IP 주소를 요청
-
ICMP (Internet Control Message Protocol) : IP 패킷을 처리할 때 발생되는 문제를 알려주며, 수신지 도달 불가 메시지는 수신지 또는 서비스에 도달할 수 없는 호스트를 통지하는 데 사용
-
IGMP (Internet Group Management Protocol) : 호스트 컴퓨터와 인접 라우터가 멀티캐스트 그룹 멤버십을 구성하는 데 사용
-
라우팅 프로토콜 : 내부 라우팅 프로토콜 RIP, OSPF / 외부 라우팅 프로토콜 EGP, BGP
💢 대칭 키 알고리즘
-
SEED : 국내 한국인터넷진흥원(KISA) / 128bit 비밀키로부터 생성된 16개의 64bit 라운드 키를 사용 / 총 16회 라운드 / 128bit 암호문 블록으로 암호화
-
AES (Advanced Encryption Standard) : 미국 표준 기술 연구소(NIST) / 블록 크기 128bit / 키 길이에 따라 128bit, 192bit, 256bit로 분류 / 한 라운드 4가지 계층으로 구성
💢 보안 솔루션
-
방화벽 (Firewall) : 기업 내외부 간 트래픽을 모니터링하여 시스템의 접근을 허용하거나 차단
-
웹 방화벽 (WAF, Web Application Firewall) : 웹 애플리케이션 보안에 특화된 보안 장비 / SQL 인젝션, XSS 등의 웹 공격을 탐지하고 차단
-
네트워크 접근 제어 (NAC, Network Access Control) : 단말기가 내부 네트워크에 접속을 시도할 때 이를 제어하고 통제 / 바이러스나 웜 등의 위협으로부터 제어 및 통제
-
침입 탐지 시스템 (IDS, Intrusion Detection System) : 비인가 사용자에 의한 자원접근과 보안정책 위반 행위를 실시간으로 탐지
-
침입 방지 시스템 (IPS, Intrusion Prevention System) : 네트워크에 대한 공격이나 침입을 실시간으로 차단, 유해 트래픽에 대한 조치를 능동적으로 처리
-
무선 침입 방지 시스템 (WIPS, Wireless Intrusion Prevention System) : 인가되지 않은 무선 단말기의 접속을 자동으로 탐지 및 차단, 보안에 취약한 무선 공유기 탐지
-
통합 보안 시스템 (UTM, Unified Threat Management) : 다양한 보안 장비의 기능을 하나의 장비로 통합하여 제공
-
가상사설망 (VPN, Virtual Private Network) : 인터넷과 같은 공중망에 인증, 암호화, 터널링 기술을 활용하여 마치 전용망을 사용하는 효과를 가짐
💢 회복 기법
-
로그 기반 회복 기법
-
지연 갱신 회복 기법 : 트랜잭션이 완료되기 전까지 데이터베이스에 기록하지 않음
-
즉각 갱신 회복 기법 : 트랜잭션 수행 중 갱신 결과 바로 반영
-
-
체크 포인트 회복 기법 : 장애 발생 시 검사점 이후에 처리된 트랜잭션에 대해서만 이전 상태로 복원
-
그림자 페이징 회복 기법 : 트랜잭션 수행 시 복제본을 생성하여 장애 시 이를 이용해 복구
💢 비대칭 키 암호화 알고리즘
-
디피-헬만 : 최초의 공개키 알고리즘, 최초의 비밀키 교환 프로토콜
-
RSA (Rivest-Shamir-Adleman) : 큰 인수의 곱을 소인수분해하는 수학적 알고리즘을 이용
-
ECC (Elliptic Curve Cryptography) : 유한체 위에서 정의된 타원곡선 군에서의 이산대수 문제에 기초, RSA보다 키의 비트 수를 적게 하면서 동일한 성능을 제공
-
ElGamal : RSA와 유사하게 전자서명과 데이터 암복호화에 함꼐 사용 가능
💢 소프트웨어 아키텍처 패턴 유형
-
브로커 패턴 (Broker Pattern) : 분리된 컴포넌트들로 이루어진 분산 시스템에서 사용 / 컴포넌트들은 원격 서비스 실행을 통해 상호작용 가능
-
계층화 패턴(Layered Pattern) : 시스템을 계층으로 구분하여 구성 / 각 하위 모듈은 특정화 수준의 추상화를 제공, 각 계층은 다음 상위 계층에 서비스 제공
-
클라이언트-서버 패턴 (Client-Server Pattern) : 하나의 서버와 다수의 클라이언트
-
파이프-필터 패턴 (Pipe-Filter Pattern) : 데이터 스트림을 생성, 처리하는 시스템에서 사용
-
MVC 패턴 (Model View Controller Pattern) : 대화형 애플리케이션을 모델, 뷰, 컨트롤러 3개 서브 시스템으로 구조화