작은 구성 요소를 빠르게 개발, 변화에 민감
계획 → 분석 → 설계 → 구현 → 테스트 → 유지보수
도출 → 분석 → 명세 → 확인

| 다이어그램 종류 | 설명 |
|---|---|
| 패키지 다이어그램 (Package Diagram) | 시스템의 패키지를 정의하고 이들 간의 관계를 나타내는 다이어그램. 패키지는 관련된 클래스, 컴포넌트 등의 그룹을 나타냄. |
| 클래스 다이어그램 (Class Diagram) | 시스템의 클래스와 이들 간의 관계를 나타내는 구조적 다이어그램. 클래스의 속성과 메서드를 정의함. |
| 시퀀스 다이어그램 (Sequence Diagram) | 객체 간의 상호작용을 시간 순서에 따라 나타내는 다이어그램. 메시지의 흐름과 객체의 생명주기를 보여줌. |
| 유스케이스 다이어그램 (Use Case Diagram) | 시스템의 기능과 사용자(액터) 간의 상호작용을 나타내는 다이어그램. 시스템의 요구사항을 시각적으로 표현함. |
| 상태 다이어그램 (State Diagram) | 객체의 상태 변화와 그에 따른 이벤트를 나타내는 다이어그램. 객체의 생명주기를 설명함. |
| 활동 다이어그램 (Activity Diagram) | 시스템의 프로세스나 작업 흐름을 나타내는 다이어그램. 작업의 순서와 조건을 시각적으로 표현함. |
| 컴포넌트 다이어그램 (Component Diagram) | 시스템의 컴포넌트와 그들 간의 관계를 나타내는 다이어그램. 소프트웨어 시스템의 모듈 구조를 설명함. |
| 배치 다이어그램 (Deployment Diagram) | 시스템의 물리적 배치와 구성 요소 간의 관계를 나타내는 다이어그램. 하드웨어와 소프트웨어 간의 관계를 설명함. |
UI: 사용자 접하는 화면 디자인
UX: 사용자가 화면을 이용하면서 느끼는 경험
소프트웨어의 변경 사항을 추적하고 관리하여 링관성과 품질을 유지하는 절차 도구
⭐형상관리 절차
형상관리 도구
CVS, SVN(중앙집중형), GIT(분산형), Clear Case, BitKeeper등
소스 코드 컴파일, 테스트, 패키징등을 자동화하여 소프트웨어를 실행 가능한 형태로 만드는 도구
CI/CD
CI 지속적인 통합 / CD 지속적인 배포
릴리즈노트
배포될때 제공해주는데 어떤 부분이 변경됬는지에 대한 내용들이 기록 되어있다.
응집도
| 구분 | 이상적인 수준 | 설명 |
|---|---|---|
| 응집도 | 기능적 응집도 | 모듈이 단일한 목적을 가지고 수행하는 형태 |
| 순차적 응집도 | 모듈이 이전 단계의 출력값을 다음 단계의 입력값으로 사용하는 형태 | |
| 통신적 응집도 | 동일한 데이터를 사용해 여러 작업을 수행하는 형태 | |
| 절차적 응집도 | 모듈이 특정 순서로 실행되어야 하는 경우 | |
| 시간적 응집도 | 같은 시간에 관련된 작업을 수행하는 형태 | |
| 논리적 응집도 | 유사한 성격의 작업들이 그룹화된 형태 | |
| 우연적 응집도 | 서로 관련 없는 작업들이 모여 있는 형태 |
결합도
| 구분 | 이상적인 수준 | 설명 |
|---|---|---|
| 결합도 | 자료 결합도 | 모듈 간에 단순한 데이터 값을 전달하는 방식 |
| 스탬프 결합도 | 모듈 간의 인터페이스로 데이터 구조(배열 등)를 통해 전달되는 방식 | |
| 제어 결합도 | 한 모듈이 다른 모듈의 동작을 제어 신호를 이용하여 통신하거나 제어 요소(Function Code, Switch, Tag, Flag)를 전달하는 방식 | |
| 외부 결합도 | 다른 모듈의 외부 변수에 의존하는 방식 | |
| 공통 결합도 | 여러 모듈이 같은 전역 변수를 사용하는 방식 | |
| 내용 결합도 | 한 모듈이 다른 모듈의 내부 데이터에 직접 접근하는 방식 |
기업 내 다양한 애플리케이션 간의 데이터를 통합하고 상호 운용
📄 SSO: 한번의 로그인으로 여러개의 애플리케이션을 이용할 수 있음
-결합 집중(파레토 법칙): 결함은 특정 모듈이나 기능에 집중되어 나타난다. (20% 핵심모듈에서 80%의 결함이 발생한다.)
테스트의 결과가 참인지 거짓인지 판단하기 위해 미리 정의된 참값을 입력하겨 구분하는 기법
⭐화이트 박스
내부 구조와 코드를 기반으로 테스트를 수행하며, 프로그램의 동작을 직접 검증한다.
⭐블랙박스 테스트
프로그램의 내부 구조를 고려하지 않고, 입력과 출력만으로 기능을 검증한다.
테스트가 코드의 어느 부분을 얼마나 커버(수행)했는지를 측정하는 기준
리펙토링
기능의 변경 없이 내부 구조를 개선하는 방법
튜닝
튜닝 SQL문을 최적화
⭐수적향예
디지털 콘텐츠의 저작권을 보호하고, 불법 복제 및 무단 사용을 방지하기 위해 사용되는 기술
DRM의 구성 및 흐름

