정보처리기사 실기 정리 - 2권

Ik·2023년 7월 15일
0

CS

목록 보기
27/27

7 단원

트랜잭션의 특성

트랜잭션(Transaction) : DB 시스템에서 하나의 논리적 기능을 정상적으로 수행하기 위한 작업의 기본 단위

원자성(Atomicity) 연산 전체가 모두 정상적으로 실행되거나 모두 취소되어야하는 성질
일관성(Consistency) 시스템의 고정 요소는 트랜잭션 수행 전과 완료 후의 상태가 같아야 한다
격리성 = 고립성(Isolation) 동시에 실행되는 트랜잭션들이 서로 영향을 미치지 않아야 한다는 성질
영속성 = 지속성(Durability) 영속적으로 데이터베이스에 저장되어야 하는 성질


트랜잭션의 상태

활동 상태(Active) 트랜잭션 실행 중
부분 완료 상태(Partially Committed) 마지막 명령문이 실행된 후에 가지는 상태
완료 상태(Commited) 트랜잭션이 성공적으로 완료된 후 가지는 상태
실패 상태(Failed) 정상적인 실행이 더 이상 진행될 수 없을 때 가지는 상태
철회 상태(Aborted) 트랜잭션 취소, DB가 트랜잭션 시작 전 상태로 환원된 상태


트랜잭션의 제어

TCL(Transcation Control Language) : 트랜잭션 제어언어, 트랜잭션 결과를 허용하거나 취소하는 목적으로 사용하는 언어를 지칭

커밋(COMMIT) 트랜잭션 확정 영구적 저장
롤백(ROLLBACK) 트랜잭션 취소 트랜잭션 내역 저장 무효화
체크포인트(CHECKPOINT) 저장 시기 설정 ROLLBACK을 위한 시점을 지정


병행 제어

Concurrency Control : 다수 사용자 환경에서 여러 트랜잭션 수행할 때 DB 일관성 유지를 위해 상호 작용을 제어하는 기법

병행제어 기법

로킹(Locking) 특정 데이터 항목에 대해 다른 트랜잭션이 접근하지 못하도록 상호배제(Mutual Exclusion) 기능을 제공
타임 스탬프 순서(Time Stamp Ordering) 타임 스탬프(Time Stamp)를 부여하여 시간에 따라 트랜잭션 작업을 수행


회복 기법

Recovery

구분

구분 설명
REDO 로그를 분석, 시작과 완료에 대한 기록이 있는 트랜잭션 재작업

가장 최근의 복제본을 적재한 후 이후 일어난 변경만을 로그를 이용하여 재실행함으로 DB 복원
UNDO 트랜잭션의 시작은 있지만 완료 기록이 없는 트랜잭션들이 작업한 변경 내용들 모두 취소하는 기법

기법

기법 설명
로그 기반 회복 기법 지연 갱신 회복 기법(Deferred Update) : 트랜잭션이 완료되기 전까지 DB에 기록하지 않는 기법

즉각 갱신 회복 기법(Immediate Update) : 트랜잭션 수행 중 갱신 결과를 바로 DB에 반영하는 기법
체크 포인트 회복 기법(Checkpoint Recovery) 검사점 이후에 처리된 트랜잭션에 대해서만 장애 발전 이전의 상태로 복원
그림자 페이징 회복 기법(Shadow Paging Recovery) 트랜잭션 수행 시 복제본을 생성해 장애 시 이를 이용해 복구


DDL

Data Definition Language : 데이터를 담는 그릇을 정의하는 언어

DDL 대상 설명
도메인(Domain) 하나의 속성이 가질 수 있는 원자값들의 집합

속성의 데이터 타입, 크기, 제약조건 등
스키마(Schema) DB 구조, 제약조건 등의 정보를 담고 있는 기본적인 구조 외부 스키마(External Schema) : 데이터베이스의 논리적 구조

개념 스키마(Conceptual Schema) : 데이터베이스의 전체적인 논리적 구조

내부 스키마(Internal Schema) : 물리적 저장 장치의 관점에서 보는 데이터베이스 구조
그림자 페이징 회복 기법(Shadow Paging Recovery) 트랜잭션 수행 시 복제본을 생성해 장애 시 이를 이용해 복구


Table

Table = Entity = Relation
Tuple = row, Cardinaility : 튜플의 수 = 유니크한 행의 수
Attribute = Column, Degree
Index : 검색 연산의 최적화, 데이터베이스 내 값에 대한 주소 정보로 구성된 데이터 구조



DB 파일 구조

파일구조 설명
순차 방법 물리적 순서가 레코드들의 논리적 순서와 같게
인덱스 방법 인덱스가 가리키는 주소를 따라 원하는 레코드 접근

키-주소의 쌍으로 구성
해싱 방법 해시 함수를 대입해 계산한 결과를 주소로 사용







8 단원

개발 도구

빌드 도구 빌드 및 배포를 수행하는 도구 Ant, Maven, Gradle
구현 도구 개발자의 코드 작성, 디버깅, 수정 등 작업 지원하는 도구 VSC, Intellij
테스트 도구 코드의 테스트, 계획, 수행 및 분석 등의 작업 xUnit
형상 관리 도구 산출물에 대한 버전 관리를 위한 도구

공유 폴더 방식, 서버-클라이언트 방식, 분산 저장소 방식 존재
CVS(Concurrent Versions System) : 서버-클라이언트 구성, 가장 오래된 형상 관리도구, 다수 인원 동시 범용적인 접근 가능

SVN(Subversion) : 서버-클라이언트 구성, 하나의 서버에서 관리, 저장소를 만들어 그곳에 소스를 저장해 소스 중복이나 여러 문제 해결

RCS(Revision Control System) : 공유 폴더 방식, CVS와 달리 소스 파일의 수정을 한 사람만으로 제한

Git


서버 하드웨어 개발환경

웹 서버 HTTP를 이용한 처리

웹 상의 정적 이벤트
웹 애플리케이션 서버(WAS, Web Application Server) 동적 콘텐츠처리 위해 사용

사용자의 요청 스레드 처리, 결과값 반환
데이터베이스 서버 데이터의 수집, 저장을 위한 용도로 사용
파일 서버 파일 저장 하드웨어로 물리 저장 장치를 활용한 서버


클라이언트 하드웨어 개발환경

클라이언트 프로그램, 웹 브라우저, 모바일 앱, 모바일 웹



소프트웨어 개발환경

운영체제 하드웨어를 사용자 관점에서 편리하고 유용하게 사용하기 위한 소프트웨어
미들웨어 컴퓨터와 컴퓨터 간의 연결을 쉽고 안전하게 할 수 있도록 해줌

JVM 등
DBMS 사용자와 DB 사이 위치해 DB 핸들링


재사용

Reuse

재공학(Re-Engineering) 기존 소프트웨어 버리지 않고 기능 개선시키거나 새로운 소프트웨어로 재활용
재개발(Re-Development) 기존 시스템 내용을 참조하여 완전히 새로운 시스템을 개발


공통모듈 구현

응집도(Cohesion)

우연적 응집도(Coincidental Cohesion) 연관이 없을 정도의 응집도
논리적 응집도(Logical Cohesion) 유사한 성격을 갖거나 특정 형태로 분류되는 처리 요소들
시간적 응집도(Temporal Cohesion) 특정 시간에 처리
절차적 응집도(Procedural Cohesion) 기능들이 순차적으로 수행
통신적 응집도(Communication Cohesion) 동일한 입력과 출력을 사용
순차적 응집도(Sequential Cohesion) 출력값을 다른 활동이 사용하는 경우
기능적 응집도(Functional Cohesion) 모든 기능이 단일한 목적을 위해 수행

