조인
(theta join)세타조인(R▷◁(r 조건 s)S):
- 조인에 참여하는 두 릴레이션의 속성 값을 비교하여 조건을 만족하는 투플만 반환한다.
- 세타조인의 조건은{=,≠,≥,≤,>,<} 중 하나가 된다.
(inner join)내부조인(동등조인)(R▷◁(r=s)S):
- 동등조인의 결과 릴레이션의 차수는 첫 번째 릴레이션과 두 번째 릴레이션의 차수를 합한 것.
(natural join)자연조인(R▷◁N(r,s)S):
- 동등조인에서 조인에 참여한 속성이 두 번 나오지 않도록 **중복된 속성(두 번째 속성)**을 제거한 결과를 반환
- 차수는 '두 릴레이션의 차수의 합-중복된 속성 수'
(outer join)외부조인:
!https://blog.kakaocdn.net/dn/bn2faw/btqOvSFHlHt/0Jo6e39KBcVjscvQ1QA8V1/img.jpg
- 왼쪽 외부조인(left outer join):
왼쪽 투플 기준으로 자연조인 시 실패한 투플을 모두 보여주되 값이 없는 대응 속성에는 NULL 값을 채워서 반환한다.
- 오른쪽 외부조인(right outer join):
오른쪽 투플 기준으로 자연조인 시 실패한 투플을 모두 보여주되 값이 없는 대응 속성에는 NULL 값을 채워서 반환한다.
- 완전 외부조인(full outer join):
양쪽 투플 기준으로 자연조인 시 실패한 투플을 모두 보여주되 값이 없는 대응 속성에는 NULL 값을 채워서 반환한다.
(semi join)세미조인:
- 자연조인을 한 후 두 릴레이션 중 한쪽 릴레이션의 결과만 반환
- 세미조인은 기호에서 닫힌 쪽 릴레이션의 투플만 반환한다.
데이터 베이스 정규형
도부이결다조
1정규형: 도메인이 원자값
2정규형: 부분적 함수 종속 제거
3정규형: 이행적 함수 종속
BCNF: 결정자이면서 후보키가 아닌 것 제거
4정규형: 다치 종속 제거
5정규형: 조인 종속성 이용
C언어 시프트 연산자
- v << n은 v * (2^n)과 같습니다.
- v >> n은 v / (2^n)과 같습니다.
데이터모델(연구제)
연산 : 실제 데이터에 대한 처리하는 작업
구조 : 개체 타입과 관계, 데이터 구조
제약조건 : 데이터 무결성 유지를 위한 데이터베이스의 보편적인 작업,저장 데이터 조건
완전수 :
6,28,496,8128
관계 대수 항목
-일반 집합 연산자 : 합교차카(∪∩ - X)
합집합 A ( U ) B
교집합 | A ( ∩ ) B |
차집합 | A ( - ) B |
카티션 프로덕트 | A ( X ) B |
-순수 관계 연산자 : 셀프조디(σ π ⋈ ÷)
- 셀렉트 (σ)
- 프로젝트(π)
- 조인(⋈)
- 디비전(÷)
CPU Scheduling
CPU를 사용하려고 하는 프로세스들 사이의 우선순위를 관리하는 작업 -자원을 어떤 프로세스에 얼마나 할당하는지 정책을 만드는 것
프로세스들에게 자원을 최대한 공평하게 배분하며 처리율과 CPU 이용률을 증가시키고, 오버헤드, 응답시간(Response time / Turnaround time), 대기시간을 최소화하기 위한 기법
선점형 스케줄링(Preemptive Scheduling) 과비선점형 스케줄링(Non-preemptive / Cooperative Scheduling) 이 있음
선점형 스케줄링
- SRT/MLQ/MLFQ/Round Robin
- [SMMR]
하나의 프로세스가 CPU를 차지하고 있을 때,우선순위가 높은 다른 프로세스가 현재 프로세스를 중단시키고 CPU를 점유하는 스케줄링 방식
비선점형 스케줄링
- 우선순위/기한부/HRN/FCFS/SJF
- [우기 HFS]
한 프로세스가 CPU를 할당받으면 작업 종료 후CPU 반환 시까지 다른 프로세스는 PCU 점유가 불가능한 스케줄링 방식
프로토콜
= 어부 아저씨 가야할 때가 언제인지(타이밍)를 분명히 알고(의미) 가는 이(구문)의 뒷모습은 얼마나 아름다운가
RIP
:최소한의 합정(Hop) 카페(Count)만 Distance Vector로 찾다가 15보 앞두고 잠들다 RIP
- redo 재실행이니까 re
- undo 내용을 취소하니까 un
union 중복 X
union all 중복 O
NAT
(Network Address Translation):[NAT가의 IP새를 재기록하여 라우터로 트래픽 교환!] 냇가의 잎새를 어쩌구
IP 패킷에서 외부의 공인 IP주소와 포트 주소에 해당하는 내부 IP주소를 재기록하여 라우터를 통해 네트워크 트래픽을 주고받는 기술
ATM
(Asynchronous Transfer Mode) 비동기 전송 방식 :
-자료를 일정한 크기로 정하여 순서대로 전송하는 자료의 전송 방식이다.
- 셀이라 부르는 고정 길이 패킷을 이용하여 처리가 단순하고 고속망에 적합하며, 연속적으로 셀을 보낼 때 다중화를 하지 않고 셀단위로 동기가 이루어지지만 경우에 따라 동기식 시간 분할 다중화를 사용하기도 한다.
- 가상 채널 (Virtual Channel) 기반의 연결 지향 서비스로 셀이라 부르는 고정 길이(53바이트) 패킷을 사용하며 통계적 다중화 방식을 이용한다.
UML
:시스템의 디자인을 시각화하는 언어이자 모델
1. 구조적 다이어그램 (Structure Diagrams)
1) 클래스 다이어그램, Class Diagram
클래스 다이어그램은 아래와 같이 세 가지 블럭으로 나뉘는 구조입니다.
2) 객체 다이어그램, Object Diagram
클래스에 속한 사물(객체), 즉 인스턴스를 특정 시점의 객체와 객체 사이의 관계로 표현합니다.
3) 컴포넌트 다이어그램, Component Diagram
컴포넌트들이 더 큰 구조를 만들기 위해 어떻게 연결되는지. 복잡한 시스템 구조를 설명하기 위해 사용합니다.
4) 배치 다이어그램, Deployment Diagram
컴포넌트 사이의 종속성을 표현하며 결과물, 프로세스, 컴포넌트 등 물리적 요소들의 위치를 표현합니다.
5) 복합체 구조 다이어그램, Composite Structure Diagram
클래스나 컴포넌트가 복합 구조를 갖는 경우 그 내부 구조를 표현합니다.
6) 패키지 다이어그램, Package Diagram
유스케이스나 클래스 등의 모델 요소들을 그룹화한 패키지들의 관계를 표현합니다.
2. 행위적 다이어그램 (Behavioral Diagrams)
1) 유스케이스 다이어그램, Use Case Diagram
시스템의 기능적 요구 정의에 활용하며 사용자 관점에서 시스템의 활동을 표현합니다.
2) 시퀀스 다이어그램, Sequence Diagram
객체 간 상호 작용을 메시지 흐름으로 표현하여 시간을 표현할 수 있습니다.
3) 커뮤니케이션 다이어그램, Communication Diagram
시퀀스 다이어그램과 같이 동작에 참여하는 객체들이주고받는 메시지를 표현하는 데 메시지뿐만 아니라 객체 간의 연관까지 표현할 수 있습니다.
4) 상태 다이어그램, State Diagram
하나의 객체가 자신이 속한 클래스의 상태 변화 혹은 다른 객체와의 상호 작용에 따라 상태가 어떻게 변화하는지 표현하며, 모든 가능한 상태와 전이를 표현할 수 있습니다. (진입 조건, 탈출 조건, 상태 전이 등)
5) 활동 다이어그램, Activity Diagram
시스템이 어떤 기능을 수행하는지를 객체의 처리 로직이나 조건에 따른 처리의 흐름으로 순서대로 표현
활동의 순서대로 흐름을 표현
6) 타이밍 다이어그램, Timing Diagram
객체 상태 변화와 시간 제약을 명시적으로 표현합니다.
서버 접근 통제 유형
접근 통제 모델의 종류 (막 다 알박해)
- MAC(Mandatory; 강제적) : 변경 불가 - 규칙 기반 접근 통제
- MLP(Multi Level) : 1급 기밀
- DAC(Discretionary; 임의적) : 변경 가능 - 신분 기반 접근 통제
- IBP (Individual Based) : 특정 개인을 허용
- GBP (Group Based) : 특정 그룹을 허용
- RBAC(Role Based) : 역할에 부여
블랙박스 테스트 기법(영어로도 알아야됨) :
경동원비(빈)이 검은 상자(블랙박스 테스트) 안에 있다(원빈이 잘생겨서 숨기려는 경동 나비엔) 동경결상 유분페원비
(동등 분할, 경계값 분석, 결정 테이블, 상태 전이, 유스케이스, 분류 트리, 페어와이즈, 원인-결과 그래프, 비교)
SIEM(머SIEM러닝 보안,시애미):
정보 보호 관리 체계ISMS(Information Security Management System) : 정부는 마이크로소프트이다.(IS MS)
머신러닝 기술을 이용하여 IT 시스템에서 발생하는 대량의 로그를 통합관리 및 분석하여 사전에 위협에 대응하는 보안 솔루션
형상관리 : 소프트웨어 개발 프로세스 각 단계에서 소프트웨어의 변경점을 체계적으로 관리하는 일련의 활동
-CVS(Concurrent Versions System, 동치 분할 시스템)
- 개발과정에서 사용하는 파일들의 변경 명세를 관리하기 위한 시스템
-SVN(Subversion)
- CVS의 단점을 보완하여 만들어진 형상관리도구
-Git
- 소스코드를 여러 개발 PC와 저장소에 분산하여 자장할 수 있음
OLTP(Online Transaction Processing)< - > OLAP
- 네트워크 상의 여러 이용자가 실시간으로 데이터베이스의 데이터를 갱신하거나 조회하는 등의 단위작업을 처리하는 방식을 말한다
OLAP(Online Analytical Processing, 온라인 분석 처리)
- 대용량 데이터를 다차원 분석하기 위한 프로그램
DDOS(Distributed Denial of Service, 분산 서비스 거부)
- 처리할 수 있는 용량을 초과하는 통신 요청과 데이터를 표적 장치의 IP 주소로 보내어 온라인 서비스 중단을 시도하는 사이버 공격의 한 형태
Cyber Kill Chain
- 공격자의 입장에서 사이버 공격 활동을 파악, 분석해 공격 단계 별로 조직에게 가해지는 위협 요소를 제거하거나 완화하자는 것
XML과 JAVAScript 는 AJAX
XML과 언어는 WSDL
XML과 저장소는 UDDI
XML과 프로토콜은 SOAP
SOAP (Simple Object Access Protocol) : HTTP 등의 프로토콜을 이용하여 XML 기반의 메시지를 교환하는 프로토콜로, Envelope-Header-Body 주요 3요소로 구성된다. 유사한 기능을 하는 RESTful로 대체될 수 있다.
L2TP:
Layer 2 Tunneling Protocol 2계층 터널링기술 프로토콜
원격제어
SSH : 22, 암호화하여 telnet : 23, 평문으로
ICMP(인터넷 제어 메세지 프로토콜): TCP/IP에서 IP 패킷을 처리할 때 발생되는 문제를 알려주는 프로토콜 프로토콜은 보통 다른 호스트나 게이트웨이 와 연결된 네트웍에 문제가 있는지 확인하기 위한 목적으로 주로 사용
Internet
Control
Message
Protocol
오류메세지 전송
객체를 생성하면 생성패턴 객체와 클래스를 조합하면 구조패턴:
proxy = ‘대리’ 라고도 부른다.
객체와 클래스의 상호작용은 행위패턴
- 릴레이션 : 테이블, 컬렉션(NoSQL)
- 튜플 : 레코드, 도큐먼트(NoSQL) - 행 (개수 : Cardinality; 기수)
- 속성 : 필드 - 열 (개수 : Degree; 차수)
열 = 세로 = 차수 = 속성 = 애드리뷰트
행 = 가로 = 기수 = 튜플 = 카디널리티
리눅스 사용자/그룹/이 외
chmod [권한] [파일경로]
읽기: r, 4에 해당
쓰기: w, 2에 해당
실행: x, 1에 해당
- 읽기, 쓰기,실행 허용: 4 + 2 + 1 = 7
- 읽기, 실행 허용: 4 + 1 = 5
- 실행만 허용: 1
AAA
- 인증(Authentication)
- 인가 및 권한부여(Authorization)
- 회계 및 계정관리(Accounting)
OSI 7 Layer :응표쉑~전내~대물~(응표세전네데물)
- 물리 - 기계적, 전기적 특성. X.21, 리피터, 허브
- 데이터 링크 - 흐름 제어, 오류 검출과 회복, HDLC, MAC, 랜카드, 브리지, 스위치
- 네트워크 - 경로 설정(Routing), 트래픽 제어, 패킷, X.25, IP, 라우터
- 전송 - 다중화, 오류 제어, 흐름 제어, TCP, UDP, 게이트웨이
- 세션 - 송수신 측 간의 관련성을 유지, 대화 제어
- 표현 - 데이터 암호화, 데이터 압축, 형식 변환
- 응용 - 파일 전송, 전자 사서함(메일), 정보 교환, 가상 터미널
★ 데이터 링크는 노드 사이의 흐름과 오류 제어.
★ 전송은 단말기 사이의 흐름과 오류 제어.
OSI 7계층(Open System Intersection) - APSTNDP
아(A)파(P)서(S)티(T)내(Ne)다(Da)피(Phy)(난다)
- Physical Layer(물리 계층) - 통신 케이블, 허브, 리피터, 전송단위 : Bit
(문제 내용) 전송에 필요한 두 장치 간의 실제 접속과 절단 등 기계적, 전기적, 기능적, 절차적 특성에 대한 규칙을 정의한다. 단위(PDU)는 '비트'를 사용한다.
- Data Link Layer(데이터 링크 계층) - 전송 데이터에 대한 CRC 오류/흐름 제어 필요. - MAC주소, 스위치, 브리지, 전송 단위 : Frame
- Network Layer(네트워크 계층) : IP 주소를 제공하는 계층. 노드를 거칠때마다 라우팅 해주는 역할 담당. 노드간 데이터를 가장 빠르게 전송하는 역할, 라우터, L3 스위치, IP공유기 , 전송단위 : Packet
4.Transport Layer(전송 계층) : 단말기 간의 일관된+투명한 데이터 전송 제공
오류 검출과 복구,흐름 제어. 전송 단위 : Segment. - TCP,UDP
- Session Layer(세션 계층) : 양끝단의 응용 프로세스가 통신을 관리하기 위한 방법을 제공하는 계층. 통신하는 사용자들을 동기화하고 오류복구 명령들을 일괄적으로 다룬다. 동시 송수신 방식(Duplex), 반이중 방식(Half-Duplex), 전이중 방식(Full-Duplex)의 통신과 함께 체크포인팅과 유휴 종료 다시 시작 과정을 수행. TCP/IP 세션을 만들고 없애는 역할을 담당함
6.Presentation Layer(표현 계층) : 데이터 표현에 존재하는 차이점을 극복, 형식이 다름으로 인한 부담을 응용 계층으로 부터 덜어줌. 코드 문자등을 번역해 일관되게 전송하며 압축 해제 보안 기능 담당.
7.Aplication Layer(응용 계층) : 사용자가 OSI 환경에 접근할 수 있도록 함. 사용자와 네트워크 간 응용 서비스를 연결. 사용자 데이터 생성. HTTP,FTP
관계 데이터 모델
버스를 대.절 하면 해.비 하지
관계대수 : 절차적언어, 원하는 것 + 얻는 방법
관계해석 : 비절차적언어, 원하는 것만, 수학적
대칭키 DES AES SEED ARIA IDEA SKIPJACK(?)
비대칭키 DSA RSA ECC
-대칭키 알고리즘
IDEA (대칭 키 알고리즘) :
매시(Xuejia Lai와 James Messey ) = 축구 = (ID)EA sport SKIPJACK:
미국의 NSA에서 개발한 Clipper 칩에 내장되는 블록 알고리즘이다. 전화기와 같은 음성을 암호화 하는데 주로 사용되며 64비트 입출력에 80비트의 키 총 32라운드를 가진다.
가상사설망(VPN)은 가면을 쓰는 것과 같다.
가면을 써서 익명으로 데이터를 보냄
-데이터베이스 트랜잭션의 4가지 속성
독일지원
독립성(고립성) - 독립적(트랜잭션 실행 도중의 연산 결과는 다른 트랜잭션에서 접근할 수 없다.)
일관성 - 일관적(트랜잭션이 성공적으로 실행되면 데이터베이스 상태는 모순되지 않고 일관된 상태가 된다.)
지속성 - 결과가 영구적(트랜잭션이 성공했을 경우 영구적으로 반영되어야 한다)
원자성 - 전부 or 전혀(트랜잭션은 연산들을 전부 실행하든지 전혀 실행하지 않아야 한다. 일부만 실행해서는 안 된다.)
- SYN 플러딩(Flooding) : 서버의 동시 가용 사용자 수를 SYN 패킷만 보내 점유하여 다른 사용자가 서버를 사용하지 못하게 하는 공격
- UDP 플러딩(Flooding) : 대량의 UDP패킷을 만들어 임의의 포트 번호로 전송하여 지속적으로 자원을 고갈시키는 공격
- 스머프(Smurf)/스머핑(Smurfing) : 출발지 주소를 공격 대상의 IP로 설정하여 네트워크 전체에게 ICMP Echo 패킷을 직접 브로드캐스팅하여 마비시킴
- 죽음의 핑(PoD; Ping of Death) : ICMP 패킷(Ping)을 정상적인 크기보다 아주 크게 만들어서 전송
- 랜드어택(Rand Attack) : 출발지 IP와 목적지 IP를 같은 패킷 주소로 만들어 보내서 수신자가 자기 자신에게 응답을 보내게 함
- 티어드롭(Tear Drop) : IP 패킷의 재조합 과정에서 잘못된 Fragment Offset 정보로 인해 수신 시스템이 문제를 발생하도록 만드는 공격
- 봉크(Bonk)/보잉크(Boink) : 시스템의 패킷 재전송과 재조립이 과부하를 유발하게 하는 공격기법
처리량 일정 시간 내에 애플리케이션이 처리하는 일의 양
응답시간 | 애플리케이션에 요청을 전달한 시간부터 응답이 도착할 때까지 걸린 시간 |
경과시간(반환시간) | 애플리케이션에 작업을 의뢰한 시간부터 처리가 완료될 때까지 걸린 시간 |
자원 사용률 | 애플리케이션이 의뢰한 작업을 처리하는 동안의 CPU 사용량, 메모리 사용량, 네트워크 사용량 등 |
복구 목표 시점(RPO)
"업무 중단 시 각 업무에 필요한 데이터를 여러 백업 수단을 이용하여 복구할 수 있는 기준점"을 의미
목표 복구 시간(RTO; Recovery Time Objective) :
“비상사태 또는 업무중단 시점으로부터 업무가 복구되어 다시 정상가동 될 때까지의 시간” 을 의미
IPSec ( IP + 보안) :
네트워크 계층(network layer, 3계층)인 인터넷 프로토콜(IP)에서 '암호화', '인증', '키 관리'를 통해 보안성을 제공해 주는 표준화된 기술
옵저버(Observer) 패턴:
변경이 생기면 자동으로 연락이 가고, 자동으로 내용이 갱신되는 패턴 (대충 스타 옵저버처럼 지쳐보고 있는느낌?)
한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체들한테 연락이 가고 자동으로 내용이 갱신되는 방식으로 일 대 다(one-to-many) 의존성을 가지는 디자인 패턴.
서로 상호작용을 하는 객체 사이에서는 가능하면 느슨하게 결합(Loose coupling)하는 디자인을 사용해야 한다.
안드로이드( Android) :
리눅스 커널을 기반으로 동작하며 자바의 코틀린 언어로 개발된, 모바일 기기에 주로 사용되는 오픈소스 플랫폼인 운영체제
사용자 인터페이스 설계 원칙
직관성: 누구나 쉽게 이해하고 사용할 수 있어야 한다.
(유효성): 사용자의 목적을 정확하게 달성하여야 한다.
학습성: 누구나 쉽게 배우고 익힐 수 있어야 한다.
유연성: 사용자의 요구사항을 최대한 수용하며, 오류를 최소화하여야 한다.
Linked Open Data (공공데이터를 연결하라)
ㅇ 전세계 오픈된 정보를 하나로 묶는 방식
ㅇ Linked data와 Open data의 합성어
ㅇ URI(Uniform Resource Identifier)를 사용
ㅇ RESTful 방식으로 볼 수 있으며, 링크 기능이 강조된 시멘틱 웹에 속하는 기술
-데이터베이스 설계과정
요구사항분석 > 개념적분석 > 논리적분석 > 물리적분석 > 구현
[???: 요개 ~ 눈물구 녕이다~]
-형상 관리 소프트웨어 개발 과정에서 산출물 등의 변경에 대비하기 위해 반드시 필요하다. 소프트웨어 리사이클 기간 동안 개발되는 제품의 무결성을 유지하고 소프트웨어의 식별, 편성 및 수정을 통제하는 프로세스를 제공한다. 실수를 최소화하고 생산성의 최대화가 궁극적인 목적이다. 관련 도구로는 CVS, SVN, Clear Case 등이 있다. (git도 있어여되는거같은데 옛날문제라 안쓴듯..?)
-2024 1회차 문제
답안 : ㄱㄴㄹㄷ
- 응집도 강→약, ㉠ 기능 ㉡ 교환 ㉢ 우연 ㉣ 시간
- 출제 : [소프트웨어 설계01 – 1.모듈(응집도, 결합도)]
소프트웨어 모듈화
모듈의 기능적 독립성은 소프트웨어를 구성하는 각 모듈의 기능이 서로 독립됨을 의미하는 것으로, 모듈이 하나의 기능만을 수행하고 다른 모듈과의 과도한 상호작용을 배제함으로써 이루어진다. 모듈의 독립성을 높이기 위해서는 ( 가 )는 약하게, ( 나 )는 강하게 만들어야 한다.
(가) 결합도(낮을수록 좋음)
(나) 응집도(높을수록 좋음)
모듈의 크기가 작을수록 독립성이 높아집니다
응집도는 모듈 내부 사이의 관계
결합도는 모듈 외부 즉, 다른 모듈과의 관계
2. 결합도
결합도 강한순서 :내 (축구)공 외제쓰자
결합도는 모듈 간에 상호 의존하는 정도, 다시 말해 서로 다른 모듈 사이의 연관 관계를 의미합니다. 위에서도 언급했듯이, 독립적인 모듈이 되기 위해서는 결합도가 약해야 합니다.
결합도의 종류는 다음과 같으며, 1번이 가장 결합도가 약하고, 내려갈수록 결합도가 강합니다.
- 자료 결합도: 단순히 데이터만 매개 변수 또는 인수로 전달하고 호출하는 방식입니다. 모듈 간에 서로의 내용을 전혀 알 필요가 없는 상태이기 때문에, 가장 바람직한 결합도입니다.
- 스탬프 결합도: 배열이나 리스트와 같은 자료구조를 매개 변수로 전달하는 경우의 결합도입니다.
- 제어 결합도: 한 모듈이 다른 모듈의 논리적인 흐름을 제어하기 위해 제어 신호나 플래그(flag)를 전달하는 경우입니다.
- 외부 결합도: 한 모듈에서 선언한 데이터를 외부의 다른 모듈이 사용할 때의 결합도입니다.
- 공통 결합도: 전역 변수와 같은 공유되는 공통 데이터 영역을 여러 모듈이 사용할 때의 결합도입니다. 당연히 공통 데이터 영역의 내용을 조금만 변경하더라도 이를 사용하는 모든 모듈들이 영향을 받기 때문에 결합도가 높습니다.
- 내용 결합도: 한 모듈이 다른 모듈의 내부 기능 및 자료를 직접 참조하는 경우입니다.
3. 응집도
응집도란 하나의 모듈의 내부 요소들이 서로 연관되어 있는 정도, 다시 말해 모듈이 독립적인 하나의 기능을 수행하는 정도를 뜻합니다. 응집도는 결합도와 반대로 높을수록 독립적인 모듈로 간주됩니다.
응집도의 종류는 다음과 같으며, 1번이 가장 응집도가 강하고, 내려갈수록 응집도가 약합니다.
- 기능적 응집도: 모듈 내의 모든 요소들이 단일 기능을 수행하는 경우입니다.
- 순차적 응집도: 모듈 내의 한 요소의 출력 자료가 다음 요소의 입력 자료로 사용되는 경우입니다.
- 교환적 응집도: 모듈 내의 요소들이 동일한 입출력 자료로 서로 다른 기능을 수행하는 경우입니다.
- 절차적 응집도: 모듈이 여러 개의 관련 기능을 가질 때, 이 요소들이 반드시 순차적으로 기능을 수행하는 경우입니다.
- 시간적 응집도: 특정 시간에 처리되는 몇 개의 기능을 모아 하나의 모듈로 작성된 경우입니다.
- 논리적 응집도: 논리적으로 유사한 기능을 수행하긴 하지만, 서로 간의 관계는 밀접하지 않는 경우입니다.
- 우연적 응집도: 모듈 내부의 구성 요소들이 크게 관련이 없는 요소들로 구성된 경우입니다.
응집도가 약한 순서 (우논시절교순기)
(1) 우연적 응집도(Coincidental Cohesion) 서로 관련 없는 요소로만 구성된 경우
(2) 논리적 응집도(Logical Cohesion) 논리적으로 유사한 기능을 수행하지만 서로의 관계는 밀접하지 않은 경우
(3) 시간적 응집도(Temporal Cohesion) 특정 시간에 처리되는 기능들을 모아 모듈이 작성된 경우
(4) 절차적 응집도(Procedural Cohesion) 모듈이 다수의 관련 기능을 가질 때 모듈 내의 구성 요소들이 기능을 순차적으로 수행할 경우
(5) 교환적 응집도(Communication Cohesion) 모듈 내의 요소들이 동일한 입출력을 사용하여, 서로 다른 기능을 수행하는 경우
(6) 순차적 응집도(Sequential Cohesion) 모듈 내의 한 요소의 출력 자료가 다음 요소이 입력 자료로 사용할 경우
(7) 기능적 응집도(Functional Cohesion) 모듈 내의 모든 요소들이 단일 기능을 수행될 경우
데이터 링크 계층(2계층) 링크의 설정과 유지 및 종료를 담당하며 노드 간의 회선 제어, 흐름 제어, 오류 제어 기능을 수행하는 계층
※ 데이터 링크 계층 프로토콜
프로토콜 설명
HDLC | |
(High-level Data Link Control) | 점대점 방식이나 다중방식 통신에 사용 |
PPP | |
(Point-to-Point Protocol) | 두 통신 노드 간의 직접적인 연결 |
프레임 릴레이 | |
(Frame Relay) | 프레임 간 중계기능, 다중화 기능을 통해 빠른 데이터 전송이 가능한 고속 전송 기술 |
ATM | |
(Asynchronous Transfer Mode) | 고정 크기 단위로 전송하는 비동기식 전송 기술 |
네트워크 계층(3계층) 다양한 길이의 패킷을 네트워크들을 통해 전달하고, 그 과정에서 전송 계층이 요구하는 서비스 품질(QoS)을 위한 수단 제공
※ 네트워크 계층 계층 프로토콜
프로토콜 설명
IP | |
(Internet Protocol) | 송수신 간의 패킷 단위, 정보를 주고받는 데 사용하는 통신 프로토콜 |
ARP | |
(Address Resolution Protocol) | IP네트워크 상에서 MAC 주소를 알기 위해서 사용, IP 주소를 MAC 주소로 변환 |
RARP | |
(Reverse Address Resolution Protocol) | MAC 주소는 알지만 IP주소를 모르는 경우 서버로부터 IP주소를 요청하기 위해 사용 |
ICMP | |
(Internet Control Message Protocol) | 수신지 도달 불가 메시지를 통지하는 데 사용 |
IGMP | |
(Internet Group Message Protocol) | 화상회의, IPTV에서 활용되는 프로토콜 |
라우팅 프로토콜 | |
(Routing Protocol) | 데이터 전송을 위해 목적지까지 갓 수 있는 여러 경로 중 최적의 경로를 설정해주는 상호 통신 규약 |
• 내부 라우팅 프로토콜(IGP): RIP, IGRP, OSPF, EIGRP | |
• 외부 라우팅 프로토콜(EGP): BGP | |
NAT | |
(Network Address Translation) | 사설 네트워크에 속한 IP를 공인 IP 주소로 바꿔주는 네트워크 주소 변환 기술 |
라우팅 프로토콜(3계층)
- 내부 라우팅 프로토콜(IGP)
- 동일한 AS 내의 라우팅에 사용되는 프로토콜
- RIP, IGRP, OSPF, EIGRP
- 외부 라우팅 프로토콜(EGP)
- 서로 다른 AS 간 라우팅 프로토콜로 게이트웨이 간의 라우팅에 사용되는 프로토콜
- BGP
① RIP(Routing Information Protocol)
- AS(Autonomous System; 자치 시스템; 자율 시스템) 내에서 사용하는 거리 벡터(Distance-Vector) 알고리즘에 기초하여 개발된 내부 라우팅 프로토콜
- 벨만-포드(Bellman-Ford) 알고리즘 사용, 15홉 제한, UDP 사용, 30초 마다 공유
② OSPF(Open Shortest Path First)
- RIP의 단점 개선하기 위해 자신을 기준으로 링크 상태(Link-State) 알고리즘을 적용하여 최단 경로를 찾는 라우팅 프로토콜
- 다익스트라(Dijkstra) 알고리즘 사용, 라우팅 메트릭 지정, AS 분할 사용, 홉 카운트 무제한, 멀티캐스팅 지원
③ BGP(Border Gateway Protocol)
- AS간 경로 정보 교환하기 위한 라우팅 프로토콜
- 경로 벡터(Path Vector) 알고리즘 사용
- ISP 사업자간 주로 사용
- 라우팅 비용이 많이 들고, 라우팅 테이블 크기가 커서 메모리 사용량 많음.
④ 라우팅 알고리즘
- 거리 벡터 알고리즘(Distance Vector Algorithm)
- 인접 라우터와 정보를 공유하여 목적지까지의 거리와 방향을 결정하는 알고리즘
- 벨만-포드(Bellman-Ford) 알고리즘 사용
- 링크 상태 알고리즘(Link State Algorithm)
- 링크 상태 정보를 모든 라우터에 전달하여 최단 경로 트리르 구성하는 알고리즘
- 다익스트라(Dijkstra) 알고리즘 사용
- 답안 : ① 세타 조인 ② 동등 조인 ③ 자연 조인
- 데이터베이스 조인(join) 종류
- 출제 : [SQL03 – 3.JOIN]
보안 공격 관련 용어주요 용어 설명부 채널 공격 (Side Channel Attack) 전력 소비와 같은 물리적 특성을 측정해 비밀 정보를 알아내는 공격 드라이브 바이 다운로드 (Drive By Download) 악성 스크립트를 웹 서버에 설치 후, 사용자를 의도된 서버(멀웨어 서버)로 연결해 감염시키는 공격 워터링 홀 (Watering Hole) 특정인이 자주 방문하는 웹사이트에 악성코드를 심어 공격 비즈니스 스캠(SCAM) 기업 이메일을 도용해 거래 대금을 가로채는 공격 하트 블리드 (Heart Bleed) 하트비트 확장 모듈 취약점을 이용해 데이터를 탈취하는 공격 크라임웨어 (Crimeware) 중요한 금융∙인증 정보를 탈취해 금전적 이익을 취하는 악성 코드 토르 네트워크 (Tor Network) 익명으로 인터넷을 사용할 수 있는 가상 네트워크 MIMT (Man in the Middle) 통신 연결 중간에 침입해 통신 내용을 도청하는 공격 DNS 스푸핑 (Spoofing) DNS 서버 캐시를 조작해 의도치 않은 주소로 접속하게 하는 공격 (=DNS 캐시 포이즈닝) 포트 스캐닝 (Port Scanning) 침입 전 어떤 포트가 활성화되어 있는지 확인하는 기법 디렉토리 리스팅 취약점 (Directory Listing) 웹 서버의 인덱싱 기능이 활성화된 경우, 서버 내 모든 디렉토리를 볼 수 있는 취약점 리버스 쉘 공격 (Reverse Shell) 타깃 서버(피해자)가 클라이언트로 접속하게 하고, 클라이언트에서 서버의 쉘을 획득하는 공격 익스플로잇 (Exploit) SW/HW의 버그나 취약점을 악용해 공격하는 행위 스턱스넷 공격 (Stuxnet) 독일 지멘스사의 SCADA 시스템을 목표로 제작된 악성코드 주요 산업 기반 시설의 제어 시스템에 침투하는 공격 크리덴셜 스터핑 (Credential Stuffing) 다른 곳에서 유출된 로그인 정보를 다른 곳에 무작위 대입하는 공격 스피어피싱 (Spear Phishing) 일반적인 메일로 위장한 메일을 발송해 개인정보를 탈취하는 공격 스미싱(Smishing) SMS+피싱 문자메시지를 통해 개인정보를 탈취하거나 소액결제를 유도하는 공격 큐싱(Qshing) QR코드+피싱. QR을 이용한 피싱 공격 봇넷(Botnet) 악성 프로그램에 감염된 컴퓨터들이 네트워크로 연결된 형태 APT 공격(Advanced Persistent Threat) 특정 대상을 목표로 한 지능적/지속적인 공격 공급망 공격 (Supply Chain Attack) SW 개발사의 코드를 수정하거나 배포 서버에 접근해 파일을 변경하는 공격 제로데이 공격 (Zero Day Attack) 보안 취약점이 공표되기 전 신속히 이뤄지는 공격 바이러스(Virus) 컴퓨터 내에서 프로그램이나 실행 가능한 부분을 변형해서 감염시키는 프로그램 웜(Worm) 스스로를 복제하여 전파하는 악성 프로그램 악성 봇(Malicious Bot) 해커의 명령에 의해 원격으로 제어되는 프로그램 (DDos 등에 악용) 랜섬웨어(Ransomware) 암호화 후 복호화를 위해 돈을 요구하는 악성 소프트웨어 이블 트윈(Evil Twin) 공격 합법적인 Wifi 제공자처럼 행세하며 연결된 사용자 정보를 탈취하는 공격 타이포스쿼팅(Typosquatting) 유명 도메인을 미리 등록하는 일로, URL 하이재킹이라고도 부름 사회공학 (Social Engineering) 사람들의 심리와 행동 양식을 교모하게 이용해서 원하는 정보를 얻는 공격기법 예) 상대방의 자만심이나 권한을 이용하는 공격 및 도청 포맷 스트링 공격 (Format String Attack) 포맷 스트링을 인자로 하는 함수의 취약점을 이용한 공격 레이스 컨디션 공격 (Race Condition Attack) 프로세스가 임시 파일을 만들 때, 실행 중에 끼어들어 임시파일을 심볼릭 링크하는 공격 키로거 공격 (Key Logger Attack) 키보드 움직임을 탐지해 주요정보를 빼가는 공격 루트킷 (Rootkit) 불법 해킹에 사용되는 기능을 제공하는 프로그램 모음 CC (Common Criteria) 컴퓨터 보안을 위한 국제 평가 기준 ISMS (Information Security Management System) 정보보호 관리 절차와 과정을 체계적으로 수립하여 지속적으로 관리하고 운영하기 위한 종합적인 체계 PIMS (Personal Information Management System) 기업이 개인정보보호 활동을 체계적·지속적으로 수행하기 위해 필요한 보호 조치 체계를 구축하였는지 점검, 평가하여 기업에게 부여하는 인증제도 PIA (Privacy Impact Assessment) 기존 정보 시스템의 중대한 변경 시, 프라이버시에 미치는 영향에 대하여 사전 조사 및 예측, 검토하여 개선 방안을 도출하는 체계적인 절차 사이버 킬체인 (Cyber Kill Chain) 록히드 마틴, 공격형 방위시스템 OWASP Top 10 웹 애플리케이션의 10가지 보안 취약점에 대한 방안을 제공하는 가이드 CVE (Common Vulnerabilities and Exposures) 소프트웨어의 공통 취약점(CV)을 식별화(E)한 것 (CVE-연도-순서) CWE (Common Weakness Enumeration) 소프트웨어의 공통 약점(CW)을 식별화(E)한 것 핑거프린팅 (Finger Printing) 저작권 정보와 구매자 정보를 콘텐츠에 삽입해 불법 배포자를 추적할 수 있는 기술 워터 마킹 (Water Marking) 디지털 콘텐츠에 저작자 정보를 삽입해, 불법 복제 시 원소유자를 증명하는 기술 트러트스존(Trustzone) 프로세서 안에 독립적인 보안 구역을 따로 두어 중요한 정보를 보호하는 하드웨어 기반의 보안 기술 장착형 인증 모듈 (PAM; Pluggable Authentication Module) 리눅스 시스템 내에서 사용되는 각종 애플리케이션 인증을 위해 제공되는 다양한 인증용 라이브러리 허니팟 (HoneyPot) 일부러 허술하게 만들어 해커에게 노출하는 유인시스템 이상금융거래 탐지시스템 (FDS; Fraud Detection System) 전자금융거래에 사용되는 정보를 종합적으로 분석하여 의심 거래를 탐지하고, 이상 거래를 차단하는 시스템 사이버 위협정보 분석 공유 시스템 (C-TAS; Cyber Threats Analysis System) 사이버 위협정보를 체계적으로 수립해 관계 기관과 자동화된 정보공유를 할 수 있는 시스템 (KISA 주관) TKIP(Temporal Key Integrity Protocol) 임시 키 무결성 프로토콜 - 소프트웨어의 소스코드가 얼마만큼 테스트가 되었는가를 나타내는 지표
- 순환복잡도 : 분기문 수 +1
- 프로그램을 구성하는 문장들이 최소한 한번은 실행될 수 있도록 테스트케이스를 선정
- 프로그램에 있는 분기를 최소한 한번은 실행하게 테스트
- 전체결정문이 적어도 한번은 참과 거짓의 결과를 수행하도록 셋팅
- &&, || 등의 조건을 가진 분기문이 전체조건식의 결과와 관계없이 &&, || 전후의 각 개별 조건식이 참한번, 거짓한 번을 갖도록 테스트 케이스를 만드는 방법
- 결정 명령문 내 각 조건이 적어도 한번은 참과 거짓의 결과가 출력되도록 생성
- 메인제어 모듈(프로그램)으로부터 아래방향으로 제어의 경로를 따라 하향식으로 통합하면서 테스트를 진행
- 넓이우선/ 깊이우선 방식으로 통함
- 최하위 레벨의 모듈 또는 컴포넌트로부터 위측방향으로 제어의 경로를 따라 이동하면서 구축과 테스트를 수행
- 이미 테스트가 완료된 소프트웨어에 변경이 발생할 때 이로 인해 의도하지 않은 오류가 발생하지 않음을 보증하기 위한 테스트
- 기존의 테스트로 다시 테스트 하는 것
- 테스트의 결과가 참인지 거짓인지 판단하기 위해 사전에 정의된 참 값을 입력하여 비교
- - 소프트웨어에서 워터마크 삭제 등과 같이 소프트웨어가 불법으로 변경(unauthorized modifications)되었을 경우, 그 소프트웨어가 정상 수행되지 않게 하는 기법이다. - 소프트웨어 변조 공격을 방어하기 위해 프로그램에 변조검증코드(tamper-proofing code)를 삽입하는 것도 한 방법으로, 변조검증코드의 용도는 첫째 프로그램이 변경되었는지를 탐지하는 것이고, 둘째는 변조가 탐지되었다면 프로그램이 실행되지 않게 한다. - 소프트웨어의 위변조 방지 역공학 기술의 일종으로 디지털 콘텐츠의 관련 산업이나 전자상거래 또는 보호해야 할 소프트웨어가 있는 다양한 산업 분야에 적용된다.
- : 애플리케이션 변경이 있을 때, 수행전과 후의 결과값이 동일한지 확인하는 오라클
- : 샘플링오라클을 제외한 오라클, 특정 입력값에 대해 올바른 결과를 제공하고 나머지 값에 대해서는 휴리스틱(추정) 으로 처리하는 오라클
- : 특정한 몇개의 입력값에 대해서만 기대하는 결과를 제공해주는 오라클
- : 모든 입력값에 대하여 기대하는 결과를 생성함으로 발생된 오류를 모두 검출할 수 있는 오라클
- 아직 통합되지 않은 상위컴포넌트의 동작을 시뮬레이션하는 모의 모듈
- (2) 상향식 통합방법
- (1) 하향식 통합방법
- 테스트는 정황과 비즈니스도메인(분야)에 따라 다르게 수행해야 한다 -> 테스트는 정황에 의존한다.
- (2) 베타테스트
- (1) 알파테스트
- 제어흐름 - 그래프형태
- 다중조건 - 100%
- 조건/결정 - 개+전
- 조건 - 개별
- 5. 테스트 커버리지
- (4) 인수시험
- (3) 시스템시험
- (2) 통합시험
- (1) 단위시험
- 상세설계 단위시험
- 요구분석 시스템시험
- 사용자 환경 설치시험
- : 프로그램의 제어표를 플로우 그래프로 표현하고 순환복잡도를 통해 독립적인 경로의 수를 찾아서 테스트
- : 프로그램에서 변수의 정의와 변수사용의 위치에 초점을 맞추어 검사
- : 프로그램의 반복구조에 초점을 맞추어 검사
- : 프로그램의 제어구문(if, case, else)을 테스트
- 3. 화이트박스테스트 종류(구조기반 테스트) -> 조루데기
- (5) 비교테스트
- (4) 오류예측테스트
- : 입력값을 원인으로, 효과를 출력값으로 선정하는 테스트기법
- [입출력] 점수: 90~100 → 금액: 700만원 점수: 80~89 → 금액: 500만원 점수: 70~79 → 금액: 300만원 점수: 0~69 → 금액: 0만원 [테스트 입력값] -1, 0, 1, 69, 70, 71, 79, 80, 81, 89, 90, 91, 99, 100, 101
- ex) 90~100점이 A학점이라고 할때 90~100점(경계의 유효한값)과 89점 또는 101점(가장 가까운 유효하지 않은 값)
- (2) 경계값분석 테스트
- : 입력값의 범위를 유사한 특징을 갖는 동등그룹으로 나누고 각 그룹마다 대표값을 선정하는 테스트 기법
- 2. 블랙박스테스트 종류(명세기반 테스트) -> 동경원오비(동경해서 되고싶은 워너비(원오비))
- (3) 그레이박스 테스트
- (2) 화이트박스 테스트
- (1) 블랙박스 테스트
- 11) Visitor(방문자) : 클래스들의 데이터 구조에서 처리 기능을 분리하여 별도로 구성함으로써, 클래스를 수정하지 않고도 새로운 연산의 추가가 가능함,오퍼레이션을 별도의 클래스에 새롭게 정의한 패턴
- 9) State (상태): 객체 내부 상태에 따라서 행위를 변경하는 패턴
- 7) Memento : 상태 값을 미리 저장해두었다가 복구하는 패턴
- 5) Iterator : 내부 표현은 보여주지 않고 순회하는 패턴
- 3) Chain of Responsibility : 객체끼리 연결 고리를 만들어 내부적으로 전달하는 패턴
- 1) Interpreter(통역사) : 언어 규칙 클래스를 이용하는 패턴
- 7) Adapter (어댑터): 인터페이스로 인해 함께 사용하지 못하는 클래스를 함께 사용하도록 하는 패턴
- 5) Proxy (프록시): 대리인이 대신 그 일을 처리하는 패턴
- 3) Facade(퍼싸드) : 하나의 인터페이스를 통해 느슨한 결합을 제공하는 패턴
- 1) Bridge(브릿지) : 추상과 구현을 분리해서 결합도를 낮춘 패턴
- 5) Singgleton (싱글톤): 유일한 하나의 인스턴스를 보장하도록 하는 패턴
- 3) Factory Method(팩토리 메소드) : 상위 클래스에서 객체를 생성하는 인터페이스를 정의하고 하위 클래스에서 인스턴스를 생성하는 패턴
- 1) Builder(빌더) : 생성 단계를 캡슐화 해서 구축 공정을 동일하게 이용하도록 하는 패턴
- ① 보안 체계 및 모델
- (3) ( (2) ) 조인에서 조인에 참여한 속성이 두 번 나오지 않도록 중복된 속성을 제거한 결과를 반환한다.
- (1) 조인에 참여하는 두 릴레이션의 속성 값을 비교하여 조건을 만족하는 튜플만 반환한다.
- ② 조건이 정확하게 '=' 등호로 일치하는 결과를 반환한다.
SSO:
커버로스에서 사용되는 기술로 한 번의 인증 과정으로 여러 컴퓨터상의 자원을 이용할 수 있도록 해주는 인증 기술
1. 소프트웨어 생명주기 모델
- 폭프나반
- 폭포수/프로토타이핑/나선형/반복적
2. 나선형 모델 절차
- 계위개고
- 계획 및 정의/위험분석/개발/고객평가
3. 객체지향구성요소
- 클객 메 메인속
- 클래스/객체/메서드/메시지/인스턴스/속성
4. 객체지향기법
- 캡상다추정관
- 캡슐화/상속성/다형성/추상화/정보은닉/관계성
5. 럼바우
- 객동기
- 객체/동적/기능 모델링
- 디자인패턴유형
- 생구행
- 생성/구조/행위
6-1. 생성패턴
- 생빌 프로 팩앱싱
- 생성(빌더/프로토타입/팩토리 메서드/앱스트랙 팩토리/싱글톤)
6-2. 구조패턴
- 구 브데 퍼플 프록 컴 어
- 구조(브리지/데코레이터/퍼사이드/플라이웨이트/프록시/컴포지트/어댑터)
- DBMS 현행 시스템 분석 시 고려사항
- 가성호기구
- 가용성/성능/상호 호환성/기술지원/구축비용
- 정형 기술 검토
- 동워인
- 동료검토/워크스루/인스펙션
9. UI 유형
- CG NO
- CLI/GUI/NUI/OUI
10. UI 설계 원칙
- 직유 학유
- 직관성/유효성/학습성/유연성
11. UI 화면 설계 구분
- 와스프
- 와이어프레임/스토리보드/프로토타입
12. UML의 특징
- 가구명문
- 가시화/구축/명세화/문서화 언어
12-1. UML 구성요소
- 사관다
- 사물/관계/다이어그램
13. 데이터 모델링 절차
- 요개논물
- 요구조건 분석/개념적 설계/논리적 설계/물리적 설계
14. 순수 관계 연산자
- 셀프조디
- 셀렉트/프로젝트/조인/디비전
15. 이상 현상의 종류
- 삽삭갱
- 삽입 이상/삭제 이상/갱신 이상
16. EAI 구축 유형
- 포허메하
- 포인트 투 포인트/허브 앤 스포크/메시지 버스/하이브리드
17. 인터페이스 구현 검증 도구
- 엑스피 엔셀웨
- xUnit/STAF/FitNesse/NTAF/Selenium/watir
18. 연산자 우선순위
- 증산시 관비 논삼대
- 증감/산술/시프트/관계/비트/논리/삼항/대입
19. 트랜잭션의 특성
- ACID
- Atomicity/Consistency/Isolation/Durability
20. 회복기법 종류
- 회로체크
- 회복기법(로그 기반/체크 포인트/그림자 페이징)
21. DDL 명령어
- 크알드트
- CREATE/ALTER/DROP/TRUNCATE
22. DML 명령어
- 세인업대
- SELECT/INSERT/UPDATE/DELETE
23. SELECT 명령문
- 셀프 웨 구해오
- SELECT/FROM/WHERE/GROUP BY/HAVING/ORDER BY
24. GRANT 명령어
- 그온투
- GRANT 권한 ON 테이블 TO 사용자
25. REVOKE 명령어
- 리온프
- REVOKE 권한 ON 테이블 FROM 사용자
26. 형상관리의 절차
- 식통감기
- 형상 식별/형상 통제/형상 감사/형상 기록
27. 응집도의 유형
- 우논시절 통순기
- 우연적/논리적/시간적/절차적/통신적/순차적/기능적 응집도
28. SW 개발 보완의 3대 요소
- 기무가
- 기밀성/무결성/가용성
- 테스트 오라클 종류
- 참샘휴일
- 참/샘플링/휴리스틱/일관성 검사 오라클
30. 테스트 레벨 종류
- 단통시인
- 단위/통합/시스템/인수 테스트
31. 하향식 및 상향식 통합 수행 방식
- 하스 상드
- 하향시(스텁), 상향식(드라이버)
32. 애플리케이션 성능측정지표
- 처응경자
- 처리량/응답시간/경과시간/자원사용률
- 클린코드 작성 원칙
- 가단의 중추
- 가독성/단순성/의존성 최소/중복성 제거/추상화
34. 선점 스케줄링 알고리즘
- SMMR
- SRT/MLQ/MLFQ/Round Robin
35. 비선점 스케줄링 알고리즘
- 우기 HFS
- 우선순위/기한부/HRN/FCFS/SJF
36. 교착상태 발생 조건
- 상점비환
- 상호 배제/점유와 대기/비선점/환형 대기
37. 프로토콜의 기본 3요소
- 구의타
- 구문/의미/타이밍
38. IPv4 전송방식
- 유멀브**(브4)**
- 유니캐스트/멀티캐스트/브로드캐스트
39. IPv6 전송방식
- 유멀애
- 유니캐스트/멀티캐스트/애니캐스트
40. TCP 특징
- 신연흐흔
- 신뢰성 보장/연결 지향적 특징/흐름제어/혼잡제어
조인
(theta join)세타조인(R▷◁(r 조건 s)S):
- 조인에 참여하는 두 릴레이션의 속성 값을 비교하여 조건을 만족하는 투플만 반환한다.
- 세타조인의 조건은{=,≠,≥,≤,>,<} 중 하나가 된다.
(inner join)내부조인(동등조인)(R▷◁(r=s)S):
- 동등조인의 결과 릴레이션의 차수는 첫 번째 릴레이션과 두 번째 릴레이션의 차수를 합한 것.
(natural join)자연조인(R▷◁N(r,s)S):
- 동등조인에서 조인에 참여한 속성이 두 번 나오지 않도록 **중복된 속성(두 번째 속성)**을 제거한 결과를 반환
- 차수는 '두 릴레이션의 차수의 합-중복된 속성 수'
(outer join)외부조인:
!https://blog.kakaocdn.net/dn/bn2faw/btqOvSFHlHt/0Jo6e39KBcVjscvQ1QA8V1/img.jpg
- 왼쪽 외부조인(left outer join):
왼쪽 투플 기준으로 자연조인 시 실패한 투플을 모두 보여주되 값이 없는 대응 속성에는 NULL 값을 채워서 반환한다.
- 오른쪽 외부조인(right outer join):
오른쪽 투플 기준으로 자연조인 시 실패한 투플을 모두 보여주되 값이 없는 대응 속성에는 NULL 값을 채워서 반환한다.
- 완전 외부조인(full outer join):
양쪽 투플 기준으로 자연조인 시 실패한 투플을 모두 보여주되 값이 없는 대응 속성에는 NULL 값을 채워서 반환한다.
(semi join)세미조인:
- 자연조인을 한 후 두 릴레이션 중 한쪽 릴레이션의 결과만 반환
- 세미조인은 기호에서 닫힌 쪽 릴레이션의 투플만 반환한다.
데이터 베이스 정규형
도부이결다조
1정규형: 도메인이 원자값
2정규형: 부분적 함수 종속 제거
3정규형: 이행적 함수 종속
BCNF: 결정자이면서 후보키가 아닌 것 제거
4정규형: 다치 종속 제거
5정규형: 조인 종속성 이용
C언어 시프트 연산자
- v << n은 v * (2^n)과 같습니다.
- v >> n은 v / (2^n)과 같습니다.
데이터모델(연구제)
연산 : 실제 데이터에 대한 처리하는 작업
구조 : 개체 타입과 관계, 데이터 구조
제약조건 : 데이터 무결성 유지를 위한 데이터베이스의 보편적인 작업,저장 데이터 조건
완전수 :
6,28,496,8128
관계 대수 항목
-일반 집합 연산자 : 합교차카(∪∩ - X)
합집합 A ( U ) B
교집합 | A ( ∩ ) B |
차집합 | A ( - ) B |
카티션 프로덕트 | A ( X ) B |
-순수 관계 연산자 : 셀프조디(σ π ⋈ ÷)
- 셀렉트 (σ)
- 프로젝트(π)
- 조인(⋈)
- 디비전(÷)
CPU Scheduling
CPU를 사용하려고 하는 프로세스들 사이의 우선순위를 관리하는 작업 -자원을 어떤 프로세스에 얼마나 할당하는지 정책을 만드는 것
프로세스들에게 자원을 최대한 공평하게 배분하며 처리율과 CPU 이용률을 증가시키고, 오버헤드, 응답시간(Response time / Turnaround time), 대기시간을 최소화하기 위한 기법
선점형 스케줄링(Preemptive Scheduling) 과비선점형 스케줄링(Non-preemptive / Cooperative Scheduling) 이 있음
선점형 스케줄링
- SRT/MLQ/MLFQ/Round Robin
- [SMMR]
하나의 프로세스가 CPU를 차지하고 있을 때,우선순위가 높은 다른 프로세스가 현재 프로세스를 중단시키고 CPU를 점유하는 스케줄링 방식
비선점형 스케줄링
- 우선순위/기한부/HRN/FCFS/SJF
- [우기 HFS]
한 프로세스가 CPU를 할당받으면 작업 종료 후CPU 반환 시까지 다른 프로세스는 PCU 점유가 불가능한 스케줄링 방식
프로토콜
= 어부 아저씨 가야할 때가 언제인지(타이밍)를 분명히 알고(의미) 가는 이(구문)의 뒷모습은 얼마나 아름다운가
RIP
:최소한의 합정(Hop) 카페(Count)만 Distance Vector로 찾다가 15보 앞두고 잠들다 RIP
- redo 재실행이니까 re
- undo 내용을 취소하니까 un
union 중복 X
union all 중복 O
NAT
(Network Address Translation):[NAT가의 IP새를 재기록하여 라우터로 트래픽 교환!] 냇가의 잎새를 어쩌구
IP 패킷에서 외부의 공인 IP주소와 포트 주소에 해당하는 내부 IP주소를 재기록하여 라우터를 통해 네트워크 트래픽을 주고받는 기술
ATM
(Asynchronous Transfer Mode) 비동기 전송 방식 :
-자료를 일정한 크기로 정하여 순서대로 전송하는 자료의 전송 방식이다.
- 셀이라 부르는 고정 길이 패킷을 이용하여 처리가 단순하고 고속망에 적합하며, 연속적으로 셀을 보낼 때 다중화를 하지 않고 셀단위로 동기가 이루어지지만 경우에 따라 동기식 시간 분할 다중화를 사용하기도 한다.
- 가상 채널 (Virtual Channel) 기반의 연결 지향 서비스로 셀이라 부르는 고정 길이(53바이트) 패킷을 사용하며 통계적 다중화 방식을 이용한다.
UML
:시스템의 디자인을 시각화하는 언어이자 모델
1. 구조적 다이어그램 (Structure Diagrams)
1) 클래스 다이어그램, Class Diagram
클래스 다이어그램은 아래와 같이 세 가지 블럭으로 나뉘는 구조입니다.
2) 객체 다이어그램, Object Diagram
클래스에 속한 사물(객체), 즉 인스턴스를 특정 시점의 객체와 객체 사이의 관계로 표현합니다.
3) 컴포넌트 다이어그램, Component Diagram
컴포넌트들이 더 큰 구조를 만들기 위해 어떻게 연결되는지. 복잡한 시스템 구조를 설명하기 위해 사용합니다.
4) 배치 다이어그램, Deployment Diagram
컴포넌트 사이의 종속성을 표현하며 결과물, 프로세스, 컴포넌트 등 물리적 요소들의 위치를 표현합니다.
5) 복합체 구조 다이어그램, Composite Structure Diagram
클래스나 컴포넌트가 복합 구조를 갖는 경우 그 내부 구조를 표현합니다.
6) 패키지 다이어그램, Package Diagram
유스케이스나 클래스 등의 모델 요소들을 그룹화한 패키지들의 관계를 표현합니다.
2. 행위적 다이어그램 (Behavioral Diagrams)
1) 유스케이스 다이어그램, Use Case Diagram
시스템의 기능적 요구 정의에 활용하며 사용자 관점에서 시스템의 활동을 표현합니다.
2) 시퀀스 다이어그램, Sequence Diagram
객체 간 상호 작용을 메시지 흐름으로 표현하여 시간을 표현할 수 있습니다.
3) 커뮤니케이션 다이어그램, Communication Diagram
시퀀스 다이어그램과 같이 동작에 참여하는 객체들이주고받는 메시지를 표현하는 데 메시지뿐만 아니라 객체 간의 연관까지 표현할 수 있습니다.
4) 상태 다이어그램, State Diagram
하나의 객체가 자신이 속한 클래스의 상태 변화 혹은 다른 객체와의 상호 작용에 따라 상태가 어떻게 변화하는지 표현하며, 모든 가능한 상태와 전이를 표현할 수 있습니다. (진입 조건, 탈출 조건, 상태 전이 등)
5) 활동 다이어그램, Activity Diagram
시스템이 어떤 기능을 수행하는지를 객체의 처리 로직이나 조건에 따른 처리의 흐름으로 순서대로 표현
활동의 순서대로 흐름을 표현
6) 타이밍 다이어그램, Timing Diagram
객체 상태 변화와 시간 제약을 명시적으로 표현합니다.
서버 접근 통제 유형
접근 통제 모델의 종류 (막 다 알박해)
- MAC(Mandatory; 강제적) : 변경 불가 - 규칙 기반 접근 통제
- MLP(Multi Level) : 1급 기밀
- DAC(Discretionary; 임의적) : 변경 가능 - 신분 기반 접근 통제
- IBP (Individual Based) : 특정 개인을 허용
- GBP (Group Based) : 특정 그룹을 허용
- RBAC(Role Based) : 역할에 부여
블랙박스 테스트 기법(영어로도 알아야됨) :
경동원비(빈)이 검은 상자(블랙박스 테스트) 안에 있다(원빈이 잘생겨서 숨기려는 경동 나비엔) 동경결상 유분페원비
(동등 분할, 경계값 분석, 결정 테이블, 상태 전이, 유스케이스, 분류 트리, 페어와이즈, 원인-결과 그래프, 비교)
SIEM(머SIEM러닝 보안,시애미):
정보 보호 관리 체계ISMS(Information Security Management System) : 정부는 마이크로소프트이다.(IS MS)
머신러닝 기술을 이용하여 IT 시스템에서 발생하는 대량의 로그를 통합관리 및 분석하여 사전에 위협에 대응하는 보안 솔루션
형상관리 : 소프트웨어 개발 프로세스 각 단계에서 소프트웨어의 변경점을 체계적으로 관리하는 일련의 활동
-CVS(Concurrent Versions System, 동치 분할 시스템)
- 개발과정에서 사용하는 파일들의 변경 명세를 관리하기 위한 시스템
-SVN(Subversion)
- CVS의 단점을 보완하여 만들어진 형상관리도구
-Git
- 소스코드를 여러 개발 PC와 저장소에 분산하여 자장할 수 있음
OLTP(Online Transaction Processing)< - > OLAP
- 네트워크 상의 여러 이용자가 실시간으로 데이터베이스의 데이터를 갱신하거나 조회하는 등의 단위작업을 처리하는 방식을 말한다
OLAP(Online Analytical Processing, 온라인 분석 처리)
- 대용량 데이터를 다차원 분석하기 위한 프로그램
DDOS(Distributed Denial of Service, 분산 서비스 거부)
- 처리할 수 있는 용량을 초과하는 통신 요청과 데이터를 표적 장치의 IP 주소로 보내어 온라인 서비스 중단을 시도하는 사이버 공격의 한 형태
Cyber Kill Chain
- 공격자의 입장에서 사이버 공격 활동을 파악, 분석해 공격 단계 별로 조직에게 가해지는 위협 요소를 제거하거나 완화하자는 것
XML과 JAVAScript 는 AJAX
XML과 언어는 WSDL
XML과 저장소는 UDDI
XML과 프로토콜은 SOAP
SOAP (Simple Object Access Protocol) : HTTP 등의 프로토콜을 이용하여 XML 기반의 메시지를 교환하는 프로토콜로, Envelope-Header-Body 주요 3요소로 구성된다. 유사한 기능을 하는 RESTful로 대체될 수 있다.
L2TP:
Layer 2 Tunneling Protocol 2계층 터널링기술 프로토콜
원격제어
SSH : 22, 암호화하여 telnet : 23, 평문으로
ICMP(인터넷 제어 메세지 프로토콜): TCP/IP에서 IP 패킷을 처리할 때 발생되는 문제를 알려주는 프로토콜 프로토콜은 보통 다른 호스트나 게이트웨이 와 연결된 네트웍에 문제가 있는지 확인하기 위한 목적으로 주로 사용
Internet
Control
Message
Protocol
오류메세지 전송
객체를 생성하면 생성패턴 객체와 클래스를 조합하면 구조패턴:
proxy = ‘대리’ 라고도 부른다.
객체와 클래스의 상호작용은 행위패턴
- 릴레이션 : 테이블, 컬렉션(NoSQL)
- 튜플 : 레코드, 도큐먼트(NoSQL) - 행 (개수 : Cardinality; 기수)
- 속성 : 필드 - 열 (개수 : Degree; 차수)
열 = 세로 = 차수 = 속성 = 애드리뷰트
행 = 가로 = 기수 = 튜플 = 카디널리티
리눅스 사용자/그룹/이 외
chmod [권한] [파일경로]
읽기: r, 4에 해당
쓰기: w, 2에 해당
실행: x, 1에 해당
- 읽기, 쓰기,실행 허용: 4 + 2 + 1 = 7
- 읽기, 실행 허용: 4 + 1 = 5
- 실행만 허용: 1
AAA
- 인증(Authentication)
- 인가 및 권한부여(Authorization)
- 회계 및 계정관리(Accounting)
OSI 7 Layer :응표쉑~전내~대물~(응표세전네데물)
- 물리 - 기계적, 전기적 특성. X.21, 리피터, 허브
- 데이터 링크 - 흐름 제어, 오류 검출과 회복, HDLC, MAC, 랜카드, 브리지, 스위치
- 네트워크 - 경로 설정(Routing), 트래픽 제어, 패킷, X.25, IP, 라우터
- 전송 - 다중화, 오류 제어, 흐름 제어, TCP, UDP, 게이트웨이
- 세션 - 송수신 측 간의 관련성을 유지, 대화 제어
- 표현 - 데이터 암호화, 데이터 압축, 형식 변환
- 응용 - 파일 전송, 전자 사서함(메일), 정보 교환, 가상 터미널
★ 데이터 링크는 노드 사이의 흐름과 오류 제어.
★ 전송은 단말기 사이의 흐름과 오류 제어.
OSI 7계층(Open System Intersection) - APSTNDP
아(A)파(P)서(S)티(T)내(Ne)다(Da)피(Phy)(난다)
- Physical Layer(물리 계층) - 통신 케이블, 허브, 리피터, 전송단위 : Bit
(문제 내용) 전송에 필요한 두 장치 간의 실제 접속과 절단 등 기계적, 전기적, 기능적, 절차적 특성에 대한 규칙을 정의한다. 단위(PDU)는 '비트'를 사용한다.
- Data Link Layer(데이터 링크 계층) - 전송 데이터에 대한 CRC 오류/흐름 제어 필요. - MAC주소, 스위치, 브리지, 전송 단위 : Frame
- Network Layer(네트워크 계층) : IP 주소를 제공하는 계층. 노드를 거칠때마다 라우팅 해주는 역할 담당. 노드간 데이터를 가장 빠르게 전송하는 역할, 라우터, L3 스위치, IP공유기 , 전송단위 : Packet
4.Transport Layer(전송 계층) : 단말기 간의 일관된+투명한 데이터 전송 제공
오류 검출과 복구,흐름 제어. 전송 단위 : Segment. - TCP,UDP
- Session Layer(세션 계층) : 양끝단의 응용 프로세스가 통신을 관리하기 위한 방법을 제공하는 계층. 통신하는 사용자들을 동기화하고 오류복구 명령들을 일괄적으로 다룬다. 동시 송수신 방식(Duplex), 반이중 방식(Half-Duplex), 전이중 방식(Full-Duplex)의 통신과 함께 체크포인팅과 유휴 종료 다시 시작 과정을 수행. TCP/IP 세션을 만들고 없애는 역할을 담당함
6.Presentation Layer(표현 계층) : 데이터 표현에 존재하는 차이점을 극복, 형식이 다름으로 인한 부담을 응용 계층으로 부터 덜어줌. 코드 문자등을 번역해 일관되게 전송하며 압축 해제 보안 기능 담당.
7.Aplication Layer(응용 계층) : 사용자가 OSI 환경에 접근할 수 있도록 함. 사용자와 네트워크 간 응용 서비스를 연결. 사용자 데이터 생성. HTTP,FTP
관계 데이터 모델
버스를 대.절 하면 해.비 하지
관계대수 : 절차적언어, 원하는 것 + 얻는 방법
관계해석 : 비절차적언어, 원하는 것만, 수학적
대칭키 DES AES SEED ARIA IDEA SKIPJACK(?)
비대칭키 DSA RSA ECC
-대칭키 알고리즘
IDEA (대칭 키 알고리즘) :
매시(Xuejia Lai와 James Messey ) = 축구 = (ID)EA sport SKIPJACK:
미국의 NSA에서 개발한 Clipper 칩에 내장되는 블록 알고리즘이다. 전화기와 같은 음성을 암호화 하는데 주로 사용되며 64비트 입출력에 80비트의 키 총 32라운드를 가진다.
가상사설망(VPN)은 가면을 쓰는 것과 같다.
가면을 써서 익명으로 데이터를 보냄
-데이터베이스 트랜잭션의 4가지 속성
독일지원
독립성(고립성) - 독립적(트랜잭션 실행 도중의 연산 결과는 다른 트랜잭션에서 접근할 수 없다.)
일관성 - 일관적(트랜잭션이 성공적으로 실행되면 데이터베이스 상태는 모순되지 않고 일관된 상태가 된다.)
지속성 - 결과가 영구적(트랜잭션이 성공했을 경우 영구적으로 반영되어야 한다)
원자성 - 전부 or 전혀(트랜잭션은 연산들을 전부 실행하든지 전혀 실행하지 않아야 한다. 일부만 실행해서는 안 된다.)
- SYN 플러딩(Flooding) : 서버의 동시 가용 사용자 수를 SYN 패킷만 보내 점유하여 다른 사용자가 서버를 사용하지 못하게 하는 공격
- UDP 플러딩(Flooding) : 대량의 UDP패킷을 만들어 임의의 포트 번호로 전송하여 지속적으로 자원을 고갈시키는 공격
- 스머프(Smurf)/스머핑(Smurfing) : 출발지 주소를 공격 대상의 IP로 설정하여 네트워크 전체에게 ICMP Echo 패킷을 직접 브로드캐스팅하여 마비시킴
- 죽음의 핑(PoD; Ping of Death) : ICMP 패킷(Ping)을 정상적인 크기보다 아주 크게 만들어서 전송
- 랜드어택(Rand Attack) : 출발지 IP와 목적지 IP를 같은 패킷 주소로 만들어 보내서 수신자가 자기 자신에게 응답을 보내게 함
- 티어드롭(Tear Drop) : IP 패킷의 재조합 과정에서 잘못된 Fragment Offset 정보로 인해 수신 시스템이 문제를 발생하도록 만드는 공격
- 봉크(Bonk)/보잉크(Boink) : 시스템의 패킷 재전송과 재조립이 과부하를 유발하게 하는 공격기법
처리량 일정 시간 내에 애플리케이션이 처리하는 일의 양
응답시간 | 애플리케이션에 요청을 전달한 시간부터 응답이 도착할 때까지 걸린 시간 |
경과시간(반환시간) | 애플리케이션에 작업을 의뢰한 시간부터 처리가 완료될 때까지 걸린 시간 |
자원 사용률 | 애플리케이션이 의뢰한 작업을 처리하는 동안의 CPU 사용량, 메모리 사용량, 네트워크 사용량 등 |
복구 목표 시점(RPO)
"업무 중단 시 각 업무에 필요한 데이터를 여러 백업 수단을 이용하여 복구할 수 있는 기준점"을 의미
목표 복구 시간(RTO; Recovery Time Objective) :
“비상사태 또는 업무중단 시점으로부터 업무가 복구되어 다시 정상가동 될 때까지의 시간” 을 의미
IPSec ( IP + 보안) :
네트워크 계층(network layer, 3계층)인 인터넷 프로토콜(IP)에서 '암호화', '인증', '키 관리'를 통해 보안성을 제공해 주는 표준화된 기술
옵저버(Observer) 패턴:
변경이 생기면 자동으로 연락이 가고, 자동으로 내용이 갱신되는 패턴 (대충 스타 옵저버처럼 지쳐보고 있는느낌?)
한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체들한테 연락이 가고 자동으로 내용이 갱신되는 방식으로 일 대 다(one-to-many) 의존성을 가지는 디자인 패턴.
서로 상호작용을 하는 객체 사이에서는 가능하면 느슨하게 결합(Loose coupling)하는 디자인을 사용해야 한다.
안드로이드( Android) :
리눅스 커널을 기반으로 동작하며 자바의 코틀린 언어로 개발된, 모바일 기기에 주로 사용되는 오픈소스 플랫폼인 운영체제
사용자 인터페이스 설계 원칙
직관성: 누구나 쉽게 이해하고 사용할 수 있어야 한다.
(유효성): 사용자의 목적을 정확하게 달성하여야 한다.
학습성: 누구나 쉽게 배우고 익힐 수 있어야 한다.
유연성: 사용자의 요구사항을 최대한 수용하며, 오류를 최소화하여야 한다.
Linked Open Data (공공데이터를 연결하라)
ㅇ 전세계 오픈된 정보를 하나로 묶는 방식
ㅇ Linked data와 Open data의 합성어
ㅇ URI(Uniform Resource Identifier)를 사용
ㅇ RESTful 방식으로 볼 수 있으며, 링크 기능이 강조된 시멘틱 웹에 속하는 기술
-데이터베이스 설계과정
요구사항분석 > 개념적분석 > 논리적분석 > 물리적분석 > 구현
[???: 요개 ~ 눈물구 녕이다~]
-형상 관리 소프트웨어 개발 과정에서 산출물 등의 변경에 대비하기 위해 반드시 필요하다. 소프트웨어 리사이클 기간 동안 개발되는 제품의 무결성을 유지하고 소프트웨어의 식별, 편성 및 수정을 통제하는 프로세스를 제공한다. 실수를 최소화하고 생산성의 최대화가 궁극적인 목적이다. 관련 도구로는 CVS, SVN, Clear Case 등이 있다. (git도 있어여되는거같은데 옛날문제라 안쓴듯..?)
-2024 1회차 문제
답안 : ㄱㄴㄹㄷ
- 응집도 강→약, ㉠ 기능 ㉡ 교환 ㉢ 우연 ㉣ 시간
- 출제 : [소프트웨어 설계01 – 1.모듈(응집도, 결합도)]
소프트웨어 모듈화
모듈의 기능적 독립성은 소프트웨어를 구성하는 각 모듈의 기능이 서로 독립됨을 의미하는 것으로, 모듈이 하나의 기능만을 수행하고 다른 모듈과의 과도한 상호작용을 배제함으로써 이루어진다. 모듈의 독립성을 높이기 위해서는 ( 가 )는 약하게, ( 나 )는 강하게 만들어야 한다.
(가) 결합도(낮을수록 좋음)
(나) 응집도(높을수록 좋음)
모듈의 크기가 작을수록 독립성이 높아집니다
응집도는 모듈 내부 사이의 관계
결합도는 모듈 외부 즉, 다른 모듈과의 관계
2. 결합도
결합도 강한순서 :내 (축구)공 외제쓰자
결합도는 모듈 간에 상호 의존하는 정도, 다시 말해 서로 다른 모듈 사이의 연관 관계를 의미합니다. 위에서도 언급했듯이, 독립적인 모듈이 되기 위해서는 결합도가 약해야 합니다.
결합도의 종류는 다음과 같으며, 1번이 가장 결합도가 약하고, 내려갈수록 결합도가 강합니다.
- 자료 결합도: 단순히 데이터만 매개 변수 또는 인수로 전달하고 호출하는 방식입니다. 모듈 간에 서로의 내용을 전혀 알 필요가 없는 상태이기 때문에, 가장 바람직한 결합도입니다.
- 스탬프 결합도: 배열이나 리스트와 같은 자료구조를 매개 변수로 전달하는 경우의 결합도입니다.
- 제어 결합도: 한 모듈이 다른 모듈의 논리적인 흐름을 제어하기 위해 제어 신호나 플래그(flag)를 전달하는 경우입니다.
- 외부 결합도: 한 모듈에서 선언한 데이터를 외부의 다른 모듈이 사용할 때의 결합도입니다.
- 공통 결합도: 전역 변수와 같은 공유되는 공통 데이터 영역을 여러 모듈이 사용할 때의 결합도입니다. 당연히 공통 데이터 영역의 내용을 조금만 변경하더라도 이를 사용하는 모든 모듈들이 영향을 받기 때문에 결합도가 높습니다.
- 내용 결합도: 한 모듈이 다른 모듈의 내부 기능 및 자료를 직접 참조하는 경우입니다.
3. 응집도
응집도란 하나의 모듈의 내부 요소들이 서로 연관되어 있는 정도, 다시 말해 모듈이 독립적인 하나의 기능을 수행하는 정도를 뜻합니다. 응집도는 결합도와 반대로 높을수록 독립적인 모듈로 간주됩니다.
응집도의 종류는 다음과 같으며, 1번이 가장 응집도가 강하고, 내려갈수록 응집도가 약합니다.
- 기능적 응집도: 모듈 내의 모든 요소들이 단일 기능을 수행하는 경우입니다.
- 순차적 응집도: 모듈 내의 한 요소의 출력 자료가 다음 요소의 입력 자료로 사용되는 경우입니다.
- 교환적 응집도: 모듈 내의 요소들이 동일한 입출력 자료로 서로 다른 기능을 수행하는 경우입니다.
- 절차적 응집도: 모듈이 여러 개의 관련 기능을 가질 때, 이 요소들이 반드시 순차적으로 기능을 수행하는 경우입니다.
- 시간적 응집도: 특정 시간에 처리되는 몇 개의 기능을 모아 하나의 모듈로 작성된 경우입니다.
- 논리적 응집도: 논리적으로 유사한 기능을 수행하긴 하지만, 서로 간의 관계는 밀접하지 않는 경우입니다.
- 우연적 응집도: 모듈 내부의 구성 요소들이 크게 관련이 없는 요소들로 구성된 경우입니다.
응집도가 약한 순서 (우논시절교순기)
(1) 우연적 응집도(Coincidental Cohesion) 서로 관련 없는 요소로만 구성된 경우
(2) 논리적 응집도(Logical Cohesion) 논리적으로 유사한 기능을 수행하지만 서로의 관계는 밀접하지 않은 경우
(3) 시간적 응집도(Temporal Cohesion) 특정 시간에 처리되는 기능들을 모아 모듈이 작성된 경우
(4) 절차적 응집도(Procedural Cohesion) 모듈이 다수의 관련 기능을 가질 때 모듈 내의 구성 요소들이 기능을 순차적으로 수행할 경우
(5) 교환적 응집도(Communication Cohesion) 모듈 내의 요소들이 동일한 입출력을 사용하여, 서로 다른 기능을 수행하는 경우
(6) 순차적 응집도(Sequential Cohesion) 모듈 내의 한 요소의 출력 자료가 다음 요소이 입력 자료로 사용할 경우
(7) 기능적 응집도(Functional Cohesion) 모듈 내의 모든 요소들이 단일 기능을 수행될 경우
데이터 링크 계층(2계층) 링크의 설정과 유지 및 종료를 담당하며 노드 간의 회선 제어, 흐름 제어, 오류 제어 기능을 수행하는 계층
※ 데이터 링크 계층 프로토콜
프로토콜 설명
HDLC | |
(High-level Data Link Control) | 점대점 방식이나 다중방식 통신에 사용 |
PPP | |
(Point-to-Point Protocol) | 두 통신 노드 간의 직접적인 연결 |
프레임 릴레이 | |
(Frame Relay) | 프레임 간 중계기능, 다중화 기능을 통해 빠른 데이터 전송이 가능한 고속 전송 기술 |
ATM | |
(Asynchronous Transfer Mode) | 고정 크기 단위로 전송하는 비동기식 전송 기술 |
네트워크 계층(3계층) 다양한 길이의 패킷을 네트워크들을 통해 전달하고, 그 과정에서 전송 계층이 요구하는 서비스 품질(QoS)을 위한 수단 제공
※ 네트워크 계층 계층 프로토콜
프로토콜 설명
IP | |
(Internet Protocol) | 송수신 간의 패킷 단위, 정보를 주고받는 데 사용하는 통신 프로토콜 |
ARP | |
(Address Resolution Protocol) | IP네트워크 상에서 MAC 주소를 알기 위해서 사용, IP 주소를 MAC 주소로 변환 |
RARP | |
(Reverse Address Resolution Protocol) | MAC 주소는 알지만 IP주소를 모르는 경우 서버로부터 IP주소를 요청하기 위해 사용 |
ICMP | |
(Internet Control Message Protocol) | 수신지 도달 불가 메시지를 통지하는 데 사용 |
IGMP | |
(Internet Group Message Protocol) | 화상회의, IPTV에서 활용되는 프로토콜 |
라우팅 프로토콜 | |
(Routing Protocol) | 데이터 전송을 위해 목적지까지 갓 수 있는 여러 경로 중 최적의 경로를 설정해주는 상호 통신 규약 |
• 내부 라우팅 프로토콜(IGP): RIP, IGRP, OSPF, EIGRP | |
• 외부 라우팅 프로토콜(EGP): BGP | |
NAT | |
(Network Address Translation) | 사설 네트워크에 속한 IP를 공인 IP 주소로 바꿔주는 네트워크 주소 변환 기술 |
라우팅 프로토콜(3계층)
- 내부 라우팅 프로토콜(IGP)
- 동일한 AS 내의 라우팅에 사용되는 프로토콜
- RIP, IGRP, OSPF, EIGRP
- 외부 라우팅 프로토콜(EGP)
- 서로 다른 AS 간 라우팅 프로토콜로 게이트웨이 간의 라우팅에 사용되는 프로토콜
- BGP
① RIP(Routing Information Protocol)
- AS(Autonomous System; 자치 시스템; 자율 시스템) 내에서 사용하는 거리 벡터(Distance-Vector) 알고리즘에 기초하여 개발된 내부 라우팅 프로토콜
- 벨만-포드(Bellman-Ford) 알고리즘 사용, 15홉 제한, UDP 사용, 30초 마다 공유
② OSPF(Open Shortest Path First)
- RIP의 단점 개선하기 위해 자신을 기준으로 링크 상태(Link-State) 알고리즘을 적용하여 최단 경로를 찾는 라우팅 프로토콜
- 다익스트라(Dijkstra) 알고리즘 사용, 라우팅 메트릭 지정, AS 분할 사용, 홉 카운트 무제한, 멀티캐스팅 지원
③ BGP(Border Gateway Protocol)
- AS간 경로 정보 교환하기 위한 라우팅 프로토콜
- 경로 벡터(Path Vector) 알고리즘 사용
- ISP 사업자간 주로 사용
- 라우팅 비용이 많이 들고, 라우팅 테이블 크기가 커서 메모리 사용량 많음.
④ 라우팅 알고리즘
- 거리 벡터 알고리즘(Distance Vector Algorithm)
- 인접 라우터와 정보를 공유하여 목적지까지의 거리와 방향을 결정하는 알고리즘
- 벨만-포드(Bellman-Ford) 알고리즘 사용
- 링크 상태 알고리즘(Link State Algorithm)
- 링크 상태 정보를 모든 라우터에 전달하여 최단 경로 트리르 구성하는 알고리즘
- 다익스트라(Dijkstra) 알고리즘 사용
- 답안 : ① 세타 조인 ② 동등 조인 ③ 자연 조인
- 데이터베이스 조인(join) 종류
- 출제 : [SQL03 – 3.JOIN]
보안 공격 관련 용어주요 용어 설명부 채널 공격 (Side Channel Attack) 전력 소비와 같은 물리적 특성을 측정해 비밀 정보를 알아내는 공격 드라이브 바이 다운로드 (Drive By Download) 악성 스크립트를 웹 서버에 설치 후, 사용자를 의도된 서버(멀웨어 서버)로 연결해 감염시키는 공격 워터링 홀 (Watering Hole) 특정인이 자주 방문하는 웹사이트에 악성코드를 심어 공격 비즈니스 스캠(SCAM) 기업 이메일을 도용해 거래 대금을 가로채는 공격 하트 블리드 (Heart Bleed) 하트비트 확장 모듈 취약점을 이용해 데이터를 탈취하는 공격 크라임웨어 (Crimeware) 중요한 금융∙인증 정보를 탈취해 금전적 이익을 취하는 악성 코드 토르 네트워크 (Tor Network) 익명으로 인터넷을 사용할 수 있는 가상 네트워크 MIMT (Man in the Middle) 통신 연결 중간에 침입해 통신 내용을 도청하는 공격 DNS 스푸핑 (Spoofing) DNS 서버 캐시를 조작해 의도치 않은 주소로 접속하게 하는 공격 (=DNS 캐시 포이즈닝) 포트 스캐닝 (Port Scanning) 침입 전 어떤 포트가 활성화되어 있는지 확인하는 기법 디렉토리 리스팅 취약점 (Directory Listing) 웹 서버의 인덱싱 기능이 활성화된 경우, 서버 내 모든 디렉토리를 볼 수 있는 취약점 리버스 쉘 공격 (Reverse Shell) 타깃 서버(피해자)가 클라이언트로 접속하게 하고, 클라이언트에서 서버의 쉘을 획득하는 공격 익스플로잇 (Exploit) SW/HW의 버그나 취약점을 악용해 공격하는 행위 스턱스넷 공격 (Stuxnet) 독일 지멘스사의 SCADA 시스템을 목표로 제작된 악성코드 주요 산업 기반 시설의 제어 시스템에 침투하는 공격 크리덴셜 스터핑 (Credential Stuffing) 다른 곳에서 유출된 로그인 정보를 다른 곳에 무작위 대입하는 공격 스피어피싱 (Spear Phishing) 일반적인 메일로 위장한 메일을 발송해 개인정보를 탈취하는 공격 스미싱(Smishing) SMS+피싱 문자메시지를 통해 개인정보를 탈취하거나 소액결제를 유도하는 공격 큐싱(Qshing) QR코드+피싱. QR을 이용한 피싱 공격 봇넷(Botnet) 악성 프로그램에 감염된 컴퓨터들이 네트워크로 연결된 형태 APT 공격(Advanced Persistent Threat) 특정 대상을 목표로 한 지능적/지속적인 공격 공급망 공격 (Supply Chain Attack) SW 개발사의 코드를 수정하거나 배포 서버에 접근해 파일을 변경하는 공격 제로데이 공격 (Zero Day Attack) 보안 취약점이 공표되기 전 신속히 이뤄지는 공격 바이러스(Virus) 컴퓨터 내에서 프로그램이나 실행 가능한 부분을 변형해서 감염시키는 프로그램 웜(Worm) 스스로를 복제하여 전파하는 악성 프로그램 악성 봇(Malicious Bot) 해커의 명령에 의해 원격으로 제어되는 프로그램 (DDos 등에 악용) 랜섬웨어(Ransomware) 암호화 후 복호화를 위해 돈을 요구하는 악성 소프트웨어 이블 트윈(Evil Twin) 공격 합법적인 Wifi 제공자처럼 행세하며 연결된 사용자 정보를 탈취하는 공격 타이포스쿼팅(Typosquatting) 유명 도메인을 미리 등록하는 일로, URL 하이재킹이라고도 부름 사회공학 (Social Engineering) 사람들의 심리와 행동 양식을 교모하게 이용해서 원하는 정보를 얻는 공격기법 예) 상대방의 자만심이나 권한을 이용하는 공격 및 도청 포맷 스트링 공격 (Format String Attack) 포맷 스트링을 인자로 하는 함수의 취약점을 이용한 공격 레이스 컨디션 공격 (Race Condition Attack) 프로세스가 임시 파일을 만들 때, 실행 중에 끼어들어 임시파일을 심볼릭 링크하는 공격 키로거 공격 (Key Logger Attack) 키보드 움직임을 탐지해 주요정보를 빼가는 공격 루트킷 (Rootkit) 불법 해킹에 사용되는 기능을 제공하는 프로그램 모음 CC (Common Criteria) 컴퓨터 보안을 위한 국제 평가 기준 ISMS (Information Security Management System) 정보보호 관리 절차와 과정을 체계적으로 수립하여 지속적으로 관리하고 운영하기 위한 종합적인 체계 PIMS (Personal Information Management System) 기업이 개인정보보호 활동을 체계적·지속적으로 수행하기 위해 필요한 보호 조치 체계를 구축하였는지 점검, 평가하여 기업에게 부여하는 인증제도 PIA (Privacy Impact Assessment) 기존 정보 시스템의 중대한 변경 시, 프라이버시에 미치는 영향에 대하여 사전 조사 및 예측, 검토하여 개선 방안을 도출하는 체계적인 절차 사이버 킬체인 (Cyber Kill Chain) 록히드 마틴, 공격형 방위시스템 OWASP Top 10 웹 애플리케이션의 10가지 보안 취약점에 대한 방안을 제공하는 가이드 CVE (Common Vulnerabilities and Exposures) 소프트웨어의 공통 취약점(CV)을 식별화(E)한 것 (CVE-연도-순서) CWE (Common Weakness Enumeration) 소프트웨어의 공통 약점(CW)을 식별화(E)한 것 핑거프린팅 (Finger Printing) 저작권 정보와 구매자 정보를 콘텐츠에 삽입해 불법 배포자를 추적할 수 있는 기술 워터 마킹 (Water Marking) 디지털 콘텐츠에 저작자 정보를 삽입해, 불법 복제 시 원소유자를 증명하는 기술 트러트스존(Trustzone) 프로세서 안에 독립적인 보안 구역을 따로 두어 중요한 정보를 보호하는 하드웨어 기반의 보안 기술 장착형 인증 모듈 (PAM; Pluggable Authentication Module) 리눅스 시스템 내에서 사용되는 각종 애플리케이션 인증을 위해 제공되는 다양한 인증용 라이브러리 허니팟 (HoneyPot) 일부러 허술하게 만들어 해커에게 노출하는 유인시스템 이상금융거래 탐지시스템 (FDS; Fraud Detection System) 전자금융거래에 사용되는 정보를 종합적으로 분석하여 의심 거래를 탐지하고, 이상 거래를 차단하는 시스템 사이버 위협정보 분석 공유 시스템 (C-TAS; Cyber Threats Analysis System) 사이버 위협정보를 체계적으로 수립해 관계 기관과 자동화된 정보공유를 할 수 있는 시스템 (KISA 주관) TKIP(Temporal Key Integrity Protocol) 임시 키 무결성 프로토콜 - 소프트웨어의 소스코드가 얼마만큼 테스트가 되었는가를 나타내는 지표
- 순환복잡도 : 분기문 수 +1
- 프로그램을 구성하는 문장들이 최소한 한번은 실행될 수 있도록 테스트케이스를 선정
- 프로그램에 있는 분기를 최소한 한번은 실행하게 테스트
- 전체결정문이 적어도 한번은 참과 거짓의 결과를 수행하도록 셋팅
- &&, || 등의 조건을 가진 분기문이 전체조건식의 결과와 관계없이 &&, || 전후의 각 개별 조건식이 참한번, 거짓한 번을 갖도록 테스트 케이스를 만드는 방법
- 결정 명령문 내 각 조건이 적어도 한번은 참과 거짓의 결과가 출력되도록 생성
- 메인제어 모듈(프로그램)으로부터 아래방향으로 제어의 경로를 따라 하향식으로 통합하면서 테스트를 진행
- 넓이우선/ 깊이우선 방식으로 통함
- 최하위 레벨의 모듈 또는 컴포넌트로부터 위측방향으로 제어의 경로를 따라 이동하면서 구축과 테스트를 수행
- 이미 테스트가 완료된 소프트웨어에 변경이 발생할 때 이로 인해 의도하지 않은 오류가 발생하지 않음을 보증하기 위한 테스트
- 기존의 테스트로 다시 테스트 하는 것
- 테스트의 결과가 참인지 거짓인지 판단하기 위해 사전에 정의된 참 값을 입력하여 비교
- - 소프트웨어에서 워터마크 삭제 등과 같이 소프트웨어가 불법으로 변경(unauthorized modifications)되었을 경우, 그 소프트웨어가 정상 수행되지 않게 하는 기법이다. - 소프트웨어 변조 공격을 방어하기 위해 프로그램에 변조검증코드(tamper-proofing code)를 삽입하는 것도 한 방법으로, 변조검증코드의 용도는 첫째 프로그램이 변경되었는지를 탐지하는 것이고, 둘째는 변조가 탐지되었다면 프로그램이 실행되지 않게 한다. - 소프트웨어의 위변조 방지 역공학 기술의 일종으로 디지털 콘텐츠의 관련 산업이나 전자상거래 또는 보호해야 할 소프트웨어가 있는 다양한 산업 분야에 적용된다.
- : 애플리케이션 변경이 있을 때, 수행전과 후의 결과값이 동일한지 확인하는 오라클
- : 샘플링오라클을 제외한 오라클, 특정 입력값에 대해 올바른 결과를 제공하고 나머지 값에 대해서는 휴리스틱(추정) 으로 처리하는 오라클
- : 특정한 몇개의 입력값에 대해서만 기대하는 결과를 제공해주는 오라클
- : 모든 입력값에 대하여 기대하는 결과를 생성함으로 발생된 오류를 모두 검출할 수 있는 오라클
- 아직 통합되지 않은 상위컴포넌트의 동작을 시뮬레이션하는 모의 모듈
- (2) 상향식 통합방법
- (1) 하향식 통합방법
- 테스트는 정황과 비즈니스도메인(분야)에 따라 다르게 수행해야 한다 -> 테스트는 정황에 의존한다.
- (2) 베타테스트
- (1) 알파테스트
- 제어흐름 - 그래프형태
- 다중조건 - 100%
- 조건/결정 - 개+전
- 조건 - 개별
- 5. 테스트 커버리지
- (4) 인수시험
- (3) 시스템시험
- (2) 통합시험
- (1) 단위시험
- 상세설계 단위시험
- 요구분석 시스템시험
- 사용자 환경 설치시험
- : 프로그램의 제어표를 플로우 그래프로 표현하고 순환복잡도를 통해 독립적인 경로의 수를 찾아서 테스트
- : 프로그램에서 변수의 정의와 변수사용의 위치에 초점을 맞추어 검사
- : 프로그램의 반복구조에 초점을 맞추어 검사
- : 프로그램의 제어구문(if, case, else)을 테스트
- 3. 화이트박스테스트 종류(구조기반 테스트) -> 조루데기
- (5) 비교테스트
- (4) 오류예측테스트
- : 입력값을 원인으로, 효과를 출력값으로 선정하는 테스트기법
- [입출력] 점수: 90~100 → 금액: 700만원 점수: 80~89 → 금액: 500만원 점수: 70~79 → 금액: 300만원 점수: 0~69 → 금액: 0만원 [테스트 입력값] -1, 0, 1, 69, 70, 71, 79, 80, 81, 89, 90, 91, 99, 100, 101
- ex) 90~100점이 A학점이라고 할때 90~100점(경계의 유효한값)과 89점 또는 101점(가장 가까운 유효하지 않은 값)
- (2) 경계값분석 테스트
- : 입력값의 범위를 유사한 특징을 갖는 동등그룹으로 나누고 각 그룹마다 대표값을 선정하는 테스트 기법
- 2. 블랙박스테스트 종류(명세기반 테스트) -> 동경원오비(동경해서 되고싶은 워너비(원오비))
- (3) 그레이박스 테스트
- (2) 화이트박스 테스트
- (1) 블랙박스 테스트
- 11) Visitor(방문자) : 클래스들의 데이터 구조에서 처리 기능을 분리하여 별도로 구성함으로써, 클래스를 수정하지 않고도 새로운 연산의 추가가 가능함,오퍼레이션을 별도의 클래스에 새롭게 정의한 패턴
- 9) State (상태): 객체 내부 상태에 따라서 행위를 변경하는 패턴
- 7) Memento : 상태 값을 미리 저장해두었다가 복구하는 패턴
- 5) Iterator : 내부 표현은 보여주지 않고 순회하는 패턴
- 3) Chain of Responsibility : 객체끼리 연결 고리를 만들어 내부적으로 전달하는 패턴
- 1) Interpreter(통역사) : 언어 규칙 클래스를 이용하는 패턴
- 7) Adapter (어댑터): 인터페이스로 인해 함께 사용하지 못하는 클래스를 함께 사용하도록 하는 패턴
- 5) Proxy (프록시): 대리인이 대신 그 일을 처리하는 패턴
- 3) Facade(퍼싸드) : 하나의 인터페이스를 통해 느슨한 결합을 제공하는 패턴
- 1) Bridge(브릿지) : 추상과 구현을 분리해서 결합도를 낮춘 패턴
- 5) Singgleton (싱글톤): 유일한 하나의 인스턴스를 보장하도록 하는 패턴
- 3) Factory Method(팩토리 메소드) : 상위 클래스에서 객체를 생성하는 인터페이스를 정의하고 하위 클래스에서 인스턴스를 생성하는 패턴
- 1) Builder(빌더) : 생성 단계를 캡슐화 해서 구축 공정을 동일하게 이용하도록 하는 패턴
- ① 보안 체계 및 모델
- (3) ( (2) ) 조인에서 조인에 참여한 속성이 두 번 나오지 않도록 중복된 속성을 제거한 결과를 반환한다.
- (1) 조인에 참여하는 두 릴레이션의 속성 값을 비교하여 조건을 만족하는 튜플만 반환한다.
- ② 조건이 정확하게 '=' 등호로 일치하는 결과를 반환한다.
SSO:
커버로스에서 사용되는 기술로 한 번의 인증 과정으로 여러 컴퓨터상의 자원을 이용할 수 있도록 해주는 인증 기술
1. 소프트웨어 생명주기 모델
- 폭프나반
- 폭포수/프로토타이핑/나선형/반복적
2. 나선형 모델 절차
- 계위개고
- 계획 및 정의/위험분석/개발/고객평가
3. 객체지향구성요소
- 클객 메 메인속
- 클래스/객체/메서드/메시지/인스턴스/속성
4. 객체지향기법
- 캡상다추정관
- 캡슐화/상속성/다형성/추상화/정보은닉/관계성
5. 럼바우
- 객동기
- 객체/동적/기능 모델링
- 디자인패턴유형
- 생구행
- 생성/구조/행위
6-1. 생성패턴
- 생빌 프로 팩앱싱
- 생성(빌더/프로토타입/팩토리 메서드/앱스트랙 팩토리/싱글톤)
6-2. 구조패턴
- 구 브데 퍼플 프록 컴 어
- 구조(브리지/데코레이터/퍼사이드/플라이웨이트/프록시/컴포지트/어댑터)
- DBMS 현행 시스템 분석 시 고려사항
- 가성호기구
- 가용성/성능/상호 호환성/기술지원/구축비용
- 정형 기술 검토
- 동워인
- 동료검토/워크스루/인스펙션
9. UI 유형
- CG NO
- CLI/GUI/NUI/OUI
10. UI 설계 원칙
- 직유 학유
- 직관성/유효성/학습성/유연성
11. UI 화면 설계 구분
- 와스프
- 와이어프레임/스토리보드/프로토타입
12. UML의 특징
- 가구명문
- 가시화/구축/명세화/문서화 언어
12-1. UML 구성요소
- 사관다
- 사물/관계/다이어그램
13. 데이터 모델링 절차
- 요개논물
- 요구조건 분석/개념적 설계/논리적 설계/물리적 설계
14. 순수 관계 연산자
- 셀프조디
- 셀렉트/프로젝트/조인/디비전
15. 이상 현상의 종류
- 삽삭갱
- 삽입 이상/삭제 이상/갱신 이상
16. EAI 구축 유형
- 포허메하
- 포인트 투 포인트/허브 앤 스포크/메시지 버스/하이브리드
17. 인터페이스 구현 검증 도구
- 엑스피 엔셀웨
- xUnit/STAF/FitNesse/NTAF/Selenium/watir
18. 연산자 우선순위
- 증산시 관비 논삼대
- 증감/산술/시프트/관계/비트/논리/삼항/대입
19. 트랜잭션의 특성
- ACID
- Atomicity/Consistency/Isolation/Durability
20. 회복기법 종류
- 회로체크
- 회복기법(로그 기반/체크 포인트/그림자 페이징)
21. DDL 명령어
- 크알드트
- CREATE/ALTER/DROP/TRUNCATE
22. DML 명령어
- 세인업대
- SELECT/INSERT/UPDATE/DELETE
23. SELECT 명령문
- 셀프 웨 구해오
- SELECT/FROM/WHERE/GROUP BY/HAVING/ORDER BY
24. GRANT 명령어
- 그온투
- GRANT 권한 ON 테이블 TO 사용자
25. REVOKE 명령어
- 리온프
- REVOKE 권한 ON 테이블 FROM 사용자
26. 형상관리의 절차
- 식통감기
- 형상 식별/형상 통제/형상 감사/형상 기록
27. 응집도의 유형
- 우논시절 통순기
- 우연적/논리적/시간적/절차적/통신적/순차적/기능적 응집도
28. SW 개발 보완의 3대 요소
- 기무가
- 기밀성/무결성/가용성
- 테스트 오라클 종류
- 참샘휴일
- 참/샘플링/휴리스틱/일관성 검사 오라클
30. 테스트 레벨 종류
- 단통시인
- 단위/통합/시스템/인수 테스트
31. 하향식 및 상향식 통합 수행 방식
- 하스 상드
- 하향시(스텁), 상향식(드라이버)
32. 애플리케이션 성능측정지표
- 처응경자
- 처리량/응답시간/경과시간/자원사용률
- 클린코드 작성 원칙
- 가단의 중추
- 가독성/단순성/의존성 최소/중복성 제거/추상화
34. 선점 스케줄링 알고리즘
- SMMR
- SRT/MLQ/MLFQ/Round Robin
35. 비선점 스케줄링 알고리즘
- 우기 HFS
- 우선순위/기한부/HRN/FCFS/SJF
36. 교착상태 발생 조건
- 상점비환
- 상호 배제/점유와 대기/비선점/환형 대기
37. 프로토콜의 기본 3요소
- 구의타
- 구문/의미/타이밍
38. IPv4 전송방식
- 유멀브**(브4)**
- 유니캐스트/멀티캐스트/브로드캐스트
39. IPv6 전송방식
- 유멀애
- 유니캐스트/멀티캐스트/애니캐스트
40. TCP 특징
- 신연흐흔
- 신뢰성 보장/연결 지향적 특징/흐름제어/혼잡제어