객체 생성과 관련된 패턴으로, 객체 생성 메커니즘을 캡슐화하여 클라이언트 코드의 독립성을 높입니다.
| 패턴 이름 | 설명 |
|---|---|
| Singleton | 애플리케이션 전체에서 단 하나의 인스턴스만 생성되고, 이 인스턴스에 전역적으로 접근할 수 있는 패턴입니다. 주로 설정 정보를 관리하거나 자원 관리를 위해 사용됩니다. |
| Factory Method | 객체 생성의 인터페이스를 정의하고, 서브 클래스에서 어떤 객체를 생성할지를 결정하는 패턴입니다. 이를 통해 클라이언트는 구체적인 클래스에 의존하지 않고도 객체를 생성할 수 있습니다. |
| Abstract Factory | 관련된 객체들의 집합을 생성하기 위한 인터페이스를 제공합니다. 클라이언트는 구체적인 클래스에 의존하지 않고, 일관된 객체 집합을 사용하여 시스템의 유연성을 향상시킬 수 있습니다. |
| Builder | 복잡한 객체를 생성하는 과정에서 단계를 분리하여, 같은 생성 과정에서 다양한 표현의 객체를 만들 수 있게 지원합니다. 주로 복잡한 객체, 예를 들면 게임 캐릭터나 보고서 생성에 유용합니다. |
| Prototype | 기존 객체를 복제하여 새로운 객체를 생성하는 패턴입니다. 객체 생성 시 성능 및 메모리 문제를 해결하기 위해 사용되며, 변화가 적은 객체를 기반으로 새 객체를 생성할 때 이상적입니다. |
객체를 조합하여 더 큰 구조를 만드는 패턴으로, 클래스와 객체의 조합을 통해 유연성을 제공합니다.
| 패턴 이름 | 설명 |
|---|---|
| Adapter | 서로 다른 인터페이스를 가진 클래스들이 함께 작업할 수 있도록 변환하는 구조입니다. 사용자가 원하는 형태로 데이터를 변경하여 호환성을 높입니다. |
| Bridge | 구현과 추상을 분리하여, 두 부분이 독립적으로 확장될 수 있는 구조를 제공합니다. 주로 두 개의 상위 클래스와 하위 클래스를 사용하는 경우에 유용합니다. |
| Composite | 부분-전체 관계를 표현하는 패턴으로, 개별 객체와 복합 객체를 동일하게 다룰 수 있는 방법을 제공합니다. 주로 트리 구조를 통해 복합 객체를 구성할 때 사용됩니다. |
| Decorator | 기존 객체에 새로운 기능을 추가하는 구조로, 확장성을 높이기 위해 동적으로 행동을 추가할 수 있게 해줍니다. 예를 들어, 그래픽 객체에 새로운 속성을 추가할 수 있습니다. |
| Facade | 복잡한 시스템에 대한 단순한 인터페이스를 제공하여, 클라이언트가 내부 구현에 대해 몰라도 시스템을 사용할 수 있도록 만들어줍니다. 주로 서브시스템과의 의존성을 줄이는 데 사용됩니다. |
| Proxy | 객체에 대한 접근을 제어하는 객체로, 실제 객체 대신 중간에 위치하여 요청을 검증하거나 캐싱을 할 수 있습니다. 원격 프로시저 호출이나 가상 프록시로 활용됩니다. |
알고리즘이나 객체 간의 책임 분배에 관련된 패턴으로, 객체 간의 상호작용을 정의합니다.
| 패턴 이름 | 설명 |
|---|---|
| Iterator | 컬렉션의 내부 구조를 숨기고 순차적으로 접근할 수 있는 방법을 제공하는 패턴입니다. 이를 통해 클라이언트는 직접적으로 컬렉션의 구조에 의존하지 않게 됩니다. |
| Observer | 상태 변화에 대한 알림을 주는 패턴으로, 누군가가 상태를 변경하면 이를 구독자에게 통지합니다. 주로 이벤트 시스템에서 사용됩니다. |
| Strategy | 여러 알고리즘을 각각 캡슐화하고 이들을 상호 교환 가능하게 하여 다형성을 활용하는 패턴입니다. 이를 통해 런타임 시에 어떤 알고리즘을 사용할지 결정할 수 있습니다. |
| Command | 요청을 객체로 캡슐화하여 요청의 매개변수화 및 요청 실행의 저장, 큐잉, 로깅 등의 작업을 가능하게 하여 요청 처리의 유연성을 높입니다. |
| State | 객체의 상태 변화에 따라 행동을 변경할 수 있는 패턴입니다. 객체가 자신의 상태를 전환하게 하여 코드의 복잡성을 줄일 수 있습니다. |
| Template Method | 알고리즘의 구조를 정의하고, 알고리즘의 일부 단계를 서브 클래스에서 정의하도록 하여 일정한 프로세스를 재사용할 수 있게 합니다. |
| Chain of Responsibility | 요청 처리를 여러 객체에 연쇄적으로 분배하는 패턴으로, 요청 처리의 흐름을 동적으로 조정할 수 있습니다. |
| Mediator | 객체들 간의 상호작용을 중재하여 복잡한 연결을 관리하는 패턴입니다. 주로 복잡한 시스템 내에서 객체 간의 의존성을 줄이기 위해 사용됩니다. |
스키마는 데이터베이스의 구조와 제약 조건을 정의하는 설계도(청사진)이다.
⭐3계층 스키마
⭐독립성

데이터 모델
데이터의 구조, 연산, 제약 조건을 논리적 또는 개념적으로 표현한 설계 방법
⭐⭐설계 단계
요구 조건 분석 → 개념적 설계 → 논리적 설계 → 물리적 설계
데이터를 테이블 형태로 구성하여 각 테이블 간의 관계를 기본키와 외래키로 연결하는 데이터 베이스 모델
| 용어 | 설명 |
|---|---|
| 튜플 | 데이터베이스의 행(row)으로, 데이터의 집합입니다. |
| 릴레이션 인스턴스 | 특정 시점에 릴레이션에 저장된 데이터 전체입니다. |
| 카디널리티 | 특정 데이터 집합의 유니크한 값의 개수입니다. |
| 릴레이션 | 같은 속성을 가진 튜플의 집합으로, 테이블 구조를 의미합니다. |
| 속성 | 릴레이션의 컬럼으로, 각 튜플에서 데이터 유형을 정의합니다. |
| 기본 키 | 테이블에서 각 행을 고유하게 식별하는 열(column)입니다. |
| 외래 키 | 다른 테이블의 기본 키를 참조하여 관계를 정의하는 속성입니다. |
| 무결성 제약조건 | 데이터의 정확성과 일관성을 보장하는 규칙입니다. |
| 정규화 | 데이터베이스의 중복성을 최소화하고 무결성을 높이는 과정입니다. |
| 집합 | 같은 유형의 원소들의 모임으로, 데이터베이스에서는 튜플의 집합을 의미합니다. |
| 스키마 | 데이터베이스의 구조를 정의하는 메타정보의 집합입니다. |
| 트랜잭션 | 데이터베이스에서 수행되는 일련의 작업으로, 원자성을 갖습니다. |
| 인덱스 | 데이터 검색 성능을 향상시키기 위해 테이블의 특정 컬럼에 대한 구조입니다. |
| SQL | 데이터베이스에 대해 질의하고 조작하기 위한 표준 프로그래밍 언어입니다. |
데이터의 비정상적인 처리가 발생하여 무결성이 깨지는 현상
한 속성의 값이 다른 속성에 의해 고유하게 결정되는 관계
데이터 중복을 줄이고 일관성을 유지하기 위해 데이터를 구조적으로 분해하는 과정

성능 향상을 위해 정규화된 데이터베이스 구조를 의도적으로 일부 결합하거나 중복을 허용하는 과정
이중화
데이터베이스의 고가용성을 보장하기 위해 동일한 데이터를 복제하여 두 개 이상의 서버에 저장하는 방식
백업
RTO/RPO
RTO : 복구 시간 목표
RPO: 복구 시점 목표 (손실된 데이터 양 관련)
테이블에서 행을 고유하게 실별하는 속성 또는 속성들의 집합
⭐유일성: 키 값이 중복되지 않음
⭐최소성: 키가 행을 고유하게 식별하는 데 필요한 최소한의 속성들로 구성
종류