응집도 약해짐 =>>>>
Functional Cohesion => Sequential Cohesion => Communication Cohesion => Procedural Cohesion => Temporal Cohesion => Logical Cohesion => Coincidental Cohesion

결합도(Coupling)

자료 결합도(Data Coupling) 모듈 간의 인터페이스로 전달되는 파라미터를 통해서만 모듈 간의 상호 작용 일어남
스탬프 결합도(Stamp Coupling) 두 모듈이 동일한 자료 구조를 조회하는 경우
제어 결합도(Control Coupling) 어떤 모듈이 다른 모듈의 내부 논리 조직을 제어하기 위한 목적
외부 결합도(External Coupling) 인터페이스 공유하는 경우
공통 결합도(Common Coupling) 전역 변수를 참조하고 전역 변수를 갱신하는 식으로 상호 작용
내용 결합도(Content Coupling) 다른 모듈 내부에 있는 변수나 기능을 다른 모듈에서 사용하는 경우

결합도 약해짐 =>>>>>
Content Coupling => Common Coupling => External Coupling => Control Coupling => Stamp Coupling => Data Coupling

응집도 강할수록, 결합도 약할수록 좋은 모듈


팬인, 팬아웃

컴포넌트 기준 위 = 팬인(Fan-In) = 어떤 모듈 제어하는
컴포넌트 기준 아래 = 팬 아웃(Fan-Out) = 어떤 모듈에 의해 제어되는



배치 프로그램(Batch Program)

사용자와의 상호 작용 없이 일련의 작업들을 작업 단위로 묶어 정기적으로 반복 수행하거나 정해진 규칙에 따라 일괄 처리하는 방법

배치 프로그램 유형

이벤트 : 조건 충족 시 자동으로 실행
온디맨드 : 명시적 요구가 있을 때마다 실행
정기 : 정해진 시점(주로 야간)에 정기적으로 실행

배치 스케줄러 종류

스프링 배치(Spring Batch), 쿼츠 스케줄러(Quartz Scheduler)






9 단원

SW 개발 보안 3대 요소

기밀성(Confidentiality) 인가된 개인 혹은 시스템의 접근만을 허용, 그 외 차단
무결성(Integrity) 변경, 훼손, 파괴되지 않게 하며 데이터의 정확성 및 안전성을 보장
가용성(Avaliablity) 원하는 서비스를 지속 사용할 수 있도록 보장하는 특성


SW 개발 보안 용어

자산(Assets) 조직의 데이터 또는 소유자가 가치를 부여한 대상
위협(Threat) 조직이나 기업의 자산에 악영향을 끼칠 수 있는 사건이나 행위
취약점(Vulnerability) 위협이 발생하기 위한 사전 조건
위험(Risk) 위협이 취약점을 이용하여 조직의 자산 손실 피해를 가져올 가능성


공격 방법

DoS(Denial of Service) 시스템을 악의적으로 공격해 자원을 부족하게 하여 원래 의도된 용도로 사용하지 못하게 하는 것 SYN 플러딩(SYN Flooding) : TCP 프로토콜의 구조적인 문제를 이용한 공격, SYN 패킷만 보내 점유

UDP 플러딩(UDP Flooding) : UDP 패킷을 만들어 임의의 포트 번호로 전송

스머프(Smurf)/스머핑(Smurfing) : 출발지 주소를 공격 대상 IP로 설정해 제 3의 사이트의 응답이 공격 대상 IP로 흐르게 하며 자원 고갈시킴

죽음의 핑(PoD, Ping of Death) : ICMP 패킷(Ping)을 정상적인 크기보다 아주 크게 만들어 전송하며 자원 고갈

Land Attack : 출발지 IP와 목적지 IP를 같은 패킷 주소로 만들어 보냄

Tear Drop : IP Fragment Offset 값을 서로 중첩되도록 조작해 전송, 재조합하는 과정에서 오류 발생 유도

Bonk : 처음 패킷을 1번으로 보낸 후 다음 패킷을 보낼 때도 순서번호를 모두 1번으로 조작해 전송

Boink : 중간에 패킷 시퀀스 번호를 비정상적인 상태로 내서 부하를 일으키게 하는 공격기법
DDoS(Distributed Denial of Service) 여러 대의 공격자를 분산 배치하여 동시에 동작하게 함, 여러 개가 한번에 공격한다고 생각하면 될 것 Master : 직접 명령을 받는 시스템

Handler : 마스터 시스템의 역할을 수행하는 프로그램

Agent : 직접 공격을 가하는 시스템

공격자(Attacker) : 해커의 컴퓨터

Daemon : 에이전트 시스템의 역할을 수행하는 프로그램
DRDoS(Distributed Reflection Denial of Service) 반사 서버를 이용해 다량의 응답으로 목표 대상 공격
세션 하이재킹(Session Hijacking) TCP의 세션 관리 취약점을 이용한 공격
애플리케이션 공격 HTTP GET Flooding : 과도한 Get 메시지를 이용해 과부하 유도

Slowloris(Slow HTTP Header DoS) : 헤더의 최종 끝을 알리는 개행 문자열 전송 X, 장시간 지속시켜 연결 자원 소진 유도

RUDY Attack(Slow HTTP POST DoS) : 요청 헤더의 Content-Length를 비정상적으로 크게 설정

Slow Read Attack : TCP 윈도 기준을 낮게 설정

Hulk DoS : 주소(URL)을 지속적으로 변경하면서 다량으로 GET 요청을 발생
네트워크 공격 스니핑(Sniffing) : 공격 대상을 직접 공격하지 않고 몰래 들여다 봄

네트워크 스캐너(Scanner), 스니퍼(Sniffer) : 취약점 파악을 위해 공격자가 취약점을 탐색하는 공격 도구

패스워드 크래킹(Password Cracking)
  사전(Dictionary) 크래킹 : ID와 패스워드가 될 가능성이 있는 단어를 파일로 만들어 대입
  무차별(Brute Force) 크래킹 : 패스워드로 사용될 수 있는 문자들을 무작위로 패스워드에 대입

Slow Read Attack : TCP 윈도 기준을 낮게 설정

Hulk DoS : 주소(URL)을 지속적으로 변경하면서 다량으로 GET 요청을 발생

ARP Spoofing : 특정 호스트의 MAC 주소를 자신의 MAC 주소로 위조, 상대방의 데이터 패킷 중간에서 가로챔

트로이 목마(Trojan Horses) : 악성 루틴이 숨어 있는 프로그램, 겉보기엔 정상적이지만 실행하면 악성코드 실행된다
시스템 보안 위협 스택 버퍼 오버 플로우(Stack Buffer Overflow) : 스택 영역에 할당된 버퍼 크기를 초과하는 양의 데이터를 입력

백도어(Backdoor) : 어떤 제품이나 컴퓨터 시스템, 암호 시스템 혹은 알고리즘에서 정상적인 인증 절차를 우회하는 기법

레이스 컨디션 공격(Race Condition Attack) : 레이스 컨디션 발생하게 끔 유도

키로거 공격(Key Logger Attack) : 컴퓨터 사용자의 키보드 움직임을 탐지해서 저장

루트킷(Rootkit) : 시스템 침입 후 침입 사실을 숨긴 채 차후의 침입을 노리는 프로그램의 모음
그 외 공격 기법, 보안 기술 Spear Phishing : 사회 공학의 한 기법, 일반적인 이메일로 위장한 메일을 지속적으로 발송

APT 공격(Advanced Persistent Threat) : 특정 타깃을 목표로 다양한 수단을 통해 지속적이고 지능적인 맞춤형 공격기법
    Watering Hole : 특정인에 대한 표적 공격을 목표, 특정인이 잘 방문하는 사이트에 악성 코드 심거나 배포해 URL로 유인해 공격, 주로 APT 공격에 사용

공급망 공격(Supply Chain Attack) : 소프트웨어 개발사의 네트워크에 침투

