기술 용어 사전
프로그래밍과 개발에서 자주 사용되는 기술 용어를 알기 쉽게 정리했습니다.
약어의 의미와 개념을 빠르게 확인하세요.
TLE
알고리즘Time Limit Exceeded. 시간 제한 초과로 알고리즘이 주어진 시간 내에 실행을 완료하지 못한 상태
MLE
알고리즘Memory Limit Exceeded. 메모리 제한 초과로 프로그램이 허용된 메모리를 초과하여 사용한 상태
Big O
알고리즘알고리즘의 시간 복잡도나 공간 복잡도를 나타내는 점근 표기법. 입력 크기에 따른 성능 변화를 표현
DP
알고리즘Dynamic Programming. 동적 계획법. 중복 부분 문제를 메모이제이션(Top-Down) 또는 테이블(Bottom-Up)로 저장해 재사용. O(2^n) → O(n^2) 최적화. 피보나치, LCS, LIS, 배낭 문제. "최대/최소", "경우의 수" 키워드
DFS
알고리즘Depth-First Search. 깊이 우선 탐색. 그래프/트리를 깊이 우선으로 방문. 스택(재귀 또는 명시적 스택) 사용. 백트래킹, 사이클 검사, 위상 정렬, 경로 탐색에 활용. 최단 경로 보장 안 함(BFS 사용). O(V+E) 시간복잡도
BFS
알고리즘Breadth-First Search. 너비 우선 탐색. 그래프/트리를 레벨 순으로 방문. 큐 사용. 최단 경로 보장(가중치 없는 그래프). 레벨 순회, 최단 거리, 가장 가까운 노드 찾기에 최적. O(V+E) 시간복잡도
Greedy
알고리즘탐욕 알고리즘. 매 순간 최선의 선택(지역 최적)을 반복. 전역 최적해 보장 불가(반례 확인 필수). 활동 선택, 동전 교환(특정 조건), 최소 신장 트리(Kruskal, Prim). 정렬 + 그리디 패턴 흔함. DP 대비 빠르나 증명 필요
Backtracking
알고리즘백트래킹. 모든 경우의 수를 탐색하되 조건에 맞지 않으면 되돌아가는 알고리즘 기법
Binary Search
알고리즘정렬된 배열에서 O(log n) 시간복잡도로 값을 찾는 탐색 알고리즘. 중간값(mid)과 비교 후 탐색 범위를 절반씩 줄임. Lower Bound(이상), Upper Bound(초과), 파라메트릭 서치(최적화→결정 문제 변환) 응용. 정렬 필수
Two Pointers
알고리즘투 포인터. 배열이나 리스트에서 두 개의 포인터를 사용하여 효율적으로 탐색하는 기법
Sliding Window
알고리즘슬라이딩 윈도우. 고정 크기 또는 가변 크기의 윈도우를 이동시키며 부분 배열을 처리하는 기법
Stack
알고리즘Last-In-First-Out (LIFO) 자료구조. 가장 나중에 넣은 것이 먼저 나옴. push(삽입), pop(제거), peek(조회) O(1). 배열 또는 연결 리스트 구현. 함수 호출 스택, 괄호 검사, DFS, 되돌리기(Undo), 계산기 구현에 사용
Queue
알고리즘First-In-First-Out (FIFO) 자료구조. 먼저 넣은 것이 먼저 나옴. enqueue(삽입), dequeue(제거) O(1). 원형 버퍼 또는 연결 리스트 구현. BFS, 프린터 대기열, 작업 스케줄링, 메시지 큐에 사용
Hash Table
알고리즘키-값 쌍 저장 자료구조. 해시 함수로 키→인덱스 변환, 평균 O(1) 검색/삽입/삭제. 충돌 해결: Chaining(연결 리스트), Open Addressing(선형 탐사). Load Factor(적재율) 0.75 넘으면 리사이징. Python dict, C++ unordered_map, Java HashMap
Linked List
알고리즘노드가 포인터로 연결된 선형 자료구조. 동적 크기 조정 가능
Tree
알고리즘계층적 구조의 자료구조. 루트 노드에서 시작하여 자식 노드로 분기
Graph
알고리즘노드와 간선으로 이루어진 자료구조. 네트워크, 관계 표현에 사용
Heap
알고리즘완전 이진 트리 기반 자료구조. 부모≥자식(Max Heap) 또는 부모≤자식(Min Heap). 최댓값/최솟값 O(1) 조회, O(log n) 삽입/삭제. 우선순위 큐 구현. Heapify, Heap Sort. 배열로 구현(i의 자식: 2i+1, 2i+2)
AVL Tree
알고리즘자가 균형 이진 탐색 트리. 모든 노드의 좌우 서브트리 높이 차이가 1 이하로 유지
SEO
웹Search Engine Optimization. 검색 엔진 최적화. 웹사이트가 검색 결과에서 더 높은 순위를 차지하도록 개선하는 작업
API
웹Application Programming Interface. 소프트웨어 간 상호작용 규약. 함수, 클래스, HTTP 엔드포인트 등. REST API(HTTP), gRPC(RPC), GraphQL(쿼리 언어) 등. 클라이언트가 서버 기능을 호출하는 인터페이스. 공개 API(Twitter, Google Maps), 내부 API
REST
웹Representational State Transfer. HTTP 기반 API 아키텍처 스타일. 리소스(URI), 메서드(GET/POST/PUT/DELETE), 무상태(Stateless), 캐시 가능. JSON 주로 사용. CRUD 매핑: GET(조회), POST(생성), PUT(수정), DELETE(삭제). RESTful 원칙
GraphQL
웹클라이언트가 필요한 데이터만 요청할 수 있는 쿼리 언어 및 API 런타임. Facebook에서 개발
gRPC
웹Google Remote Procedure Call. 구글이 개발한 고성능 RPC 프레임워크. Protocol Buffers 사용
JSON
웹JavaScript Object Notation. 경량 데이터 교환 형식. 사람이 읽기 쉽고 기계가 파싱하기 쉬운 텍스트 기반 형식
XML
웹eXtensible Markup Language. 확장 가능한 마크업 언어. 데이터를 구조화하여 저장하고 전송하는 형식
YAML
웹YAML Ain't Markup Language. 사람이 읽기 쉬운 데이터 직렬화 형식. 설정 파일에 주로 사용
SPA
웹Single Page Application. 단일 페이지로 구성된 웹 애플리케이션. 페이지 전환 없이 동적으로 콘텐츠 업데이트
SSR
웹Server-Side Rendering. 서버에서 HTML을 생성하여 클라이언트에 전송하는 렌더링 방식. SEO와 초기 로딩 성능 향상
CSR
웹Client-Side Rendering. 클라이언트(브라우저)에서 JavaScript로 HTML을 생성하는 렌더링 방식
SSG
웹Static Site Generation. 빌드 타임에 정적 HTML을 생성하는 방식
Hydration
웹하이드레이션. 서버에서 렌더링된 정적 HTML에 클라이언트 JavaScript를 연결하여 인터랙티브하게 만드는 과정
JAMstack
웹JavaScript, APIs, Markup의 약자. 정적 사이트 생성과 API를 활용한 현대적인 웹 아키텍처
CORS
웹Cross-Origin Resource Sharing. 브라우저 Same-Origin Policy를 우회하는 메커니즘. 서버가 Access-Control-Allow-Origin 헤더로 허용. Preflight(OPTIONS) 요청으로 사전 검증. 다른 도메인 API 호출 시 필수
React
웹Meta(Facebook) 개발 UI 라이브러리. 컴포넌트 기반, JSX 문법, Virtual DOM으로 효율적 렌더링. Hooks(useState, useEffect), 단방향 데이터 흐름. Next.js(SSR), Vite(빌드). 세계 1위 프론트엔드 라이브러리
Next.js
웹React 기반 풀스택 프레임워크. SSR, SSG, API Routes 등을 제공
Vue
웹프로그레시브 JavaScript 프레임워크. 점진적으로 적용 가능한 UI 구축 도구
Angular
웹Google이 개발한 TypeScript 기반 웹 애플리케이션 프레임워크
Svelte
웹컴파일 타임에 최적화되는 프론트엔드 프레임워크. Virtual DOM 없이 동작
Hook
웹React에서 함수 컴포넌트에 상태와 생명주기 기능을 추가하는 함수
Virtual DOM
웹실제 DOM의 가벼운 복사본. React가 효율적인 렌더링을 위해 사용하는 메모리 내 표현
TypeScript
웹Microsoft가 개발한 JavaScript의 상위 집합. 정적 타입 시스템을 추가하여 컴파일 타임에 타입 오류를 잡음. 함수 계약이 명확해져 코드 리뷰 시 리뷰어의 추론 비용 감소. 리팩터링 시 타입 오류로 영향 범위 추적
Webpack
웹모듈 번들러. 여러 JavaScript 파일을 하나로 묶어 최적화
Vite
웹빠른 개발 서버와 빌드 도구. ESM 기반으로 즉각적인 HMR 제공
Tailwind CSS
웹유틸리티 우선 CSS 프레임워크. 미리 정의된 클래스로 빠른 스타일링
Node.js
웹Chrome V8 엔진 기반 JavaScript 런타임. 서버 사이드 JavaScript 실행
Express
웹Node.js 웹 애플리케이션 프레임워크. 미들웨어 기반 라우팅 제공
Middleware
웹요청과 응답 사이에서 실행되는 함수. 인증, 로깅 등에 사용
Component
웹UI를 구성하는 독립적이고 재사용 가능한 코드 조각. React, Vue 등에서 사용
State
웹컴포넌트가 관리하는 동적 데이터. 변경 시 UI가 자동으로 업데이트됨
Props
웹Properties. 부모 컴포넌트에서 자식 컴포넌트로 전달되는 읽기 전용 데이터
OOM
시스템Out Of Memory. 시스템 메모리가 부족하여 프로그램이 더 이상 메모리를 할당받지 못하는 상태
Bit
시스템Binary Digit. 0 또는 1의 값을 가지는 컴퓨터 데이터의 최소 단위
Byte
시스템8개의 비트로 구성된 데이터 단위. 하나의 문자를 표현
KB
시스템Kilobyte. 1,000바이트(10^3). 파일 크기 표시에 사용
MB
시스템Megabyte. 1,000,000바이트(10^6). 파일 크기 표시에 사용
GB
시스템Gigabyte. 1,000,000,000바이트(10^9). 저장 용량 표시에 사용
KiB
시스템Kibibyte. 1,024바이트(2^10). 이진 단위 표기
MiB
시스템Mebibyte. 1,048,576바이트(2^20). 이진 단위 표기
GiB
시스템Gibibyte. 1,073,741,824바이트(2^30). 이진 단위 표기
CPU
시스템Central Processing Unit. 중앙 처리 장치. 컴퓨터의 두뇌 역할을 하며 명령어를 실행하는 하드웨어
GPU
시스템Graphics Processing Unit. 그래픽 처리 장치. 병렬 처리에 특화된 프로세서로 그래픽 렌더링과 AI 연산에 사용
RAM
시스템Random Access Memory. 임의 접근 메모리. 프로그램 실행 중 데이터를 임시로 저장하는 휘발성 메모리
SSD
시스템Solid State Drive. 반도체 기반 저장 장치. 기계식 하드디스크보다 빠른 읽기/쓰기 속도
AWS
시스템Amazon Web Services. 아마존이 제공하는 클라우드 컴퓨팅 플랫폼
EC2
시스템Elastic Compute Cloud. AWS의 가상 서버 서비스. 클라우드에서 컴퓨팅 리소스를 제공
S3
시스템Simple Storage Service. AWS의 객체 스토리지 서비스. 파일을 클라우드에 저장하고 관리
Lambda
시스템AWS의 서버리스 컴퓨팅 서비스. 서버 관리 없이 코드를 실행
I/O Multiplexing
시스템하나의 프로세스가 여러 I/O 작업을 동시에 모니터링하는 기법. select, epoll, kqueue 등
epoll
시스템Linux의 I/O 이벤트 알림 메커니즘. select/poll보다 효율적으로 대량의 파일 디스크립터 처리
Mutex
시스템Mutual Exclusion. 상호 배제 락. 공유 자원을 한 번에 한 스레드만 접근하도록 보장. lock() 획득, unlock() 해제. Critical Section(임계 영역) 보호. 소유권 있음(락 건 스레드만 해제). Deadlock, Priority Inversion 주의
Thread
시스템프로세스 내 실행 단위. 같은 프로세스의 메모리(Code, Data, Heap) 공유, Stack만 독립. Context Switch 빠름(프로세스 대비). pthread(POSIX), Java Thread, C++ std::thread. 동기화(Mutex, Semaphore) 필요. Race Condition, Deadlock 주의
Process
시스템실행 중인 프로그램 인스턴스. 독립적 메모리 공간(Code, Data, Heap, Stack). PID(Process ID)로 식별. fork()로 생성, exec()로 프로그램 교체. PCB(Process Control Block)로 상태 관리. Context Switch 비용 높음
Bash
시스템Bourne Again Shell. Linux/macOS의 기본 명령줄 셸. 스크립트 작성과 자동화에 사용
Shell Script
시스템셸에서 실행되는 명령어들을 모아놓은 스크립트 파일. 반복 작업 자동화
Cron
시스템Unix 계열 시스템에서 주기적으로 작업을 실행하는 스케줄러
Environment Variable
시스템운영체제에서 프로세스에 전달되는 동적 값. 설정 정보 저장에 사용
PATH
시스템실행 파일을 찾기 위한 디렉토리 목록을 담은 환경 변수
SQL
데이터베이스Structured Query Language. 관계형 데이터베이스에서 데이터를 관리하기 위한 표준 질의 언어
NoSQL
데이터베이스Not Only SQL. 비관계형 데이터베이스 총칭. Key-Value(Redis), Document(MongoDB), Column-Family(Cassandra), Graph(Neo4j). 유연 스키마, 수평 확장, CAP 정리(일관성 vs 가용성 트레이드오프). ACID 대신 BASE(Basically Available, Soft state, Eventually consistent)
ACID
데이터베이스Atomicity(원자성), Consistency(일관성), Isolation(격리성), Durability(지속성). RDBMS 트랜잭션 안전성 4대 속성. 원자성: All-or-Nothing. 일관성: 제약 조건 유지. 격리성: 동시 실행 간섭 없음. 지속성: COMMIT 후 영구 보존
CAP Theorem
데이터베이스CAP 정리. 분산 시스템에서 일관성(Consistency), 가용성(Availability), 분할 내성(Partition tolerance) 중 2가지만 동시에 만족할 수 있다는 이론
ORM
데이터베이스Object-Relational Mapping. 객체 지향 프로그래밍 언어에서 관계형 데이터베이스를 객체처럼 다루게 해주는 기술. SQL을 직접 작성하지 않고 코드로 쿼리를 표현. SQL 인젝션 자동 방지, 타입 안전성, 데이터베이스 마이그레이션 자동화
CRUD
데이터베이스Create, Read, Update, Delete. 데이터베이스의 기본 작업 4가지를 나타내는 약어
Index
데이터베이스데이터베이스 검색 속도 향상 자료구조. B+Tree(MySQL InnoDB), LSM-Tree(RocksDB), Hash(PostgreSQL) 등. 책 색인처럼 컬럼 값→디스크 위치 매핑. WHERE, JOIN 성능 개선하나 INSERT/UPDATE 느림. Clustered(PK 정렬), Secondary(별도 저장)
Transaction
데이터베이스데이터베이스 논리적 작업 단위. ACID(원자성, 일관성, 격리성, 지속성) 보장. BEGIN→COMMIT/ROLLBACK. 격리 수준: Read Uncommitted, Read Committed, Repeatable Read, Serializable. MVCC(다중 버전 동시성 제어)로 락 최소화
N+1 Problem
데이터베이스쿼리 1번으로 N개 데이터를 가져온 후, 각 데이터마다 추가 쿼리 N번을 실행하는 성능 문제
JOIN
데이터베이스두 개 이상의 테이블을 연결하여 데이터를 조회하는 SQL 연산
Primary Key
데이터베이스테이블에서 각 행을 고유하게 식별하는 컬럼. 중복과 NULL 불가
Foreign Key
데이터베이스다른 테이블의 기본 키를 참조하는 컬럼. 테이블 간 관계 정의
Normalization
데이터베이스데이터 중복을 제거하고 무결성을 보장하기 위해 테이블을 분리하는 과정
Denormalization
데이터베이스성능 향상을 위해 의도적으로 데이터 중복을 허용하는 기법
Sharding
데이터베이스샤딩. 데이터베이스를 수평적으로 분할하여 여러 서버에 분산 저장하는 기법
Replication
데이터베이스복제. 데이터베이스의 데이터를 여러 서버에 복사하여 가용성과 성능을 높이는 기법
MongoDB
데이터베이스문서 지향 NoSQL 데이터베이스. JSON 형식으로 데이터 저장
Redis
데이터베이스인메모리 키-값 저장소. 캐싱, 세션 관리, 실시간 데이터 처리에 사용
PostgreSQL
데이터베이스오픈소스 관계형 데이터베이스. 고급 기능과 확장성 제공
MySQL
데이터베이스오픈소스 관계형 데이터베이스. 웹 애플리케이션에 널리 사용
RDS
데이터베이스Relational Database Service. AWS의 관리형 관계형 데이터베이스 서비스
HTTP
네트워크HyperText Transfer Protocol. OSI 7계층(응용 계층) 클라이언트-서버 통신 프로토콜. TCP 80번 포트. 요청(GET/POST/PUT/DELETE)과 응답(200/404/500) 구조. 무상태(Stateless), 텍스트 기반. HTTP/1.1(지속 연결), HTTP/2(멀티플렉싱), HTTP/3(QUIC) 진화
HTTPS
네트워크HTTP Secure. SSL/TLS로 암호화된 HTTP 프로토콜. 안전한 데이터 전송 보장
TCP
네트워크Transmission Control Protocol. OSI 4계층(전송 계층) 연결 지향 프로토콜. 3-way 핸드셰이크로 연결 수립, 순서 보장, 재전송, 흐름 제어, 혼잡 제어 제공. HTTP, SSH, FTP 등 신뢰성 필요 애플리케이션 사용. UDP 대비 느리나 안정적
UDP
네트워크User Datagram Protocol. OSI 4계층 비연결형 프로토콜. 핸드셰이크 없이 데이터그램 즉시 전송. 순서 보장/재전송 없음. 낮은 지연으로 DNS, VoIP, 게임, 라이브 스트리밍 사용. QUIC(HTTP/3)는 UDP 위에 신뢰성 추가
DNS
네트워크Domain Name System. 도메인 이름(example.com)을 IP 주소(93.184.216.34)로 변환하는 분산 계층형 시스템. UDP 53번 포트 (512바이트 초과 시 TCP). 루트→TLD→권한(Authoritative)→재귀 서버 계층. A, AAAA, CNAME, MX, TXT 레코드
IP
네트워크Internet Protocol. 인터넷에서 데이터 패킷을 전송하기 위한 네트워크 계층 프로토콜
VPN
네트워크Virtual Private Network. 공용 네트워크를 통해 안전한 사설 네트워크 연결을 제공하는 기술
CDN
네트워크Content Delivery Network. 콘텐츠를 지리적으로 분산된 서버에 캐싱하여 빠르게 제공하는 네트워크
WebSocket
네트워크HTTP 핸드셰이크 후 TCP 연결 유지, 양방향 실시간 통신 프로토콜. ws:// 또는 wss:// (암호화). 폴링 대비 낮은 지연, 적은 오버헤드. 채팅, 실시간 알림, 게임, 주식 시세. Socket.IO는 WebSocket + 폴백 라이브러리
WebRTC
네트워크Web Real-Time Communication. 브라우저 간 실시간 오디오/비디오 통신을 위한 기술
RTMP
멀티미디어Real-Time Messaging Protocol. Adobe가 개발한 TCP 기반 저지연 스트리밍 프로토콜. 1935번 포트 사용. 청크(Chunk) 단위 전송으로 멀티플렉싱 지원. 라이브 스트리밍 인제스트(Ingest) 사실상 표준. Flash 종료 후에도 OBS→서버 업로드 프로토콜로 현역
HLS
멀티미디어HTTP Live Streaming. Apple이 2009년 개발한 HTTP 기반 적응형 스트리밍 프로토콜. M3U8 플레이리스트 + TS/fMP4 세그먼트 구조. ABR(Adaptive Bitrate) 지원으로 네트워크 상태에 따라 화질 자동 조절. IETF RFC 8216 표준. 가장 널리 사용되는 스트리밍 프로토콜
DASH
멀티미디어Dynamic Adaptive Streaming over HTTP. MPEG가 표준화한 HTTP 기반 적응형 스트리밍 프로토콜. MPD(Media Presentation Description) XML + fMP4/WebM 세그먼트. 코덱 중립적 설계. HLS의 오픈 표준 경쟁자. YouTube, Netflix가 주력 사용
CMAF
멀티미디어Common Media Application Format. ISO/IEC 23000-19 표준. HLS와 DASH를 통합한 공통 fMP4 패키징 포맷. 단일 인코딩으로 HLS/DASH 동시 지원. Chunked-CMAF로 저지연 스트리밍 가능 (2~3초). Apple과 Microsoft가 공동 주도
WebRTC
멀티미디어Web Real-Time Communication. W3C/IETF 표준 실시간 P2P 통신 프레임워크. 브라우저 간 비디오/오디오/데이터 전송. ICE, STUN, TURN으로 NAT 통과. SDP로 미디어 협상. 0.1~0.5초 초저지연. Zoom, Discord, Google Meet 핵심 기술
SRT
멀티미디어Secure Reliable Transport. Haivision이 개발한 UDP 기반 저지연 스트리밍 프로토콜. UDT(UDP-based Data Transfer) 기반으로 패킷 손실 복구, 재전송, AES 암호화 지원. RTMP 대체 목적. 0.5~2초 지연. 원격 중계, 기여(Contribution) 인코딩 표준
MSE
멀티미디어Media Source Extensions. W3C 표준 JavaScript API. <video>/<audio> 태그에 동적으로 미디어 세그먼트를 공급. HLS/DASH 플레이어 구현 핵심 기술. SourceBuffer로 fMP4/WebM 청크 추가. ABR 로직을 JavaScript로 구현 가능
ABR
멀티미디어Adaptive Bitrate Streaming. 네트워크 대역폭과 기기 성능에 따라 비디오 화질을 실시간 자동 조절하는 스트리밍 기술. HLS/DASH의 핵심 기능. 다중 비트레이트 인코딩 + 플레이어 알고리즘(BOLA, throughput-based)으로 구현
CDN
멀티미디어Content Delivery Network. 지리적으로 분산된 서버 네트워크로 사용자에게 가까운 엣지 서버에서 콘텐츠 전송. 오리진 서버 부하 감소, 지연 시간 단축. HLS/DASH 스트리밍 필수 인프라. Cloudflare, Akamai, AWS CloudFront 등
Socket
네트워크네트워크 통신을 위한 엔드포인트. IP 주소와 포트 번호로 식별되는 통신 접점
Load Balancer
네트워크여러 서버에 트래픽을 분산시켜 부하를 균등하게 배분하는 시스템
Reverse Proxy
네트워크클라이언트 요청을 받아 백엔드 서버로 전달하는 중간 서버. Nginx, HAProxy 등
SSL Certificate
네트워크HTTPS 통신을 위한 디지털 인증서. 웹사이트의 신원을 확인하고 암호화 제공
Port
네트워크네트워크에서 프로세스를 식별하는 번호. 0-65535 범위
Localhost
네트워크자기 자신의 컴퓨터를 가리키는 호스트명. IP 주소 127.0.0.1
Proxy
네트워크클라이언트와 서버 사이에서 요청을 중계하는 서버
NAT
네트워크Network Address Translation. 사설 IP를 공인 IP로 변환하는 기술
Docker
DevOps컨테이너 기반 가상화 플랫폼. 애플리케이션과 의존성을 이미지로 패키징, 격리된 컨테이너에서 실행. VM 대비 경량(공유 커널), 빠른 시작(초 단위). Dockerfile로 빌드, Docker Hub에서 공유. K8s, CI/CD 필수 도구
Kubernetes
DevOps컨테이너 오케스트레이션 플랫폼. Docker 컨테이너를 클러스터(여러 노드)에 자동 배포, 스케일링, 장애 복구, 로드 밸런싱. Pod(컨테이너 그룹), Service(네트워크), Deployment(배포 관리). Google 개발, CNCF 관리
CI/CD
DevOpsContinuous Integration/Continuous Deployment. 코드 커밋 시 자동 빌드/테스트(CI), 통과 시 자동 배포(CD). Jenkins, GitHub Actions, GitLab CI. 빠른 피드백, 버그 조기 발견, 배포 자동화로 개발 속도↑ 품질↑
Git
DevOps분산 버전 관리 시스템. 코드 변경 이력을 추적하고 협업을 지원
GitHub
DevOpsGit 저장소 호스팅 서비스. 코드 공유, 협업, CI/CD 기능 제공
Pull Request
DevOpsGit 기반 버전 관리 시스템에서 코드 변경 사항을 메인 브랜치에 병합하기 전에 검토를 요청하는 메커니즘. 코드 리뷰의 핵심 도구로, 팀원 간 비동기 협업과 지식 공유의 채널. GitLab에서는 Merge Request(MR)라고 부름
Branch
DevOpsGit에서 독립적인 작업 공간. 메인 코드에 영향 없이 개발 가능. 기능별로 브랜치를 나누고 PR을 통해 병합하는 것이 코드 리뷰의 기본 워크플로
Merge
DevOps두 개 이상의 브랜치를 하나로 합치는 작업. 코드 리뷰가 완료되고 승인을 받은 후 PR을 메인 브랜치에 병합. CI 통과와 필수 코멘트 해소가 선행되어야 함
Rebase
DevOps커밋 히스토리를 재작성하여 깔끔한 선형 히스토리를 만드는 Git 작업
Commit
DevOpsGit에서 변경 사항을 저장소에 기록하는 작업. PR은 하나 이상의 커밋으로 구성되며, 커밋을 의미 단위로 나누면 리뷰어가 변경 맥락을 이해하기 쉬움. 커밋 메시지는 "무엇을, 왜" 변경했는지 명확히 작성
npm
DevOpsNode Package Manager. Node.js 패키지 관리 도구
Blue-Green Deployment
DevOps블루-그린 배포. 두 개의 동일한 프로덕션 환경을 유지하며 무중단 배포를 수행하는 전략
Canary Deployment
DevOps카나리 배포. 새 버전을 일부 사용자에게만 먼저 배포하여 테스트하는 전략
Rolling Deployment
DevOps롤링 배포. 서버를 순차적으로 업데이트하여 무중단 배포를 수행하는 전략
Code Review
DevOps다른 개발자가 작성한 코드를 검토하고 피드백을 주는 과정. 코드 품질 향상, 버그 발견, 지식 공유를 목적으로 함. PR(Pull Request)을 통해 이루어지며, 리뷰어가 코드 변경사항을 검토하고 승인 또는 수정 요청
Draft PR
DevOpsDraft Pull Request. 병합 준비가 되지 않았지만, 초기 방향이나 설계를 먼저 공유하고 피드백을 받기 위한 PR 상태. 정식 리뷰 부담 없이 빠른 피드백 루프 형성
Diff
DevOps두 버전의 코드(또는 파일) 간 차이점을 보여주는 형식. +는 추가된 줄, -는 삭제된 줄을 나타냄. PR 리뷰 시 리뷰어가 보는 핵심 정보
CODEOWNERS
DevOpsGitHub/GitLab에서 특정 경로나 파일의 "소유자"를 지정하는 파일 (.github/CODEOWNERS). 해당 영역이 변경되면 자동으로 리뷰 요청이 감. 병목 방지와 책임 소재 명확화
Feature Flag
DevOps코드에 조건문을 두어 특정 기능을 런타임에 켜고 끌 수 있게 하는 기법. 배포와 출시를 분리하여 미완성 기능을 main 브랜치에 병합 가능. A/B 테스트, 점진적 출시, 긴급 기능 비활성화에 활용
ESLint
DevOpsJavaScript/TypeScript의 정적 분석 도구. 코드 스타일과 잠재적 오류를 자동으로 검사하여 PR 리뷰가 로직에 집중할 수 있게 함. 규칙 커스터마이징 가능
Prettier
DevOps코드 포맷터로, 들여쓰기, 줄바꿈, 따옴표 등을 일관되게 자동 정리. "탭 vs 스페이스" 논쟁 종료. ESLint와 함께 사용하여 스타일은 Prettier, 로직 오류는 ESLint가 담당
Blocking Comment
DevOps코드 리뷰에서 반드시 수정되어야 PR이 머지될 수 있는 필수 피드백. 보안, 버그, 정확성 이슈에 사용. Non-blocking Comment는 권장 사항으로 머지를 막지 않음
Conventional Comments
DevOps코드 리뷰 코멘트에 표준화된 레이블을 붙여 의도를 명확히 하는 방법론. question:, suggestion:, issue:, nitpick:, praise: 등의 접두어 사용. 작성자가 코멘트 의도를 빠르게 파악
Pair Review
DevOps두 명의 리뷰어가 함께 코드를 보는 방식. 한 명은 세부 사항, 한 명은 큰 그림을 보거나, 시니어-주니어가 함께 리뷰. 복잡한 PR의 리뷰 품질 향상과 주니어 개발자 교육에 효과적
Technical Debt
DevOps기술 부채. 빠른 개발을 위해 품질을 희생한 결과, 나중에 더 큰 비용으로 되돌아오는 것. 임시방편 코드, 오래된 Feature Flag, 테스트 없는 코드, 문서화되지 않은 결정 등. 코드 리뷰로 사전 차단 가능
XSS
보안Cross-Site Scripting. 웹 애플리케이션에 악성 스크립트를 삽입하는 공격
CSRF
보안Cross-Site Request Forgery. 사용자가 의도하지 않은 요청을 보내도록 유도하는 공격
SQL Injection
보안SQL 인젝션. 사용자 입력을 검증 없이 SQL 쿼리에 직접 삽입할 때 발생하는 보안 취약점. 공격자가 임의의 SQL을 실행하여 데이터 유출, 변조, 삭제 가능. Prepared Statement나 ORM으로 방어
Prepared Statement
보안SQL 쿼리와 데이터를 분리해서 전송하는 방식. 데이터베이스가 쿼리 구조를 먼저 파싱하고, 데이터는 나중에 안전하게 바인딩. SQL 인젝션을 완벽 차단하며 같은 쿼리 반복 시 성능 향상
SSL/TLS
보안Secure Sockets Layer/Transport Layer Security. 네트워크 통신을 암호화하는 프로토콜
Hashing
보안임의 크기의 데이터를 고정 크기의 값으로 변환하는 단방향 암호화 기법
Encryption
보안데이터를 암호화하여 권한이 없는 사용자가 읽을 수 없게 만드는 기법
JWT
보안JSON Web Token. Header(알고리즘), Payload(데이터), Signature(서명) 3부분 구조. Base64 인코딩. 서버 세션 불필요(Stateless), 서명으로 위변조 검증. Access Token(짧은 만료), Refresh Token(긴 만료) 조합. REST API 인증 표준
OAuth
보안제3자 앱에 비밀번호 노출 없이 권한 위임하는 인증 프로토콜. "Google로 로그인" 구현 표준. Authorization Code, Implicit, Client Credentials, Password 4가지 Grant Type. Access Token + Refresh Token. OpenID Connect(OIDC)는 OAuth 2.0 확장
Firewall
보안네트워크 트래픽을 모니터링하고 차단하는 보안 시스템
IDE
일반Integrated Development Environment. 통합 개발 환경. 코드 편집, 디버깅, 빌드 등을 통합한 개발 도구
CLI
일반Command Line Interface. 명령줄 인터페이스. 텍스트 명령어로 프로그램을 제어하는 사용자 인터페이스
GUI
일반Graphical User Interface. 그래픽 사용자 인터페이스. 아이콘, 버튼 등 시각적 요소로 프로그램을 제어하는 인터페이스
SDK
일반Software Development Kit. 소프트웨어 개발 키트. 특정 플랫폼이나 프레임워크를 위한 개발 도구 모음
Refactoring
일반코드의 외부 동작은 유지하면서 내부 구조를 개선하는 작업. 가독성과 유지보수성 향상. 코드 리뷰에서 리팩터링은 별도 PR로 분리하는 것이 좋으며, 기능 추가와 섞지 않아야 리뷰가 쉬움
Debugging
일반프로그램의 버그를 찾아 수정하는 과정. 오류 원인을 분석하고 해결. 코드 리뷰는 코드가 배포되기 전에 잠재적 버그를 발견하여 디버깅 비용을 줄이는 효과적인 방법
Compilation
일반소스 코드를 기계어나 중간 코드로 변환하는 과정. 컴파일러가 수행
Runtime
일반프로그램이 실행되는 시점 또는 실행 환경. 컴파일 타임과 대비되는 개념
Syntax
일반프로그래밍 언어의 문법 규칙. 코드를 작성하는 형식과 구조
Semantics
일반프로그램 코드의 의미. 문법적으로 올바른 코드가 실제로 무엇을 수행하는지
Interpreter
일반소스 코드를 한 줄씩 읽어 즉시 실행하는 프로그램. Python, JavaScript 등
Compiler
일반소스 코드 전체를 기계어로 변환하는 프로그램. C, C++, Rust 등
Garbage Collection
일반사용하지 않는 메모리를 자동으로 회수하는 메모리 관리 기법
Memory Leak
일반프로그램이 사용한 메모리를 해제하지 않아 메모리가 계속 증가하는 문제
Async/Await
일반비동기 프로그래밍을 동기 코드처럼 작성할 수 있게 하는 문법. Promise 기반
Promise
일반비동기 작업의 최종 완료 또는 실패를 나타내는 객체. then/catch로 처리
Callback
일반다른 함수에 인자로 전달되어 나중에 실행되는 함수
Closure
일반함수가 선언될 때의 스코프를 기억하여 외부 변수에 접근할 수 있는 함수
Pointer
일반메모리 주소를 저장하는 변수. C/C++에서 메모리를 직접 제어
Reference
일반변수의 별칭. 포인터와 달리 null이 될 수 없고 재할당 불가
RAII
일반Resource Acquisition Is Initialization. 리소스 획득은 초기화. 객체의 생성자에서 리소스를 획득하고 소멸자에서 해제하는 C++ 패턴
Smart Pointer
일반스마트 포인터. 메모리를 자동으로 관리하는 C++ 포인터 래퍼. unique_ptr, shared_ptr, weak_ptr 등
Move Semantics
일반이동 의미론. C++11에서 도입된 기능으로 객체의 소유권을 효율적으로 이전하는 메커니즘
Perfect Forwarding
일반완벽한 전달. 템플릿 함수에서 인자를 원본 타입 그대로 다른 함수로 전달하는 C++ 기법
Template
일반타입을 매개변수로 받는 제네릭 프로그래밍 기능. C++, Java 등
Template Metaprogramming
일반템플릿 메타프로그래밍. C++ 템플릿을 사용하여 컴파일 타임에 코드를 생성하는 기법
STL
일반Standard Template Library. C++의 표준 라이브러리. 컨테이너, 알고리즘, 반복자 제공
Unit Test
일반개별 함수나 모듈을 독립적으로 테스트하는 기법. 코드 리뷰에서 새로운 기능이나 버그 수정에 대한 테스트 추가 여부를 확인하는 것이 중요. CI/CD에서 자동 실행되어 PR 품질을 보장
Integration Test
일반여러 모듈이 함께 동작하는지 테스트하는 기법. API 엔드포인트, 데이터베이스 연동 등 시스템 간 통합을 검증. 코드 리뷰에서 외부 시스템과의 상호작용 변경 시 통합 테스트 추가 확인
E2E Test
일반End-to-End Test. 사용자 관점에서 전체 시스템을 테스트하는 기법
TDD
일반Test-Driven Development. 테스트를 먼저 작성하고 코드를 구현하는 개발 방법론
Mock
일반테스트에서 실제 객체를 대신하는 가짜 객체. 의존성 격리에 사용
pip
일반Python 패키지 설치 도구. PyPI에서 패키지를 다운로드하고 관리
Virtual Environment
일반Python 프로젝트별로 독립된 패키지 환경을 제공하는 도구
Decorator
일반함수나 클래스를 수정하지 않고 기능을 추가하는 디자인 패턴
Generator
일반값을 하나씩 생성하는 이터레이터. yield 키워드로 구현
List Comprehension
일반Python에서 리스트를 간결하게 생성하는 문법
LLM
일반Large Language Model. 대규모 텍스트 데이터로 학습된 언어 모델. GPT, Claude 등
Prompt Engineering
일반AI 모델에서 원하는 결과를 얻기 위해 입력 프롬프트를 최적화하는 기법
Fine-tuning
일반사전 학습된 모델을 특정 작업에 맞게 추가 학습시키는 과정
Token
일반LLM에서 텍스트를 처리하는 기본 단위. 단어의 일부 또는 전체
Context Window
일반LLM이 한 번에 처리할 수 있는 최대 토큰 수
Codec
멀티미디어Coder-Decoder의 합성어. 디지털 데이터를 압축(인코딩)하여 저장/전송하고, 재생 시 원본으로 복원(디코딩)하는 알고리즘 및 구현체. 비디오(H.264, AV1), 오디오(AAC, Opus), 이미지(JPEG, WebP) 등 다양한 미디어 타입에 적용
Bitrate
멀티미디어단위 시간당 처리되는 비트 수. 비디오/오디오 스트림에서 초당 전송되는 데이터 양을 의미하며 kbps, Mbps 단위 사용. CBR(Constant), VBR(Variable), ABR(Average) 방식 존재. 높을수록 화질/음질 향상되나 파일 크기 및 대역폭 증가
H.264
멀티미디어AVC(Advanced Video Coding). MPEG-4 Part 10으로 표준화된 비디오 압축 코덱. 블록 기반 움직임 보상과 가변 블록 크기(4×4~16×16), 인트라 예측, 디블로킹 필터를 사용하여 이전 세대 대비 최대 50% 압축률 향상
H.265
멀티미디어HEVC(High Efficiency Video Coding). MPEG-H Part 2로 표준화된 차세대 비디오 압축 코덱. H.264 대비 동일 화질에서 약 50% 비트레이트 절감. CTU(Coding Tree Unit) 최대 64×64, 35가지 인트라 예측 모드, 개선된 움직임 보상과 SAO 필터 적용
VP9
멀티미디어Google이 개발한 로열티 프리 오픈소스 비디오 코덱. VP8의 후속작으로 H.264 대비 50%, HEVC와 유사한 압축 효율. 64×64 슈퍼블록, 10가지 인트라 예측 모드, 8×8 ADST/DCT 변환 사용. YouTube의 4K 스트리밍 주력 코덱 (2013~2021)
AV1
멀티미디어AOMedia Video 1. Alliance for Open Media(AOMedia)가 2018년 출시한 로열티 프리 오픈소스 비디오 코덱. VP9 대비 30%, HEVC 대비 50% 압축률 개선. 128×128 슈퍼블록, 71가지 인트라 예측 모드, CDEF/Restoration 필터 등 최신 압축 기술 총망라
MP4
멀티미디어MPEG-4 Part 14. ISO Base Media File Format(ISO BMFF) 기반 컨테이너. H.264/H.265/AV1 비디오, AAC/MP3/Opus 오디오 지원. Atom(Box) 구조로 메타데이터(moov), 미디어 데이터(mdat), 인덱스(stbl) 저장. 스트리밍 최적화(Fast Start) 가능
WebM
멀티미디어Google이 2010년 공개한 로열티 프리 오픈소스 컨테이너 포맷. Matroska(MKV) 기반 EBML 구조 사용. VP8/VP9/AV1 비디오, Vorbis/Opus 오디오만 허용. HTML5 <video> 표준 포맷으로 Chrome/Firefox 네이티브 지원
MPEG-TS
멀티미디어MPEG Transport Stream. ISO/IEC 13818-1 표준 컨테이너. 188바이트 고정 패킷 구조로 에러 복원력 강함. DVB, ATSC 디지털 방송 표준. HLS 세그먼트 포맷 (레거시). 실시간 스트리밍과 방송 송출에 특화
fMP4
멀티미디어Fragmented MP4. ISO BMFF 기반 스트리밍 최적화 컨테이너. 단일 moov(초기화 세그먼트) + 다수 moof+mdat(미디어 세그먼트) 구조. HLS, DASH, CMAF 표준 포맷. TS 대비 효율적, HDR/멀티오디오 지원
MKV
멀티미디어Matroska Video. 오픈소스 범용 컨테이너. EBML(Extensible Binary Meta Language) 기반 유연한 구조. 거의 모든 코덱, 무제한 트랙, 챕터, 첨부파일 지원. 고화질 보관 및 팬서브 표준
MOV
멀티미디어QuickTime File Format. Apple이 개발한 멀티미디어 컨테이너. ISO BMFF 기반 (MP4와 구조 동일). ProRes, H.264, H.265 등 지원. Final Cut Pro, DaVinci Resolve 네이티브 포맷. MP4와 상호 호환 가능
AVI
멀티미디어Audio Video Interleave. Microsoft가 1992년 개발한 레거시 컨테이너. RIFF(Resource Interchange File Format) 기반. DivX, Xvid 시대 주력 포맷. 4GB 파일 크기 제한, 가변 프레임레이트 미지원
FLV
멀티미디어Flash Video. Adobe Flash Player 전용 컨테이너. H.264/VP6 비디오, AAC/MP3 오디오. 2000년대 웹 동영상 표준 (YouTube 초기). Flash 종료(2020)로 사실상 사멸. RTMP 스트리밍 컨테이너
Container Format
멀티미디어비디오, 오디오, 자막, 메타데이터, 챕터 정보를 단일 파일에 멀티플렉싱하는 포맷. 코덱과 독립적으로 다양한 스트림을 패키징. MP4는 H.264/AAC, MKV는 거의 모든 코덱 지원. 파일 확장자와 컨테이너는 대체로 일치하나 .mp4 안에 H.265/Opus도 가능
AAC
멀티미디어Advanced Audio Coding. MPEG-2 Part 7 및 MPEG-4 Part 3로 표준화된 오디오 압축 코덱. MP3 대비 동일 비트레이트에서 약 30% 향상된 음질. 1024 샘플 MDCT 변환, 스펙트럴 밴드 복제(SBR), 파라메트릭 스테레오(PS) 등 고급 기술 적용
GOP
멀티미디어Group of Pictures. 비디오 압축에서 하나의 I-프레임(Intra, 키프레임)과 그 뒤를 따르는 P/B-프레임들로 구성된 독립적 단위. GOP 크기는 I-프레임 간격을 의미하며 압축률, 탐색 속도, 에러 복원력에 영향. GOP=30은 30프레임마다 키프레임 삽입
FFmpeg
멀티미디어오픈소스 멀티미디어 프레임워크. 비디오/오디오 디코딩, 인코딩, 트랜스코딩, 스트리밍, 필터링 등 거의 모든 미디어 처리 가능. libavcodec(코덱), libavformat(컨테이너), libavfilter(필터), libswscale(스케일링) 등 라이브러리 제공. 500+ 코덱, 300+ 포맷 지원
Opus
멀티미디어IETF가 표준화한 로열티 프리 오픈소스 오디오 코덱. 6kbps~510kbps 가변 비트레이트, 6kHz~48kHz 대역폭 지원. 음성과 음악 모두 최적화. Silk(음성) + CELT(음악) 하이브리드 구조. 5~120ms 저지연으로 VoIP, 스트리밍, 저장 등 모든 용도 대응
MP3
멀티미디어MPEG-1/MPEG-2 Audio Layer III. 1993년 출시된 손실 오디오 압축 코덱. 심리음향 모델 기반 MDCT 변환으로 원본 대비 약 1/10 압축. 32~320kbps 비트레이트. 특허 만료(2017)로 완전 무료. 가장 범용적인 오디오 포맷
FLAC
멀티미디어Free Lossless Audio Codec. 무손실 오디오 압축 코덱. 원본 대비 약 50~60% 압축, 완벽한 복원 가능. 선형 예측 코딩(LPC) 사용. 오픈소스, 로열티 프리. 24bit/192kHz 고해상도 오디오 지원. 고음질 보관 및 오디오파일 표준
Vorbis
멀티미디어Xiph.Org가 개발한 오픈소스 손실 오디오 코덱. MP3 대체 목적. MDCT 변환 기반, MP3/AAC 유사 음질에서 로열티 프리. OGG 컨테이너와 결합 (.ogg). 웹 게임, 오픈소스 프로젝트에서 사용
OpenGL
일반Open Graphics Library. 크로스 플랫폼 2D/3D 그래픽스 렌더링 API
Vulkan
일반저수준 그래픽스 API. OpenGL보다 세밀한 제어와 높은 성능 제공
DirectX
일반Microsoft의 멀티미디어 API 모음. Windows 게임 개발에 주로 사용
Shader
일반GPU에서 실행되는 작은 프로그램. 정점 변환, 픽셀 색상 계산 등을 수행
Vertex
일반3D 공간의 점. 위치, 색상, 텍스처 좌표 등의 속성을 가짐
Texture
일반3D 모델 표면에 입히는 이미지. 사실적인 렌더링을 위해 사용
FPS
일반Frames Per Second. 초당 프레임 수. 높을수록 부드러운 화면 표시
Rendering
일반3D 모델을 2D 이미지로 변환하는 과정. 조명, 텍스처, 그림자 등을 계산
Ray Tracing
일반빛의 경로를 추적하여 사실적인 그래픽을 생성하는 렌더링 기법
Go
일반Google이 개발한 오픈소스 프로그래밍 언어. 동시성 처리와 간결한 문법이 특징
Rust
일반메모리 안전성과 동시성을 보장하는 시스템 프로그래밍 언어. 소유권 시스템이 특징
Goroutine
일반Go 언어의 경량 스레드. 수천 개를 동시에 실행할 수 있을 정도로 효율적
Channel
일반Go 언어에서 고루틴 간 통신을 위한 타입. 동시성 패턴 구현에 사용
Sanitizer
일반메모리 오류, 데이터 레이스 등을 런타임에 검출하는 도구. ASan, UBSan 등
Valgrind
일반메모리 누수와 오류를 검출하는 동적 분석 도구. Linux에서 주로 사용
CMake
일반크로스 플랫폼 빌드 시스템 생성 도구. C/C++ 프로젝트 빌드 관리
Make
일반빌드 자동화 도구. Makefile을 읽어 컴파일과 링크를 수행
Undefined Behavior
일반C/C++에서 결과가 정의되지 않은 동작. 컴파일러에 따라 다르게 동작할 수 있음
Segmentation Fault
일반잘못된 메모리 접근으로 인한 오류. C/C++에서 흔히 발생
Race Condition
일반경쟁 조건. 여러 프로세스·스레드가 공유 자원에 동시 접근할 때, 실행 순서에 따라 결과가 달라지는 버그. 락(Mutex), 트랜잭션, 원자적 연산으로 해결. 비동기 코드에서 자주 발생
Type Safety
일반타입 안전성. 컴파일 타임 또는 런타임에 데이터 타입이 보장되는 정도. TypeScript, Rust 같은 언어가 강한 타입 안전성을 제공. 코드 리뷰 시 리뷰어의 추론 부담을 줄이고 리팩터링을 안전하게 만듦
Breaking Change
일반기존 API 사용자나 코드에 영향을 주어 호환성이 깨지는 변경 사항. 함수 시그니처 변경, API 응답 형식 변경, 환경 변수 추가/제거 등. Semantic Versioning에서 메이저 버전 업데이트. CHANGELOG와 마이그레이션 가이드 필수
Big-O Notation
일반Big-O 표기법. 알고리즘의 시간·공간 복잡도를 표현하는 수학 표기법. 입력 크기 n이 커질 때 실행 시간이 어떻게 증가하는지 나타냄. O(1), O(log n), O(n), O(n log n), O(n²), O(2ⁿ) 등
Vertical Slice
일반수직 슬라이스. 소프트웨어 아키텍처를 "계층"이 아닌 "기능"으로 수직으로 잘라내는 접근법. UI → API → DB까지 얇게, 하지만 완전하게 구현. 작은 PR을 만들고 각 PR이 독립적으로 배포 가능하게 함
Working Memory
일반작업 기억 용량. 인간이 동시에 처리할 수 있는 정보의 양으로, 심리학에서는 약 7±2개 항목. diff가 500줄이면 리뷰어가 추적 불가. 작은 PR, 명확한 네이밍이 리뷰 품질을 높이는 과학적 근거
Lint
일반린트. 소스 코드를 정적으로 분석해서 스타일, 문법 오류, 잠재적 버그를 찾아내는 도구의 총칭. ESLint, Pylint, golangci-lint 등. 코드 리뷰 전에 자동으로 실행하여 스타일 논쟁을 제거