데이터의 일관성과 정확성을 유지하기 위한 규칙
| 무결성 종류 | 설명 |
|---|---|
| 개체 무결성 (Entity Integrity) | 각 테이블의 기본 키는 NULL이 될 수 없으며, 기본 키의 값은 고유해야 함. 이를 통해 각 레코드가 식별 가능하게 함. |
| 참조 무결성 (Referential Integrity) | 외래 키는 반드시 존재하는 기본 키를 참조해야 하며, 이를 통해 테이블 간의 관계를 유지하고 데이터의 일관성을 보장함. |
| 도메인 무결성 (Domain Integrity) | 각 열의 데이터 타입과 값의 범위를 정의하여, 데이터 입력 시 유효한 값만 저장되도록 하는 제약 조건. |
| 사용자 정의 무결성 (User-defined Integrity) | 특정 비즈니스 규칙이나 요구사항에 따라 설정하는 무결성 제약 조건. 예를 들어, 특정 열의 값이 특정 조건을 만족해야 함. |
| 논리적 무결성 (Logical Integrity) | 데이터의 논리적 일관성을 유지하기 위한 제약. 예를 들어, 특정 조건을 만족하는 데이터를 유지하도록 강제함. |
데이터베이스에서 하나의 논리적 작업 단위를 이루는 연산들의 집합
⭐ACID 성질
트랜잭션의 상태
DDL(Data Definition Language) - 데이터 정의어
DML(Data Manipulation Language) - 데이터 조작어
DCL (Data Control Language) - 데이터 제어어
DDL(Data Definition Language)
CREATE TABLE 사원 (
사원번호 INT PRIMARY KEY,
이름 VARCHAR(50),
주소 VARCHAR(100),
부서 VARCHAR(50)
);
-- 컬럼 추가
ALTER TABLE 사원
ADD 나이 INT;
-- 컬럼 수정
ALTER TABLE 사원
ALTER COLUMN 이름 VARCHAR(100);
-- 컬럼 삭제
ALTER TABLE 사원
DROP COLUMN 주소;
DROP TABLE 테이블명;
RENAME TABLE 사원 TO 직원;
TRUNCATE TABLE 사원;
DML(Data Manipulation Language) - 데이터 조작어
SELECT 컬럼1, 컬럼2, ...
FROM 테이블명
WHERE 조건;
SELECT * FROM 테이블명;
INSERT INTO 테이블명 (컬럼1, 컬럼2, ...)
VALUES (값1, 값2, ...);
UPDATE 테이블명
SET 컬럼1 = 값1, 컬럼2 = 값2, ...
WHERE 조건;
DELETE FROM 테이블명
WHERE 조건;
기타
SELECT * FROM 테이블명
WHERE 조건1 AND 조건2;
SELECT * FROM 테이블명
ORDER BY 컬럼1 ASC|DESC;
SELECT 컬럼1, COUNT(*)
FROM 테이블명
GROUP BY 컬럼1;
SELECT *
FROM 테이블1
INNER JOIN 테이블2 ON 테이블1.컬럼 = 테이블2.컬럼;
SELECT *
FROM 테이블1
LEFT JOIN 테이블2 ON 테이블1.컬럼 = 테이블2.컬럼;
병행제어 문제점
⭐병행제어 기법
반입(하드 디스크 프로그램) → 배치(주기억 장치) → 교체(한정적인 공간)
반입
배치
교체
페이지 교체 알고리즘
1) FLFO(First In First Out)
가장 먼저 적재된 페이지를 교체
2) OPT(Optimal replacement, 최적 교체)
미래에 가장 오랫동안 사용되지 않을 페이지를 교체
1) LRU(Least Recently Used)
가장 오랜동안 사용되지 않을 페이지를 교체
1) LFU(Least Frequently Used)
사용 빈도가 가장 적은 페이지를 교체
1) NUR(Not Used Recently)
참조 비트와 변형 비트를 사용하여 최근 사용 여부를 확인
1) SCR(Second Chance Replacement)
FLFO 단점을 보완한 기법
컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램
⭐스레드(Thread)
프로세스 내에서 실행되는 흐름의 단위, 사용자 수준의 스레드, 커널 수준의 스레드

PCB는 운영체제가 프로세스의 정보를 저장하는 공간
하나의 프로세스가 CPU 사용을 마치고 다른 프로세스가 CPU를 사용하도록 전환하는 과정
주기억장치의 한정적인 공간 때문에 보조기억장치(하드디스크)의 일부를 주기억장치처럼 사용하는 기법
가상기억 장치 기타 관리사항
스래싱(Thrashing)
프로세스 처리 시간보다 페이지 교체에 소요되는 시간이 더 많아지는 현상
워킹 셋(Working Set)
스레싱을 극복하기 위해 프로세스가 일정 시간 동안 자주 참조하는 페이지들의 집합
페이지 부재
프로세스 실행 중 필요한 페이지가 주기억장치에 없는 상황
⭐선점형 스케줄링(Preemptive)
운영체제가 실행 중인 프로세스부터 CPU를 강제로 빼앗을 수 있는 방식
종류
| 스케줄링 알고리즘 | 설명 |
|---|---|
| Round Robin | 각 프로세스에 일정 시간 할당 후 다음 프로세스로 전환하는 스케줄링 방식. |
| SRT (Shortest Remaining Time) | 남은 실행 시간이 가장 짧은 프로세스를 우선적으로 실행하는 방식. |
| 다단계 큐 (MLQ, Multi-Level Queue) | 우선순위에 따라 여러 큐로 나누어 프로세스를 관리하는 방식. |
| 다단계 피드백 큐 (MFQ, Multi-Level Feedback Queue) | 프로세스의 실행 시간에 따라 큐 간 이동을 허용하는 유연한 스케줄링 방식. |
⭐비선점형 스케줄링(Non-preemptive)
프로세스가 CPU를 점유하고 있다면 이를 빼앗을 수 없는 방식
종류
| 스케줄링 알고리즘 | 설명 |
|---|---|
| FCFS (First-Come, First-Served) | 도착한 순서대로 프로세스를 실행하는 간단한 스케줄링 방식. |
| SJF (Shortest Job First) | 실행 시간이 가장 짧은 프로세스를 우선적으로 실행하는 방식. |
| HRN (Highest Response Ratio Next) | 응답 비율이 가장 높은 프로세스를 우선 실행하는 방식. (대기 시간 + 작업 시간) / 작업시간 |
| 우선순위 (Priority Scheduling) | 각 프로세스에 우선순위를 부여하여 높은 우선순위의 프로세스를 먼저 실행하는 방식. |
| 기한부 (Deadline Scheduling) | 프로세스의 기한을 고려하여 기한 내에 완료될 수 있도록 스케줄링하는 방식. |
병행 프로세스
두 개 이상의 프로세스가 동시에 존재하여 실행 상태에 있는 것
임계 구역: 한 번에 하나의 프로세스만이 접근할 수 있도록 지정된 지역
상호 배체(Mutual Exclusion): 공유 공간을 사용 중일 때 사용하지 못하도록 하는 제어 기법
동기화 기법: 하나의 자원에 대한 권한/순서를 조정해주는 기법
세마포어(Semaphore)
모니터(Monitor)
교착상태(Dead Lock)
상호 배제에 의해 나타나는 문제점으로, 여러 프로세스가 자원을 점유한 상태에서 서로 다른 프로세스의 자원을 요구하며 무한정 기다리는 현상
하드 디스크에 저장된 데이터에 접근하기 위해 디스크 헤드의 움직임을 최적화하는 기법
FCFS (Frist Come Fist Served)
Shortest Seek Time First(SSTF)
SCAN
C-SCAN
LOOK
C-Look
N-STEP SCAN
에션바흐(Eschenbach)기법
chmod 751
- 사용자(User): 읽기(4)/쓰기(2)/실행(1) = 4 + 2+ 1 = 7
- 그룹(Group): 읽기(4)/실행(1) = 4 + 1 = 5
- 기타(Ohter): 실행(1) = 1