제로데이 공격(Zero Day Attack) : 보안 취약점이 발견되어 널리 공표되기 전에 해당 취약점 악용하는 공격

Worm : 스스로 복제해 네트워크 등의 연결을 통해 전파되는 악성 프로그램, 독자적 실행 가능

악성 봇(Malicious Bot) : 스스로 실행 X, 원격 제어 또는 실행, 좀비 PC는 악성 봇에 의해 감염된 PC

랜섬웨어(Ransomeware) : 감연된 시스템의 파일들을 암호화 하고 복호화로 돈을 요구

이블 트윈(Evil Twin) : 합법적인 Wifi 제공자처럼 행세

사회공학(Social Engineering) : 사람들의 심리와 행동 양식을 교모하게 이용, 원하는 정보 탈취

트러스터존(Trustzone) : 독립적인 보안 구역을 따로 마련

타이포스쿼팅(Typosquatting) : 주소를 오타치는 것을 대비해 유사한 도메인들 미리 등록하는 일, URL 하이재킹이라고도 부름

Drive By Download : 불특정 웹 서버와 웹 페이지에 악성 스크립트 설치, 사용자 동의 없이 실행되어 의도된 서버로 연결해 감염시킴

HeartBleed : 하트비트(Heartbeat)라는 확장 모듈에서 클라이언트 요청 메시지를 처리할 때 데이터 길이에 대한 검증을 수행하지 않는 취약점을 이용

Stuxnet : 독일 지멘스사의 SCADA 공격 목표, 주요 산업 기반 시설의 제어 시스템에 침투해 오작동 일으킴

SQL Injection : 악의적인 SQL 구문 삽입, 실행시켜 DB에 접근해 정보 탈취하거나 조작하는 공격 기법



버퍼 오버플로우 대응 방안

스택가드(Stackguard) 카나리(Canary)라고 불리는 무결성 체크용 값을 복귀용 주소, 변수 사이에 입력해두고 체크
스택 쉴드(Stack Shield) 함수 시작 시 복귀 주소를 Global RET라는 특수 스택에 저장해두고 함수 종료 시 비교를 통해 체크
ASLR(Address Space Layout Randomization) 주소 공간 배치를 난수화


보안 공격 대응 관련 용어

CWE(Coomon Weakness Enumeration) MITRE사가 중심, 공통적으로 발생하는 약점을 체계적으로 분류한 목록
ISMS(Information Security Management System) 정보보호 관리 절차와 과정을 체계적으로 수립해 지속적으로 운영하기 위한 종합적인 체계(정보보호 관리 체계)
TKIP(Temporal Key Integrity Protocol) 임시 키 무결성 프로토콜


서버 인증 기술 유형

유형 설명
지식 기반 인증 사용자가 기억하고 있는 지식
ID, PW 등
소지기반 인증 소지하고 있는 사용자 물품
공인인증서, OTP
생체기반 인증 고유한 사용자의 생체 정보
홍채, 정맥, 얼굴, 지문
특징(=행위) 기반 사용자의 특징을 활용
서명, 발걸음 등


서버 접근 통제 유형

유형 설명
임의적 접근 통제(DAC, Discretionary Access Control) 주체나 그룹의 신분(=신원)에 근거해 접근 통제
강제적 접근 통제(MAC, Mandatory Access Control) 정보의 허용등급과 접근 정보에 대해 주체가 갖는 허가 권한에 근거
역할 기반 접근 통제(RBAC, Role Based Access Control) 조직 내 맡은 역할(Role)에 기초하여 자원에 대한 접근을 제어하는 방법


정보 보호 기술, 3A

유형 설명
인증(Authentication) 신원을 검증하기 위한 활동
권한 부여(Authorization) 권리를 부여하는 행위
계정 관리(Accounting) 주체의 접근을 추적하고 행동을 기록하는 활동


인증 관련 기술

SSO(Single Sign On) : 한번의 인증 과정으로 여러 컴퓨터상의 자원을 이용할 수 있도록 해주는 인증 기술

접근 통제 보호 모델

벨-라파듈라 모델(BLP, Bell-LaPadula Policy)

  • No Read Up : 보안수준이 낮은 주체는 보안 수준이 높은 객체를 읽어서는 안된다
  • No Write Down : 보안 수준이 높은 주체는 보안 수준이 낮은 객체에 기록하면 안된다

비바 모델(Biba Model)

  • 벨-라파둘라 모델 단점 보완
  • No Read Down : 높은 등급의 주체는 낮은 등급의 객체를 읽을 수 없음
  • No Write Up : 낮은 등급의 주체는 상위 등급의 객체를 수정할 수 없음



암호 알고리즘(Encryption Algorithm)

방식 분류
양방향 방식 대칭 키(비밀 키) 암호 방식 : 암-복호화 동일 키, n(n-1)/2

비대칭 키 암호 방식(=공개 키 암호 방식) : 공개 키는 누구나 알지만 개인키는 소유자만 알 수 있다, 2n
대칭 키 알고리즘

    DES(Data Encryption Standard), 미국 NBS가 국가 표준으로 정함, 64bit 평문 => 64bit 암호문

    SEED : 한국인터넷진흥원(KISA), 16개의 64bit 라운드 키 사용, 128bit 평문 => 128bit 암호문으로 암호화

    AES(Advanced Encryption Standard) : DES 성능문제 극복하기 위해 개발, 10-12-14라운드로 분류

    ARIA(Academy, Research Institute Agency) : 2004년 국가정보원과 산학연구협회가 개발한 블록 암호화 알고리즘

    IDEA(International Data Encryption Algorithm) : DES 대체 목적 스위스 연방기술 기관에서 개발, 128bit 키 사용해 64bit 평문 8라운드에 거쳐 64bit 암호문 생성

    Skipjack : Cipper 칩에 내장된 블록 알고리즘

비대칭 키 알고리즘

    RSA(Rivet-Shamir-Adleman) : MIT 수학교수 3명, 큰 인수의 곱을 소인수 분해하는 수학적 알고리즘 사용

    ECC(Elliptic Curve Cryptography) : 유한체 위에서 정의된 타원곡선 군에서의 이산 대수의 문제

    ElGamel : 이산대수의 계산이 어려운 문제를 기본 원리, RSA와 유사하게 전자서명, 암-복호화에 함께 사용 가능
일방향 방식 MAC(Message Authentication Code) : 키를 사용하는 메시지 인증 코드로 정당성 검증

MDC(Modification Detection Code) : 키를 사용하지 않는 변경 감지 코드
MD5 : MD4 개선


데이터 암호화 전송

IPSec(Internet Protocol Security) : 인증 헤더(AH)와 기밀성을 보장하는 암호화(ESP)를 이용한 IP 보안 프로토콜

프로토콜 설명
인증(AH) 프로토콜(Authentication Header) 메시지 인증 코드(MAC)을 이용
암호화(ESP) 프로토콜(Encapsulation Security Payload) 메시지 인증 코드(MAC)와 암호화를 이용
키 관리(IKE) 프로토콜(Internet Key Exchange) Key를 주고받는 알고리즘

SSL/TLS : 전송계층(4계층) <=> 응용계층(7계층) 사이에서 클라이언트와 서버 간의 웹 데이터 암호화(기밀성), 상호 인증 및 전송 시 데이터 무결성을 보장해주는 보안 프로토콜

  • Change Cipher Spec Protocol : 협상이 끝난 Cipher Spec을 상대에게 알림
  • Handshake Protocol : 서버와 클라이언트가 서로 인증하고 암호화 키를 협상하는 프로토콜

S-HTTP(Secure Hypertext Transfer Protocol) : 웹상에서 네트워크 트래픽을 암호화하는 주요 방법 중 하나

SW 개발 보안 적용 사례

Secure SDLC 모델 및 방법론

구분 설명
Seven TouchPoints SW 보안의 모범 사례를 SDLC(Software Development Life Cycle)에 통합
MS SDL(Security Development Lifecycle) 마이크로소프트사가 2004년 자사 소프트웨어 개발에 의무적으로 적용하도록 한 보안강화 프레임워크
OWASP(The Open Web Application Security Project) CLASP(=CLASP) 개념 관점, 역할 기반 관점


시큐어 코딩 가이드

보안 약점 설명
입력 데이터 검증 및 표현 입력값의 누락, 부적절한 검증, 잘못된 형식 XSS(Cross Site Scripting) : 웹페이지를 열람함으로써 웹페이지에 포함된 부적절한 스크립트 실행되는 공격(클라이언트의 정보 탈취)
    Stored XSS : 방문자들이 악성 스크립트가 포함된 페이지를 읽어 봄과 동시에 브라우저에 악성 스크립트 실행
    Reflected XSS : 공격용 악성 URL을 생성, 사용자가 URL 클릭 시 즉시 공격 스크립트가 피해자로 반사

사이트 간 요청 위조(CSRF, Cross-Site Request Forgery) : 사용자가 자신의 의지와는 무관하게 공격자가 의도한 행위를 특정 웹사이트에 요청하는 공격(웹서버, 사용자 모두에게 피해)

SQL Injection : 악의적인 SQL 구문을 삽입, 실행시켜 DB에 접근해 데이터 탈취 혹은 조작
    Mass SQL Injection : 기존 SQL Injection의 확장된 개념, DB에 치명타
    Blind SQL Injection : 쿼리 결과의 참과 거짓을 통해 의도하지 않은 SQL 문을 실행
보안 기능 보인 기능의 부적절한 구현
시간 및 상태 시간 및 상태의 부적절한 관리
에러 처리 에러 미처리, 에러 메시지에 중요 정보 보함
코드 오류 개발자가 범할 수 있는 코딩 오류
캡슐화 기능성이 불충분한 캡슐화로 인한 사용자에게 데이터 노출
API 오용 의도된 사용에 반하는 방법으로 API 사용


네트워크 보안 솔루션

솔루션 설명
방화벽(Firewall) 기업 내부, 외부 간 트래픽을 모니터링해 시스템의 접근을 허용, 차단하는 시스템
네트워크 접근 제어(NAC, Network Access System) 단말기가 내부 네트워크에 접속을 시도할 때 이를 제어하고 통제
침입 탐지 시스템(IDS, Instrusion Detection System) 네트워크에서 발생하는 이벤트를 모니터링, 비인가 사용자에 의한 접근 및 행위 실시간 탐지
가상사설망(VPN, Virtual Private Network) 인터넷과 같은 공중망에 인증, 암호화, 터널링 기술을 활용해 마치 전용망을 사용하는 효과를 가져옴
SIEM(Security Information and Event Management) 다양한 보안 장비와 서버, 네트워크 장비 등으로부터 보안 로그와 이벤트 정보를 수집한 후 정보 간의 연관성을 분석하여 신속하게 대응하는 관제 솔루션


시스템 보안 솔루션

보안 운영체제(Secure OS) : 컴퓨터 운영체제의 커널에 보안 기능을 추가한 솔루션


콘텐츠 유출 방지

데이터 유출 방지(DLP, Data Loss Prevention) : 조직 내부의 중요 자료가 외부로 빠져나가는 것을 탐지하고 차단하는 솔루션


보안 테스트

구분 설명
정적 분석(Static Analysis) SW 실행하지 않고 보안 약점을 분석
개발 단계에서 주로 사용
동적 분석(Dynamic Analysis) SW 실행 환경에서 보안 약점 분석
시험 단계에서 주로 사용


비즈니스 연속성 계획 관련 주요 용어

비즈니스 연속성 계획(BCP, Business Continuity Plan) : 여러 위기로부터 위기관리를 기반으로 비즈니스 연속성을 보장하는 체계

주요 용어 설명
BIA(Business Impact Analysis) 운영상의 주요 손실을 볼 것을 가정해 시간 흐름에 따른 영향도 및 손실평가를 조사하는 BCP를 구축하기 위한 비즈니스 영향 분석
RTO(Recovery Time Objective) 업무중단 시점부터 업무가 복구되어 다시 가동될 때까지의 시간
RPO(Recovery Point Objective) 업무중단 시점부터 데이터가 복구되어 다시 정상가동 될 때 데이터의 손실 허용 시점
DRS(Disaster Recovery System) 재해복구 계획의 원활한 수행을 지원하기 위해 평상시에 확보해두는 인적, 물적 자원 및 이들에 대한 지속적인 관리체계가 통합된 재해복구센터 Mirror Site : 주 센터, 데이터복구센터 모두 운영 상태로 실시간 동시 서비스 가능

Hot Site : 주 센터와 동일한 수준의 자원을 대기 상태로 원격지에 보유하면서 동기, 비동기 방석의 미러링을 통해 데이터를 최신상태로 유지하고 있는 재해복구센터

Warm Site : Hot Site와 유사, 중요성이 높은 자원들만 부분적으로 보유

Cold Site : 데이터만 원격지에 보관, 재해 시 필요자원 조달 및 복구







10 단원

소프트웨어 테스트 : 사용자가 요구하는 기능과 성능, 사용성, 안정성 등을 만족하는지 확인하고 노출되지 않은 숨어있는 소프트웨어의 결함을 찾아내는 활동

소프트웨어 테스트 원리

결함 존재 증명 결함이 존재함을 밝히는 활동
완벽 테스팅은 불가능 완벽하게 테스팅하려는 시도는 불필요한 시간과 자원 낭비
초기 집중 초기에 체계적인 분석, 설계가 수행되지 못하면 이후 전체 프로젝트에 영향을 크게 끼친다
요르돈의 법칙 적용(Snowball Effect, 눈덩이 법칙)
결함 집중 오류의 80%는 전체 모듈의 20% 내에서 발견
파레토 법칙(Pareto Principle) - 80대 20 법칙
살충제 패러독스 동일한 테스트 케이스에 의한 반복적 테스트는 새로운 버그를 찾지 못함
정황 의존성 소프트웨어의 성격에 맞게 테스트 실시
오류-부재의 궤변 요구사항을 충족시켜주지 못한다면 결함이 없다고 해도 품질이 높다고 볼 수 없다



소프트웨어 테스트 산출물

산출물 설명 필요 항목
테스트 케이스(Test Case) 입력값, 실행 조건, 기대 결과로 구성된 테스트 항목의 명세서 테스트 데이터(입력 데이터), 예상 결과(기대 결과)
테스트 스크립트(Test Script) 테스트 케이스의 실행 순서(절차)를 작성한 문서
특정 기능에 대한 상세 절차
테스트 슈트(Test Suites) 실행환경에 따라 구분해 놓은 테스트 케이스의 집합
테스트 시나리오(Test Scenario) 테스트가 되어야 할 기능 및 특징, 필요한 상황을 작성한 문서
사용자가 시스템을 사용하면서 만나게 되는 상황을 개략적으로 구성
테스트 결과서(Test Results) 테스트 결과를 정리한 문서



테스트 유형

분류 설명 유형
정적 테스트 실행하지 않고 구조를 분석하여 논리성 검증하는 테스트 리뷰, 정적 분석

인스펙션(Inspection) : 저작자 외의 다른 전문가 또는 팀이 검사하여 문제를 식별하고 문제에 대한 올바른 해결을 찾아내는 형식적인 검토 기법

워크 스루(Work Throughts) : 검토 자료를 회의 전에 배포, 사전 검토한 후 짧은 시간 동안 회의를 진행
동적 테스트 실행하는 방식으로 테스트를 수행 화이트박스 테스트, 블랙박스 테스트