여러 대의 텀퓨터와 주변장치가 통신 네트워크를 구성하여 통신하는 망
학교, 건물, 사무실 등 가까운 거리에 한정된 망
LAN 구성 요소
데이터 링크 계층에서 사용되는 비트 지향 프로토콜
FCS를 통해 오류를 검출하고, 순차적인 번호 매김과 확인 응답을 통해 흐름을 제어한다.
HDLC 스테이션
HDLC 전송 모드

하나의 통신 회선을 여러 가입자가 동시에 사용할 수 있게 하는 기능
역다중화기와 집중화기
역다중화기(Inverse MUX)
하나의 고속 통신 회선 데이터를 받아 여러 개의 저속 회선으로 나누어 전송
집중화기(Concentrator)
여러 개의 저속 회선에서 데이터를 버퍼에 축적한 후, 이를 모아서 하나의 고속 회선으로 전송하는 장치
인터넷
TCP/IP 프로토콜을 기반으로 컴퓨터와 네트워크들이 연결된 광범위한 통신만
IP
인터넷에서 컴퓨터나 다른 네트워크 장치를 식별할 수 있는 고유한 번호

IPv6 / IPv4 주소 분류
| 주소 분류 | IPv4 설명 | IPv6 설명 |
|---|---|---|
| 유니캐스트 (Unicast) | 단일 송신자와 단일 수신자 간의 통신 | 단일 송신자와 단일 수신자 간의 통신 |
| 멀티캐스트 (Multicast) | 단일 송신자와 다중 수신자 간의 통신 | 단일 송신자와 다중 수신자 간의 통신 |
| 브로드캐스트 (Broadcast) | 같은 네트워크의 모든 장비에게 보내는 통신 | |
| 애니캐스트 (Anycast) | 그룹 내 가장 가까운 수신자에게 전달 |
| 클래스 | 옥텟 IP | 최상 비트 | 호스트 수 | 네트워크 수 | 용도 |
|---|---|---|---|---|---|
| A | 0.0.0.0 ~ 127.255.255.255 | 0 | 약 16,777,214 | 128 | 대규모 네트워크 |
| B | 128.0.0.0 ~ 191.255.255.255 | 10 | 약 65,534 | 16,384 | 중규모 네트워크 |
| C | 192.0.0.0 ~ 223.255.255.255 | 110 | 254 | 2,097,152 | 소규모 네트워크 |
| D | 224.0.0.0 ~ 239.255.255.255 | 1110 | N/A | N/A | 멀티캐스트 |
| E | 240.0.0.0 ~ 255.255.255.255 | 1111 | N/A | N/A | 연구 및 실험용 (예약) |
하나의 큰 네트워크를 더 작은 네트워크로 분할한 것
서브네팅(Subnetting)
하나의 IP 네트워크를 더 작은 네트워크 영역으로 나누는 과정
서브넷 마스크(Subnet Mask)
IP 주소에서 네트워크 부분과 호스트 부분을 구분하는 데 사용
NAT(NetWork Address Translation)
도메인 이름을 IP 주소로 변환하거나 그 반대의 작업을 수행하는 시스템
QOS(Quality of Service)
네트워크 자원을 효율적으로 사용하여 특정 트래픽의 성능과 속도를 보장하는 기술
VPN(Virtual Private Network)
공용 네트워크를 통해 사설 네트워크에 안전하게 접속할 수 있게 하는 기술
DHCP(Dynamic Host Configuration Protocol)
네트워크 장치에 자동으로 IP 주소를 할당하는 프로토콜
컴퓨터나 통신 장비 간 원활한 데이터 교환을 위한 표준화된 통신 규약
통신 프로토콜의 기본요소
프로토콜의 기능
흐름제어
수신측의 처리 능력에 맞춰 송신측에서 데이터의 전송량이나 속도를 조절하는 기능
오류제어
전송 중에 발생하는 오류를 검출하고 정정하는 기능, ARQ를 사용하여 재전송 기반 오류 제어를 수행
Stop and Wait ARQ
Go Back N ARQ
Selective Repeat ARQ
Adaptive ARQ
전진 오류 수정(FCE, Forward Error Correction)
수신측에서 재전송 요구 없이 스스로 오류를 검출하고 수정하는 방식
후진 오류 수정(BEC, Backward Error Correction)
오류 발견 시 송신측에 재전송을 요구하는 방식
네트워크 프로토콜 디자인과 통신을 7개의 계층으로 나누어 설명하는 모델
OSI 7계층 구조 (응.표.세.전.네.데.물)

| 계층 | 특징 | PDU | 장비 |
|---|---|---|---|
| 1) 물리 계층 | 데이터를 전기적 신호로 변환하여 전송 | 통신 케이블, 랜카드, 리피터, 허브 | |
| 2) 데이터 링크 계층 | 포인트 투 포인트의 신뢰성 있는 데이터 전송 보장 | 프레임 | 스위치, 브리지 |
| 3) 네트워크 계층 | 데이터를 목적지까지 라우팅 | 패킷 | 라우터, L3 스위치 |
| 4) 전송 계층 | 양 종단 간 신뢰성 있는 데이터 전송 책임 | 세그먼트/데이터그램 | TCP, UDP |
| 5) 세션 계층 | 양 끝단의 응용 프로세스 간 통신 관리 | ||
| 6) 표현 계층 | 다른 데이터 표현 형식 간 변환 담당 | ||
| 7) 응용 계층 | 사용자 인터페이스, 응용 프로그램 간 통신 관리 |
현재 인터넷에 널리 사용되는 프로토콜 모델
| OSI 7계층 | TCP/IP 계층 | 4계층 프로토콜 |
|---|---|---|
| 응용계층 | 응용계층 | TCP - HTTP(80), FTP(20, 21), SMTP(25),TELNET(23) UDP - DNS(53), SNMP(161, 162), DHCP(67) |
| 표현계층 | ||
| 세션 계층 | ||
| 전송 계층 | 전송 계층 | TCP, UDP |
| 네트워크 계층 | 인터넷 계층 | IP, ICMP, IGMP, ARP, RARP |
| 데이터 링크 계층 | 네트워크 인터페이스 계층 | Ethernet, X.25, RS-232C, Wi-Fi |
| 물리 계층 |
프로토콜
| 프로토콜 | 설명 |
|---|---|
| TCP 프로토콜 | |
| HTTP | 하이퍼 텍스트 문서 전송을 위한 프로토콜 - 80 포트 사용 |
| FTP | 파일 전송에 사용되는 프로토콜 - 데이터 20바이트, 제어 21번 |
| SMTP | 이메일 전송에 사용되는 프로토콜 - 25 포트 사용 |
| UDP 프로토콜 | |
| DNS | 도메인 이름을 IP 주소로 변환 - 53 포트 사용 |
| SNMP | 장비 관리 |
| DHCP | IP 주소 자동 할당 및 관리 프로토콜 |
네트워크에서 데이터 패킷의 경로 설정(Path Determination)과 스위칭(Switching)을 담당하는 장비