화이트 박스, 블랙 박스 테스트

화이트 박스(구조 기반) 테스트 : 내부 구조와 동작을 검사하는 소프트웨어 테스트
블랙 박스(명세 기반) 테스트 : 사용자의 요구사항 명세를 보면서 수행하는 테스트(기능 테스트)

  • 기능 및 동작 위주의 테스트를 진행하기 때문에 내부 구조나 작동 원리를 알지 못해도 가능하다
    화이트 박스 테스트 구문, 문장 커버리지(Statement Coverage) : 모든 명령문을 적어도 한번 수행

    결정, 선택, 분기 커버리지(Decision, Branch Coverage) : 전체 조건식을 적어도 한번은 참과 거짓의 결과를 수행하는 커버리지

    조건 커버리지(Condition Coverage) : 각 개별 조건식이 적어도 한번은 참과 거짓의 결과가 되도록 수행하는 테스트 커버리지

    조건/결정 커버리지(Condition/Decision Coverage) : 전체 조건식 뿐만 아니라 개별 조건식도 참 한번, 거짓 한 번 결과가 되도록 수행하는 테스트 커버리지

    다중 조건 커버리지(Multiple Condition Coverage) : 모든 가능한 조합을 100% 보장하는 커버리지

    기본 경로 커버리지(Base Path Coverage) : 수행 가능한 모든 경로를 테스트
    공통 모듈 테스트
       xUnit - jUnit, CppUnit, HttpUnit
    블랙박스 테스트 동등분할, 동치 분할, 균등 분할 테스트(Equivalence Partitioning Testing) : 유사한 도메인 별로 유효값/무효값 그루핑하여 대푯값 테스트 케이스 도출

    경곗값(=한곗값) 분석 테스트(Boundary Value Analysis Testing) : 경곗값 부분에서 오류 발생 확률이 높기 때문에 경계값을 포함하여 테스트 케이스를 설계

    상태 전이 테스트(State Transition Testing) : 객체의 상태를 구분, 다른 상태로 정이되는 경우의 수를 테스트

    페어와이즈 테스트(Pairwise Testing) : 테스트 데이터값들 간에 최소한 한번씩조합하는 방식

    원인-결과 그래프 테스트(Cause-Effect Graph Testing) : 그래프를 활용, 입력 데이터 간의 관계 및 출력에 미치는 영향을 분석



검증(Verification) : 개발 과정을 테스트
확인(Validation) : 결과를 테스트

테스트 목적에 따른 분류

분류 설명 상세 유형
회복 테스트(Recovery Testing) 고의로 실패 유도, 시스템의 정상적 복귀 여부 테스트
안전 테스트(Security Testing) 소스코드의 보안적인 결함 미리 점검
성능 테스트(Performance Testing) 시스템이 응답하는 시간, 특정 시간 내에 처리하는 업무량, 사용자 요구에 시스템이 반응하는 속도 등을 측정하는 테스트 기법 부하 테스트(Load Testing) : 부하를 계속 증가시키며 임계점을 찾는 테스트

강도 테스트(Stress Testing) : 임계점 이상의 부하를 가하여 비정상적인 상황에서 시스템의 동작 상태 테스트

스파이크 테스트(Spike Testing) : 짧은 시간에 사용자가 몰릴 때 시스템 반응 측정

내구성 테스트(Endurance Testing) : 오랜 시간 동안 시스템에 높은 부하를 가하여 시스템 반응 테스트
구조 테스트(Structure Testing) 시스템의 내부 논리 경로, 소스 코드의 복잡도를 평가하는 테스트 기법
회귀 테스트(Regression Testing) 오류 제거와 수정에 의해 새로이 유입된 오류가 없는지 확인하는 일종의 반복 테스트 기법
병행 테스트(Parallel Testing) 변경 전, 후 시스템에 동일한 데이터를 입력 후 결과를 비교하는 테스트 기법


테스트 오라클

테스트 오라클 : 테스트의 결과가 참인지 거짓인지를 판단하기 위해서 사전의 정의된 참값을 입력하여 비교하는 기법

유형 설명
참(True) 오라클 모든 입력값에 대하여 기대하는 결과 생성, 오류 모두 검출 가능
샘플링(Sampling) 오라클 특정한 몇 개의 입력값에 대해서 기대하는 결과 제공
휴리스틱(Heuristic) 오라클 샘플링 오라클 개선
나머지 값들에 대해서는 휴리스틱(추정)으로 처리
일관성 검사(Consistent) 오라클 수행 전과 후의 결과값이 동일한지 확인하는 오라클


테스트 레벨

유형 설명 상세
단위(Unit) 테스트 단위 모듈, 서브루틴 등을 테스트 Test Driver : 하위 모듈을 호출하는 상위 모듈의 역할

Test Stub : 상위 모듈에 의해 호출되는 하위 모듈 역할
통합(Integration) 테스트 단위 테스트를 통과한 모듈 사이의 인터페이스, 통합된 컴포넌트 상호작용 테스트 Top Down(하향식) : 아래 방향으로 통합, 스텁 사용

Bottom Up(상향식) : 위쪽 방향으로 통합, 드라이버 사용

샌드위치 통합 : 상향식, 하향식 통합 테스트 방식 결합

빅뱅 테스트 : 모든 모듈을 동시에 통합 후 테스트 수행
시스템(System) 테스트 시스템에서 정상적으로 수행되는지 검증
인수(Acceptance) 테스트 계약상의 요구사항이 만족되었는지 확인하기 위한 테스트 알파 테스트(Alpha Test) : 선택된 사용자가 개발자 환경에서 통제된 상태로 개발자와 함께 테스트

베타 테스트(Beta Test) : 실제 환경에서 일정 수의 사용자에게 대상 소프트웨어 사용하게 하고 피드백 받는 테스트

V-model

개발 : 요구사항 분석 => 기계 명세 분석 => 설계 => 개발
테스트 : => 단위 테스트 => 통합 테스트 => 시스템 테스트 => 인수 테스트


결함 : 개발자가 설계한 것과 다르게 동작하거나 다른 결과가 발생하는 현상
오류(Error) : 일반적으로 사람에 의해 생성된 실수
결점(Fault) : 시스템이 고장을 일으키게하며 오류가 있는 경우 발생하는 현상

생명주기 별 결함 상태

결함 상태 설명
결함 등록(Open) 발견한 결함을 분석 후 결함으로 보고된 상태
결함 확인(Verified) 개발자가 결함 처리가 합당한지, 정확한지 검증이 완료된 상태


테스트 커버리지(Test Coverage) : 소프트웨어의 테스트 범위를 측정하는 테스트 품질 측정 기준

애플리케이션 성능 지표

지표 설명
처리량(Throughput) 주어진 시간에 처리할 수 있는 트랜잭션의 수
응답 시간(Response Tiem) 사용자 입력이 끝난 후 응답 출력이 개시될 때 까지의 시간
경과(=반환) 시간(Turnaround Time) 사용자가 요구를 입력한 시점부터 결과 출력이 완료될 때 까지의 시간
자원 사용률(Resource Usage) 트랜잭션을 처리하는 동안 사용하는 CPU 사용량을 포함한 자원의 사용량


리펙토링(Refactoring) : 유지보수 생산성 향상 목적, 기능은 그대로 되 소스 코드의 수정, 보완을 통해 가용성 및 가독성 향상시키는 기법






11 단원

운영체제(OS)

Operating System

사용자가 컴퓨터의 하드웨어를 쉽게 사용할 수 있도록 인터페이스를 제공해 주는 소프트웨어

쉘(인터페이스) + 커널로 구성되어 있다

  • 커널(Kernel) : 운영체제의 핵심이 되는 기능들이 모여 있는 컴퓨터 프로그램
    • 프로그램, 하드웨어 간의 인터페이스 역할
  • 쉘(Shell) : 사용자의 명령어 라인을 읽어 필요한 시스템 기능을 실행시키는 명령어 해석기
    • 시스템, 사용자 간의 인터페이스 역할
    • 여러가지 내장 명령어 존재
  • 사용자 <====> 시스템 <==커널==> 하드웨어


종류

Windows, Unix, Linux 3가지 존재

  • Windows : GUI, CLI 제공
  • Linux, Unix : CLI 기반

Windows

  • GUI 제공
  • 선점형 멀티태스킹 방식 제공 : 동시에 여러 개의 프로그램 실행하면서 운영체제가 각 작업의 CPU 이용 시간을 제어

명령어

명령어 설명
CD 현재 디렉터리 이름을 보여주거나 바꿈
CLS 화면을 지움
CMD Windows 명령 프롬프트 창을 열어줌



Unix, Linux

Unix : 벨연구소에서 만들었으며 90% 이상 C언어로 구성
Linux : 유닉스 기반

  • 종류로는 데비안, 레드헷, Fedora, Ubuntu, CentOS

명령어

명령어 및 로그 파일 설명
rm 파일 삭제
cp 파일 복사
디렉토리 복사
mv 파일 이동
wtmp/wtmpx 사용자 로그인/로그아웃 정보 담겨있는 로그
utmp/utmpx 현재 시스템에 로그인한 사용자 정보 로그
btmp/btmpx 로그인에 실패한 정보

접근 권한

User, Group, Other
R W X
4 2 1

EX
chmod 664 ik.c : ic.c 라는 파일의 접근 권한을 User = 읽고 쓰기, User의 Group = 읽고 쓰기, 그 외 = 읽기로 지정
chmod go-w ik.c : ik.c의 group 쓰기(w) 권한 제거
chmod a=rw ik.c : ic.c의 모든 사용자 읽고(r) 쓰기(w) 기능 설정



Android

Linux 커널 위에서 동작


제어

유형 설명
CLI Command Line Interface
명령어 이용한 방식
GUI Graphic User Interface
마우스를 이용한 방식



기능

핵심 기능 설명
메모리 관리 메모리에 있는 프로그램 CPU로 이동하여 처리
프로세스 관리 프로세스 상태 관리

프로세스는 현재 실행 중인, 즉 CPU에 의해 처리되고 있는 프로그램을 의미

CPU는 가상 주소를, 메모리는 물리 주소를 사용하는데 MMU가 주소를 매핑하는 역할 수행

프로그램은 디스크(보조기억장치, 비휘발성)에 위치해 있다 프로그램을 실행하는 상황에 메모리로 이동, CPU(중앙처리장치)가 메모리에 위치한 프로그램 처리

메모리 관리 기법

기법 설명 자세히
반입 기법 주기억장치에 적재할 프로세스의 반입 시기 결정
배치 기법 주기억 장치에 어느 위치에 저장할지 위치 결정 최초 적합(First Fit) : 적재 가능한 공간 중 첫번째 공간에 할당
최적 적합(Best Fit) : 적재 가능한 공간 중 가장 크기가 비슷한 공간에 할당
최악 접합(Worst Fit) : 적재 가능한 공간 중 가장 큰 공간에 할당
할당 기법 주기억 장치에 어떤 방법으로 할당할 것인지 결정 연속 할당 : 주기억장치 공간 내에서 인접되게 연속해서 저장
분산 할당 : 하나의 프로세스를 여러 개의 조각으로 나눠 주기억장치 공간 내 분산 배치
교체 기법 어떤 프로세스와 교체할 것인지 결정 FIFO(First In Frist Out) : 가장 오래 있던(먼저 들어온) 페이지를 교체
LRU(Least Recently Used) : 가장 오랫동안 사용되지 않은 페이지 교체
LFU(Least Frequently Used) : 참조 횟수가 가장 적은 페이지를 교체

분산 할당 기법에는 페이징(Paging), 세그먼테이션(Segmentaion) 존재하며 페이징(Paging)은 프로세스를 일정하게 세그먼테이션(Segmentaion)은 가변적인 크기로 나누는 차이

교체 기법 중 FIFO는 큐의 순서 변동 X, LRU의 경우는 순서 변동 O

메모리 단편화 : 프로세스 할당, 반납 과정에서 사용되지 못하고 낭비되는 기억장치가 발생하는 현상

종류 설명
내부 단편화 프로세스를 적재한 후 남은 공간
외부 단편화 프로세스 크기보다 작아 사용하지 못하는 공간

스레싱(Thrashing) : 어떤 프로세스의 지속적인 페이지 부재 발생으로 인해 프로세스의 실제 처리 시간보다 페이지 교체 시간이 더 많아지는 현상

워킹세트(Working Set) : 각 프로세스가 많이 참조하는 페이지들의 집합을 주기억장치 공간에 계속 상주하게 하여 빈번한 페이지 교체 현상을 줄이고자 하는 기법

지역성(Locality) : 프로세스가 실행되는 동안 주기억장치를 참조할 때 일부 페이지만 집중적으로 참조하는 특성

종류 설명
시간(Temporal) 지역성 최근 사용되었던 기억장소들에 집중적으로 엑세스
공간(Spatial) 지역성 일정 위치의 페이지를 집중적으로 엑세스
순차(Sequentil) 지역성 데이터가 순차적으로 엑세스



프로세스 관리

프로세스 상태 설명
생성(Create) 상태 사용자에 의해 프로세스 생성된 상태
준비(Reday) 상태 CPU를 할당받을 수 있는 상태
실행(Running) 상태 CPU를 할당 받아 동작 중인 상태
대기(Waiting) 상태 CPU를 양도하고 입출력 처리가 완료까지 대기 리스트에서 기다리는 상태
완료(Complete) 상태 CPU를 할당받아 주어진 시간 내에 완전히 수행을 종료한 상태


프로세스 상태 전이

프로세스 상태 설명
디스패치(Dispatch) 준비 상태 => 실행 상태
블록(Block) 입출력 발생 시 현재 진행중인 프로세스 CPU 스스로 반납하고 입출력이 완료될 때 까지 대기 상태로 전이
웨이크 업(Wake-up) 대기 상태 => 준비 상태



프로세스 스케줄링

  • CPU를 사용하려고 하는 프로세스들 사이의 우선순위를 관리하는 작업
    서비스 시간 : 서비스 요청 ~ 결과 산출
    응답시간(Response Time) : 서비스 요청 ~ 반응 시작
    반환시간(Turnaround Time) : 큐 도착 ~ 결과 산출, 대기시간 + 수행시간
    대기시간 : 프로세스가 할당되기 전까지 큐에 대기하는 시간
    응답률(Response Ratio) : (대기시간 + 서비스 시간) / 서비스 시간

             <===========서비스 시간===========>
<====응답시간====>
<===============반환시간================>
<대기시간><============수행시간===========>
    큐 도착 - 서비스 요청 - 결과 산출 시작 - 결과 산출 종료


프로세스 스케줄링 - 유형

구분 설명 유형
선점형 스케줄링(Preemptive Scheduling) 우선순위가 높은 다른 프로세스가 현재 프로세스 중단시키고 CPU 점유 라운드 로빈(RR, Round Robin) : 일정한 할당 시간 내에 처리하지 못한 경우 준비 큐 마지막으로 보내고 다음 프로세스로 넘어감
SRT(Shortest Remaing Time First) : 가장 짧은 시간이 소요되는 프로세스 먼저 수행, 준비 큐에 짧다고 판단 된 프로세스 존재하면 바로 교체
MLQ(Multi Level Queue) : 작업들을 여러 종류 그룹으로 분할, 여러 개의 큐 사용
비선점형 스케줄링(Non Preemptive Scheduling) 한 프로세스가 CPU를 할당받으면 작업 종료 후 CPU 반환 시까지 다른 프로세스는 CPU 점유 불가 FCFS(First Come First Service) : 대기 큐에 도착한 순서에 따라 CPU 할당
SJF(Shortest Job First) : 그 당시 가장 작은 서비스 시간을 갖는 프로세스가 종료 시까지 자원을 점유(SRT와는 다름)
HRN(Highest Response Ratio Next) : 응답률(Response Ratio) 가장 높은 것 부터할당, SJF 개선