1) ISMS(정보보호 관리체계 인증) (Information Security Mangment System)
2) PIMS(개인정보보호 관리체계) (Personal Information Mangment System)
3) ISMS-P(정보보호 및 개인정보보호 관리체계 인증)
4) ITSEC(Information Technology Security Evaluation Criteria)
5) CC(Common Criteria)
암호화와 복호화에 동일한 키를 사용하는 암호화 빙식
블록암호 알고리즘
| 알고리즘 | 블록 크기 | 키 길이 | 특징 |
|---|---|---|---|
| DES | 64비트 | 56비트 | 오래된 알고리즘, 안전성 문제로 사용 감소 |
| 3-DES | 64비트 | 112/168비트 | 2개의 키,DES의 개선판, 세 번 암호화 (암호 -> 복호 -> 암호) |
| AES | 128비트 | 128/192/256비트 | DES 한계 극복 미국, 현재 가장 많이 사용되는 알고리즘 |
| SKIPJACK | 64비트 | 80비트 | 미국 정부의 비밀 암호 알고리즘 |
| IDEA | 64비트 | 128비트 | 스위스, 강력한 보안성, 오래된 알고리즘 |
| SEED | 128비트 | 128비트 | 한국에서 개발된 블록 암호 |
| ARIA | 128비트 | 128/192/256비트 | 한국의 표준 암호 알고리즘 |
| LEA | 128비트 | 128/192/256비트 | 경량 블록 암호, IoT에 적합 |
스트림암호 알고리즘
| 알고리즘 | 특징 |
|---|---|
| LFSR | 선형 피드백 시프트 레지스터를 사용, 빠르고 간단한 구현 |
| RC4 | 고속 스트림 암호, 키 스트림 생성 방식, 다양한 프로토콜에서 사용 |
| A5 | GSM 통신에서 사용되는 스트림 암호, 64비트 키 사용 |
암호화와 복호화에 서로 다른 키를 사용하는 방식
| 구분 | 알고리즘 이름 | 특징 |
|---|---|---|
| 소인수 분해 | RSA | 가장 대표적인 공개키 암호 알고리즘 (두 개의 큰 소수의 곱 기반) |
| Rabin | 소인수 분해 문제에 기반하며, 암호화와 서명에 사용 가능, RSA보다 빠르다. | |
| 이산 대수 | DSA | 미국 전자서명 표준, 디지털 서명 생성에 최적화된 알고리즘 |
| Diffie-Hellman | 키 관리 센터 없이 공개키를 전달하는 데 사용 | |
| ElGamal | 같은 평문으로부터 다른 암호문 생성이 가능한 암호 알고리즘 | |
| 타원 곡선 | ECC | 타원 곡선상의 이산대수 문제를 이용한 암호화 방식 |
해시를 이용한 암호화 과정
| 해시 함수 종류 | 출력 길이 | 특징 |
|---|---|---|
| MD5 | 128비트 | 빠른 속도를 가진 해시 함수, 충돌 취약성 문제로 보안에 적합하지 않음 [20년 1회] |
| SHA | 160비트 | 안전한 해시 알고리즘, 다양한 변형(SHA-1, SHA-2 등) 존재 미국 (NTS)에의해 개발됨 |
| HAS-160 | 160비트 | SHA-1을 기반으로 한 해시 함수, 보안 강도가 중간 정도, 한국에서 개발함 |
| 결점 | 설명 |
|---|---|
| 무차별 대입 공격 (Brute Force Attack) | 모든 가능한 입력 값을 시도하여 해시 값을 찾는 공격 방식 |
| 레인보우 테이블 공격 (Rainbow Table Attack) | 미리 계산된 해시 값과 입력 값의 쌍을 사용하여 해시 값을 역추적하는 공격 방식 |
인증
로그인을 요청한 사용자의 정보를 확인하고 접근 권한을 검증하는 보안 절차
⭐인증유형
| 인증 유형 | 설명 |
|---|---|
| 지식 기반 인증 | 사용자가 알고 있는 정보를 기반으로 인증 (예: 비밀번호) |
| 소유 기반 인증 | 사용자가 소유하고 있는 물리적 장치를 기반으로 인증 (예: 스마트 카드, OTP 생성기) |
| 생체 기반 인증 | 사용자의 생체 정보를 기반으로 인증 (예: 지문, 얼굴 인식) |
| 위치 기반 인증 | 사용자의 위치 정보를 기반으로 인증 (예: 특정 지역에서만 접근 허용) |
| 행동(행위) 기반 인증 | 사용자의 행동 패턴을 기반으로 인증 (예: 타이핑 속도, 마우스 이동) |
⭐인증방식
| 인증 방식 | 설명 |
|---|---|
| 계정 정보 요청 헤더 | 인증 정보를 요청 헤더에 포함하여 전송하는 방식 |
| Cookie 방식 | 서버가 클라이언트에 쿠키를 저장하고 이를 통해 인증 상태를 유지하는 방식 |
| Session 방식 | 서버에서 세션 ID를 생성하고 클라이언트에 전달하여 인증 상태를 관리하는 방식 |
| 토큰 기반 인증 | 인증 후 발급된 토큰을 사용하여 접근을 제어하는 방식 (예: JWT, JSON Web Token) |
| OAuth | 제3자 인증을 통해 자원에 대한 접근을 제어하는 방식 (이용자의 웹서비스에 대한 제한된 접근 권한 부여) |
| SSO (Single Sign-On) | 한 번의 로그인으로 여러 서비스에 접근할 수 있도록 하는 방식 |
| 커버로스 | Kerberos 프로토콜을 이용한 인증 방식으로, 티켓을 사용하여 인증을 수행 |
| 아이핀 (i-PIN) | 개인 식별 번호를 통해 온라인 서비스에서 인증을 수행하는 방식 |
접근 통제 과정
1) 식별(Identification) : ID를 확인하는 과정
2) 인증(Authentication) : 패스워드가 정확한지 확인
3) 인가(Authorization) : 권한을 부여
⭐접근 통제 정책
| 정책 | MAC | DAC | RBAC |
|---|---|---|---|
| 권한 부여 | 시스템 | 데이터 소유자 | 중앙관리자 |
| 접근 결정 | 보안등급(Label) | 신분(Identity) | 역할(Role) |
| 정책 변경 | 고정적(변경 어려움) | 변경 용이 | 변경 용이 |
| 장점 | 안정적, 중앙 집중적 | 구현 용이, 유연함 | 관리 용이 |
접근 통제 모델
| 접근 통제 모델 | 설명 |
|---|---|
| 벨-라파둘라 모델(Bell-LaPadula Model) | 기밀성 유지에 중점을 두고, 높은 기밀성 레벨의 정보로부터 낮은 레벨의 사용자가 접근하는 것을 방지. |
| 비바 모델(Biba Model) | 무결성 유지에 중점을 두고, 낮은 무결성 레벨의 정보로부터 높은 레벨의 사용자가 접근하는 것을 방지. |
| 클락-월슨 모델(Clark-Wilson Model) | 무결성을 보장하기 위해 인증된 트랜잭션을 사용하며, 비즈니스 규칙을 기반으로 접근을 제어. |
| 만리장성 모델(Chinese Wall Model) | 데이터의 무결성을 보호하기 위해 사용자가 특정 데이터에 접근할 수 있는지를 결정하는 방식. |
| 보안 프로토콜 | 설명 | 포트 | 동작 모드 | 프로토콜 |
|---|---|---|---|---|
| SSH (Secure Shell Protocol) | 원격 호스트에 접속하기 위한 보안 프로토콜 | 22번 포트 | ||
| SSL (Secure Socket Layer) | 웹 브라우저와 웹 서버 간 안전한 데이터 전송을 위한 프로토콜 | 443 포트 | ||
| TLS (Transport Layer Security) | 전송 계층 보안을 위해 개발된 프로토콜 | |||
| IPSec | IP 계층(네트워크 계층)을 안전하게 보호하기 위한 기법 | 전송 모드, 터널 모드 | AH, ESP, IKE | |
| S-HTTP (Secure HTTP) | 웹상에서 네트워크 트래픽을 암호화하기 위한 방법 | |||
| RedSec | RADIUS 데이터를 TCP나 TLS를 이용하여 전송하기 위한 프로토콜 |
대상 시스템이 정상적인 서비스를 수행하지 못하도록 만드는 공격
⭐Dos 공격 유형
| 공격 유형 | 설명 |
|---|---|
| Smurf Attack | ICMP 패킷을 이용해 네트워크 장비를 반사하여 공격 |
| Ping of Death | 큰 크기의 ICMP 패킷을 보내 시스템을 충돌시키는 공격 |
| Land Attack | 동일한 IP 주소와 포트를 이용해 패킷을 전송하여 시스템을 마비 |
| Teardrop Attack | 잘못된 패킷 조각을 보내 시스템의 메모리를 소모시키는 공격 |
| SYN Flooding | TCP 연결 설정 과정에서 SYN 패킷을 과도하게 보내 서비스 중단 |
| UDP Flooding | UDP 패킷을 대량으로 보내 대역폭을 소모시키는 공격 |
| Ping Flooding | ICMP Echo Request를 대량으로 보내 서비스 중단 |
📃ICMP: TCP/IP에서 IP 패킷을 처리할 때 발생되는 문제( 다른 호스트나 게이트웨이 와 연결된 네트웍에 문제)를 알려주는 프로토콜이다.
⭐DDoS(Distributed Denial of Service attack) 공격
분산된 다수의 좀비 PC를 이용하여 공격 대상 시스템의 서비스를 마비시키는 형태
DDoS 공격 툴의 종류
| 해킹 기법 | 설명 |
|---|---|
| 바이러스 | 스스로를 복제하여 다른 파일에 감염시키는 악성 코드 |
| 웜 | 네트워크를 통해 스스로 복제하여 전파되는 악성 코드 |
| 트로이 목마 | 유용한 프로그램으로 가장하지만 악성 코드를 포함 |
| 루트킷 | 시스템에 몰래 설치되어 권한을 상승시키고 숨기는 소프트웨어 |
| XSS (교차 사이트 스크립팅) | 웹 페이지에 악성 스크립트를 삽입하여 사용자 정보를 탈취 |
| SQL injection | 데이터베이스 쿼리에 악성 코드를 삽입하여 정보 탈취 |
| 피싱 | 신뢰할 수 있는 기관으로 가장하여 개인 정보를 탈취 |
| 랜섬웨어 | 파일을 암호화하여 금전을 요구하는 악성 소프트웨어 |
| 스니핑 | 네트워크 트래픽을 몰래 감청하여 정보를 수집하는 기법 |
| 패스워드 크래킹 | 암호를 해독하여 시스템에 접근하는 기법 |
| 포트 스캐닝 | 열린 포트를 탐색하여 취약점을 찾는 기법 |
| 세션 하이재킹 | 사용자의 세션을 가로채어 불법적으로 접근하는 기법 |
| 버퍼 오버플로우 | 메모리 버퍼의 경계를 초과하여 데이터를 덮어쓰는 공격 |
| ARP 스푸핑 | ARP 프로토콜을 이용해 네트워크에서 패킷을 가로채는 기법 |
| 드로퍼 | 다른 악성 코드를 설치하기 위해 사용되는 프로그램 |
| MITM (중간자 공격) | 통신 중간에서 데이터를 가로채거나 변조하는 공격 |
| 코드 인젝션 | 악성 코드를 삽입하여 시스템을 조작하는 기법 |
| DDoS 공격 | 여러 시스템에서 동시에 공격하여 서비스 중단 |
| Qshing | QR 코드로 악성 링크 유도 또는 악성 코드 설치 |
| Nucking | 특정 IP 주소에 대량 패킷 전송 |
| 스파이웨어 | 사용자 동의 없이 정보 수집 |
| 사회공학 | 인간 심리 이용 공격 |
| Evil Twin Attack | 가짜 WiFI API 공격 |
| CSRF | 사용자 의도와 무관한 행위 강요 |
| Backdoor | 정상 인증 없이 시스템 접근 |
| 블루투스 공격 | Bulebug(연결 취약) / BlueSnarf(장비 접근) / BluePrinting(장비 탐색), Blueacking(익명 메세지) |
| Honeypot | 공격자 유인 시스템 |
| 인포데믹스 | 잘못된 정보 확산 |
| 다크데이터 | 분석되지 않은 대량 데이터 |
| 킬 스위치 | 정보기기 데이터 원격 삭제 |
| 트러스트존 | 중요 정보 보호 위한 독립 보안 구역 |
| 서비스 유형 | 정의 | 주요 특징 |
|---|---|---|
| IaaS | 클라우드에서 서버, 스토리지, 네트워크 등의 IT 인프라 자원을 제공. | 사용자에게 하드웨어 리소스를 직접 관리할 수 있는 권한을 부여. |
| PaaS | 소프트웨어 개발 및 배포를 위한 플랫폼을 제공. | 개발자가 애플리케이션을 쉽게 만들고 배포할 수 있도록 도와주는 도구와 서비스를 포함. |
| SaaS | 인터넷을 통해 소프트웨어를 제공하고 사용자가 필요할 때 이용할 수 있게 함. | 소프트웨어 설치 없이 웹 브라우저를 통해 서비스에 접근 가능. |
컨테이너 응용 프로그램 배포 자동화
애플리케이션을 컨테이너라는 독립적인 실행 환경에서 개발, 배포 및 실행할 수 있게 해주는 플랫폼
| 프레임워크 | 정의 |
|---|---|
| React | 사용자 인터페이스를 구축하기 위한 JavaScript 라이브러리로, 컴포넌트 기반 개발을 지원합니다. |
| Vue.js | 진입 장벽이 낮고 유연성이 높은 JavaScript 프레임워크로, 단일 페이지 애플리케이션(SPA) 개발에 적합합니다. |
| AngularJS | 구글에서 개발한 프레임워크로, MVC 아키텍처를 기반으로 하여 복잡한 웹 애플리케이션 구축을 지원합니다. |
| Node.js | 서버 측 JavaScript 실행 환경으로, 비동기 이벤트 기반 프로그래밍을 지원하여 빠른 웹 애플리케이션 개발이 가능합니다. |
| Ajax (Asynchronous JavaScript and XML) | 클라이언트와 서버 간의 비동기 통신을 가능하게 하여 웹 페이지의 부분 업데이트를 지원합니다. |
자원(Resource)을 이름(URL)으로 구현하여 상태(정보)를 주고 받는형식, ROA(Resource Oriented Architecture) 기반
REST 원리를 따르는 웹 서비스 통신 인터페이스
REST의 원리를 따르는 시스템
다양한 비지니스 환경에서 서비스를 유연하게 재사용하고 재조립할 수 있도록 지원하는 구조, SOAP(Simple Object Access Protocol)기술을 통해 구현
| 용어 | 설명 |
|---|---|
| 블록체인 | 데이터를 안전하게 저장하고 관리하는 분산형 데이터베이스 기술로, 거래 기록을 블록에 담아 체인 형태로 연결하여 위변조를 방지합니다. |
| 비트코인 | 최초의 분산형 디지털 화폐로, 블록체인 기술을 기반으로 하여 중앙 기관 없이 개인 간의 거래를 가능하게 합니다. |
| 메시업 | 서로 다른 API를 결합하여 새로운 서비스를 만드는 기술로, 다양한 데이터와 기능을 통합하여 혁신적인 애플리케이션을 개발합니다. |
| 메타버스 | 가상 현실(VR)과 증강 현실(AR)을 포함하는 디지털 공간으로, 사용자들이 상호작용하며 다양한 경험을 제공하는 플랫폼입니다. |
| 코드 커터족 | 전통적인 케이블 TV 구독을 중단하고 인터넷 기반 스트리밍 서비스를 이용하는 소비자 그룹을 의미합니다. |
| 핀테크 | 금융 서비스와 기술의 융합으로, 모바일 결제, 온라인 대출, 자산 관리 등 다양한 혁신적인 금융 서비스를 제공합니다. |
| 포스퀘어 | 위치 기반 소셜 네트워킹 서비스로, 사용자들이 자신의 위치를 공유하고, 추천 정보를 제공받을 수 있는 플랫폼입니다. |
| 디지털 발자국 | 개인이 인터넷에서 남긴 흔적이나 데이터로, 온라인 활동에 의해 생성된 정보의 총체를 의미합니다. |
| 노모포비아 | 스마트폰이 없거나 사용하지 못할 경우 느끼는 불안감을 의미하며, 현대인의 스마트폰 의존성을 나타내는 용어입니다. |
| 소셜 다이닝 | 소셜 미디어를 활용하여 식사 경험을 공유하거나 함께하는 사람들과 연결되는 Dining 경험을 말합니다. |
| 디지털 포렌식 | 디지털 장치에서 증거를 수집하고 분석하는 과정을 의미하며, 범죄 수사나 법적 절차에서 중요한 역할을 합니다. |
| 위치기반 SNS | 사용자의 현재 위치를 기반으로 정보를 공유하고 소통하는 소셜 네트워크 서비스입니다. |
| 디지털 프로슈머 | 디지털 환경에서 정보 수집 및 구매 결정을 하는 소비자를 의미하며, 제품이나 서비스에 대한 리뷰와 추천을 활용합니다. |
| 크리슈머 | 소비자가 상품이나 서비스의 제작 과정에 직접 참여하거나 영향을 미치는 현상을 의미합니다. |
| 인포러스트 | 정보와 지식의 흐름을 관리하고 분석하는 데 중점을 둔 조직이나 시스템을 의미합니다. |
| 커넥티드 카 | 인터넷에 연결된 자동차로, 다양한 디지털 서비스와 기능을 제공하며, 차량의 성능 및 안전성을 향상시킵니다. |
| 웨버홀리즘 | 인터넷과 디지털 콘텐츠에 대한 과도한 의존을 나타내며, 온라인 활동이 일상생활에 미치는 영향을 강조하는 개념입니다. |
| 용어 | 설명 |
|---|---|
| 사물 인터넷 (IoT, Internet of Things) | 다양한 사물들이 인터넷에 연결되어 데이터를 수집하고 교환하는 기술입니다. |
| M2M (Machine to Machine) | 기계 간의 직접적인 통신을 통해 데이터를 전송하고 처리하는 기술입니다. |
| 저전력 블루투스 (BLE, Bluetooth Low Energy) | 저전력으로 작동하는 블루투스 기술로, 주로 IoT 기기에서 사용됩니다. |
| 지그비 (Zigbee) | 저전력, 저속의 무선 통신 기술로, 주로 홈 자동화 및 IoT 응용에 사용됩니다. |
| 지능형 초연결망 (5G, 5th Generation Network) | 초고속, 초저지연의 모바일 통신망으로, 다양한 디지털 서비스와 IoT 기기를 지원합니다. |
| 애드 혹 네트워크 (Ad Hoc Network) | 사전 설정 없이 임시로 구성된 네트워크로, 장치 간의 직접적인 연결을 통해 데이터 전송이 이루어집니다. |
| 메시 네트워크 (Mesh Network) | 각 장치가 서로 연결되어 정보를 전달하는 네트워크 구조로, 신뢰성과 범위를 향상시킵니다. |
| 이동 컴퓨팅 (Mobile Computing) | 이동 중에도 컴퓨터와 인터넷을 사용할 수 있는 기술로, 모바일 기기를 통해 이루어집니다. |
| 지능형 전력망 (Smart Grid) | 전력망에 정보 통신 기술을 접목하여 효율적이고 안전한 전력 관리 시스템입니다. |
| 스마트 그리드 (Smart Grid) | 전력 생산, 분배, 소비를 최적화하기 위해 IT 기술을 활용한 전력망입니다. |
| 와이-선 (Wi-Fi, Wireless Fidelity) | 무선 LAN 기술로, 고속 인터넷 접속을 제공합니다. |
| 데이터 중심 네트워크 (Data-Centric Network) | 데이터의 흐름과 저장을 중심으로 설계된 네트워크 구조입니다. |
| 피코넷 (Piconet) | Bluetooth 기술을 활용하여 형성된 소규모 무선 네트워크입니다. |
| 초 광대역 기술 (UWB, Ultra Wideband) | 매우 넓은 대역폭을 이용하여 고속 데이터 전송이 가능한 무선 통신 기술입니다. |
| 자동 구성 네트워크 (SON, Self-Organizing Network) | 네트워크 장치가 자동으로 구성되고 최적화되는 기술입니다. |
| 지리 정보 시스템 (GIS, Geographic Information System) | 지리적 데이터를 수집, 저장, 분석 및 시각화하는 시스템입니다. |
| USN (Ubiquitous Sensor Network) | 다양한 센서가 상시 연결되어 정보를 수집하는 네트워크입니다. |
| 무선 사설망 (WPAN, Wireless Personal Area Network) | 개인용 장치 간의 근거리 무선 통신을 위한 네트워크입니다. |
| 파장 분할 다중화기 (WDM, Wavelength Division Multiplexing) | 여러 개의 신호를 서로 다른 파장을 통해 하나의 광섬유에서 전송하는 기술입니다. |
| 가상 시설 통신망 (VPN, Virtual Private Network) | 공용 네트워크를 통해 개인의 사설 네트워크를 안전하게 연결하는 기술입니다. |
| MQTT (Message Queuing Telemetry Transport) | 경량 메시지 전송 프로토콜로, IoT 기기 간의 통신에 주로 사용됩니다. |
| 엔-스크린 (Any-Screen) | 다양한 화면에서 콘텐츠를 접근하고 소비할 수 있는 기술입니다. |
| 가상랜 (VLAN, Virtual Local Area Network) | 물리적 네트워크를 논리적으로 분할하여 서로 다른 네트워크를 구성하는 기술입니다. |
| IMS (IP Multimedia Subsystem) | IP 기반으로 음성, 영상, 메시징 서비스를 제공하는 시스템입니다. |
| 용어 | 설명 |
|---|---|
| 빅데이터 (Big Data) | 대량의 데이터 집합으로, 전통적인 데이터베이스 관리 시스템으로는 처리하기 어려운 데이터를 의미합니다. |
| 정형 데이터 (Structured Data) | 미리 정의된 형식으로 저장된 데이터로, 관계형 데이터베이스에서 쉽게 검색되고 분석할 수 있습니다. |
| 비정형 데이터 (Unstructured Data) | 형식이 없거나 불규칙한 데이터로, 텍스트, 이미지, 비디오 등 다양한 형태로 존재합니다. |
| 메타데이터 (Metadata) | 데이터에 대한 데이터로, 데이터의 속성, 출처, 생성 시간 등을 설명하는 정보를 포함합니다. |
| 데이터 웨어하우스 (Data Warehouse) | 여러 출처에서 데이터를 통합하여 분석 및 보고를 위한 중앙 저장소로 사용하는 시스템입니다. |
| 데이터 마트 (Data Mart) | 특정 비즈니스 부문 또는 주제에 대한 데이터를 저장하는 소규모 데이터 웨어하우스입니다. |
| 데이터마이닝 (Data Mining) | 대량의 데이터에서 유용한 정보를 추출하고 패턴을 발견하는 과정입니다. |
| 텍스트 마이닝 (Text Mining) | 비정형 텍스트 데이터에서 의미 있는 정보를 추출하는 기술로, 자연어 처리 기법을 활용합니다. |
| 하둡 (Hadoop) | 대량의 데이터를 저장하고 처리하기 위한 오픈소스 프레임워크로, 분산 컴퓨팅 환경에서 작동합니다. |
| Sqoop (Sqoop) | 관계형 데이터베이스와 하둡 간의 데이터 전송을 위한 도구로, 대량의 데이터를 효율적으로 가져오거나 내보낼 수 있습니다. |
| 맵리듀스 (MapReduce) | 대량의 데이터를 병렬로 처리하기 위한 프로그래밍 모델로, 하둡의 핵심 구성 요소 중 하나입니다. |
| 타조 (Tajo) | 대규모 데이터 분석을 위한 분산형 SQL 쿼리 엔진으로, 하둡 및 다른 데이터 소스에서 데이터를 처리합니다. |
| R (R) | 통계 분석과 데이터 시각화를 위한 프로그래밍 언어로, 데이터 과학 분야에서 널리 사용됩니다. |
| OLAP (Online Analytical Processing) | 다차원 데이터 분석을 지원하는 기술로, 대규모 데이터 집합에 대한 신속한 쿼리를 가능하게 합니다. |
| NoSQL (NoSQL) | 전통적인 관계형 데이터베이스가 아닌 다양한 데이터 저장 방식(문서, 키-값, 그래프 등)을 지원하는 데이터베이스 시스템입니다. |
| 용어 | 설명 |
|---|---|
| 브룩스의 법칙 (Brooks' Law) | "늦어진 프로젝트에 인력을 추가하면 더 늦어진다"는 원칙으로, 프로젝트 관리에서 인력 추가의 부작용을 설명합니다. |
| 파레토 법칙 (Pareto Principle) | "80/20 법칙"으로, 결과의 80%가 원인의 20%에서 발생한다는 원칙입니다. |
| 롱테일 법칙 (Long Tail Theory) | 소수의 인기 제품보다는 많은 수의 비인기 제품이 전체 매출에 기여할 수 있다는 개념입니다. |
| Boehm의 법칙 (Boehm's Law) | 소프트웨어 개발 과정에서 요구사항 변경이 비용을 증가시킨다는 원칙으로, 초기 단계에서의 요구사항 정의의 중요성을 강조합니다. |
| 무어의 법칙 (Moore's Law) | 반도체 집적 회로의 성능이 18개월마다 두 배로 증가한다는 예측으로, 기술 발전의 속도를 설명합니다. |
| DRY 원칙 (DRY Principle) | "Don't Repeat Yourself"의 약자로, 중복을 피하고 재사용성을 높여 코드의 품질을 개선하는 원칙입니다. |
| YAGNI 원칙 (YAGNI Principle) | "You Aren't Gonna Need It"의 약자로, 필요하지 않은 기능을 미리 구현하지 말라는 원칙입니다. |