기아(Starvation) 현상 : 프로세스가 CPU 할당받지 못하고 무한정 기다리는 현상

에이징(Aging) : 오랫동안 기다린 프로세스에 우선순위를 높여주도록 처리하는 기법

교착상태(DeadLock) : 두 개 이상의 프로세스가 특정 자원할당을 무한정 대기하는 상태

발생 조건

발생 조건 설명
상호 배제(Mutual Exclusive) 특정 프로세스가 다른 프로세스 사용 못하게 자원을 배타적으로 점유
비선점(Non Preemption) 점유한 자원에 대해 새로운 프로세스가 아닌 점유한 프로세스만이 해제 가능한 상태
환형 대기(Circular Wait) 자원의 점유, 대기 사이클이 하나의 원형을 구성한 상태


해결 방법

해결 방법 설명 세부 기법
예방(Prevention) 상호 배제 빼고 나머지 조건 모두 부정
회피(Avoidance) 안전한 상태를 유지할 수 있는 요구만 수락 은행가 알고리즘 : 안전상태일 때만 자원을 할당
복구(Recovery) 프로세스를 순차적으로 Kill하여 제거



디스크 스케줄링

디스크 헤드를 움직이는 경로를 결정하는 기법

종류 설명
FCFS(First Come First Served) 먼저 들어온 트랙에 대한 요청 먼저 서비스
SCAN 진행 방향(감소 or 증가)이 결정되면 끝까지 이동 후 역방향으로 서비스
C-SCAN 항상 바깥쪽에서 안쪽으로 움직이며 가장 짧은 거리 탐색(SCAN과는 다르게 방향 안바뀜)



가상화(Virtualization)

종류 설명
컴퓨팅 가상화 서버 가상화 통해 1개 이상의 운영체제 동시에 가동 시키는 기술
스토리지 가상화 스토리지, 서버 사이에 계층 추가, 스토리지를 논리적으로 제어 및 활용하는 기술
컨테이너 단일 운영체제상에서 실행되도록 해주는 기술



클라우드 컴퓨팅(Cloud Computing)

인터넷을 통해 가상화 된 컴퓨터 시스템 리소스(IT 리소스)를 제공

분류 설명
사설 클라우드(Private Cloud) 조직 내부에 보유하고 있는 컴퓨팅 자원
공용 클라우드(Public Cloud) 클라우드 서비스 제공 업체에서 다중 사용자를 위한 컴퓨팅 자원 서비스를 제공하는 클라우드
하이브리드 클라우드(Hybrid Cloud) 사설, 공용 둘 다 사용


유형 설명
인프라형 서비스(IaaS : Infrastructure as a Service) 시스템 자원을 클라우드로 제공
소프트웨어형 서비스(SaaS : Software as a Service) 웹 브라우저 등의 클라이언트를 통해 접속하여 소프트웨어를 서비스 형태로 이용하는 서비스
플랫폼형 서비스(PaaS : Platform as a Service) SaaS의 개념을 개발 플랫폼에도 확장한 방식




WAN : 광대역 네트워크
LAN(Local Area Network) : 근거리 네트워크
WLAN(Wireless Local Area Network) : 무선랜 통신망, 유선 LAN과 무선 단말 사이를 무선주파수를 이용해 전송
VLAN(Virtual Local Area Network) : 논리적으로 LAN 구성

OSI 7 Layer

계층 설명 프로토콜 전송 단위 장비
응용 계층(Application Layer) 사용자와 네트워크 연결 HTTP, FTP ''
표현 계층(Presentation Layer) 데이터 형식, 암-복호화 등 JPEG, MPEG 데이터(Data)
세션 계층(Session Layer) 송수신 간의 논리적인 연결 유지 ''
전송 계층(Transport Layer) 송수신 프로세스 연결, 신뢰성 있는 통신 보장 TCP, UDP 세그먼트(Segment) L4 스위치 : 네트워크 단위들 연결(TCP/UDP 등 스위칭 수행)
네트워크 계층(Network Layer) 단말기 간 데이터 전송을 위한 최적화된 경로 제공 IP, ICMP 패킷(Packet) 라우터 : LAN-LAN 연결, LAN-WAN 연결
데이터링크 계층(Data Link Layer) 데이터 전송, 전송 오류 제어 프레임(Frame) 브릿지 : 두개의 근거리 통신망(LAN) 서로 연결
스위치
물리 계층(Physical Link Layer) 0과 1의 비트 정보 교환 비트(bit) 허브, 리피터


게이트웨이(Gateway) : 프로토콜을 서로 다른 통신망에 접속할 수 있게 해주는 장치

데이터 링크 오류 제어 중 자동반복 요청(ARQ : Automatic Repeat reQuest) 종류

종류 설명
Stop-and-Wait ARQ 방식 정보 전송을 중지하고 기다리는 방식
Go-back-N ARQ 오류가 발생한 프레임 이후에 전송된 모든 데이터 프레임을 재전송하는 방식
Selective Repeat ARQ 방식 에러가 발생한 데이터 프레임만 재전송

원거리 통신망 - 전송 매체 접속 제어 방법

MAC(Media Access Control) : 전송 매체 접속 제어

구분 설명
CSMA/CD(Carrier Sense Multiple Access with Collision Detection; 반송파 감지 다중 접속/ 충돌 탐지) 사용중인지 체크하여 사용하지 않을 때 전송하는 방식
CSMA/CA(Carrier Sense Multiple Access with Collision Avoidance; 반송파 감지 다중 접속/ 충돌 회피) 매체가 비어있음을 확인한 후에 임의 시간을 기다린 후 데이터를 전송



프로토콜

서로 다른 시스템이나 기기들 간의 데이터 교환을 원활히 하기 위한 표준화된 통신규약

프로토콜 - 3요소

기본 3요소 설명
구문(Syntax) 데이터 형식, 코딩, 신호 레벨 등의 규정
의미(Semantic) 조정과 에러 처리를 위한 규정
타이밍(Timing) 속도 조절과 순서 관리 규정



프로토콜 - 특징

특징 설명
단편화 전송이 가능한 작은 블록으로 나누어지는 기법
재조립 단편화되어 온 조각들을 원래 데이터로 복원하는 기법
캡슐화 상위 계층의 데이터에 각종 정보를 추가하여 하위 계층으로 보내는 기법



프로토콜 - 네트워크 계층

프로토콜 설명
IP(Internet Protocol) 송수신 간의 패킷단위로 데이터 교환
RARP(Reverse Address Resolution Protocol) 물리 네트워크 주소(MAC)은 알지만 IP 주소를 모르는 경우 서버로부터 IP 주소를 요청하기 위해 사용
ICMP(Internet Control Message Protocol) IP 동작 과정에서의 전송 오류가 발생하는 경우에 오류 정보를 전송하는 목적으로 사용하는 프로토콜
IGMP(Internet Group Management Protocol) 호스트 컴퓨터와 인접 라우터가 멀티캐스트 그룹 멤버십을 구성하는데 사용하는 프로토콜
라우팅 프로토콜(Routing Protocol) 최적의 경로를 설정해주는 라우터 간의 상호 통신 프로토콜


서브네팅(Subnetting) : 원본 네트워크를 여러 개의 네트워크로 분리하는 과정

  • 네트워크 IP 주소 : 호스트 ID 2진수 기준 모두 0으로 채워진 상태
  • 브로드캐스트 IP 주소 : 호스트 ID 2진수 기준 모두 1로 채워진 상태
    프로토콜 설명
    FLSM(Fixed-Length Subnet Masking) 서브넷의 길이를 고정적으로 사용
    VLSM(Variable Length Subnet Masking) 서브넷의 길이를 가변적으로 사용


IPv6 특징
IP 주소의 확장, 이동성, 인증 및 보안 기능

IP 통신 방식

종류 설명
멀티캐스트 프로토콜(Multicast Protocol) 인터넷에서 같은 내용의 데이터를 여러 명의 특정한 그룹의 수신자들에게 동시에 전송
유니캐스트 프로토콜(Unicast Protocol) 고유 주소로 식별된 하나의 네트워크 목적지에 1:1 트래픽 또는 메시지 전송
브로드캐스트 프로토콜(Broadcasting Protocol) 하나의 송신자가 같은 서브 네트워크상의 모든 수신자에게 데이터를 전송
애니캐스트 프로토콜(Anycast Protocol) 그룹 내의 가장 가까운 곳에 있는 수신자에게 데이터를 전달


3계층 라우팅 프로토콜

여러 경로 중 최적의 경로를 설정해주는 라우터 간의 상호 통신 규약

내부 라우팅 프로토콜(IGP: Interior Gateway Protocol) 동일한 AS(하나의 도메인)내의 라우팅에 사용되는 프로토콜 RIP(Routing Information Protocol) : 거리 벡터 알고리즘 기초, 벨만-포드 알고리즘 사용, 15홉 제한
OSPF(Open Shortest Path First) : 규모가 크고 복잡한 TCP/IP 네트워크에서 RIP 단점 개선하기 위해 링크 상태(Link-State) 알고리즘 적용해 최단 경로 찾음, 다익스트라 알고리즘 사용
외부 라우팅 프로토콜(EGP: Exterior Gateway Protocol) 서로 다른 AS 간 라우팅 프로토콜 BGP(Border Gateway Protocol)

라우팅 알고리즘

유형 설명
거리 벡터 알고리즘(Distance Vector Algorithm) 인접 라우터와 정보를 공유하여 목적지까지의 거리와 방향을 결정
링크 상태 알고리즘(Link State Algorithm) 링크 상태정보를 모든 라우터에 전달하여 최단경로 트리를 구성
다익스트라 알고리즘 사용



프로토콜 - 전송 계층

TCP(Transmission Control Protocol) 신뢰성 보장, 흐름 제어, 혼잡 제어
UDP(User Datagram Protocol) 비신뢰성(메시지가 제대로 도착했는지 확인 X), 비연결성, 단순 헤더

프로토콜 - 응용 계층

HTTP(HyperText Transfer Protocol) 텍스트 기반의 통신규약
SMTP(Simple Mail Transfer Protocol) TCP port : 25
이메일을 보내기 위해 이용
IMAP(Internet Messaging Access Protocol) TCP/IP 연결을 통해 이메일을 가져옴
Telnet port : 23
인터넷이나 로컬 영역에서 네트워크 연결에 사용
SSH(Secure Shell) port : 22
Talnet보다 강력한 보안을 제공하는 원격접속 프로토콜




X.25 : 통신을 원하는 두 단말장치가 패킷 교환망을 통해 패킷을 원활히 전달하기 위한 통신 프로토콜
ATM(Asynchronous Transfer Mode) : 비동기 전송모드


패킷 교환 방식

데이터그램(Datagram) 방식 순서에 무관하게 독립적으로 전송
헤더를 붙여서 개별적으로 전달하는 비연결형 교환 방식
가상 회선(Virtual Circuit) 방식 논리적인 통신 경로를 미리 설정
목적지 호스트와 미리 연결 후 통신




애드 혹 네트워크(Ad-hoc Network) : 노드(Node)들에 의해 자율적으로 구성되는 기반 구조가 없는 네트워크

  • 응용 분야로는 긴급 구조, 긴급 회의, 전쟁터에서의 군사 네트워크에 활용

네트워크 구조 : 버스형, 트리형, 링형, 성형

신기술 용어 - 네트워크

SDN(Software Defined Network) 네트워크를 제어부, 전달부로 분리
Zing 기기를 키오스크에 갖다 대면 원하는 데이터 바로 가져올 수 있는 기술
Mesh Network 다른 국(station)을 향하는 호출이 중계에 의하지 않고 직접 접속되는 그물 모양의 네트워크
MQTT(Message Queuing Telemetry Transport) 브로커를 사용한 프로토콜


신기술 용어 - 소프트웨어

가상 현실(VR: Virtual Reality) 실제와 유사하지만 실제가 아닌 어떤 특정한 환경이나 상황 또는 구현하는 기술
증강 현실(AR: Augmented Reality) 가상 현실의 한 분야
실재 존재하는 환경에 가상의 사물이나 정보 합성
그레이웨어(Grayware) 바이러스나 명백한 악성 코드를 포함하지 않는 합법적 프로그래밍이지만 사용자를 귀찮게 하거나 미래적으로 봤을 때 불이익을 초래할 수 있는 프로그램


신기술 용어 - 인프라

도커(Docker) 컨테이너 안에 응용 프로그램들을 배치시키는 일을 자동화해주는 오픈 소스 프로젝트이자 소프트웨어
쿠버네티스(Kubernetes) 컨테이너화 된 애플리케이션의 자동 배포, 스케일링 등을 제공하는 오픈 소스 기반의 관리 시스템


신기술 용어 - DB

하둡(Hadoop) 분산 컴퓨팅 플랫폼
데이터 세트 병렬 처리 가능한 자바 소프트웨어 프레임워크
HDFS(Hadoop Distributed File System) 저장된 데이터를 빠르게 처리할 수 있게 하는 하둡 파일 시스템
맵 리듀스(Map Reduce) 구글에서 대용량 데이터 분산 병렬 컴퓨팅 처리 위해 제작
아파치 하둡(Apache Hadoop)으로 대표되는 소프트웨어 프레임워크
다크 데이터(Dark Data) 수집된 후 저장은 되어 있지만 분석에 활용되진 않는 다량의 데이터
데이터 마이닝(Data Mining) 데이터 속에 있는 변수 사이의 상호관계를 규명하여 일정한 패턴을 찾아내는 기법


스토리지 시스템

DAS(Direct Attached Storage) 데이터 저장 장치 호스트 버스 어댑터에 직접 연결
NAS(Network Attached Storage) 서버와 저장 장치를 네트워크로 연결
SAN(Storage Area Network) 서버와 스토리즈를 저장 장치 전용 네트워크로 상호 구성

DAS + NAS


RAID

Redundant Array of Independent Disks : 복수 배열 독립 디스크

레벨 설명
RAID 0 패리티(오류 검출 기능)가 없는 스트라이핑된 세트로 구성
RAID 1 패리티(오류 검출 기능)가 없는 미러링된 세트로 구성
RAID 2 오류정정부호(ECC)를 기록하는 전용의 하드디스크 이용, 안전성 확보
RAID 3 바이트 단위의 스프라이핑된 세트로 구성, 패리티 정보는 별도의 전용 디스크에 저장
RAID 4 블록 단위의 스프라이핑된 세트로 구성, 패리티 정보는 별도의 전용 디스크에 저장
RAID 5 패리티가 배분되는(Distributed) 스프라이핑된 세트로 구성된 방식, 적어도 3개의 디스크 필요
RAID 6 패리티가 배분되는(Distributed) 스프라이핑된 세트로 구성된 방식, 적어도 4개의 디스크 필요


0개의 댓글