📚 용어 사전
모든 위키 페이지를 한곳에서 찾아보세요. 자모/알파벳으로 이동하거나 검색어로 필터할 수 있습니다.
총 851개의 용어
ㄱ (14)
- 가우스 소거법 (Gaussian Elimination) algorithm ← 2
- 별칭: gaussian elimination, 가우스 소거법, Gauss elimination, Gauss-Jordan, row reduction, gaussian-elimination
- 정의 가우스 소거법 (Gaussian Elimination) 은 선형 연립방정식 의 해를 구하거나, 행렬의 역행렬 / rank / determinant 를 계산하는 O(N^3) …
- 각도 정렬 (Angle Sorting) algorithm ← 2
- 별칭: angle sorting, 각도 정렬, polar sort, sort by angle
- 정의 각도 정렬 (Angle Sorting / Polar Sort) 은 2차원 평면 위의 점들을 기준점에 대한 극각 (polar angle) 순서로 정렬하는 기법. atan2 함…
- 값 / 좌표 압축 (Coordinate Compression) algorithm ← 1
- 별칭: coordinate compression, 좌표 압축, 값 압축, 값 매핑, 좌표 압축, compression, discretization
- 정의 값 / 좌표 압축 (Coordinate Compression) 은 큰 범위의 값 (예: 10^9) 을 정렬된 순서를 유지하며 작은 정수 인덱스 (0..K-1) 로 매핑하는 …
- 강한 연결 요소 (SCC) algorithm ← 6
- 별칭: scc, strongly connected component, SCC, 강한 연결 요소, 강결합 요소
- 정의 강한 연결 요소 (Strongly Connected Component, SCC) 는 방향 그래프에서 서로 도달 가능한 정점들의 최대 부분 집합. SCC 내 임의 두 정점 u…
- 게임 이론 (Game Theory) algorithm ← 2
- 별칭: game theory, 게임 이론, zero-sum game, Nim, win/loss DP, game-theory
- 정의 게임 이론 (Game Theory) 은 둘 이상의 플레이어가 정해진 규칙 아래 의사 결정을 내리는 상황을 수학적으로 모델링하는 분야. PS에서는 두 명이 완벽한 플레이를 할…
- 격자 그래프 (Grid Graph) algorithm ← 2
- 별칭: grid graph, 격자 그래프, grid bfs, grid dfs
- 정의 격자 그래프 (Grid Graph) 는 2차원 배열 (N × M 격자) 위의 그래프. 각 칸이 노드, 인접한 칸 사이가 간선. 4방향 또는 8방향 이동. 격자 위 최단 경로…
- 경사 하강법 (Gradient Descent) algorithm ← 2
- 별칭: gradient descent, 경사 하강법, GD, steepest descent, gradient-descent
- 정의 경사 하강법 (Gradient Descent, GD) 은 미분 가능한 목적 함수 f(x) 의 1차 도함수 (gradient) 방향으로 반복 이동하며 극소값 (local mi…
- 고차 함수 javascript ← 6
- 별칭: higher-order function, higher order function, 고차함수
- - 고차함수란 하나 이상의 함수를 인자로 받거나 반환하는 함수를 말합니다. - 일급 함수라는 특성을 활용해 실제로 함수를 다루는 연산을 수행하는 함수입니다. 즉, 아래 조건 중 …
- 구현 (Implementation) algorithm ← 1
- 별칭: implementation, 구현, 시뮬레이션, edge case
- 정의 구현 (Implementation) 은 PS 에서 알고리즘적 난이도는 낮지만 정확한 코딩이 필요한 문제 유형. 주로 시뮬레이션 (simulation), 조건 분기 (cond…
- 그래프 순회 (Graph Traversal) algorithm ← 4
- 별칭: graph traversal, 그래프 순회, 그래프 탐색, visit pattern
- 정의 그래프 순회 (Graph Traversal) 는 그래프 G=(V, E) 의 모든 정점 V 를 체계적으로 방문하는 알고리즘 패밀리. 대표 구현: 너비 우선 탐색 (BFS), …
- 그리디 (Greedy) algorithm ← 4
- 별칭: greedy, 그리디, 탐욕법, greedy algorithm
- 정의 그리디 (Greedy) 알고리즘은 매 단계마다 국소 최적 (locally optimal) 선택을 하여 전역 최적해 (globally optimal solution) 에 도달…
- 그린 정리 (Green's Theorem) algorithm
- 별칭: Green's theorem, 그린 정리, 폐곡선 적분, 면적 적분, Green theorem
- 정의 그린 정리 (Green's Theorem) 는 평면 위의 폐곡선 C 에 대한 선적분(line integral) 과 그 내부 영역 D 에 대한 이중 적분(double inte…
- 기하 (Geometry) 기본 algorithm ← 6
- 별칭: geometry, 기하, 기하 알고리즘, computational geometry
- 정의 Computational Geometry 는 점, 선, 다각형 등 기하 객체를 컴퓨터로 처리하는 알고리즘 분야. PS 에서는 2D 평면 위의 정수 좌표 가 주로 다루어지며,…
- 깊이 우선 탐색 (DFS) algorithm ← 20
- 별칭: DFS, depth-first search, 깊이 우선 탐색, depth-first
- 정의 깊이 우선 탐색 (Depth-First Search, DFS) 는 그래프 G=(V, E) 에서 갈 수 있는 만큼 깊이 들어가다가 막히면 백트래킹하는 알고리즘. 스택 (LIF…
ㄴ (3)
- 너비 우선 탐색 (BFS) algorithm ← 18
- 별칭: BFS, breadth-first search, 너비 우선 탐색, level-order
- 정의 너비 우선 탐색 (Breadth-First Search, BFS) 는 그래프 G=(V, E) 에서 시작 정점 s 로부터 가까운 정점부터 순서대로 방문하는 알고리즘. 큐 (F…
- 네트워크 유량 (Network Flow) algorithm ← 5
- 별칭: network flow, 최대 유량, max flow, flow
- 정의 네트워크 유량 (Network Flow) 은 방향 그래프 G = (V, E) 에서 각 간선 (u, v) 의 용량 (capacity) c(u, v) 가 주어질 때, 소스 s …
- 누적 합 (Prefix Sum) algorithm ← 13
- 별칭: prefix sum, 누적 합, 구간 합, prefix-sum
- 정의 누적 합 (Prefix Sum) 은 배열 에 대해 (또는 1-indexed ) 을 미리 계산해 두고, 임의 구간 합 을 O(1) 에 구하는 정형. 문제 풀이에서 "구간 N …
ㄷ (12)
- 다각형 넓이 (Polygon Area) algorithm
- 별칭: polygon area, 다각형 넓이, shoelace formula, 신발끈 공식, polygon area
- 정의 다각형 넓이 (Polygon Area) 는 2D 평면 위 단순다각형 (non-self-intersecting polygon) 의 면적을 신발끈 공식 (Shoelace For…
- 다익스트라 알고리즘 (Dijkstra's Algorithm) algorithm ← 12
- 별칭: dijkstra, 다익스트라, 최단 경로, shortest path
- 정의 다익스트라 알고리즘 (Dijkstra's Algorithm) 은 음이 아닌 가중치 그래프에서 단일 시작점 s 로부터 모든 정점까지의 최단 거리를 찾는 그리디 알고리즘. Ed…
- 다차원 세그먼트 트리 (Multi-dimensional Segment Tree) algorithm
- 별칭: multi-dimensional segment tree, 2D segment tree, 다차원 세그트리, 2D 세그트리
- 정의 다차원 세그먼트 트리 (Multi-dimensional Segment Tree) 는 2차원 이상 배열에서 직사각형 구간 쿼리 + 점 갱신 을 O(log^d N) 에 처리하는…
- 단절점 (Articulation Point) algorithm
- 별칭: articulation point, 단절점, cut vertex
- 정의 단절점 (Articulation Point, Cut Vertex) 은 무향 연결 그래프에서 제거했을 때 그래프가 둘 이상의 컴포넌트로 분리되는 정점. Robert Tarja…
- 단조 큐 최적화 (Monotone Queue Optimization) algorithm
- 별칭: monotone queue optimization, 단조 큐 최적화, monotone-queue-optimization
- 정의 단조 큐 최적화 (Monotone Queue Optimization) 는 DP 전이 에서, 전이 후보 j 의 집합 이 슬라이딩 윈도우 를 이루고 f(j) 가 결합된 값이 단…
- 담금질 기법 (Simulated Annealing) algorithm ← 2
- 별칭: simulated annealing, 담금질 기법, SA, simulated-annealing
- 정의 담금질 기법 (Simulated Annealing, SA) 은 금속의 담금질 (annealing) 과정에서 영감을 받은 확률적 메타휴리스틱. 온도 T 가 높을 때는 나쁜 해…
- 덱 (Deque) algorithm ← 6
- 별칭: deque, 덱, double-ended queue, 양방향 큐
- 정의 Deque (덱, double-ended queue) 는 양쪽 끝에서 O(1) push/pop 이 가능한 선형 자료구조. 큐 + 스택의 일반화. 내부 구현은 대개 chunk…
- 덱 활용 구간 최댓값 트릭 (Monotonic Deque Trick) algorithm ← 3
- 별칭: Deque Trick, monotonic deque, monotonic queue, sliding window maximum, deque-trick, 덱 트릭, 단조 덱
- 정의 덱 트릭 (Deque Trick) 은 덱 (double-ended queue) 에 원소의 인덱스를 단조로운 값 순서 로 유지해, 슬라이딩 윈도우의 최댓값 또는 최솟값을 O(…
- 덱 DP (슬라이딩 윈도우 최적화) algorithm
- 별칭: deque DP, monotonic queue DP, sliding window DP, 덱 DP, 모노토닉 큐 DP
- 정의 덱 DP (Deque DP) 는 점화식 꼴에서 monotonic deque 를 써서 최적 후보를 O(N) 에 유지하는 기법. 슬라이딩 윈도우 최댓값/최솟값의 일반화로, 윈도…
- 도형 불 연산 (Geometric Boolean Operations) algorithm
- 별칭: geometric boolean operations, polygon clipping, Sutherland-Hodgman, Weiler-Atherton, 도형 불 연산, 폴리곤 클리핑
- 정의 도형 불 연산 (Geometric Boolean Operations) 은 두 다각형(또는 임의의 폐곡선)에 대해 합집합(union), 교집합(intersection), 차집…
- 동적 계획법 (Dynamic Programming) algorithm ← 18
- 별칭: dp, 동적 계획법, 다이나믹 프로그래밍, dynamic programming
- 정의 동적 계획법 (Dynamic Programming, DP) 은 큰 문제를 작은 부분 문제로 나누고, 각 부분 문제의 최적해를 저장하여 중복 계산을 제거하는 최적화 기법. R…
- 두 포인터 (Two Pointer) algorithm ← 6
- 별칭: two pointer, 두 포인터, 투 포인터, two-pointer
- 정의 두 포인터 (Two Pointer) 는 정렬 또는 단조 구조 에서 두 인덱스 , 을 서로 다른 속도 / 방향 으로 이동시키며 부분 구간 / 페어를 O(N) 에 탐색하는 기법…
ㄹ (6)
- 라빈-카프 알고리즘 (Rabin-Karp) algorithm ← 2
- 별칭: rabin-karp, rabin karp, rolling hash
- 정의 라빈-카프 (Rabin-Karp) 는 롤링 해시 (rolling hash) 를 이용해 패턴 문자열 이 텍스트 의 어디에 등장하는지 찾는 문자열 매칭 알고리즘. 1987 년 …
- 레드-블랙 트리 (Red-Black Tree) algorithm ← 1
- 별칭: red-black tree, 레드-블랙 트리, rb-tree, self-balancing BST
- 정의 레드-블랙 트리 (Red-Black Tree) 는 각 노드에 색 (빨강/검정) 을 부여하고 5 가지 규약을 지켜 높이 O(log N) 을 보장하는 자가 균형 . 삽입/삭제/…
- 레이지 프로파게이션 (Lazy Propagation) algorithm ← 2
- 별칭: lazy propagation, 레이지 프로파게이션, 느긋한 전파, 구간 갱신, range update
- 정의 레이지 프로파게이션 (Lazy Propagation) 은 세그먼트 트리의 확장으로, 구간 갱신 (range update) 와 구간 쿼리 (range query) 를 모두 O…
- 로프 (Rope) algorithm
- 별칭: rope, 로프, 문자열 트리, rope data structure
- 정의 로프 (Rope) 는 문자열을 이진 트리로 표현해 split (분할), concat (연결) 을 O(log N) 에 처리하는 자료구조. 각 리프는 짧은 문자열 조각, 내부 …
- 뤼카 정리 (Lucas Theorem) algorithm ← 1
- 별칭: lucas theorem, lucas, 뤼카 정리, nCr mod p, lucas-theorem
- 정의 뤼카 정리 (Lucas Theorem) 는 소수 p 에 대해 큰 n, r 의 이항 계수 nCr 을 p 로 나눈 나머지를 O(logp N) 에 구하는 방법. n, r 을 p …
- 리차오 트리 (Li Chao Tree) algorithm
- 별칭: li chao tree, 리차오 트리, 직선 세그먼트 트리
- 정의 리차오 트리 (Li Chao Tree) 는 평면 상의 직선 (또는 선분) 집합에서 특정 x좌표에서의 최댓값 (또는 최솟값) 을 O(log N) 에 구하는 자료구조. 세그먼트…
ㅁ (10)
- 매개 변수 탐색 (Parametric Search) algorithm ← 1
- 별칭: parametric search, 매개 변수 탐색, 파라메트릭 서치, parametric-search
- 정의 매개 변수 탐색 (Parametric Search) 은 답 자체를 이분 탐색하는 기법. "조건을 만족하는 최소값 / 최대값" 문제에서, 조건 만족 여부가 단조성 (monot…
- 매내처 알고리즘 (Manacher's Algorithm) algorithm ← 3
- 별칭: manacher, manacher's algorithm, 매내처, 회문 알고리즘
- 정의 매내처 알고리즘 (Manacher's Algorithm) 은 문자열 의 모든 위치에서 중심으로 하는 최장 회문 (palindrome) 반지름 을 O(N) 시간에 계산하는 선…
- 머지 소트 트리 (Merge Sort Tree) algorithm
- 별칭: merge sort tree, 머지 소트 트리, 정렬된 세그먼트 트리
- 정의 머지 소트 트리 (Merge Sort Tree) 는 세그먼트 트리의 각 노드에 해당 구간의 정렬된 부분 배열을 저장하는 자료구조. 구간 내에서 k 이하 원소의 개수, k번째…
- 모델 양자화 ml ← 3
- 별칭: Quantization, 양자화, Model Quantization, model quantization, quantization
- 정의 양자화 (Quantization) 는 신경망 모델의 가중치/활성화를 높은 정밀도 (FP32, FP16) 에서 낮은 정밀도 (INT8, INT4 등) 로 변환하여 메모리와 연…
- 모듈러 역원 (Modular Multiplicative Inverse) algorithm ← 11
- 별칭: modular inverse, 모듈러 역원, modular-multiplicative-inverse, inverse modulo
- 정의 정수 a 의 모듈러 역원 (modular multiplicative inverse) 은 을 만족하는 정수 x. 기호로 또는 . 존재 조건: gcd(a, m) = 1 일 때만…
- 문자열 (String) algorithm ← 6
- 별칭: string, 문자열, 문자열 알고리즘
- 정의 문자열 (String) 은 문자(character)의 순서 있는 나열. 프로그래밍에서는 연속된 메모리에 저장된 문자 배열 로 구현되며, 각 문자는 ASCII(7비트) 또는 …
- 문자열 해싱 (String Hashing) algorithm ← 6
- 별칭: string hashing, rolling hash, 문자열 해싱, 해시, 라빈-카프
- 정의 문자열 해싱 (String Hashing) 은 문자열을 고정 길이의 정수 (해시값) 로 매핑하여, 부분 문자열 비교를 O(1) 에 수행할 수 있게 만드는 기법. Rabin과…
- 물리 시뮬레이션 (Physics Simulation) algorithm
- 별칭: physics, 물리 시뮬레이션, 운동 방정식, 충돌 처리, physics-simulation
- 정의 물리 시뮬레이션 (Physics Simulation) 은 뉴턴 역학의 운동 방정식 (F=ma, 속도, 가속도) 을 수치적으로 적분하여 시간 경과에 따른 물체의 위치와 속도를…
- 미적분 (Calculus) algorithm ← 1
- 별칭: calculus, 미적분, 미분, 적분, numerical integration, numerical differentiation
- 정의 미적분 (Calculus) 은 함수의 변화율(미분)과 누적량(적분)을 다루는 수학 분야. 알고리즘 문제에서는 수치 미분 (Numerical Differentiation) 과…
- 민코프스키 합 DP algorithm ← 2
- 별칭: 민코프스키 합 DP, Minkowski Sum DP
- 정의 민코프스키 합 (Minkowski Sum) 은 두 점 집합 , 의 합 . 두 볼록 다각형의 민코프스키 합은 각 변을 각도순으로 합친 새로운 볼록 다각형, O(|A| + |B…
ㅂ (21)
- 방향 비순환 그래프 (DAG) algorithm ← 2
- 별칭: dag, directed acyclic graph, DAG, 방향 비순환 그래프
- 정의 방향 비순환 그래프 (Directed Acyclic Graph, DAG) 는 사이클이 없는 방향 그래프. 어떤 정점에서 출발해도 자기 자신으로 돌아오는 경로가 없다. DAG…
- 배낭 문제 (Knapsack) algorithm ← 4
- 별칭: knapsack, 배낭 문제, 0-1 knapsack, unbounded knapsack
- 정의 배낭 문제 (Knapsack Problem) 은 무게 제한 W 인 배낭에 가치 vi, 무게 wi 인 물건 N 개 중 일부를 담아 총 가치 최대화하는 조합 최적화 문제. NP…
- 백트래킹 (Backtracking) algorithm ← 6
- 별칭: backtracking, 백트래킹, 되추적, back-tracking
- 정의 백트래킹 (Backtracking) 은 DFS + 가지치기 (pruning) 로 모든 경우를 탐색하되, 불가능한 후보를 조기 제거하여 탐색 공간을 극적으로 줄이는 알고리즘.…
- 번사이드 보조정리 (Burnside's Lemma) algorithm
- 별칭: burnside's lemma, 번사이드 보조정리, Cauchy-Frobenius, orbit-counting, burnside
- 정의 번사이드 보조정리 (Burnside's Lemma, Cauchy-Frobenius Lemma) 는 군 G 가 집합 X 에 작용할 때, 궤도(orbit)의 개수 를 구하는 공…
- 베이즈 정리 (Bayes Theorem) algorithm
- 별칭: Bayes theorem, 베이즈 정리, Bayes rule, conditional probability, Bayes
- 정의 베이즈 정리 (Bayes Theorem) 는 조건부 확률의 대칭성을 이용해 P(A|B) 를 P(B|A) 로 표현하는 공식: - P(A): 사전 확률 (prior) - 증거를…
- 벨만-포드 알고리즘 (Bellman-Ford Algorithm) algorithm ← 6
- 별칭: bellman-ford, 벨만포드, 벨만-포드, 음수 가중치 최단 경로
- 정의 벨만-포드 알고리즘 (Bellman-Ford Algorithm) 은 음수 가중치 간선을 허용하면서 단일 시작점 s 로부터 모든 정점까지의 최단 거리를 찾는 DP 기반 알고리…
- 병렬 이분 탐색 (Parallel Binary Search) algorithm ← 3
- 별칭: parallel binary search, PBS, 병렬 이분 탐색, parametric search, pbs
- 정의 병렬 이분 탐색 (Parallel Binary Search, PBS) 은 Q 개의 쿼리를 각각 독립적으로 이분탐색하지 않고, 모든 쿼리의 이분탐색을 라운드별로 동시에 진행하…
- 보이어-무어 다수결 투표 (Boyer-Moore Majority Vote) algorithm
- 별칭: majority vote, 보이어-무어 다수결, 과반수 투표, majority-vote
- 정의 보이어-무어 다수결 투표 (Boyer-Moore Majority Vote) 는 배열에서 과반수 (> N/2) 를 차지하는 원소를 O(N) 시간, O(1) 공간으로 찾는 알고…
- 볼록 껍질 (Convex Hull) algorithm ← 12
- 별칭: convex hull, 볼록 껍질, convex-hull, Andrew monotone chain, Graham scan
- 정의 볼록 껍질 (Convex Hull) 은 주어진 점 집합 P 를 모두 포함하는 최소 크기의 볼록 다각형. 즉 P 의 어떤 점도 다각형 외부에 있지 않고, 다각형의 꼭짓점은 P…
- 볼록 다각형 내부 점 판정 (Point in Convex Polygon) algorithm ← 3
- 별칭: point in convex polygon, 볼록 다각형 내부 점, convex polygon point containment, binary search on angle
- 정의 볼록 다각형 내부 점 판정 은 볼록 다각형(convex polygon) 과 하나의 점이 주어졌을 때, 점이 다각형의 내부/경계/외부 중 어디에 있는지 O(log N) 에 판…
- 볼록 다각형 접선 최적화 algorithm ← 5
- 별칭: Convex Tangent Optimization, 볼록 다각형 접선 최적화
- 정의 볼록 다각형의 접선을 이용한 최적화 는 두 종류 비용의 곱 / 합 형태의 trade-off 를 최소화 / 최대화할 때, 모든 가능 해 (x, y) 들이 만드는 평면 점집합의…
- 분리 집합 (Disjoint Set, Union-Find) algorithm ← 1
- 별칭: disjoint set, union find, 분리 집합, 서로소 집합, 유니온 파인드
- 정의 분리 집합 (Disjoint Set, Union-Find) 은 서로 겹치지 않는 집합들을 관리하며, 다음 두 연산을 거의 상수 시간 (amortized O(α(N)), α는…
- 분산 학습 ml ← 2
- 별칭: Distributed Training, distributed training, 분산 훈련, model parallelism, tensor parallelism, pipeline parallelism, data parallelism
- 정의 분산 학습 (Distributed Training) 은 한 또는 에 들어가지 않는 큰 모델을 여러 가속기에 나눠서 학습시키는 기법. 현대 LLM (Llama 405B, GP…
- 분할 정복 (Divide and Conquer) algorithm ← 4
- 별칭: divide and conquer, 분할 정복, divide-and-conquer
- 정의 분할 정복 (Divide and Conquer) 은 문제를 더 작은 부분 문제로 나누고 (Divide), 각각 해결한 후 (Conquer), 결과를 합쳐 (Combine) …
- 분할 정복을 이용한 거듭제곱 (Exponentiation by Squaring) algorithm ← 7
- 별칭: exponentiation by squaring, 거듭제곱, 빠른 거듭제곱, fast exponentiation, binary exponentiation
- 정의 분할 정복을 이용한 거듭제곱 (Exponentiation by Squaring) 은 을 O(log n) 시간에 계산하는 분할 정복 알고리즘. 같은 모듈러 연산에서 특히 필수…
- 분할정복 DP 최적화 (Divide and Conquer Optimization) algorithm ← 4
- 별칭: Divide and Conquer Optimization, D&C Optimization, DnC Optimization, monotone queue optimization, 분할정복 DP, DnC DP
- 정의 분할정복 DP 최적화 (Divide and Conquer Optimization) 는 꼴의 DP 에서, 최적 분할점 opt[i][j] 가 j 에 대해 단조 비감소 ( ) 일…
- 불변량 (Invariant) algorithm ← 2
- 별칭: invariant, 불변량, 불변량 찾기, invariant method
- 정의 불변량 (Invariant) 은 어떤 변환(operation)이 적용되어도 변하지 않는 양이나 성질. 불가능성 증명, 알고리즘의 정당성(correctness) 증명, 종료 …
- 브루트포스 (Bruteforcing) algorithm
- 별칭: bruteforce, 브루트포스, 완전 탐색, exhaustive search
- 정의 브루트포스 (Bruteforcing, 완전 탐색) 는 가능한 모든 경우를 체계적으로 나열하고 검증하는 알고리즘. 프로그래밍 대회에서 가장 기초이자 가장 안전한 접근이며, 문…
- 비트마스크 DP (Bitmask DP) algorithm ← 1
- 별칭: bitmask dp, 비트마스크 DP, 비트필드 DP, dp-bitfield
- 정의 비트마스크 DP (Bitmask DP) 는 상태 공간이 부분집합 으로 표현될 때, 각 부분집합을 정수의 비트로 인코딩해 DP 상태로 삼는 기법. N ≤ 20 범위에서 O(2…
- 비트마스킹 (Bitmask) algorithm ← 3
- 별칭: bitmask, 비트마스킹, 비트 마스크, bit-mask
- 정의 비트마스킹 (Bitmask) 은 집합 / 상태 를 정수의 비트 패턴 으로 인코딩해 집합 연산을 비트 연산으로 처리하는 기법. 같은 집합을 으로 표현하면, 멤버 확인 / 추가…
- 비트셋 LCS (Bitset LCS) algorithm ← 1
- 별칭: bitset LCS, 비트셋 LCS, bitset-lcs, Hyyro LCS, Allison-Dix LCS
- 정의 Bitset LCS 는 두 문자열 A, B 의 최장 공통 부분 수열 (LCS) 길이를 O(NM/w) 시간에 구하는 기법. 표준 LCS DP 의 O(NM) 를 비트 병렬 (b…
ㅅ (19)
- 사칙연산 (Arithmetic Operations) algorithm ← 1
- 별칭: arithmetic, 사칙연산, 큰 수 연산, overflow
- 정의 사칙연산 (Arithmetic Operations) 은 덧셈, 뺄셈, 곱셈, 나눗셈의 정확한 구현을 다루는 PS 태그. 큰 수 표현 (large integer), 오버플로우…
- 삼분 탐색 (Ternary Search) algorithm ← 2
- 별칭: ternary search, 삼분 탐색, 삼분검색, ternary-search
- 정의 삼분 탐색 (Ternary Search) 은 단봉 (unimodal) 함수의 극값 (최대 / 최소) 을 O(log N) 에 찾는 알고리즘. 구간을 3등분하는 두 점 , 에서…
- 서큘레이션 (Circulation) algorithm
- 별칭: circulation, 서큘레이션, feasible flow, 하한 유량, flow with lower bounds
- 정의 서큘레이션 (Circulation) 은 방향 그래프 G = (V, E) 에서 모든 간선에 하한 l(u,v) 과 상한 c(u,v) 이 주어질 때, 모든 정점에서 유량 보존 (…
- 선분 교차 (Line Segment Intersection) algorithm ← 1
- 별칭: line intersection, 선분 교차, line segment intersection, CCW intersection, 선분 교차 판정
- 정의 선분 교차 판정 (Line Segment Intersection) 은 2D 평면 위 두 선분 AB 와 CD 가 서로 교차하는지 O(1) 에 판정하는 기하 연산. CCW (C…
- 선인장 그래프 (Cactus Graph) algorithm
- 별칭: cactus graph, 선인장 그래프, cactus
- 정의 선인장 그래프 (Cactus Graph) 는 모든 간선이 최대 한 개의 단순 사이클에만 포함되는 무방향 연결 그래프. 트리 (tree) 의 일반화로, 사이클은 허용하되 "사…
- 선형 계획법 (Linear Programming) algorithm ← 1
- 별칭: linear programming, 선형 계획법, LP, simplex, linear program
- 정의 선형 계획법 (Linear Programming, LP) 은 선형 부등식 제약 조건 아래에서 선형 목적 함수를 최적화 (최대화/최소화) 하는 문제. 표준형: 변수 x ∈ ℝ…
- 선형대수 (Linear Algebra) algorithm ← 2
- 별칭: linear algebra, 선형대수, 행렬, 벡터, 선형대수학, linear-algebra
- 정의 선형대수 (Linear Algebra) 는 벡터 공간 (vector space) 과 선형 변환 (linear transformation) 을 다루는 수학 분야. PS 에서는…
- 세그먼트 트리 (Segment Tree) algorithm ← 19
- 별칭: segment tree, 세그먼트 트리, 구간 트리, segtree
- 정의 세그먼트 트리 (Segment Tree) 는 배열의 구간 쿼리 (range query) 와 점 갱신 (point update) 를 모두 O(log N) 에 처리하는 이진 트…
- 세그먼트 트리 그래프 간선 압축 algorithm
- 별칭: Segment Tree Graph, 세그먼트 트리 그래프, Segment Tree on Graph Edges
- 정의 세그먼트 트리 그래프 간선 압축 은 "한 정점 v 에서 구간 의 모든 정점으로 가는 간선" (또는 구간에서 구간으로) 을 단순 V·N 간선 대신 세그먼트 트리의 노드를 가상…
- 소수 판정 (Primality Test) algorithm ← 5
- 별칭: primality test, 소수 판정, 소수 테스트, primality-test
- 정의 소수 판정 (Primality Test) 은 주어진 정수 N이 소수인지 합성수인지 판별하는 알고리즘. 시행 나눗셈 (Trial Division) O(√N), 확률적 Ferm…
- 소인수분해 (Prime Factorization) algorithm ← 6
- 별칭: prime factorization, 소인수분해, 소인수 분해, prime-factorization
- 정의 소인수분해 (Prime Factorization) 는 양의 정수 N을 소수들의 곱으로 유일하게 나타내는 것. N = p₁^a₁ · p₂^a₂ · ... · pₖ^aₖ. 시행…
- 수치해석 (Numerical Analysis) algorithm ← 1
- 별칭: numerical analysis, 수치해석, Newton method, Simpson rule, root finding
- 정의 수치해석 (Numerical Analysis) 은 해석적 해가 어렵거나 없는 문제를 수치적 근사로 푸는 분야. PS 에서는 크게 두 가지가 자주 등장한다. Newton-Ra…
- 수학 (Mathematics) algorithm ← 4
- 별칭: math, 수학, 정수론 기초, modular arithmetic
- 정의 수학 (Mathematics) 은 문제 해결에 필요한 모듈러 산술 (modular arithmetic), 최대공약수/최소공배수 (GCD/LCM), 거듭제곱 (exponent…
- 순열 사이클 분해 (Permutation Cycle Decomposition) algorithm ← 1
- 별칭: permutation cycle decomposition, 순열 사이클, permutation cycle, cycle decomposition
- 정의 순열 사이클 분해는 순열 p[1..N]을 서로소(disjoint)인 사이클들의 곱으로 표현하는 것. 각 사이클 (a1 a2 ... ak) 는 a1 -> p[a1] = a2,…
- 스위핑 (Sweeping) algorithm ← 5
- 별칭: sweeping, 스위핑, 라인 스위핑, line sweep, sweep line
- 정의 스위핑 (Sweeping) 은 시간 또는 공간 축 위의 이벤트를 정렬한 뒤, 한 방향으로 훑으며 상태를 갱신해 문제를 푸는 기법입니다. 선분 교차, 구간 합집합, 최대 겹침…
- 스택 (Stack) algorithm ← 3
- 별칭: stack, 스택, LIFO, 단조 스택, monotonic stack
- 정의 스택 (Stack) 은 LIFO (Last In, First Out) 순서로 원소를 관리하는 추상 자료구조입니다. , , 세 연산만 제공하며, 가장 최근 삽입된 원소만 접근…
- 스프라그-그런디 정리 (Sprague-Grundy) algorithm ← 2
- 별칭: sprague-grundy, 스프라그-그런디, SG theorem, Grundy number, nimber, sprague-grundy
- 정의 스프라그-그런디 정리 (Sprague-Grundy) 는 모든 impartial combinatorial game (두 플레이어가 같은 행동 가능, 무작위성 없음, 완전 정보…
- 슬라이딩 윈도우 (Sliding Window) algorithm ← 5
- 별칭: sliding window, 슬라이딩 윈도우, sliding-window
- 정의 슬라이딩 윈도우 (Sliding Window) 는 배열/문자열 위에서 고정 크기 또는 가변 크기 윈도우가 한 방향으로 미끄러지며 각 윈도우마다 조건 (합, 최댓값, 중복 여…
- 시뮬레이션 (Simulation) algorithm ← 3
- 별칭: simulation, 시뮬레이션, 구현
- 정의 시뮬레이션 (Simulation) 은 문제에서 제시한 규칙을 그대로 코드로 옮겨 한 단계씩 따라가는 알고리즘. 복잡한 로직보다 정확한 구현과 엣지 케이스 처리 가 핵심. P…
ㅆ (1)
- 쌍대성 (Duality) algorithm ← 1
- 별칭: duality, 쌍대성, primal-dual, LP duality, weak duality, strong duality
- 정의 쌍대성 (Duality) 은 하나의 최적화 문제 (Primal) 에 항상 대응되는 또 다른 최적화 문제 (Dual) 가 존재한다는 원리. LP 에서 Primal-Dual 쌍…
ㅇ (23)
- 안정 결혼 문제 (Stable Marriage) algorithm
- 별칭: stable marriage, 안정 결혼, Gale-Shapley, GS algorithm
- 정의 안정 결혼 문제 (Stable Marriage Problem) 는 N 명의 남성과 N 명의 여성이 각자 선호도 목록을 가지고 있을 때, 모든 쌍이 안정적 (stable) 인…
- 애드 혹 (Ad Hoc) algorithm ← 2
- 별칭: ad hoc, 애드 혹, 임기응변
- 정의 애드 혹 (Ad Hoc) 은 범용 알고리즘이 아닌, 그 문제만의 관찰·트릭·창의적 사고로 푸는 문제 유형. 라틴어로 "이 목적을 위한" 이라는 뜻. 정형화된 자료구조나 DP…
- 양방향 탐색 (Bidirectional Search) algorithm ← 1
- 별칭: bidirectional search, 양방향 탐색, 양방향 BFS, bidirectional BFS, bidirectional-search
- 정의 양방향 탐색 (Bidirectional Search) 은 source 와 target 에서 동시에 탐색을 진행하여 중간에서 만나는 전략. 주로 무가중치 그래프의 최단 경로를…
- 에라토스테네스의 체 (Sieve of Eratosthenes) algorithm ← 6
- 별칭: sieve, 에라토스테네스, sieve of eratosthenes, 선형 체, linear sieve
- 정의 에라토스테네스의 체 (Sieve of Eratosthenes) 는 1부터 N 까지의 모든 소수를 O(N log log N) 에 찾는 고대 그리스 알고리즘. 기원전 240 년…
- 역추적 (DP Traceback) algorithm
- 별칭: traceback, 역추적, DP 복원, DP 경로 복원, LCS 복원, lcs traceback, knapsack traceback
- 정의 역추적 (Traceback) 은 DP 표를 채울 때 parent / choice 배열에 최적해의 결정을 기록하고, 최종 상태에서 출발하여 거꾸로 따라가며 최적해를 복원하는 …
- 연결 리스트 (Linked List) algorithm
- 별칭: linked list, 연결 리스트, linked-list, 리스트
- 정의 연결 리스트 (Linked List) 는 노드 + 포인터로 구성된 선형 자료구조. 각 노드는 데이터 + 다음 노드 포인터. 종류: - Singly Linked List: 노…
- 오일러 경로/회로 (Eulerian Path and Circuit) algorithm
- 별칭: eulerian path, eulerian circuit, 오일러 경로, 오일러 회로, eulerian-path
- 정의 오일러 경로 (Eulerian Path) 는 그래프의 모든 간선을 정확히 한 번씩 지나는 경로. 오일러 회로 (Eulerian Circuit) 는 시작점과 끝점이 같은 오일…
- 오일러 지표 (Euler Characteristic) algorithm
- 별칭: euler characteristic, 오일러 지표, Euler formula, V-E+F, χ, polyhedron classification
- 정의 오일러 지표 (Euler Characteristic) χ 는 다면체(polyhedron) 또는 CW 복합체의 위상적 불변량으로, χ = V - E + F 로 정의. V는 꼭…
- 오일러 투어 테크닉 (Euler Tour Technique) algorithm ← 3
- 별칭: euler tour, 오일러 투어, ETT, Euler Tour Technique
- 정의 오일러 투어 테크닉 (ETT, Euler Tour Technique) 은 트리를 DFS 방문 순서로 펼쳐 서브트리 쿼리를 구간 쿼리로 변환하는 정형. 각 노드 u 의 in-…
- 오일러 피 함수 (Euler's Totient Function) algorithm ← 2
- 별칭: euler phi, 오일러 피 함수, totient, phi, euler_phi, φ(n)
- 정의 오일러 피 함수 φ(n) 는 1 이상 n 이하의 자연수 중 n 과 서로소인 수의 개수. 1763년 레온하르트 오일러가 도입. , 소수 p 에 대해 . 문제 상황과 동기 n …
- 외판원 순회 문제 (TSP) algorithm
- 별칭: tsp, TSP, 외판원 순회, traveling salesman, traveling-salesman, bitmask dp tsp
- 정의 외판원 순회 문제 (TSP) 는 N 개 도시를 모두 정확히 한 번씩 방문하고 시작 도시로 돌아오는 최소 비용 경로 (Hamiltonian cycle) 를 찾는 NP-hard…
- 우선순위 큐 (Priority Queue) algorithm ← 1
- 별칭: priority queue, 우선순위 큐, 힙, heap
- 정의 우선순위 큐 (Priority Queue) 는 원소 중 최댓값 (또는 최솟값) 을 O(log N) 에 추출하는 자료구조. 내부 구현은 대개 힙 (heap). - Max-He…
- 위상 정렬 (Topological Sorting) algorithm ← 2
- 별칭: topological sort, 위상 정렬, topological-sorting
- 정의 위상 정렬 (Topological Sorting) 은 방향 비순환 그래프 (DAG) 의 모든 정점을 간선 방향을 어기지 않도록 일렬로 나열하는 것. 간선 가 있으면 정렬 결…
- 유클리드 호제법 (Euclidean Algorithm) algorithm ← 8
- 별칭: euclidean algorithm, 유클리드 호제법, gcd, euclidean
- 정의 유클리드 호제법 (Euclidean Algorithm) 은 두 정수 a, b 의 최대공약수 (GCD, Greatest Common Divisor) 를 O(log min(a,…
- 이분 그래프 (Bipartite Graph) algorithm ← 4
- 별칭: bipartite graph, 이분 그래프, 2-coloring, 2색 칠하기, 이분 매칭
- 정의 이분 그래프 (Bipartite Graph) 는 정점 집합 V 를 두 개의 독립 집합 L, R 로 분할할 수 있고, 모든 간선이 L 과 R 을 잇는 그래프. 같은 집합 내 …
- 이분 매칭 (Bipartite Matching) algorithm ← 8
- 별칭: bipartite matching, 이분 매칭, 최대 매칭, maximum matching, Hopcroft-Karp, augmenting path
- 정의 이분 매칭 (Bipartite Matching) 은 이분 그래프 G = (L ∪ R, E) 에서 간선 부분집합 M ⊆ E 을 선택하되, M 의 어떤 두 간선도 정점을 공유하…
- 이분 탐색 (Binary Search) algorithm ← 10
- 별칭: binary search, 이분 탐색, 이진 탐색, binary-search
- 정의 이분 탐색 (Binary Search) 은 정렬된 시퀀스에서 목표값의 위치를 O(log N) 에 찾는 알고리즘. 매 단계에서 후보 구간을 절반으로 줄인다. 탐색이 본질이 아…
- 이산 로그 (Discrete Logarithm) algorithm ← 2
- 별칭: discrete logarithm, 이산 로그, BSGS, baby-step giant-step, discrete-log
- 정의 이산 로그 (Discrete Logarithm) 는 군 G 에서 를 만족하는 최소 음이 아닌 정수 x 를 찾는 문제. 실수 로그와 달리, mod 연산 아래에서의 역연산은 어…
- 이산 제곱근 (Discrete Square Root / Tonelli-Shanks) algorithm ← 1
- 별칭: discrete sqrt, discrete square root, Tonelli-Shanks, 이산 제곱근, 모듈러 제곱근, modular square root
- 정의 이산 제곱근 (Discrete Square Root) 은 소수 p 에 대해 를 만족하는 x 를 찾는 문제. 가 이차잉여 (quadratic residue) 이면 해가 존재하…
- 이산 k 제곱근 (Discrete Kth Root) algorithm
- 별칭: discrete kth root, discrete root, 이산 k 제곱근, 이산 근
- 정의 이산 k 제곱근 (Discrete Kth Root) 은 소수 p 에 대해 를 만족하는 모든 x 를 찾는 문제. 원시근 (primitive root) 으로 지표화하여 이산 로…
- 이중 연결 요소 (BCC, Biconnected Component) algorithm ← 1
- 별칭: bcc, biconnected component, 이중 연결 요소, 단절점, 단절선, articulation point, bridge
- 정의 이중 연결 요소 (Biconnected Component, BCC) 는 무방향 그래프에서 정점 하나를 제거해도 연결성이 유지되는 최대 부분 그래프. 단절점 (articula…
- 일급 함수 javascript ← 7
- 별칭: first-class function, first class function, 일급함수
- - 함수를 값처럼 다루어 변수에 담거나 다른 함수의 인자로 전달하거나 함수의 반환값으로 사용할 수 있는 함수. 일급 함수의 이러한 특성을 활용하여 를 구현할 수 있습니다. - 함…
- 임의 정밀도 / 큰 수 산술 (Arbitrary Precision) algorithm ← 2
- 별칭: arbitrary precision, big integer, 임의 정밀도, 큰 수 산술, arbitrary-precision
- 정의 임의 정밀도 (Arbitrary Precision) 또는 큰 수 산술 (Big Integer / Bignum) 은 고정된 바이트 한계(32-bit, 64-bit) 없이 메모…
ㅈ (15)
- 자료구조 (Data Structures) algorithm
- 별칭: data structures, 자료구조, DS
- 정의 자료구조 (Data Structure) 는 데이터를 효율적으로 저장하고 접근하기 위한 조직화 방법. 문제 풀이에서는 시간 복잡도와 공간 복잡도의 trade-off 를 정확히…
- 자릿수 DP (Digit DP) algorithm
- 별칭: digit dp, 자릿수 DP, 자리수 DP, dp-digit
- 정의 자릿수 DP (Digit DP) 는 [0, N] 범위 또는 [L, R] 구간에서 조건을 만족하는 정수의 개수를 세는 DP 기법. 각 자릿수를 순차적으로 선택하며, "현재까지…
- 작은 집합을 큰 집합에 합치기 (Smaller to Larger) algorithm
- 별칭: smaller to larger, small to large, dsu on tree, smaller-to-larger
- 정의 Smaller to Larger (작은 집합을 큰 집합에 합치기) 는 두 집합을 합칠 때 항상 작은 쪽을 큰 쪽에 합치면 전체 O(N log N) 또는 O(N log^2 N…
- 재귀 (Recursion) algorithm ← 3
- 별칭: recursion, 재귀, recursive
- 정의 재귀 (Recursion) 는 함수가 자기 자신을 호출하는 프로그래밍 기법. base case (종료 조건) 와 recursive case (재귀 단계) 로 구성되며, 복잡…
- 재귀 트리 DP / Rerooting algorithm
- 별칭: rerooting, all root dp, 트리 재귀 DP, 전체 루트 DP
- 정의 Rerooting (재귀 트리 DP) 은 모든 정점을 루트로 하는 트리 DP 결과를 O(N) 에 구하는 기법. 두 번의 DFS 로 "루트 v 에서 서브트리 DP" → "루트…
- 전처리 (Precomputation) algorithm
- 별칭: precomputation, 전처리, 사전 계산, 전처리 테이블, precompute
- 정의 전처리 (Precomputation) 는 런타임 이전 또는 초기화 단계에서 필요한 값을 미리 계산해 두고, 본 쿼리/연산을 빠르게 처리하는 정형. 대표적으로 테이블 채우기,…
- 정규 표현식 (Regular Expression, Regex) algorithm ← 2
- 별칭: regex, regular expression, 정규 표현식, 정규식, NFA, DFA
- 정의 정규 표현식 (Regular Expression) 은 문자열 패턴을 형식 언어로 표현한 표기법. Stephen Kleene 이 1956년 정규 언어 (regular lang…
- 정렬 알고리즘 algorithm ← 16
- 별칭: sorting algorithm, 정렬 알고리즘, sort, sorting, 정렬
- 정의 정렬 (sort) 은 원소들의 컬렉션을 어떤 전순서 (total order) 기준으로 재배열하는 것. 알고리즘 입문의 정석 주제이자, 데이터베이스·검색·통계 등 모든 시스템…
- 정수론 (Number Theory) algorithm ← 4
- 별칭: number theory, 정수론, 수론
- 정의 정수론 (Number Theory) 은 정수의 성질과 관계를 연구하는 분야. PS 에서는 약수/배수, 소수 (prime), 모듈러 연산, 유클리드 호제법, 확장 유클리드, …
- 제곱근 분할 (Sqrt Decomposition) algorithm ← 3
- 별칭: sqrt decomposition, 제곱근 분할, sqrt-decomposition, 루트 분할
- 정의 제곱근 분할 (Sqrt Decomposition) 은 크기 N 배열을 √N 개씩 블록으로 나누고, 각 블록을 전처리해 구간 연산을 O(√N) 에 처리하는 자료구조 기법. 문…
- 조합론 (Combinatorics) algorithm ← 8
- 별칭: combinatorics, 조합론, 순열, 조합, 이항계수, nCr
- 정의 조합론 (Combinatorics) 은 유한 집합의 원소를 세는 수학 분야. PS 에서는 주로 순열 (Permutation), 조합 (Combination), 이항계수 (B…
- 조화수 (Harmonic Number) algorithm
- 별칭: harmonic number, 조화수, H_n, harmonic series, harmonic-number
- 정의 조화수 (Harmonic Number) 은 자연수 n 에 대해 역수의 합 으로 정의. 점근적으로 (γ ≈ 0.5772, 오일러-마스케로니 상수). 정수론과 알고리즘 분석에서…
- 중국인의 나머지 정리 (Chinese Remainder Theorem) algorithm ← 9
- 별칭: CRT, 중국인의 나머지 정리, chinese remainder theorem, 중국인 나머지
- 정의 중국인의 나머지 정리 (CRT) 는 다음과 같은 연립 합동식의 해가 유일 하게 존재함을 보장: 단, m1, m2, ..., mk 는 쌍마다 서로소 (pairwise copr…
- 중심 분해 (Centroid Decomposition) algorithm ← 3
- 별칭: centroid decomposition, 중심 분해, centroid tree, 센트로이드 분해
- 정의 중심 분해 (Centroid Decomposition) 는 트리를 중심 으로 재귀적으로 분할하여 O(log N) 깊이의 분해 트리 를 만드는 기법. 각 레벨에서 트리 크기가…
- 집합과 맵 (Set and Map) algorithm ← 14
- 별칭: set, map, 집합, 맵, associative container
- 정의 집합 (Set) 은 고유한 원소들의 모임을 나타내는 추상 자료구조로, 멤버십 검사, 삽입, 삭제를 지원한다. 맵 (Map, Dictionary) 은 키-값 쌍을 저장하며, …
ㅊ (13)
- 차분 배열 (Difference Array) algorithm ← 2
- 별칭: difference array, 차분 배열, difference-array
- 정의 차분 배열 (Difference Array) 은 배열 의 인접 차 (adjacent difference) 를 저장하는 배열 (단, ). 원 배열은 , 즉 d 의 누적 합 (…
- 차분 분석 (Differential Cryptanalysis) algorithm
- 별칭: differential cryptanalysis, 차분 분석, 차분 공격, differential-cryptanalysis
- 정의 차분 분석 (Differential Cryptanalysis) 은 선택된 평문 공격(chosen-plaintext attack)으로, 1991년 Eli Biham과 Adi …
- 차수열 (Degree Sequence) algorithm
- 별칭: degree sequence, 차수열, graphic sequence, Erdos-Gallai, Havel-Hakimi
- 정의 차수열 (Degree Sequence) 은 그래프의 각 정점 차수를 내림차순으로 나열한 수열 d[1] >= d[2] >= ... >= d[N]. 이 수열을 만족하는 단순 그…
- 최단 경로 (Shortest Path) algorithm
- 별칭: shortest path, 최단 경로, 최단거리
- 정의 최단 경로 (Shortest Path) 는 그래프 G = (V, E) 에서 시작 정점 s 에서 목표 정점 t 까지 가는 경로 중 가중치 합이 최소인 경로 를 찾는 문제. 단…
- 최대 부분 배열 합 (Maximum Subarray) algorithm
- 별칭: maximum subarray, 최대 부분 배열, Kadane's algorithm, kadane, 최대 연속 합
- 정의 최대 부분 배열 합 (Maximum Subarray) 은 배열에서 연속한 구간의 합 중 최댓값을 찾는 문제. 예: → 최대 구간 , 합 6. Kadane's Algorith…
- 최대 유량 최소 컷 정리 (Max-Flow Min-Cut Theorem) algorithm ← 4
- 별칭: max-flow min-cut theorem, mfmc, 최대 유량 최소 컷, min-cut
- 정의 최대 유량 최소 컷 정리 (Max-Flow Min-Cut Theorem) 는 네트워크 유량 그래프 G = (V, E) 에서 source s 에서 sink t 로의 최대 유량…
- 최소 공통 조상 (Lowest Common Ancestor) algorithm ← 12
- 별칭: LCA, 최소 공통 조상, lowest common ancestor
- 정의 최소 공통 조상 (LCA, Lowest Common Ancestor) 는 트리에서 두 노드 u, v 의 공통 조상 중 가장 깊은 (루트에서 가장 먼) 노드. Binary L…
- 최소 비용 최대 유량 (Min-Cost Max-Flow, MCMF) algorithm ← 3
- 별칭: mcmf, min-cost max-flow, 최소 비용 최대 유량, SSP, successive shortest augmenting path
- 정의 최소 비용 최대 유량 (Min-Cost Max-Flow, MCMF) 은 각 간선에 용량(capacity)과 단위 비용(cost)이 주어질 때, 최대 유량을 달성하는 여러 방…
- 최소 신장 트리 (MST, Minimum Spanning Tree) algorithm ← 4
- 별칭: MST, minimum spanning tree, 최소 신장 트리, Kruskal, Prim
- 정의 최소 신장 트리 (Minimum Spanning Tree, MST) 는 연결 그래프 G = (V, E) 에서 모든 정점을 연결 하면서 간선 가중치 합이 최소 인 부분 그래프…
- 최소 외접원 (Minimum Enclosing Circle) algorithm
- 별칭: minimum enclosing circle, 최소 외접원, MEC, smallest enclosing circle, welzl algorithm
- 정의 최소 외접원 (Minimum Enclosing Circle, MEC) 은 평면 위 N 개의 점을 모두 포함하는 가장 작은 반지름의 원을 찾는 문제. 대표 알고리즘은 Emo …
- 최장 공통 부분 수열 (Longest Common Subsequence) algorithm ← 4
- 별칭: LCS, 최장 공통 부분 수열, longest common subsequence, lcs
- 정의 최장 공통 부분 수열 (Longest Common Subsequence, LCS) 은 두 수열 A, B 에서 순서를 유지하며 공통으로 등장하는 부분 수열 중 가장 긴 것을 …
- 최장 증가 부분 수열 (Longest Increasing Subsequence) algorithm ← 3
- 별칭: LIS, 최장 증가 부분 수열, longest increasing subsequence, lis
- 정의 최장 증가 부분 수열 (Longest Increasing Subsequence, LIS) 은 주어진 수열에서 순서를 유지하며 선택한 부분 수열 중 엄격히 증가하는 가장 긴 …
- 춤추는 링크 (Dancing Links, DLX) algorithm
- 별칭: dancing links, DLX, 춤추는 링크, dancing-links, toroidal linked list
- 정의 Dancing Links (DLX) 는 0-1 행렬을 doubly linked toroidal list 로 표현하는 자료구조. 각 1 을 하나의 노드로 두고, 노드들이 좌/…
ㅋ (6)
- 카테시안 트리 (Cartesian Tree) algorithm
- 별칭: cartesian tree, 카테시안 트리, Treap (배열)
- 정의 카테시안 트리 (Cartesian Tree) 는 배열 a[0..N-1] 로부터 만드는 이진 트리로, 다음 두 성질을 동시에 만족: 1. In-order 순회 = 원래 배열 …
- 커넥션 프로파일 DP (Broken Profile DP) algorithm
- 별칭: connection profile DP, broken profile DP, plug DP, profile DP, 커넥션 프로파일, broken profile
- 정의 커넥션 프로파일 DP (Broken Profile DP) 는 직사각형 격자를 tile-by-tile 로 처리하면서, 처리된 영역과 아직 처리되지 않은 영역의 경계 (brok…
- 케이스 워크 (Case Work) algorithm ← 2
- 별칭: case work, 케이스 워크, 경우 분류, 조건 분기
- 정의 케이스 워크 (Case Work) 는 문제를 여러 조건/경우로 분류하여 각각 해결하는 패턴. if-else, switch-case, 의사결정 트리 등으로 구현. 복잡한 조건…
- 쿼리 √N / √Q 버킷팅 algorithm ← 1
- 별칭: Sqrt Query Bucket, 쿼리 버킷팅, Square Root Query Decomposition
- 정의 쿼리 √N / √Q 버킷팅 은 쿼리들을 √N 또는 √Q 개씩 묶어 일괄 처리해 원래 O(Q·log N) 또는 O(N·Q) 였던 비용을 O((N + Q)·√N) 등으로 줄이는…
- 큐 (Queue) algorithm ← 7
- 별칭: queue, 큐, FIFO, 원형 큐, circular queue
- 정의 큐 (Queue) 는 FIFO (First In, First Out) 순서로 원소를 관리하는 추상 자료구조입니다. (또는 ), (또는 ), 세 연산만 제공하며, 가장 먼저 …
- 크누스 최적화 (Knuth Optimization) algorithm ← 4
- 별칭: Knuth Optimization, Knuth DP Optimization, knuth, quadrangle inequality, monotone decision point, 크누스 DP 최적화
- 정의 크누스 최적화 (Knuth Optimization) 는 구간 DP 에서 최적 분할점 k = opt[i][j] 의 단조성 을 이용해 시간 복잡도를 O(N^3) 에서 O(N^2…
ㅌ (10)
- 통계 (Statistics) algorithm
- 별칭: statistics, 통계, 평균, 중앙값, 분산, streaming statistics, 기술 통계
- 정의 통계 (Statistics) 는 데이터를 수집, 정리, 분석하는 학문. PS 에서는 주로 기술 통계 (Descriptive Statistics) 의 기본값들인 평균 (Mea…
- 트라이 (Trie, 접두사 트리) algorithm ← 7
- 별칭: trie, Trie, 접두사 트리, prefix tree
- 정의 트라이 (Trie) 는 Edward Fredkin 이 1960년 제안한 문자열 집합을 저장하는 트리 자료구조. 각 노드는 문자 하나, 간선은 다음 문자로의 전이. 루트에서 …
- 트리 (Trees) algorithm ← 5
- 별칭: tree, 트리, rooted tree, 루트 트리
- 정의 트리 (Tree) 는 사이클이 없는 연결 그래프 (acyclic connected graph). N 개 정점이면 정확히 N-1 개 간선. 임의의 두 정점 사이에 유일한 경로…
- 트리 동형 사상 (Tree Isomorphism) algorithm
- 별칭: tree isomorphism, 트리 동형, tree-isomorphism
- 정의 트리 동형 사상 (Tree Isomorphism) 판정은 두 트리 T1, T2 가 구조적으로 같은지, 즉 노드 라벨을 무시했을 때 edge 연결 패턴이 동일한지 O(N) 에…
- 트리 압축 (Tree Compression / Virtual Tree) algorithm
- 별칭: tree compression, virtual tree, 트리 압축, 가상 트리, tree-compression
- 정의 트리 압축 (Tree Compression / Virtual Tree) 은 원본 트리에서 주어진 정점 부분 집합 S 만으로 원래 조상 관계를 보존하는 작은 트리를 구성하는 …
- 트리 위에서 exchange argument algorithm
- 별칭: Tree Exchange Argument, 트리 위 교환 논증
- 정의 Exchange Argument (교환 논증) 은 그리디 알고리즘의 최적성 증명 에서 가장 자주 쓰이는 기법. 두 인접 원소를 교환했을 때 답이 나빠지지 않으면, 어떤 정렬…
- 트리 DP (Tree Dynamic Programming) algorithm ← 5
- 별칭: dp tree, tree dp, 트리 DP, 트리 동적 계획법
- 정의 트리 DP (Tree Dynamic Programming) 는 트리 구조에서 각 서브트리의 최적해를 post-order DFS 로 계산하여 전체 트리의 답을 구하는 정형. …
- 트리를 사용한 집합과 맵 (Tree Set / Tree Map) algorithm ← 2
- 별칭: tree set, tree map, ordered set, ordered map, 트리 집합, 트리 맵, 균형 이진 탐색 트리
- 정의 트리 집합 (Tree Set) 과 트리 맵 (Tree Map) 은 균형 이진 탐색 트리 (Balanced BST) 를 기반으로 한 정렬된 자료구조로, 삽입, 조회, 삭제를 …
- 트리의 중심 (Centroid) algorithm ← 1
- 별칭: centroid, 트리의 중심, tree centroid, 무게중심
- 정의 트리의 중심 (Centroid) 은 정점 v 를 제거했을 때 생기는 모든 connected component 의 크기가 ⌊N/2⌋ 이하가 되는 정점. 모든 트리는 최소 1개…
- 트리의 지름 (Tree Diameter) algorithm ← 1
- 별칭: tree diameter, 트리의 지름, 트리 지름
- 정의 트리의 지름 (Tree Diameter) 는 트리에서 가장 먼 두 노드 사이의 거리 (경로 길이). 가중치 없는 트리는 간선 개수, 가중치 트리는 간선 가중치 합. 대표 알…
ㅍ (8)
- 파싱 (Parsing) - tokenization, recursive descent, expression algorithm ← 2
- 별칭: parsing, recursive descent, expression parsing, tokenization, 파싱
- 정의 파싱 은 입력 문자열을 구조화된 표현 (AST) 으로 변환하는 과정. 컴파일러/인터프리터의 첫 단계. 세 단계: Tokenization (lexing) → Parsing (…
- 퍼시스턴트 세그먼트 트리 (Persistent Segment Tree) algorithm ← 2
- 별칭: persistent segment tree, PST, 퍼시스턴트 세그트리, 버전별 세그트리
- 정의 퍼시스턴트 세그먼트 트리 (Persistent Segment Tree, PST) 는 버전별 배열 상태를 모두 유지 하면서, 각 버전마다 O(log N) 시간에 쿼리/갱신 가…
- 페르마 소정리 (Fermat's Little Theorem) algorithm ← 3
- 별칭: fermat little theorem, FLT, 페르마 소정리, fermat
- 정의 페르마 소정리 (Fermat's Little Theorem, FLT) 는 소수 p 와 gcd(a, p) = 1 인 정수 a 에 대해 다음이 성립: 1640년 피에르 드 페르…
- 평면 그래프 (Planar Graph) algorithm ← 1
- 별칭: planar graph, 평면 그래프, planar, Euler formula, Kuratowski
- 정의 평면 그래프 (Planar Graph) 는 간선끼리 교차하지 않고 평면에 그릴 수 있는 그래프. 연결된 평면 그래프는 항상 Euler 공식 를 만족한다, 여기서 = 꼭짓점,…
- 포함-배제 원리 (Inclusion-Exclusion Principle) algorithm
- 별칭: inclusion-exclusion, 포함배제, 포함-배제, inclusion exclusion
- 정의 포함-배제 원리 (Inclusion-Exclusion Principle, PIE) 는 여러 집합의 합집합 크기를 교집합 항으로 표현하는 조합론 공식. 가장 간단한 형태: N…
- 플로이드-워셜 알고리즘 (Floyd-Warshall Algorithm) algorithm ← 3
- 별칭: floyd-warshall, 플로이드워셜, 플로이드-워셜, 모든 쌍 최단 경로
- 정의 플로이드-워셜 알고리즘 (Floyd-Warshall Algorithm) 은 모든 정점 쌍 (i, j) 사이의 최단 거리를 구하는 DP 알고리즘. Robert W. Floyd…
- 피사노 주기 (Pisano Period) algorithm
- 별칭: pisano period, 피사노 주기, 피보나치 주기, pisano
- 정의 피사노 주기 (Pisano Period) 은 피보나치 수열 을 m 으로 나눈 나머지 수열이 주기적 이 될 때의 최소 주기. 피보나치 수열 mod m 은 항상 주기적이며, 주…
- 피타고라스 정리 (Pythagorean Theorem) algorithm
- 별칭: pythagorean theorem, 피타고라스 정리, 피타고라스 수, pythagoras, pythagorean triple
- 정의 피타고라스 정리는 직각삼각형에서 빗변 c 의 제곱이 두 직각변 a, b 의 제곱의 합과 같다는 정리: c^2 = a^2 + b^2. 기원전 6세기 그리스 수학자 피타고라스가…
ㅎ (11)
- 함수 그래프 (Functional Graph) algorithm ← 1
- 별칭: functional graph, 함수 그래프, successor graph
- 정의 함수 그래프 (Functional Graph) 는 정점 집합 V 와 함수 f: V → V 로 정의되는 방향 그래프. 각 정점 v 에서 정확히 하나의 간선 v → f(v) 가…
- 해 구성하기 (Constructive) algorithm ← 2
- 별칭: constructive, 해 구성, 구성적 증명
- 정의 해 구성하기 (Constructive Algorithm) 는 답의 존재를 증명하는 대신, 명시적으로 답을 만드는 문제 유형. "가능한가?" → YES/NO 가 아니라, "가…
- 해시를 사용한 집합과 맵 (Hash Set / Hash Map) algorithm ← 3
- 별칭: hash set, hash map, unordered set, unordered map, 해시 집합, 해시 맵, 해시테이블
- 정의 해시 집합 (Hash Set) 과 해시 맵 (Hash Map) 은 해시 함수를 이용해 키를 버킷 인덱스로 변환하고, 평균 O(1) 시간에 삽입, 조회, 삭제를 수행하는 자료…
- 헝가리안 알고리즘 (Hungarian Algorithm) algorithm ← 1
- 별칭: hungarian, 헝가리안, assignment problem, Kuhn-Munkres, Kuhn-Munkres algorithm, O(n^3) weighted matching
- 정의 헝가리안 알고리즘 (Hungarian Algorithm) 은 완전 이분 그래프 K{n,n} 에서 최대 (또는 최소) 가중치 완전 매칭 을 O(n^3) 에 찾는 알고리즘. -…
- 홀의 결혼 정리 (Hall's Marriage Theorem) algorithm
- 별칭: hall, 홀의 결혼 정리, Hall's theorem, marriage theorem, SDR, system of distinct representatives
- 정의 홀의 결혼 정리 (Hall's Marriage Theorem) 는 이분 그래프 G = (L, R, E) 에서 완전 매칭 (perfect matching) 이 존재할 필요충분…
- 홀짝성 (Parity) algorithm ← 1
- 별칭: parity, 홀짝성, 짝홀, even-odd
- 정의 홀짝성 (Parity) 은 어떤 양이 짝수 / 홀수 라는 두 상태로 분류되는 불변량. 수학적으로는 의 값. PS 에서는 증명 (impossibility), 2색 분할, 대칭…
- 확률 (Probability) algorithm ← 6
- 별칭: probability, 확률, 확률론, 조건부 확률, 베이즈 정리
- 정의 확률 (Probability) 은 사건이 발생할 가능성을 수치화한 값. 표본 공간 Ω 에 대해 P(A) = |A| / |Ω| (동일 확률), 또는 더 일반적으로는 σ-alg…
- 확장 유클리드 호제법 (Extended Euclidean Algorithm) algorithm ← 2
- 별칭: extended euclidean, 확장 유클리드, extended-euclidean, extended gcd
- 정의 확장 유클리드 호제법 (Extended Euclidean Algorithm) 은 두 정수 a, b 에 대해 를 구하면서, 동시에 를 만족하는 정수 x, y 를 찾는 알고리즘…
- 회전 캘리퍼스 (Rotating Calipers) algorithm ← 1
- 별칭: rotating calipers, 회전 캘리퍼스, rotating-calipers, 최대 거리, antipodal
- 정의 회전 캘리퍼스 (Rotating Calipers) 는 볼록 다각형 위에서 서로 마주보는 두 평행선 (겹지름, antipodal pair) 을 회전시키며 다각형의 최장 거리,…
- 휴리스틱 (Heuristics) algorithm ← 2
- 별칭: heuristics, 휴리스틱, 근사 알고리즘, local search, greedy heuristic, heuristic
- 정의 휴리스틱 (Heuristics) 은 NP-hard 문제나 지나치게 큰 탐색 공간에서 최적해 대신 실용적으로 충분히 좋은 해를 빠르게 찾는 방법의 총칭. 크게 근사 알고리즘 …
- 희소 배열 (Sparse Table) algorithm ← 7
- 별칭: sparse table, 희소 배열, 희소 테이블, sparse-table
- 정의 희소 배열 (Sparse Table) 은 정적 배열에서 결합 법칙을 만족하는 idempotent 연산 (min, max, gcd, lcm 등) 의 구간 쿼리를 O(1) 시간…
A (6)
- A* (A-star) 알고리즘 algorithm ← 1
- 별칭: a-star, A*, A star, 에이스타, a* algorithm
- 정의 A\ 알고리즘 은 휴리스틱 기반 최단 경로 탐색 알고리즘. f(n)=g(n)+h(n) 을 평가 함수로 사용해 시작점에서 목표까지의 최단 경로를 찾는다. 1968년 Hart,…
- Aho-Corasick (아호-코라식) algorithm ← 5
- 별칭: aho-corasick, Aho-Corasick, 아호-코라식, 다중 패턴 매칭
- 정의 Aho-Corasick 은 Alfred Aho 와 Margaret Corasick 이 1975년 고안한 다중 패턴 문자열 매칭 알고리즘. Trie 에 KMP failure …
- Aliens Trick algorithm ← 9
- 별칭: Aliens Trick, WQS Binary Search, Lagrange Optimization, 에일리언 트릭
- 정의 Aliens Trick (또는 WQS Binary Search, Lagrange Optimization) 은 "정확히 K 개 선택" 같은 까다로운 제약을 가진 DP 를, 제…
- Astro frameworks ← 4
- 별칭: astro.build
- 개요 Astro 는 콘텐츠 중심 사이트를 위한 정적 사이트 생성기다. Islands Architecture로 필요한 부분만 hydration 하기 때문에 기본 페이지 로드가 빠르…
- Asynchronous (비동기) concurrency ← 4
- 별칭: asynchronous, async, 비동기, 비동기식, 비동기 호출, asynchronous call
- 정의 Asynchronous (비동기) 는 호출자가 결과를 즉시 기다리지 않고 다음 줄로 진행하는 실행 모델. 결과는 나중에 콜백, Future, Promise, 이벤트 등의 메…
B (9)
- Barrett Reduction algorithm ← 4
- 별칭: Barrett Reduction, 바렛 리덕션
- 정의 Barrett Reduction 은 고정된 modulus 에 대해 을 나눗셈 명령 없이 곱셈 + 시프트 + 뺄셈 몇 번으로 계산하는 알고리즘. Paul Barrett 198…
- BBST (Splay Tree, Treap) algorithm ← 8
- 별칭: BBST, Balanced Binary Search Tree, Splay Tree, Treap, 균형 이진 탐색 트리
- 정의 BBST (Balanced Binary Search Tree) 는 균형이 amortized / expected 로 보장되는 이진 탐색 트리. PS 에서는 split / me…
- Berlekamp-Massey algorithm ← 5
- 별칭: Berlekamp-Massey, BM 알고리즘, 최소 다항식, Minimal Polynomial
- 정의 Berlekamp-Massey (BM) 알고리즘은 주어진 수열의 최단 선형 점화식 (minimal linear recurrence) 을 O(N²) 에 복원하는 알고리즘. 1…
- Birthday Problem (생일 문제) algorithm ← 1
- 별칭: birthday problem, birthday paradox, 생일 문제, 생일 역설, birthday attack
- 정의 생일 문제 (Birthday Problem) 는 N 개의 동등한 가능성이 있는 결과에서 무작위로 k 개를 선택할 때 적어도 하나의 충돌이 발생할 확률을 분석하는 문제. 충돌…
- Bitset Optimization algorithm ← 6
- 별칭: Bitset Optimization, 비트셋 최적화
- 정의 Bitset Optimization 은 불리언 / 비트 단위 정보 를 또는 배열에 패킹해, 한 명령어로 64 비트씩 병렬 연산 함으로써 시간 복잡도를 /64 (또는 , w …
- Blocking (블로킹) concurrency ← 16
- 별칭: blocking, block, 블로킹, 블락킹, blocking call, blocking I/O
- 정의 Blocking 은 호출이 결과가 준비될 때까지 호출 스레드를 멈춰두는 실행 방식. 멈춰 있는 동안 그 스레드는 다른 일을 할 수 없다. OS 가 스레드를 sleep 상태로…
- BrainDB frameworks ← 2
- 별칭: braindb, @braindb/astro
- 개요 BrainDB 는 마크다운 콘텐츠를 데이터베이스처럼 다룰 수 있게 해주는 통합 라이브러리다. 제공하는 것 - 위키링크 자동 처리 ( ) - backlink 추출 - 콘텐츠 …
- Bubble Sort algorithm ← 3
- 별칭: bubble sort, 버블 정렬, 거품 정렬
- 정의 Bubble Sort (버블 정렬) 는 인접한 두 원소를 비교해 잘못된 순서면 교환하는 작업을 배열을 통과하며 반복하는 정렬. 한 번의 통과 (pass) 마다 가장 큰 원소…
- Bulldozer Trick (Rotating Sweep) algorithm ← 6
- 별칭: Bulldozer Trick, Rotating Sweep, 회전 스윕
- 정의 Bulldozer Trick (Rotating Sweep) 은 평면의 N 개 점에 대해 모든 두 점쌍을 잇는 직선의 기울기를 정렬 한 뒤, 기울기를 회전시키며 점들의 정렬 …
C (3)
- CDQ 분할 정복 (CDQ Divide and Conquer) algorithm ← 1
- 별칭: CDQ, CDQ 분할 정복, cdq divide and conquer, offline 3D partial order
- 정의 CDQ 분할 정복 은 오프라인에서 3차원 이상의 부분 순서 (partial order) 문제를 O(N log² N) 에 해결하는 기법. 한 축으로 분할하고, 다른 축을 2D…
- Chordal Graph algorithm ← 2
- 별칭: Chordal Graph, Triangulated Graph, 현 그래프, Perfect Elimination Ordering
- 정의 Chordal Graph (현 그래프, Triangulated Graph) 는 모든 길이 4 이상의 사이클이 chord (사이클의 비인접 두 정점을 잇는 간선) 를 가지는 …
- CHT (Convex Hull Trick) algorithm ← 7
- 별칭: Convex Hull Trick, CHT, 볼록 껍질 트릭
- 정의 Convex Hull Trick (CHT) 은 DP 전이 같이 선형식들의 lower envelope (또는 upper envelope) 에서 한 점 값을 평가하는 패턴을, …
D (8)
- D3 frameworks ← 2
- 별칭: d3.js, d3-force
- 개요 D3.js 는 데이터 기반의 SVG / Canvas 시각화 라이브러리다. 이 블로그의 그래프 페이지는 D3 의 으로 노드를 배치한다. 사용한 force - , 노드 사이의 …
- Dial's Algorithm (버킷 기반 다익스트라) algorithm
- 별칭: dial, Dial, Dial's algorithm, 버킷 다익스트라, bucket dijkstra, dial algorithm
- 정의 Dial's Algorithm 은 가중치가 작은 정수 일 때 우선순위 큐 대신 버킷 배열 을 사용해 Dijkstra 를 O(V + E + W) 로 최적화한 알고리즘. W는 …
- Directed MST algorithm ← 4
- 별칭: Directed MST, Arborescence, Chu-Liu Edmonds, 최소 비용 신장 가지치기
- 정의 Directed MST (Arborescence) 는 유향 그래프와 루트 이 주어졌을 때, 에서 모든 정점으로 도달 가능 한 간선들의 최소 가중치 부분집합을 구하는 문제. …
- Django django ← 2
- 별칭: 장고, django, Django
- 개요 Django는 2003년 시작된 Python 풀스택 웹 프레임워크. batteries-included (ORM, 관리자, 인증, 폼, 마이그레이션, 캐싱 등 기본 내장)과 …
- Dominator Tree algorithm ← 3
- 별칭: Dominator Tree, 지배 트리, Dominators
- 정의 유향 그래프와 시작점 가 주어졌을 때, 정점 가 정점 를 dominate 한다는 것은 에서 로 가는 모든 경로가 반드시 를 지난다 는 뜻. Dominator Tree 는 모…
- DTLS network ← 1
- 별칭: dtls, Datagram TLS, Datagram Transport Layer Security
- 정의 DTLS (Datagram Transport Layer Security)는 위에서 동작하는 의 변형. 데이터그램 (UDP 패킷) 기반 통신에 보안을 제공한다. 와 WebRT…
- Dual of Planar Graph algorithm ← 1
- 별칭: Dual of Planar Graph, 평면 그래프의 쌍대, Planar Dual
- 정의 평면 그래프 (planar graph) 의 쌍대 그래프 (dual graph) 는 G 의 각 면 (face) 을 정점으로, G 의 두 면을 공유하는 각 간선을 G\ 의 간선…
- Dynamic Tree (Link/Cut Tree, Euler Tour Tree, Top Tree) algorithm ← 6
- 별칭: Dynamic Tree, Link/Cut Tree, LCT, Euler Tour Tree, ETT, Top Tree, 동적 트리
- 정의 Dynamic Tree 는 트리에 간선 추가 (link) / 제거 (cut) 가 섞이는 환경에서 경로 / 서브트리 집계 쿼리 를 O(log N) 에 처리하는 자료구조 가족.…
E (1)
- External Merge Sort algorithm ← 7
- 별칭: external merge sort, 외부 정렬, 외부 머지 정렬, External Sort
- 정의 External Merge Sort (외부 머지 정렬) 는 데이터가 메모리에 들어가지 않을 때 사용하는 변형. 두 단계로 동작한다. 1. Run 생성: 메모리 크기만큼 청크…
F (5)
- Fast I/O algorithm ← 4
- 별칭: Fast I/O, 빠른 입출력, fastio
- 정의 Fast I/O 는 표준 라이브러리의 일반 목적 입출력 (C 의 / , C++ 의 / , Python 의 ) 대신, 버퍼와 바이트 단위 처리에 특화된 직접 구현으로 상수항을…
- FFT, NTT algorithm ← 12
- 별칭: FFT, NTT, Fast Fourier Transform, Number Theoretic Transform, 고속 푸리에 변환
- 정의 FFT (Fast Fourier Transform, 고속 푸리에 변환) 은 길이 인 수열의 이산 푸리에 변환 (DFT) 을 O(n log n) 에 계산하는 분할정복 알고리즘…
- Flood Fill algorithm ← 1
- 별칭: flood fill, 플러드 필, 페인트 버킷, paint bucket
- 정의 Flood Fill 은 격자 (grid) 또는 이미지에서 특정 위치와 연결된 같은 색 영역을 모두 칠하는 알고리즘. 그래픽 소프트웨어의 "페인트 버킷 (paint bucke…
- Floor Sum (유리 등차수열 내림 합) algorithm
- 별칭: floor sum, floor_sum, 유리 등차수열 내림 합, AtCoder ACL floor_sum
- 정의 Floor Sum 은 을 O(log m) 에 계산하는 알고리즘. AtCoder Library (ACL) 의 함수로 표준화되었다. 분수 의 내림 합을 i = 0 .. n-1 …
- FWHT (Fast Walsh-Hadamard Transform) algorithm ← 4
- 별칭: FWHT, Fast Walsh-Hadamard Transform, Subset Convolution, XOR Convolution
- 정의 FWHT (Fast Walsh-Hadamard Transform) 은 비트 연산 (XOR, AND, OR) 에 대한 컨볼루션 을 O(N log N) 에 계산하는 변환. FF…
G (2)
- General Graph Matching (Blossom Algorithm) algorithm ← 3
- 별칭: General Graph Matching, Blossom Algorithm, 일반 그래프 매칭, Edmonds Blossom
- 정의 General Graph Matching (Blossom Algorithm) 은 이분 그래프가 아닌 일반 무향 그래프 에서 최대 매칭 (최대 간선 집합 중 한 정점이 두 번…
- Generating Function algorithm ← 10
- 별칭: Generating Function, 생성 함수, Formal Power Series, OGF, EGF
- 정의 Generating Function (생성 함수) 은 수열 를 형식 멱급수 (formal power series) 으로 인코딩한 것. 수열의 산수 를 다항식 / 멱급수의 대…
H (8)
- Hackenbush (하켄부시 게임) algorithm
- 별칭: hackenbush, 하켄부시, surreal number hackenbush, blue-red hackenbush
- 정의 Hackenbush 는 John H. Conway 가 "On Numbers and Games" (1976) 에서 고안한 combinatorial game. 바닥에 연결된 여…
- Half-Plane Intersection algorithm
- 별칭: half-plane intersection, 반평면 교집합, halfplane intersection
- 정의 반평면 교집합 (Half-Plane Intersection) 은 N 개의 직선으로 정의된 반평면 (또는 ) 을 모두 만족하는 점들의 집합, 즉 볼록다각형 (convex po…
- HBM ml ← 2
- 별칭: High Bandwidth Memory, hbm, 고대역폭 메모리
- 정의 HBM (High Bandwidth Memory)는 DRAM die 를 수직으로 적층해 매우 높은 대역폭을 제공하는 메모리 패키지. AI 시대 GPU/TPU 의 메모리 병목…
- Head-of-Line Blocking network ← 9
- 별칭: HOL Blocking, HOLB, 헤드 오브 라인 블로킹, Head of Line Blocking
- 정의 Head-of-Line Blocking (HOLB) 은 처리 순서가 정해진 큐에서 맨 앞 항목의 지연이 그 뒤 항목 전체의 지연으로 전파되는 현상이다. 네트워크 프로토콜에서…
- Heap Sort algorithm ← 5
- 별칭: heap sort, heapsort, 힙 정렬, Heapsort
- 정의 Heap Sort (힙 정렬) 는 힙 (heap) 자료구조의 최댓값 / 최솟값을 O(log n) 에 추출 하는 성질을 이용한 정렬. In-place 이고 최악 O(n log…
- Heavy-Light Decomposition algorithm ← 5
- 별칭: hld, heavy-light decomposition, 무거운-가벼운 분해, HLD
- 정의 Heavy-Light Decomposition (HLD) 는 트리를 O(log N) 개의 경로 (chain) 로 분해해 임의 경로 쿼리 (u-v 경로의 합/최대/최소) 를 …
- Hirschberg (히르쉬버그) LCS algorithm ← 1
- 별칭: Hirschberg, 히르쉬버그, hirschberg-algorithm, linear-space LCS
- 정의 Hirschberg 알고리즘 은 두 문자열 A, B 의 LCS 를 O(N) 공간 (메모리) 만 사용해 구하는 분할 정복 DP. 표준 LCS 의 O(NM) 공간을 O(N) 으…
- HPACK network ← 4
- 별칭: HPACK 헤더 압축, hpack
- 정의 HPACK (RFC 7541)은 HTTP/2 에서 요청·응답 헤더를 압축하기 위해 설계된 방식. HTTP/1.1 의 헤더는 매 요청마다 텍스트로 반복 전송되었다 (한 페이지…
I (1)
- Insertion Sort algorithm ← 4
- 별칭: insertion sort, 삽입 정렬
- 정의 Insertion Sort (삽입 정렬) 는 한 번에 한 원소씩 이미 정렬된 부분에 올바른 위치를 찾아 삽입 하는 정렬. 카드 정리하듯이 한 장씩 적절한 자리에 끼워넣는 동…
K (3)
- Kinetic Segment Tree algorithm ← 1
- 별칭: Kinetic Segment Tree, KST, 키네틱 세그먼트 트리
- 정의 Kinetic Segment Tree (KST) 는 각 원소가 시간 t 에 대한 일차함수 로 변하는 상황에서, 최댓값 / 최솟값 같은 시간 의존 쿼리 를 효율적으로 처리하는…
- KMP 문자열 매칭 (Knuth-Morris-Pratt) algorithm ← 9
- 별칭: kmp, KMP, Knuth-Morris-Pratt, KMP 알고리즘
- 정의 KMP (Knuth-Morris-Pratt) 는 Donald Knuth, James H. Morris, Vaughan Pratt 가 1977년 고안한 선형 시간 문자열 매칭…
- Knuth X 알고리즘 (Exact Cover) algorithm ← 1
- 별칭: Knuth X, exact cover, dancing links, DLX, 정확한 커버, knuth-x
- 정의 Knuth X 는 Exact Cover 문제를 푸는 backtracking 알고리즘. 0-1 행렬이 주어졌을 때 모든 열이 정확히 한 번씩 커버되도록 행의 부분 집합을 선택…
L (3)
- LGV Theorem (Lindstrom-Gessel-Viennot) algorithm ← 2
- 별칭: LGV Theorem, Lindstrom-Gessel-Viennot Lemma, LGV 보조정리
- 정의 Lindstrom-Gessel-Viennot (LGV) Theorem 은 DAG (또는 격자) 에서 N 개의 시작점 / N 개의 끝점이 주어졌을 때 교차하지 않는 (non-…
- Lifting The Exponent (LTE) Lemma algorithm
- 별칭: lte, lifting the exponent, LTE lemma
- 정의 Lifting The Exponent (LTE) 는 소수 p에 대해 또는 을 계산하는 정리. vp(x)는 x의 p-진 값 (p로 나누어떨어지는 횟수). 1640년 페르마가 …
- Linearity of Expectation (기댓값의 선형성) algorithm
- 별칭: linearity of expectation, 기댓값 선형성, E[X+Y], linearity-of-expectation
- 정의 Linearity of Expectation (기댓값의 선형성) 은 두 확률 변수 X, Y 에 대해 가 항상 성립한다는 정리. X 와 Y 가 독립일 필요가 없다. 스칼라 곱…
M (8)
- Matroid, Matroid Intersection algorithm ← 3
- 별칭: Matroid, Matroid Intersection, 매트로이드
- 정의 Matroid 는 독립 집합 (independent set) 의 추상 구조. 유한 집합 와 그 부분집합족 가 다음을 만족하면 matroid . PS 에서는 두 매트로이드의 …
- Merge Sort algorithm ← 10
- 별칭: merge sort, 병합 정렬, 머지 정렬, Merge
- 정의 Merge Sort (병합 정렬) 는 분할 정복 (Divide & Conquer) 으로 동작하는 비교 정렬. 배열을 반으로 나눠 각각 정렬한 뒤, 두 정렬된 부분을 병합 (…
- Miller-Rabin 소수 판정 (Miller-Rabin Primality Test) algorithm ← 4
- 별칭: miller-rabin, 밀러-라빈, miller rabin, miller-rabin primality test, 확률적 소수 판정
- 정의 Miller-Rabin 소수 판정 은 N 이 소수인지 확률적/결정론적으로 판별하는 알고리즘. Fermat 작은 정리와 이차잉여 성질을 결합해 O(k log^3 N) 에 동작…
- MITM (Meet in the Middle) algorithm ← 4
- 별칭: meet in the middle, MITM, 중간에서 만나기, mitm
- 정의 Meet in the Middle (MITM) 은 입력을 절반으로 나누어 각각의 모든 경우를 2^(N/2) 에 열거한 뒤, 두 결과를 합쳐서 정답을 찾는 알고리즘. naiv…
- Mo's Algorithm (Mo's) algorithm ← 6
- 별칭: mo's algorithm, 모스 알고리즘, mo, offline query sqrt
- 정의 Mo's Algorithm 은 오프라인 구간 쿼리를 (L, R) 정렬로 재배치해 포인터 이동을 amortized O((N+Q)√N) 으로 줄이는 기법. 문제 상황과 동기 크…
- Mobius Function, Mobius Inversion algorithm ← 4
- 별칭: Mobius Function, Mobius Inversion, 뫼비우스 함수, 뫼비우스 역원, Dirichlet Convolution
- 정의 Mobius Function 은 양의 정수에 대한 수론 함수: Mobius Inversion (뫼비우스 역원) 은 합 / 컨볼루션 관계의 역변환. PS 에서는 GCD / 서…
- Multipoint Evaluation algorithm ← 3
- 별칭: Multipoint Evaluation, 다중점 평가
- 정의 Multipoint Evaluation 은 차수 의 다항식 를 N 개의 점 에서 동시에 평가 ( 를 모두 구함) 하는 것을 O((N + M) log²(N+M)) 에 계산하는…
- MySQL sql ← 2
- 별칭: mysql, MySQL, MariaDB, InnoDB, 마이에스큐엘
- 정의 MySQL 은 1995 년 MySQL AB (스웨덴) 가 만들어 2008 년 Sun → 2010 년 Oracle 로 인수된 오픈소스 RDBMS. GPL + 상용 듀얼 라이선…
N (1)
- Non-Blocking (논블로킹) concurrency ← 14
- 별칭: non-blocking, nonblocking, non blocking, 논블로킹, 넌블로킹, non-blocking I/O, NIO, lock-free
- 정의 Non-Blocking 은 호출이 결과를 기다리지 않고 즉시 반환 하는 실행 방식. 결과가 준비되지 않았다면 "아직 안 됐다" 라는 신호 ( , , , 등) 를 반환하고, …
O (2)
- Offline Incremental SCC, Offline Dynamic MST algorithm ← 5
- 별칭: Offline Incremental SCC, Offline Dynamic MST, 오프라인 동적 SCC, Parallel Binary Search
- 정의 Offline Incremental SCC 는 간선이 시간 순서대로 추가만 되는 유향 그래프에서, 두 정점이 같은 SCC 에 처음 속하는 시각 을 모든 쌍에 대해 오프라인으…
- Offline Queries (오프라인 쿼리) algorithm ← 1
- 별칭: offline query, offline queries, query reordering, Mo's algorithm, 오프라인 쿼리, 쿼리 재정렬
- 정의 오프라인 쿼리 (Offline Queries) 는 쿼리가 주어진 순서대로 처리하지 않고, 효율성을 위해 재정렬하거나 배치 처리 하는 기법. 쿼리를 다시 정렬하여 정렬 상태를…
P (11)
- Palindrome Tree (eerTree) algorithm ← 2
- 별칭: Palindrome Tree, eerTree, Palindromic Tree, 회문 트리
- 정의 Palindrome Tree (또는 eerTree) 는 문자열 의 모든 서로 다른 회문 부분문자열 을 선형 공간 O(n) 에 저장하는 자료구조. 2014 년 Mikhail …
- Permutation Tree algorithm ← 2
- 별칭: Permutation Tree, Divide-Combine Tree, 분할-결합 트리
- 정의 Permutation Tree (a.k.a. Divide-Combine Tree) 는 순열을 연속 구간 (consecutive interval, 값이 연속인 구간) 단위로 …
- Pick 정리 (Pick's Theorem) algorithm ← 1
- 별칭: pick's theorem, 픽 정리, pick theorem, 격자점 다각형, lattice polygon
- 정의 Pick 정리는 꼭짓점이 격자점 (integer lattice) 위에 있는 단순 다각형의 넓이 A 를 내부 격자점 개수 I 와 경계 격자점 개수 B 로 표현: A = I +…
- Pigeonhole Principle (비둘기집 원리) algorithm
- 별칭: pigeonhole principle, 비둘기집 원리, pigeonhole, Dirichlet's principle
- 정의 비둘기집 원리 (Pigeonhole Principle) 는 "N+1 개의 객체를 N 개의 상자에 넣으면, 적어도 하나의 상자는 두 개 이상의 객체를 포함한다" 는 자명한 조…
- Pollard Rho 소인수분해 (Pollard's Rho Algorithm) algorithm ← 3
- 별칭: pollard rho, pollard-rho, 폴라드 로, pollard's rho, 확률적 소인수분해
- 정의 Pollard Rho 는 큰 정수 N 의 비자명 약수를 O(N^(1/4)) 확률적 시간에 찾는 알고리즘. 생일 역설 (Birthday Paradox) 을 활용해 난수 수열의…
- Polynomial Division, Kitamasa algorithm ← 1
- 별칭: Polynomial Division, Kitamasa, 키타마사, 다항식 나눗셈
- 정의 Kitamasa 는 길이 의 선형 점화식 의 번째 항을 O(K² log n) 또는 FFT/NTT 와 결합해 O(K log K · log n) 에 계산하는 알고리즘. 행렬 거…
- Polynomial Interpolation algorithm ← 3
- 별칭: Polynomial Interpolation, 다항식 보간, Lagrange Interpolation, 라그랑주 보간
- 정의 Polynomial Interpolation (다항식 보간) 은 N+1 개의 점 으로부터 유일하게 결정되는 차수 ≤ N 의 다항식 를 복원하는 것. PS 에서는 DP 의 결…
- PostgreSQL sql ← 2
- 별칭: postgresql, PostgreSQL, postgres, Postgres, PG, 포스트그레스
- 정의 PostgreSQL 은 1986 년 UC Berkeley 의 POSTGRES 프로젝트에서 출발해 1996 년 SQL 지원 버전으로 오픈소스화된 객체-관계형 DBMS (ORD…
- Pub/Sub Bus concurrency ← 5
- 별칭: Pub/Sub, pubsub, publish-subscribe, 메시지 버스, Pub Sub Bus
- 정의 Pub/Sub Bus (Publish-Subscribe bus)는 메시지 송신자(publisher)와 수신자(subscriber)가 서로를 모르고도 통신할 수 있게 해주는 …
- Push-Relabel, Cost Scaling algorithm ← 4
- 별칭: Push Relabel, Push-Relabel Algorithm, Cost Scaling Algorithm, 푸시 리라벨
- 정의 Push-Relabel 은 증가 경로 (augmenting path) 기반 의 Ford-Fulkerson / Dinic 과 달리 각 정점의 잉여 흐름 (excess) 을 국…
- Python python
- 별칭: 파이썬, python, Python
- 정의 Python은 Guido van Rossum이 1991년 발표한 인터프리터 방식의 동적 타이핑 언어다. 읽기 쉬운 문법과 방대한 라이브러리 생태계로 웹 백엔드, 데이터 분석…
Q (2)
- QUIC network
- 별칭: QUIC 프로토콜, quic, Quick UDP Internet Connections
- 정의 QUIC (Quick UDP Internet Connections)은 Google이 2012년 처음 제안하고 2021년 RFC 9000으로 표준화된 UDP 기반 전송 프로토…
- Quick Sort algorithm ← 10
- 별칭: quick sort, quicksort, 퀵 정렬, Quicksort, Quick-Sort
- 정의 Quick Sort (퀵 정렬) 는 분할 정복 (Divide & Conquer) 기반 비교 정렬. 1959 년 Tony Hoare 가 고안. 배열에서 pivot 을 하나 골…
R (5)
- Randomization (무작위화) algorithm ← 1
- 별칭: randomization, randomized algorithm, 무작위 알고리즘, Las Vegas, Monte Carlo, Fisher-Yates, random shuffle
- 정의 무작위화 (Randomization) 는 알고리즘 내부에 난수를 도입하여 평균 성능 향상 또는 결정론적 방법보다 단순한 해결책 을 얻는 기법. 크게 두 부류로 나뉜다: - …
- Redis sql
- 별칭: 레디스, redis
- 정의 Redis (REmote DIctionary Server)는 인메모리 키-값 저장소이다. Salvatore Sanfilippo가 2009년 만들었고, 현재는 Redis Lt…
- Regions Trick algorithm ← 2
- 별칭: Regions Trick, 쿼리 캐싱
- 정의 Regions Trick 은 비슷한 쿼리들을 시공간 영역으로 묶어 캐싱 해, 동일/유사 결과를 재사용해 총 비용을 줄이는 패턴. 쿼리 캐싱 (query caching) 의 …
- Ruby on Rails rails ← 3
- 별칭: Rails, 레일즈, 루비온레일즈, rails, ror
- 정의 Ruby on Rails (또는 Rails)는 Ruby 언어 기반의 풀스택 웹 프레임워크다. David Heinemeier Hansson (DHH)이 2004년 Baseca…
- Run Enumerate algorithm ← 2
- 별칭: Run Enumerate, Maximal Repetition, Lyndon Decomposition, Main-Lorentz
- 정의 Run 은 문자열에서 주기적으로 반복되는 maximal 구간. 정확히는 구간 의 주기 가 이면서, 양 끝으로 확장 시 주기가 깨지는 부분. Run Enumerate 는 길이…
S (18)
- Segment Tree Beats algorithm ← 6
- 별칭: Segment Tree Beats, Ji Driver Segment Tree, STB, 세그먼트 트리 비츠
- 정의 Segment Tree Beats (STB), 일명 Ji Driver Segment Tree 는 naive lazy propagation 으로는 표현 불가능한 비단조 laz…
- Selection Sort algorithm ← 4
- 별칭: selection sort, 선택 정렬
- 정의 Selection Sort (선택 정렬) 는 매 단계에서 남은 원소 중 최솟값을 찾아 맨 앞으로 보내는 정렬. n-1 번의 단계 후 정렬 완료. 다른 O(n²) 정렬과 달리…
- SIMD algorithm ← 6
- 별칭: SIMD, AVX2, Vectorization, SSE
- 정의 SIMD (Single Instruction Multiple Data) 는 한 명령어로 여러 데이터 를 병렬 처리하는 CPU 기능. x86 의 SSE / AVX / AVX2…
- SIMT ml ← 2
- 별칭: Single Instruction Multiple Threads, simt, warp, SIMT 모델
- 정의 SIMT (Single Instruction, Multiple Threads) 는 NVIDIA 가 정립한 GPU 의 실행 모델이다. 한 명령(instruction) 을 한 …
- Slope Trick algorithm ← 6
- 별칭: Slope Trick, slope-trick, 기울기 트릭
- 정의 Slope Trick (기울기 트릭) 은 볼록 (convex) 한 piecewise-linear 함수 를 DP 상태값으로 들고 갈 때, 함수 전체를 메모리에 펼치지 않고 꺾…
- SOS DP (Sum Over Subsets) algorithm ← 1
- 별칭: SOS DP, sum over subsets, subset DP, dp-sum-over-subsets, zeta transform
- 정의 SOS DP (Sum Over Subsets) 는 길이 2^N 의 배열 a 에 대해, 모든 mask (0..2^N-1) 마다 mask 의 부분 집합 (submask) 에 대…
- SPMD ml ← 2
- 별칭: Single Program Multiple Data, spmd, 단일 프로그램 다중 데이터
- 정의 SPMD (Single Program, Multiple Data)는 병렬 컴퓨팅의 대표 모델 중 하나. 모든 프로세스(또는 thread)가 같은 프로그램을 실행하되, 각자 …
- SQL sql ← 8
- 별칭: SQL, Structured Query Language, Standard SQL, ANSI SQL
- 정의 SQL (Structured Query Language) 은 관계형 데이터베이스 (RDBMS) 와 대화하기 위한 선언형 (declarative) 질의 언어. 1970 년 E…
- Stateful concurrency ← 6
- 별칭: stateful, 상태유지, Stateful 서버, stateful server
- 정의 Stateful (상태유지) 서버는 클라이언트와의 세션·연결 컨텍스트를 메모리에 유지한다. 후속 요청·이벤트는 이 컨텍스트를 활용해 처리된다. 같은 클라이언트의 요청은 같은…
- Stateless concurrency ← 5
- 별칭: stateless, 무상태, Stateless 서버, stateless server
- 정의 Stateless (무상태) 서버는 클라이언트의 요청 간 상태를 기억하지 않는다. 각 요청은 완전히 독립적이며, 처리에 필요한 모든 정보는 요청 자체에 담겨 있어야 한다. …
- Stateless vs Stateful concurrency ← 2
- 별칭: Stateless vs Stateful, stateless-vs-stateful, 무상태와 상태유지
- 정의 Stateless (무상태): 서버가 클라이언트 요청 간 상태를 기억하지 않음. 각 요청은 완전히 독립적이며 필요한 모든 정보는 요청에 담겨 있다. Stateful (상태유…
- Stern-Brocot Tree algorithm ← 2
- 별칭: Stern-Brocot Tree, 스턴-브로코 트리, SBT
- 정의 Stern-Brocot Tree (SBT) 는 모든 양의 기약 분수 (positive coprime fraction) 를 정확히 한 번씩 노드로 가지는 무한 이진 트리. 1…
- Sticky Session concurrency ← 11
- 별칭: sticky session, session affinity, session persistence, 스티키 세션, 세션 어피니티
- 정의 Sticky Session (= Session Affinity)은 로드밸런서가 같은 클라이언트의 요청을 항상 같은 백엔드 서버로 라우팅하도록 하는 동작이다. 서버, 즉 세션…
- Stoer-Wagner 전역 최소 컷 (Global Minimum Cut) algorithm
- 별칭: Stoer-Wagner, global minimum cut, 전역 최소 컷, stoer-wagner algorithm, min-cut
- 정의 Stoer-Wagner 알고리즘 은 무방향 가중치 그래프 에서 source/sink 없이 가장 작은 컷 (global minimum cut) 을 찾는 알고리즘. 시간 복잡도…
- Suffix Array (접미사 배열) algorithm ← 2
- 별칭: suffix array, 접미사 배열, SA, LCP array
- 정의 Suffix Array (SA, 접미사 배열) 는 문자열 s 의 모든 접미사를 사전순 정렬한 인덱스 배열. SA[i] = 시작 위치 (0-indexed). 보통 LCP (L…
- Suffix Automaton, Suffix Tree algorithm ← 4
- 별칭: Suffix Automaton, SAM, Suffix Tree, 접미사 오토마타
- 정의 Suffix Automaton (SAM) 은 문자열 의 모든 부분문자열을 단어로 받는 최소 결정성 유한 오토마타 (minimal DFA). 노드 수 ≤ 2n, 간선 수 ≤ …
- Synchronous (동기) concurrency ← 5
- 별칭: synchronous, sync, 동기, 동기식, 동기 호출, synchronous call
- 정의 Synchronous (동기) 는 호출자가 결과가 나올 때까지 기다리는 실행 모델. 함수를 호출한 코드는 그 함수가 반환할 때까지 다음 줄로 진행하지 않는다. 이 정의는 J…
- Systolic Array ml ← 2
- 별칭: systolic array, 시스톨릭 어레이, MXU, Matrix Multiply Unit
- 정의 Systolic Array 는 격자 형태로 배치된 다수의 Processing Element (PE) 가, 입력 데이터가 박동(systolic)처럼 격자를 가로질러 흐르는 동…
T (3)
- TCP network ← 13
- 별칭: Transmission Control Protocol, tcp
- 정의 TCP (Transmission Control Protocol)는 신뢰성 있는 연결 지향 전송 계층 프로토콜이다. RFC 9293 으로 정의되어 있다. HTTP/1.1·2,…
- TLS / SSL network ← 13
- 별칭: TLS, SSL, Transport Layer Security, Secure Sockets Layer, tls, ssl
- 정의 TLS (Transport Layer Security)는 (또는 위 ) 위에서 동작하는 암호화·인증 프로토콜이다. SSL 은 TLS 의 전신 (Netscape 1995, 더…
- Treewidth, Tree Decomposition algorithm ← 1
- 별칭: Treewidth, Tree Decomposition, 트리 분해, TW
- 정의 Tree Decomposition 은 그래프 를 bag (정점 집합) 들을 노드로 하는 트리 로 분해한 것. Treewidth = 가장 작은 분해의 최대 bag 크기 - 1…
U (2)
- UDP network ← 11
- 별칭: User Datagram Protocol, udp
- 정의 UDP (User Datagram Protocol)는 비연결·비신뢰 전송 계층 프로토콜이다. RFC 768 (1980) 로 정의되었다. 와 대비된다. "보내고 잊는다(fir…
- UTF-8 인코딩 algorithm
- 별칭: utf8, UTF-8, Unicode, 유니코드
- 정의 UTF-8 은 Unicode code point (00x10FFFF) 를 14 byte 가변 길이로 인코딩하는 방식. 1993년 ISO/IEC 10646 표준의 일부로 도입…
V (1)
- Voronoi Diagram, Delaunay Triangulation algorithm ← 2
- 별칭: Voronoi Diagram, Delaunay Triangulation, 보로노이 다이어그램, 들로네 삼각분할
- 정의 Voronoi Diagram 은 평면의 N 개 점에 대해 각 점을 가장 가까운 점으로 가지는 영역 들로 평면을 분할한 그림. 각 영역은 볼록 다각형 (또는 무한 영역). D…
X (1)
- XOR 기저 (XOR Basis) algorithm
- 별칭: xor basis, XOR 기저, linear basis, GF(2) basis, XOR linear basis, xor-basis
- 정의 XOR 기저 (XOR Basis, Linear Basis over GF(2)) 는 정수 집합 S 의 XOR 합 (XOR span) 으로 만들 수 있는 모든 값을 생성하는 최…
Y (1)
- Young Tableau, RSK Correspondence algorithm
- 별칭: Young Tableau Diagram, Young 도형, RSK Correspondence, Robinson-Schensted-Knuth
- 정의 Young Diagram 은 행마다 길이가 단조 감소 하는 칸들의 배열 (왼쪽 위 정렬). Young Tableau 는 그 칸에 1..n 을 채워 넣은 것 중 행과 열 모두…
Z (1)
- Z 알고리즘 (Z Algorithm) algorithm ← 4
- 별칭: z algorithm, z function, z-function, Z 함수
- 정의 Z 알고리즘 (Z Algorithm) 은 문자열 의 각 위치 i 에 대해, 와 의 최장 공통 접두사 (LCP) 길이 를 O(N) 시간에 모두 계산하는 선형 알고리즘. 결과 …
# (574)
- (오목 포함) 다각형 내부 점 판정 (Point in Polygon) algorithm ← 1
- 별칭: point in polygon, ray casting, 다각형 내부 점 판정, crossing number, even-odd rule
- 정의 다각형 내부 점 판정 (Point in Polygon, PIP) 은 단순 다각형 (볼록 또는 오목) 과 하나의 점이 주어졌을 때, 점이 내부/경계/외부 중 어디에 있는지 판…
- [비교] JPA EAGER vs Rails eager_load frameworks ← 1
- 별칭: JPA vs Rails eager loading, EAGER 비교, fetch type Rails, Rails eager_load JPA
- 정의 JPA 와 Rails 는 둘 다 "eager" 라는 용어를 ORM 의 연관 로딩 전략에 사용한다. 이름은 비슷하지만 의미는 정반대. - JPA : 매핑 선언 시점에 영구 설…
- [Algorithm] Karatsuba 곱셈: O(n²) 벽을 깬 분할 정복 algorithm
- 별칭: Karatsuba, Karatsuba algorithm, 카라츠바 알고리즘, 카라츠바 곱셈, fast multiplication, big integer multiplication, subquadratic multiplication
- 정의 Karatsuba 알고리즘 은 두 큰 정수의 곱셈 을 분할 정복 으로 풀어 O(n^log₂3) ≈ O(n^1.585) 시간에 처리하는 알고리즘. 1962년 Anatoly K…
- [API Design] API Versioning: URL / Header / Date 비교 api-design ← 2
- 별칭: API versioning, API breaking change, Stripe API version, deprecation policy, semver API
- 정의 API Versioning 은 breaking change 를 클라이언트에 강요 없이 호환성을 유지하는 전략. 잘못 잡으면 모든 클라이언트 동시 마이그레이션 강요. 무엇이 …
- [API Design] GraphQL: 단일 endpoint, N+1, persisted queries api-design ← 5
- 별칭: GraphQL, Apollo, Relay, DataLoader, N+1 GraphQL, persisted queries, federation
- 정의 GraphQL (Facebook, 2015) 은 클라이언트가 필요한 필드만 명시 하는 query language + 런타임. 단일 endpoint, typed schema,…
- [API Design] JSON-RPC vs gRPC vs REST: RPC 패턴 비교 api-design
- 별칭: JSON-RPC, RPC, JSON-RPC 2.0, RPC vs REST
- 정의 RPC (Remote Procedure Call) = 원격 함수 호출 추상화. 세 가지 주요 형태: 1. JSON-RPC: JSON 위 RPC. 가벼움. 2. gRPC: P…
- [API Design] OpenAPI / Swagger: 스펙, 코드 생성, contract testing api-design
- 별칭: OpenAPI, Swagger, OAS, Swagger UI, Redoc, contract testing, API-first
- 정의 OpenAPI Specification (OAS) 은 REST API 를 기술하는 YAML/JSON 형식. 옛 이름 Swagger. 2017 부터 OpenAPI Initia…
- [API Design] REST API: 원칙, 자원 모델링, HATEOAS, 버전 관리 api-design
- 별칭: REST, RESTful API, Resource modeling, HATEOAS, Richardson Maturity Model, API versioning
- 정의 REST (Representational State Transfer) 는 Roy Fielding 의 2000년 박사논문에서 정립된 분산 시스템 아키텍처 스타일. HTTP 의…
- [Auth] CSRF: 위조 요청 공격과 방어 auth-security ← 5
- 별칭: CSRF, Cross-Site Request Forgery, CSRF token, Synchronizer Token, Double Submit Cookie, SameSite cookie defense
- 정의 CSRF (Cross-Site Request Forgery) 는 사용자가 로그인된 상태 에서 공격자가 만든 페이지 가 피해자 브라우저로 위조 요청 을 보내는 공격. 쿠키 기…
- [Auth] JWT: 구조, 서명, 만료, refresh token auth-security ← 9
- 별칭: JWT, JSON Web Token, JWS, JWE, JWA, Bearer token, Refresh token, Access token, RS256, HS256
- 정의 JWT (JSON Web Token) (RFC 7519) 은 base64url 인코딩된 JSON + 서명 형태의 self-contained token. 서버가 세션 저장 없…
- [Auth] mTLS (Mutual TLS): 양방향 인증서 인증 auth-security ← 3
- 별칭: mTLS, Mutual TLS, client certificate, client cert auth, service mesh mtls, SPIFFE/SPIRE
- 정의 mTLS (Mutual TLS) 는 서버뿐 아니라 클라이언트도 TLS 인증서로 자기 신분 증명. 일반 TLS = 서버 인증만, mTLS = 양방향. 활용: 서비스 메시 (I…
- [Auth] OAuth 2.0 / 2.1: Authorization Code + PKCE auth-security ← 9
- 별칭: OAuth 2.0, OAuth 2.1, Authorization Code, PKCE, Client Credentials, Implicit flow, Device flow
- 정의 OAuth 2.0 (RFC 6749, 2012) 은 제3자 앱이 사용자 동의로 자원에 접근 하게 하는 권한 위임 프레임워크. 인증 (authentication) 이 아니라 …
- [Auth] OpenID Connect (OIDC): OAuth 위의 인증 레이어 auth-security ← 3
- 별칭: OIDC, OpenID Connect, id_token, userinfo endpoint, discovery, .well-known/openid-configuration
- 정의 OpenID Connect (OIDC) 는 OAuth 2.0 위에 얹은 인증 (authentication) 표준. OAuth 가 권한 위임 (authorization), O…
- [Auth] SAML 2.0: XML 기반 기업 SSO auth-security ← 2
- 별칭: SAML, SAML 2.0, SP-initiated, IdP-initiated, SAML Assertion, AuthnRequest, Metadata
- 정의 SAML 2.0 (Security Assertion Markup Language) 는 XML 기반 기업 SSO 표준. 2005년 OASIS 표준화. 모바일 친화도 / 단순성…
- [Auth] Session Cookie: HttpOnly, SameSite, Secure flag auth-security ← 6
- 별칭: session cookie, HttpOnly, SameSite, Secure cookie, session ID, cookie attributes
- 정의 Session Cookie 는 서버가 발급한 임의 ID 를 쿠키에 보관. 매 요청 자동 첨부. 서버 측 세션 store (Redis, DB) 와 짝. [!IMPORTANT]…
- [AWS] ALB vs NLB: L7 vs L4 로드 밸런서 cloud ← 5
- 별칭: ALB, NLB, Application Load Balancer, Network Load Balancer, AWS Load Balancer, ELB
- 정의 | | ALB | NLB | (Classic ELB) | |---|---|---|---| | Layer | L7 (HTTP) | L4 (TCP/UDP) | L4 + L7 (…
- [AWS] Auto Scaling: EC2 ASG, target tracking, predictive cloud ← 2
- 별칭: Auto Scaling Group, ASG, Target Tracking, Step Scaling, Predictive Scaling, Scheduled Scaling
- 정의 Auto Scaling Group (ASG) = EC2 instance 자동 증감. desired / min / max + scaling policy. 구조 Scaling …
- [AWS] CloudFront: CDN, origin, behavior, signed URL cloud ← 2
- 별칭: CloudFront, CDN, edge location, origin, cache behavior, signed URL, OAC, Lambda@Edge, CloudFront Functions
- 정의 CloudFront = AWS 의 글로벌 CDN. 전세계 엣지 (600 PoP) 에서 사용자에게 가까이. 동작 Origin 종류 | Origin | 사용 | |---|---…
- [AWS] CloudWatch: 메트릭, 로그, 알람 cloud ← 3
- 별칭: CloudWatch, CW Metrics, CW Logs, CW Alarm, Embedded Metric Format, CW Insights, Composite Alarm
- 정의 CloudWatch = AWS 의 모니터링 + 로그 + 알람 통합 서비스. 4가지 구성 Metrics | 종류 | 의미 | |---|---| | Standard resolu…
- [AWS] EBS vs Instance Store: 영속 vs 임시 스토리지 cloud ← 2
- 별칭: EBS, Instance Store, gp3, io2, EBS volume, NVMe, ephemeral storage
- 정의 | | EBS | Instance Store | |---|---|---| | 영속성 | 영속 | 임시 (instance 종료 시 손실) | | 위치 | 네트워크 attach…
- [AWS] EC2 Instance Types: family, generation, sizing cloud
- 별칭: instance types, Graviton, m6i vs m6a vs m6g, right-sizing, burstable, Nitro
- 정의 EC2 인스턴스 수백 종. family + generation + modifier + size. 워크로드에 맞춰 right-sizing. Family | Family | 용…
- [AWS] EC2: 인스턴스 타입, AMI, EBS cloud ← 6
- 별칭: EC2, AWS EC2, AMI, EBS, instance type, Spot Instance, Reserved Instance, Savings Plans
- 정의 EC2 (Elastic Compute Cloud) = AWS 의 VM 서비스. instance type (CPU / RAM / NW) 결정 + AMI (OS 이미지) + E…
- [AWS] ECS + Fargate: 컨테이너 오케스트레이션 cloud ← 1
- 별칭: ECS, Amazon ECS, Fargate, Task Definition, Service, Cluster, ECS Anywhere
- 정의 ECS (Elastic Container Service) = AWS 의 컨테이너 오케스트레이션. K8s 보다 단순. Fargate = ECS / EKS 의 서버리스 실행 환…
- [AWS] EKS: managed Kubernetes cloud ← 3
- 별칭: EKS, Amazon EKS, EKS Fargate, managed node group, Karpenter on EKS, EKS Anywhere
- 정의 EKS (Elastic Kubernetes Service) = AWS 의 managed K8s control plane. worker node 는 사용자 (또는 Fargat…
- [AWS] EventBridge: 이벤트 버스, 스케줄러, partner sources cloud ← 6
- 별칭: EventBridge, CloudWatch Events, EventBridge Scheduler, Event Pattern, Schema Registry, Partner Source
- 정의 EventBridge = AWS 의 통합 event bus. 옛 CloudWatch Events 의 후계. AWS service 이벤트 + custom 이벤트 + SaaS …
- [AWS] IAM: User, Role, Policy, STS cloud ← 10
- 별칭: IAM, AWS IAM, IAM Role, IAM Policy, STS, AssumeRole, Identity Center, SSO
- 정의 IAM (Identity and Access Management) = AWS 의 권한 관리 전부. User, Group, Role, Policy. 객체 | 객체 | 의미 |…
- [AWS] KMS: 암호화 키 관리, envelope encryption cloud ← 4
- 별칭: KMS, AWS KMS, CMK, envelope encryption, data key, key rotation
- 정의 KMS (Key Management Service) = 암호화 키 중앙 관리. envelope encryption + IAM 통합 + 감사 로그. 키 종류 | 종류 | 의미…
- [AWS] Lambda Cold Start: 원인과 완화 cloud ← 1
- 별칭: Lambda cold start, warm start, Provisioned Concurrency, SnapStart, Lambda init
- 정의 Cold Start = Lambda 가 처음 호출 또는 idle 후 다시 호출 시 컨테이너 + 런타임 + 사용자 코드 init 의 시간. 단계 | 단계 | 시간 (Node)…
- [AWS] Lambda: 서버리스 함수, 트리거, 동시성 cloud ← 7
- 별칭: AWS Lambda, serverless function, Lambda invocation, concurrency, provisioned concurrency, Lambda layers
- 정의 AWS Lambda = 서버리스 함수 실행. 이벤트 트리거 → 함수 실행 → 결과 / 비동기 처리. 서버 관리 0. 트리거 종류 | 트리거 | 모델 | |---|---| |…
- [AWS] RDS Multi-AZ + Read Replica cloud
- 별칭: RDS, Aurora, Multi-AZ, Read Replica, RDS Proxy, RDS Aurora Serverless v2, Aurora Global Database
- 정의 RDS (Relational Database Service) = AWS 의 managed RDB. MySQL, PostgreSQL, MariaDB, Oracle, SQL S…
- [AWS] Route 53: DNS, routing policies, health checks cloud ← 3
- 별칭: Route 53, Route53, DNS, weighted routing, latency routing, failover routing, geolocation
- 정의 Route 53 = AWS 의 글로벌 DNS + health check + 라우팅 정책. 단순 DNS 뿐 아니라 글로벌 트래픽 분산. Hosted Zone Alias Rec…
- [AWS] S3: object storage, storage classes, lifecycle cloud ← 7
- 별칭: S3, Simple Storage Service, S3 storage class, S3 lifecycle, S3 Intelligent-Tiering, S3 Glacier, S3 versioning
- 정의 S3 = AWS 의 object storage. bucket + key + object. 11 9's durability, 무한 확장. 2026 시점 인터넷의 핵심 스토리지…
- [AWS] Secrets Manager + Parameter Store cloud ← 4
- 별칭: AWS Secrets Manager, Parameter Store, SSM Parameter, secret rotation
- 정의 | | Secrets Manager | Parameter Store (SSM) | |---|---|---| | 가격 | $0.40/secret/월 + $0.05/10k AP…
- [AWS] Security Group vs NACL: stateful vs stateless 방화벽 cloud ← 1
- 별칭: Security Group, SG, NACL, Network ACL, stateful firewall, subnet ACL
- 정의 | | SG (Security Group) | NACL (Network ACL) | |---|---|---| | 상태 | Stateful | Stateless | | 적용 …
- [AWS] SNS: pub-sub fan-out cloud ← 2
- 별칭: SNS, Simple Notification Service, SNS topic, fan-out, SMS notification, Mobile push
- 정의 SNS (Simple Notification Service) = pub-sub fan-out. 한 message → 여러 subscriber 에 동시 배포. 구조 Subsc…
- [AWS] SQS: managed queue, FIFO, DLQ cloud ← 4
- 별칭: SQS, Simple Queue Service, FIFO Queue, Standard Queue, DLQ, visibility timeout, long polling
- 정의 SQS = AWS 의 완전 관리형 메시지 큐. infinite scale, no provisioning, pay-per-request. Standard vs FIFO | |…
- [AWS] Step Functions: 워크플로 오케스트레이션 cloud ← 2
- 별칭: Step Functions, SFN, State Machine, ASL, Express Workflow, Standard Workflow
- 정의 Step Functions = 서버리스 워크플로 오케스트레이션. Amazon States Language (ASL, JSON) 으로 상태 기계 정의. ASL 예시 시각화 자…
- [AWS] STS / AssumeRole: 임시 자격, cross-account cloud ← 2
- 별칭: STS, AssumeRole, AssumeRoleWithWebIdentity, AssumeRoleWithSAML, external ID, cross-account
- 정의 STS (Security Token Service) = 임시 자격 증명 발급. short-lived (15분-12시간) credentials. 5가지 API | API | …
- [AWS] VPC: subnet, route, NAT, peering cloud ← 7
- 별칭: VPC, Virtual Private Cloud, subnet, route table, NAT Gateway, VPC Peering, Transit Gateway, VPC Endpoint
- 정의 VPC (Virtual Private Cloud) = AWS 안의 논리적 격리 네트워크. CIDR 정의 + subnet 분할 + 라우팅. 구조 Subnet 종류 | 종류 |…
- [CI/CD] GitHub Actions: workflow, action, runner devops ← 5
- 별칭: GitHub Actions, GHA, workflow, self-hosted runner, matrix build, reusable workflow, composite action
- 정의 GitHub Actions = GitHub 내장 CI/CD. YAML workflow + marketplace action. 2018 출시 → Travis CI 대체. 구조…
- [Concurrency] Backpressure: 흐름 제어로 시스템 보호 concurrency ← 5
- 별칭: Backpressure, flow control, reactive streams, rate shaping, buffer overflow, shedding
- 정의 Backpressure = 생산자가 소비자 속도에 맞춰 자기 속도 조절. 분산 시스템의 cascade failure 방지. [!IMPORTANT] Backpressure 의…
- [Concurrency] Circuit Breaker: cascade failure 방어 concurrency ← 6
- 별칭: Circuit Breaker, Hystrix, Resilience4j, Polly, Sentinel, half-open, fail-fast
- 정의 Circuit Breaker = 전기 회로의 차단기처럼, 백엔드 다운 / 느림 시 호출 자체를 차단 → 빠른 실패 + 백엔드 회복 시간. 3가지 상태 | 상태 | 의미 | …
- [Concurrency] Connection Pool: DB, HTTP, gRPC 의 공통 패턴 concurrency ← 2
- 별칭: Connection Pool, DB connection pool, PgBouncer, HikariCP, DataSource, max connections
- 정의 Connection Pool = 연결을 미리 만들어 두고 재사용. 매 요청마다 TCP + TLS + auth 비용을 회피. Pool 의 동작 = producer (reque…
- [Concurrency] Rate Limiting: token bucket, sliding window concurrency ← 3
- 별칭: Rate Limiting, Token Bucket, Leaky Bucket, Sliding Window, Fixed Window, GCRA, 429 Too Many Requests
- 정의 Rate Limiting = 시간당 요청 수 제한. API 보호, fair use, 비용 제어, DDoS 완화. 5가지 알고리즘 1. Fixed Window - 단순. - …
- [Concurrency] Retry + Exponential Backoff + Jitter concurrency ← 5
- 별칭: Retry, Exponential backoff, Jitter, AWS retry policy, retry storm, thundering herd retry
- 정의 Retry with Exponential Backoff + Jitter = 실패 시 점점 긴 간격으로 재시도, 랜덤 분산. 분산 시스템의 thundering herd / r…
- [Container] cgroups + namespaces: 컨테이너의 두 기둥 cloud ← 4
- 별칭: cgroups, namespaces, cgroup v2, PID namespace, network namespace, mount namespace, user namespace, Linux container internals
- 정의 컨테이너 = namespaces + cgroups + 파일시스템 (overlay). VM 이 아니라 host 의 프로세스 + 격리. Namespaces (격리) | Name…
- [Container] Docker: image, layer, registry cloud ← 6
- 별칭: Docker, Dockerfile, OCI image, image layer, registry, docker compose, BuildKit
- 정의 Docker = 컨테이너 빌드 + 실행 + 배포 의 표준 도구. 2013 출시 → 컨테이너 시대 의 시작. 현재는 OCI 표준 으로 진화 ( , , 등 호환). Layere…
- [Container] Image Best Practices: 작게, 안전하게 cloud ← 3
- 별칭: distroless, scratch, image scan, Trivy, SBOM, multi-stage build, non-root user, secret 처리
- 5가지 원칙 1. Base Image 선택 | Base | 크기 | 적합 | |---|---|---| | | 70 MB | 개발 / 디버깅 친화 | | | 40 MB | 일반 |…
- [Container] OCI Image: spec, manifest, layer 표준 cloud ← 3
- 별칭: OCI, Open Container Initiative, OCI image spec, image manifest, image index, OCI distribution, containerd
- 정의 OCI (Open Container Initiative) = 컨테이너 표준 (Linux Foundation, 2015). image format + runtime + dis…
- [DB Internals] B-Tree 내부: split, merge, search 알고리즘 database-internals ← 4
- 별칭: B-Tree, B-Tree split, B-Tree merge, B-Tree balancing, B-Tree algorithm, B-Tree order, Knuth B-Tree
- 정의 B-Tree (Bayer & McCreight, 1972) = 디스크 I/O 최적화된 balanced multi-way search tree. 모든 leaf 깊이 동일 + …
- [DB Internals] B-Tree와 B+Tree 인덱싱 database-internals ← 8
- 별칭: B-tree, B+ tree, B+tree, database index, index scan, covering index, B-트리, 데이터베이스 인덱스
- 정의 B-Tree (B+ Tree) 는 거의 모든 RDB 의 인덱스 자료구조. balanced tree, 디스크 I/O 최소화 설계. 특징: - 균형 (balanced): 모든 …
- [DB Internals] B+ Tree 내부: leaf linked list, range scan database-internals ← 3
- 별칭: B+ Tree, B+ Tree leaf, clustered index, range scan, B+Tree vs B-Tree, InnoDB B+Tree
- 정의 B+ Tree = B-Tree 의 변형. 모든 데이터가 leaf 에만, internal node 는 navigation key만. Leaf 들이 linked list 로 연…
- [DB Internals] CHAR / VARCHAR / TEXT / JSONB: 문자열 타입 비교 database-internals
- 별칭: CHAR vs VARCHAR, VARCHAR vs TEXT, TEXT vs JSONB, PostgreSQL string types, TOAST, varlena, MySQL CHAR
- 정의 문자열 저장 타입 4가지 비교. 성능 + 저장 + 유연성 트레이드오프. 4가지 비교 (PostgreSQL) | 타입 | 최대 길이 | 저장 방식 | 뒤 공백 | 사용 | |…
- [DB Internals] GIN Index 깊이: 구조, jsonb_path_ops, tsvector database-internals ← 3
- 별칭: GIN, GIN index, Generalized Inverted Index, jsonb_path_ops, tsvector GIN, posting list, posting tree, fastupdate GIN
- 정의 GIN (Generalized Inverted Index) = 한 값이 여러 항목 을 가지는 데이터 (배열, JSON, tsvector) 의 역색인. PostgreSQL 의…
- [DB Internals] MVCC: Multi-Version Concurrency Control database-internals ← 8
- 별칭: MVCC, Multi-Version Concurrency Control, snapshot isolation, transaction id, VACUUM, tuple version, 동시성 제어
- 정의 MVCC (Multi-Versioning Concurrency Control) 는 트랜잭션 간 격리를 여러 버전의 row 로 구현. 동시 read / write 가 락 없이…
- [DB Internals] R-Tree: 공간 인덱스, MBR, split database-internals ← 3
- 별칭: R-Tree, R-tree spatial index, MBR, Minimum Bounding Rectangle, PostGIS spatial index, GiST R-Tree, R* Tree
- 정의 R-Tree (Guttman, 1984) = 공간 데이터 (2D, 3D) 를 인덱싱하는 balanced tree. 각 노드는 Minimum Bounding Rectangle…
- [DB Internals] Redis 8 / Valkey 9: 라이센스 분기, 신 데이터 구조, 실전 운영 database-internals ← 21
- 별칭: Redis, Redis 8, Redis Stack, Valkey, Valkey 9, antirez, vector set, RediSearch, RedisJSON, RedisTimeSeries, Redlock, Sidekiq Redis, Sentinel, Redis Cluster, AOF, RDB, AGPLv3, SSPL, RSALv2
- 정의 Redis 는 in-memory key-value 데이터 구조 서버. 2009년 Salvatore Sanfilippo (antirez) 가 Lua Manuscripts 의 …
- [DB] Cassandra: LSM-tree, quorum, eventually consistent database-internals
- 별칭: Cassandra, Apache Cassandra, LSM tree, memtable, SSTable, quorum read/write, CQL, ScyllaDB
- 정의 Apache Cassandra = 마스터리스 (peer-to-peer) 분산 KV 스토어. write 우선, eventually consistent, 수평 무한 확장. 20…
- [DB] DynamoDB: PK + SK, single-table design, GSI / LSI database-internals ← 3
- 별칭: DynamoDB, DDB, partition key, sort key, GSI, LSI, single-table design, DAX, PartiQL
- 정의 DynamoDB 는 AWS 의 fully managed key-value + document NoSQL. low-latency, infinite scale, schemale…
- [DB] EXPLAIN 읽기: scan, join, sort, cost database-internals ← 4
- 별칭: EXPLAIN, EXPLAIN ANALYZE, query plan, Seq Scan, Index Scan, Hash Join, Nested Loop, Merge Join
- 정의 EXPLAIN = 쿼리 실행 계획 표시. EXPLAIN ANALYZE = 실제로 실행 + 실제 시간 측정. Scan 종류 | Scan | 의미 | 적합 | |---|---|…
- [DB] GIN / GiST / Hash / BRIN: 비-B-tree 인덱스 database-internals ← 5
- 별칭: GIN, GiST, SP-GiST, BRIN, Hash index, pg_trgm, JSONB 인덱스, full-text index
- 정의 B-tree 외 PostgreSQL 의 특수 인덱스 들. 자세한 B-tree 는 참고. | 인덱스 | 적합 | |---|---| | B-tree | = < > BETWEEN…
- [DB] MongoDB: 문서 DB, WiredTiger, replica set, aggregation database-internals ← 5
- 별칭: MongoDB, BSON, WiredTiger, replica set, sharding, aggregation pipeline, Atlas
- 정의 MongoDB 는 BSON (binary JSON) 문서 기반 NoSQL DB. schema-less 라기보다 flexible schema. 2026 시점 Atlas (ma…
- [DB] MySQL / InnoDB: clustered index, redo log, MVCC database-internals ← 18
- 별칭: MySQL, InnoDB, clustered index, secondary index, redo log, undo log, buffer pool, binlog
- 정의 MySQL + InnoDB (기본 스토리지 엔진) 의 clustered index + redo log 기반 행 기반 RDBMS. 웹 / SaaS 의 가장 흔한 backbon…
- [DB] PostgreSQL: 프로세스 모델, MVCC, WAL, 확장성 database-internals ← 28
- 별칭: PostgreSQL, Postgres, postmaster, VACUUM, TOAST, psql
- 정의 PostgreSQL 은 오픈소스 ORDBMS. 1986 UC Berkeley POSTGRES 의 후예. MVCC, 확장 가능 타입, JSONB, full-text searc…
- [DB] Sharding vs Partitioning: 수평 확장의 두 얼굴 database-internals ← 3
- 별칭: Sharding, Partitioning, horizontal sharding, vertical partitioning, shard key, consistent hashing, Citus, Vitess
- 정의 | | Partitioning | Sharding | |---|---|---| | 범위 | 한 DB 안 | 여러 DB 노드 | | 목적 | 큰 테이블 관리 | 수평 확장 (…
- [DB] SQLite: 단일 파일, WAL 모드, edge / mobile database-internals
- 별칭: SQLite, WAL mode, embedded database, Litestream, Turso, single file DB
- 정의 SQLite 는 세계에서 가장 많이 배포된 DB (모든 스마트폰, 브라우저, OS). 서버 없이 라이브러리, 단일 파일, zero-config. embedded + edge…
- [DB] Transaction Isolation Levels: 완벽 가이드 database-internals ← 4
- 별칭: Isolation Levels, Transaction Isolation Level, 트랜잭션 격리 수준, 격리수준, Read Uncommitted, Read Committed, Repeatable Read, Serializable, Snapshot Isolation, Dirty Read, Phantom Read, Non-Repeatable Read, Lost Update, Write Skew, SSI, Serializable Snapshot Isolation
- 정의 Transaction Isolation Level (트랜잭션 격리 수준) = 동시에 실행되는 여러 트랜잭션이 서로의 변경을 어디까지 볼 수 있는지 규정하는 수준. ACID …
- [DB] WAL: Write-Ahead Log, crash recovery, replication 의 토대 database-internals ← 7
- 별칭: WAL, Write-Ahead Log, redo log, binlog, journal, checkpoint, fsync, group commit
- 정의 Write-Ahead Log (WAL) = 데이터 변경 전 로그를 먼저 디스크에 기록. 모든 모던 RDB / KV / 분산 시스템의 내구성 기반. 핵심 약속: 로그가 디스크…
- [DevOps] 무중단 배포: Blue-Green, Canary, Rolling, Expand-Contract devops ← 3
- 별칭: zero-downtime deployment, blue green, canary deployment, rolling update, feature flag, expand contract migration, 무중단 배포, 제로 다운타임
- 정의 무중단 배포 (Zero-Downtime Deployment) 는 서비스 가동을 멈추지 않고 새 버전을 배포하는 일련의 전략. 핵심 도전 4가지: 1. 트래픽 전환: 어떻게 …
- [Distributed Systems] 분산 트랜잭션: 2PC, Saga, Outbox distributed-systems ← 5
- 별칭: distributed transaction, 2PC, two phase commit, Saga pattern, Outbox pattern, XA transaction, 분산 트랜잭션
- 정의 분산 트랜잭션 은 여러 service / DB / 메시지 큐에 걸친 작업을 ACID 처럼 묶는 문제. 마이크로서비스 / 이벤트 기반 아키텍처의 핵심 도전. 3가지 접근: 1…
- [Distributed Systems] CAP Theorem과 PACELC distributed-systems ← 3
- 별칭: CAP theorem, PACELC, Brewer's theorem, consistency availability partition tolerance, CAP 정리
- 정의 CAP Theorem (Eric Brewer, 2000): 분산 시스템에서 3가지 중 2개만 동시에 보장 가능. - C (Consistency): 모든 노드가 같은 시점에 …
- [Distributed Systems] Consensus: Raft, Paxos distributed-systems ← 5
- 별칭: Raft, Paxos, consensus algorithm, leader election, replicated log, 분산 합의, 합의 알고리즘
- 정의 Consensus (합의): 여러 노드가 같은 값에 동의 하는 분산 알고리즘. CAP 의 C 보장의 기반. 용도: - Leader election: 1개 leader 선출 …
- [Distributed] Kafka Consumer Group: rebalancing, offset, lag distributed-systems ← 2
- 별칭: Kafka consumer group, Kafka rebalancing, cooperative rebalancing, consumer lag, static membership, partition assignment
- 정의 Consumer Group = 같은 를 가진 consumer 들이 함께 한 topic 을 분담 소비. partition 단위로 분배. Partition 할당 규칙: - pa…
- [Distributed] Kafka: 분산 로그, partition, consumer group distributed-systems ← 13
- 별칭: Apache Kafka, Kafka topic, partition, consumer group, offset, Kafka Streams, exactly-once semantics, KRaft, ISR
- 정의 Apache Kafka = 분산 commit log. 고처리량 (수백만 msg/s), 영속, 수평 확장. event-driven 아키텍처 의 de facto. 핵심 개념: …
- [Distributed] Message Broker 비교: Kafka / RabbitMQ / NATS / SQS / Redis Streams distributed-systems ← 3
- 별칭: message broker comparison, Kafka vs RabbitMQ, broker selection
- 결정 트리 6가지 broker 매트릭스 | 항목 | Kafka | RabbitMQ | NATS | SQS | Redis Streams | Google Pub/Sub | |---|…
- [Distributed] NATS: 가벼움, JetStream, subject 라우팅 distributed-systems ← 3
- 별칭: NATS, NATS.io, JetStream, core NATS, request-reply, subject hierarchy, NATS KV
- 정의 NATS = 극도로 가벼운 메시징 시스템. core NATS = at-most-once Pub/Sub + request-reply. JetStream = 영속 / at-le…
- [Distributed] RabbitMQ: exchange, queue, routing key distributed-systems ← 4
- 별칭: RabbitMQ, AMQP, exchange, routing key, direct exchange, topic exchange, fanout, DLQ, RabbitMQ Streams
- 정의 RabbitMQ = AMQP 0.9.1 기반 traditional message broker. exchange → queue 라우팅, workload distribution…
- [Django 6.0] Content Security Policy: XSS 방어의 최종형 django
- 별칭: Django CSP, Content Security Policy, django csp middleware, csp-report-only, CSP nonce
- 정의 Content Security Policy (CSP) = 브라우저에게 어떤 스크립트/스타일/이미지 만 허용 할지 선언. XSS 공격의 마지막 방어선. Django 6.0 부…
- [Django 6.0] Tasks Framework: 내장 백그라운드 작업 django
- 별칭: Django Tasks, django.tasks, background tasks, django task queue, task backend
- 정의 Django Tasks Framework = Django 6.0 (2025) 도입된 내장 백그라운드 작업 실행 표준. Celery 없이 간단한 async task 를 표준 …
- [Django] 개요와 프로젝트 구조 django ← 2
- 별칭: django overview, django project structure, django app, MTV pattern, django architecture
- 정의 Django는 2003년 시작된 Python 풀스택 웹 프레임워크. "Web framework for perfectionists with deadlines"라는 모토대로 b…
- [Django] 마이그레이션: makemigrations, migrate, 데이터 마이그레이션 django ← 2
- 별칭: django migrations, makemigrations, migrate, RunPython, schema migration, squashmigrations
- 정의 Django 마이그레이션은 모델 변경을 DB 스키마 변경으로 변환·기록하는 시스템. 는 모델과 현재 마이그레이션 상태를 비교해 새 마이그레이션 파일 생성. 는 DB에 적용.…
- [Django] 배포: Gunicorn, Uvicorn, whitenoise, Docker django ← 2
- 별칭: django deployment, Gunicorn, Uvicorn, django static files, DEBUG False
- 정의 Django 프로덕션 배포는 WSGI/ASGI 서버 + 리버스 프록시 + 정적 파일 + DB + 캐시 + 큐 조합. runserver는 개발 전용. nginx + gunic…
- [Django] 보안: CSRF, XSS, SQL injection, headers django ← 5
- 별칭: django security, CSRF, XSS, SQL injection, security middleware, SECURE_HSTS
- 정의 Django는 OWASP Top 10 대부분을 기본 방어한다: CSRF 토큰, ORM의 SQL 인젝션 방지, 템플릿 자동 escape, 비밀번호 해싱, 세션 쿠키 보안 등.…
- [Django] 인증: User, login, permissions django ← 4
- 별칭: django auth, django user, AUTH_USER_MODEL, AbstractUser, permissions, login_required
- 정의 Django는 User 모델, 인증·세션, 권한·그룹을 기본 제공한다. 앱이 핵심. 비밀번호 해싱(PBKDF2, scrypt, Argon2), 세션, 권한, 그룹, 비밀번호…
- [Django] 첫 프로젝트 튜토리얼: 순차 학습 django ← 1
- 별칭: Django tutorial, Django 첫 프로젝트, startproject, startapp, manage.py runserver, Django getting started
- 정의 Django 를 처음 접하는 사람 을 위한 순차 학습 페이지. 투표 앱 (polls) 을 만들며 Django 의 핵심 개념을 익힌다. 먼저 로 MTV 패턴과 프로젝트 구조를…
- [Django] 테스트: TestCase, Client, factory_boy django ← 3
- 별칭: django test, TestCase, django.test.Client, pytest-django, factory_boy, RequestFactory
- 정의 Django는 표준 라이브러리 기반 TestCase를 제공한다. 트랜잭션 격리, fixtures, test client, DB 셋업 자동화. 실무는 + 가 사실상 표준. 기…
- [Django] Admin: 자동 생성 관리자 페이지 django ← 2
- 별칭: django admin, django admin site, ModelAdmin, admin register, django admin customization
- 정의 Django Admin은 모델 등록만으로 CRUD UI 자동 생성하는 내장 백오피스. 내부 운영 도구, 콘텐츠 관리(CMS) 등에 강력. 권한 시스템 통합. Rails에는 …
- [Django] Aggregation: annotate, aggregate, F, Q, Window django ← 2
- 별칭: django annotate, django aggregate, Q objects, F expressions, Window functions
- 정의 Django ORM의 annotate / aggregate / F / Q / Window는 SQL의 GROUP BY, 집계 함수, 동적 조건, 컬럼 참조, Window 함수…
- [Django] async views와 ASGI django ← 2
- 별칭: django async view, async def view, ASGI, sync_to_async, async_to_sync, django channels
- 정의 Django 3.1+ 부터 async view를 지원한다. 로 view를 정의하면 ASGI 서버(Uvicorn, Daphne, Hypercorn) 아래에서 코루틴으로 실행.…
- [Django] Caching: per-site, per-view, low-level django ← 3
- 별칭: django cache, cache_page, Redis cache, Memcached, cache.get, vary_on_cookie
- 정의 Django 캐싱은 데이터/페이지 재생성 비용 회피의 핵심. 4단계 그래뉴얼리티 제공: site-wide → per-view → template fragment → low-…
- [Django] Celery: 비동기 태스크와 큐 django ← 2
- 별칭: django celery, celery task, celery worker, celery beat, task queue, delay apply_async
- 정의 Celery는 Python의 분산 태스크 큐. 비동기·예약·재시도 작업을 워커가 처리. Django와 통합되어 이메일 발송, 이미지 처리, ML 추론, 스크래핑 같은 무거운…
- [Django] Channels: WebSocket, Consumer, Group django ← 6
- 별칭: django channels, WebSocket, AsyncWebsocketConsumer, channel layer, Daphne, Redis channel layer
- 정의 Django Channels는 Django에 WebSocket, 비동기 프로토콜, 백그라운드 작업을 추가하는 공식 확장. 기본 Django는 HTTP만, Channels는 …
- [Django] ContentTypes, Generic Relations django ← 1
- 별칭: django contenttypes, GenericForeignKey, polymorphic django, django comment polymorphic
- 정의 는 모든 모델을 동적으로 참조하는 시스템. 댓글이 Post, Photo, Video 등 여러 모델을 가리킬 수 있게 함. + 을 활용. 활성화 기본 에 포함됨: 각 모델마다…
- [Django] DRF 개요: Serializer, ViewSet, Router django ← 4
- 별칭: django rest framework, DRF, APIView, ViewSet, Serializer, Router
- 학습 로드맵 이 페이지는 개요. 처음 접하는 사람은 아래 순서로 읽으면 자연스럽다: DRF 는 파이프라인이 핵심. 한번 그림으로 보면 이해가 쉽다: 정의 Django REST F…
- [Django] DRF Permission, Throttle, Filter django ← 6
- 별칭: drf permission, drf throttling, drf filter, django object permission, drf auth
- 정의 DRF는 view 호출 전 인증(Authentication) → 권한(Permission) → 스로틀(Throttle) 순으로 검사. 각 단계가 통과해야 view 메서드 실…
- [Django] DRF Serializer 심화 django ← 5
- 별칭: drf serializer, ModelSerializer, nested serializer, SerializerMethodField, drf validation
- 정의 DRF Serializer는 JSON ↔ Python ↔ Model의 변환과 검증을 담당한다. Django Form과 비슷한 인터페이스이나 API/JSON에 특화. 검증, …
- [Django] DRF ViewSet, Router, @action django ← 5
- 별칭: drf viewset, ModelViewSet, drf router, drf action, drf mixin
- 정의 ViewSet은 같은 리소스의 관련 view들을 클래스 하나로 묶는다. Django의 generic views와 비슷하나 / / / / / action 메서드로 통일. Ro…
- [Django] Email: send_mail, EmailMessage, 템플릿 django ← 2
- 별칭: django email, send_mail, EmailMultiAlternatives, django mailer, SMTP, anymail
- 정의 Django의 은 SMTP, 콘솔, 파일, 메모리, dummy 등 다양한 백엔드를 통합한 이메일 전송 API. 외부 서비스(SendGrid, Mailgun, AWS SES,…
- [Django] File Uploads + Storage: FileField, ImageField, S3 django ← 1
- 별칭: django file upload, FileField, ImageField, FILE_UPLOAD_HANDLERS, MEDIA_ROOT, django-storages, S3 backend
- 정의 Django 의 파일 업로드 + 저장 시스템. FileField/ImageField + Storage backend 로 로컬 / S3 / GCS 등 자유롭게. Model 필…
- [Django] Form과 ModelForm django ← 5
- 별칭: django form, ModelForm, form validation, django widget, formset
- 정의 Django Form은 사용자 입력 정의·검증·렌더링·바인딩을 통합. 일반 은 임의 필드, 은 모델 자동 매핑. 검증과 보안(CSRF, SQL 인젝션 방지) 내장. Form…
- [Django] Formsets: 여러 폼 동시 처리 django ← 2
- 별칭: Django formset, modelformset, inlineformset, management form, formset factory
- 정의 Formset = 여러 폼을 한 페이지에서 동시 처리. "상품 3개 한 번에 등록", "주문 상세 여러 줄 편집" 같은 시나리오. 3가지 종류 1. 기본 FormSet Te…
- [Django] i18n: 다국어와 시간대 django ← 1
- 별칭: django i18n, gettext, ugettext, trans tag, LocaleMiddleware, django translations
- 정의 Django는 gettext 기반 국제화(i18n)와 지역화(l10n) 표준 시스템을 제공한다. 코드/템플릿의 문자열을 추출해 파일로 번역, 컴파일된 파일을 런타임에 사용.…
- [Django] Logging: LOGGING 설정과 구조화 로그 django ← 1
- 별칭: django logging, LOGGING dict, django log handler, structlog rails, json logging
- 정의 Django는 Python 모듈을 그대로 사용하나 설정 dict로 일괄 구성한다. 구조화 로그(JSON), 외부 서비스(Sentry, Datadog, CloudWatch) …
- [Django] Management Commands django ← 2
- 별칭: django management command, BaseCommand, django manage.py, custom command, django-extensions
- 정의 Django 커스텀 명령은 형태로 실행되는 CLI 도구. 정기 작업(cron + management command), 데이터 마이그레이션, import/export, 디버깅…
- [Django] Messages Framework: flash 메시지 django
- 별칭: django messages, flash messages, messages.success, messages.error, add_message
- 정의 Messages Framework = 1회성 flash 메시지 (성공, 오류 등) 를 사용자에게 표시. Post/Redirect/Get 패턴에서 필수. 목적 + 대안 기본 …
- [Django] Middleware: 요청/응답 가로채기 django ← 2
- 별칭: django middleware, middleware order, process_view, process_exception, MIDDLEWARE setting
- 정의 Middleware는 모든 요청/응답을 가로채는 체인 구조 처리기. 요청은 위 → 아래, 응답은 아래 → 위로 흐른다. 인증, 세션, CSRF, gzip 압축, 보안 헤더 …
- [Django] Mixin 패턴: LoginRequired, UserPasses, Custom django ← 4
- 별칭: django mixin, LoginRequiredMixin, UserPassesTestMixin, PermissionRequiredMixin, django CBV mixin
- 정의 Django Mixin은 CBV에 공통 기능을 추가하는 작은 클래스. 다중 상속으로 조합. 인증, 권한, 로깅, 메시지 등에 활용. MRO(Method Resolution …
- [Django] Model과 Field 타입 django ← 3
- 별칭: django model, Field types, CharField, ForeignKey, models.Model
- 정의 Django 모델은 DB 테이블의 Python 표현이다. 상속, 클래스 속성 = 컬럼, 메타 클래스 = 테이블 설정. 모델 정의 후 + 로 DB 스키마 자동 생성. 기본 정…
- [Django] ModelForm: 모델 기반 폼 자동 생성 django ← 2
- 별칭: Django ModelForm, model form, Meta.fields, Meta.exclude, ModelForm save, clean_field
- 정의 ModelForm = Model 로부터 Form 자동 생성. 필드 반복 정의 없이 CRUD 폼 완성. 일반 Form 은 참고. 왜 ModelForm? 기본 사용 vs [!W…
- [Django] ORM 심화: N+1, prefetch, Subquery, Window django ← 4
- 별칭: django orm advanced, N+1 problem, Subquery, OuterRef, Window function, raw SQL, select_related deep
- 정의 Django ORM은 SQL을 잘 모르는 개발자에게도 안전하지만 비효율을 숨기기 쉽다. N+1, 비효율 JOIN, 큰 결과셋 메모리 폭발이 흔한 함정. selectrelat…
- [Django] Pagination: Paginator, ListView, DRF django ← 1
- 별칭: django pagination, Paginator, page_size, CursorPagination, ListView paginate_by
- 정의 Django는 빌트인 클래스와 ListView의 자동 페이지네이션을 제공한다. DRF는 PageNumber / LimitOffset / Cursor 3종. 페이지네이션은 큰…
- [Django] Q / F / Case / When / Database Functions django
- 별칭: Django Q object, F expression, Case When, Conditional expressions, database functions, Coalesce, Concat, Lower, Cast
- 정의 Django ORM 의 고급 표현식. Python 에서 짜지만 SQL 로 컴파일 되어 DB 에서 실행. Raw SQL 없이 복잡한 쿼리. 일반 ORM 은 , 참고. 1. Q…
- [Django] QuerySet과 Manager django ← 5
- 별칭: django queryset, django manager, objects.filter, QuerySet API, lazy queryset
- 정의 QuerySet은 DB 쿼리를 lazy하게 빌드하는 객체. , 같은 메서드를 체이닝해도 실제 SQL 실행은 평가 시점( , , , slice 등)에 한 번 발생. Manag…
- [Django] Sessions와 Cookies django ← 2
- 별칭: django session, session backend, django cookies, signed cookie, session middleware
- 정의 Django Session은 서버 측 사용자 상태 저장. 클라이언트엔 세션 ID만 쿠키로 저장, 실제 데이터는 백엔드(DB, cache, file, cookie). 인증, …
- [Django] settings 관리: 환경 분리, secrets, 12-factor django ← 2
- 별칭: django settings, settings split, django-environ, DJANGO_SETTINGS_MODULE, production settings
- 정의 Django settings는 단일 Python 파일에 모든 설정을 두는 게 기본이지만, 환경별 분리·비밀 정보 분리·12-factor 원칙 적용이 실무 표준. 개발/스테이…
- [Django] Shortcuts + Decorators: render, redirect, get_object_or_404 django ← 1
- 별칭: django shortcuts, render, redirect, get_object_or_404, get_list_or_404, require_http_methods, login_required, permission_required
- 정의 Django 의 View 작성을 간결하게 하는 shortcut 함수들 + view 에 공통 기능을 붙이는 decorator 들. Shortcuts (django.shortc…
- [Django] Signals 내부 구현: 옵저버 패턴 심층 분석 django ← 1
- 별칭: django signal internal, Signal class internals, 옵저버 패턴 django, Signal connect dispatch, weakref signal receiver
- 정의 Django signal은 GoF의 옵저버(Observer) 패턴을 Python의 동적 디스패치, weakref, threading.lock으로 구현한 것이다. 일반 사용은…
- [Django] Signals: 모델 이벤트 hook django ← 2
- 별칭: django signal, post_save, pre_save, signal receiver, @receiver, AppConfig.ready
- 정의 Django signal은 발신자(sender)가 특정 이벤트를 알리면 등록된 수신자(receiver)들이 호출되는 옵저버 패턴. 모델 저장/삭제, 요청 시작/종료, 마이그…
- [Django] Static과 Media 파일 django ← 2
- 별칭: django static files, django media, STATIC_URL, MEDIA_URL, collectstatic, whitenoise
- 정의 Django는 정적 파일을 두 카테고리로 구분한다. - Static: 앱·테마의 일부인 CSS/JS/이미지. 배포 시 으로 한 곳에 모음. - Media: 사용자가 업로드한…
- [Django] Template 언어: 태그, 필터, 상속 django ← 2
- 별칭: django template, django template language, DTL, template tag, template filter, include extends
- 정의 Django Template Language (DTL)는 HTML과 Python 사이의 안전한 표현 언어. 임의 Python 실행 차단(보안), 로 변수, 로 태그, 로 필…
- [Django] Transactions: atomic, on_commit, savepoint django ← 1
- 별칭: Django transaction, transaction.atomic, on_commit, select_for_update, ATOMIC_REQUESTS, django savepoint
- 정의 Transaction = 여러 SQL 문을 원자적 (all-or-nothing) 으로 실행. Django 는 자동 커밋 (autocommit) 모드가 기본, 으로 명시적 트…
- [Django] URL 디스패치: path, re_path, include django ← 2
- 별칭: django urls, URL routing, path converter, reverse, url namespace
- 정의 Django는 URL 패턴 리스트로 요청을 view에 라우팅한다. 1.01.x는 (regex만), 2.0+ (간결한 converter 문법)와 (regex) 두 방식. 기본…
- [Django] View: 함수 기반 vs 클래스 기반 django ← 6
- 별칭: django view, FBV, CBV, class-based view, function-based view, generic view
- 정의 Django View는 HTTP 요청을 받아 응답을 반환하는 callable. 두 스타일이 공존. - FBV (Function-Based View): 일반 함수. 간단하고 …
- [DRF] Authentication: Session, Token, JWT, OAuth2 django ← 4
- 별칭: DRF authentication, TokenAuthentication, SessionAuthentication, BasicAuthentication, Simple JWT, django-rest-framework-simplejwt
- 정의 Authentication = 누가 요청했는지 식별. Authorization () 과 별개. 흐름 자세한 permission 은 . 내장 Authentication Cla…
- [DRF] Filtering: django-filter, SearchFilter, OrderingFilter django ← 4
- 별칭: DRF filtering, django-filter, SearchFilter, OrderingFilter, FilterSet, filter_backends
- 정의 Filtering = 쿼리 파라미터로 결과 제한. 3가지 backend + custom. 3가지 내장 Backend 설치 + 설정 1. DjangoFilterBackend …
- [DRF] Pagination + Throttling django ← 4
- 별칭: DRF pagination, PageNumberPagination, LimitOffsetPagination, CursorPagination, DRF throttling, UserRateThrottle, AnonRateThrottle
- 정의 Pagination = 큰 목록을 페이지 단위로 나눔. Throttling = 요청 빈도 제한. 둘 다 API 안정성의 기본. Pagination 3종 언제 어느 것을 쓸까…
- [DRF] Request + Response 객체 django ← 4
- 별칭: DRF Request, DRF Response, request.data, request.query_params, Response.status_code, content_negotiation
- 정의 DRF 의 = Django 의 확장. = 의 확장. 자동 content negotiation + renderer 처리. 요청이 뷰에 도달하기까지 에 값이 실제로 들어가려면 …
- [DRF] Routers: DefaultRouter, SimpleRouter, custom actions django ← 3
- 별칭: DRF Router, DefaultRouter, SimpleRouter, router.register, @action decorator, extra actions
- 정의 Router = ViewSet 에 대한 URL 자동 생성. Rails 의 와 유사. 왜 Router? 종류 DefaultRouter 생성되는 URL: | URL | Meth…
- [DRF] Schemas + OpenAPI: 자동 문서화 django ← 4
- 별칭: DRF schemas, DRF OpenAPI, drf-spectacular, drf-yasg, Swagger UI, Redoc, API 문서화, documenting your API
- 정의 OpenAPI (전 Swagger) = REST API를 기계 가독 스펙으로 기술하는 표준. DRF는 이 스펙을 ViewSet / Serializer 로부터 자동 추출할 수…
- [DRF] Testing: APIClient, APITestCase, force_authenticate django ← 3
- 별칭: DRF testing, APIClient, APITestCase, APIRequestFactory, force_authenticate, DRF pytest
- 정의 DRF의 테스트 도구는 Django 위에 API 특화 helper 를 얹은 것. 로 real endpoint 를 호출하거나 로 View 단위 테스트가 가능. 테스트 도구 계…
- [DRF] Tutorial + Quickstart: 첫 API 서버 5분 django ← 6
- 별칭: DRF quickstart, DRF tutorial, 첫 REST API, DRF 시작, django rest framework tutorial
- 정의 Django REST Framework (DRF) 를 처음 사용 하는 사람을 위한 순차 시작 가이드. 5분 안에 동작하는 API 서버 완성. DRF 개요는 . Django …
- [DRF] Versioning + Content Negotiation django ← 4
- 별칭: DRF versioning, URLPathVersioning, AcceptHeaderVersioning, content negotiation, Accept header, media type
- 정의 Versioning = API 의 여러 버전 공존. Content Negotiation = 같은 endpoint 가 여러 형식 (JSON, XML, HTML) 응답. Ver…
- [DRF] Views: APIView, GenericViews, Mixins, FBV django ← 7
- 별칭: APIView, @api_view, ListAPIView, RetrieveAPIView, GenericAPIView, DRF mixins
- 정의 DRF View 4가지 스타일. 자유도 vs 자동화 트레이드오프. 4가지 스타일 | 스타일 | 코드량 | 자유도 | |---|---|---| | | 유사 Django FBV…
- [Frontend] React 19.x: Actions, Activity, RSC, Foundation frameworks
- 별칭: React 19, React 19.1, React 19.2, React Server Components, useActionState, useFormStatus, useOptimistic, useEffectEvent, Activity component, Partial Pre-rendering, React Foundation, ref as prop, Document Metadata, Asset Loading
- 정의 React 19 ( ) 는 Server Components 의 정식화 와 Actions 라는 새 패러다임을 들고 나온 메이저 릴리즈. 이후 ( ), ( ) 까지 minor …
- [Frontend] React Compiler 1.0: 자동 memoization 의 새 표준 frameworks ← 4
- 별칭: React Compiler, react-compiler, babel-plugin-react-compiler, automatic memoization, use memo, use no memo, React Forget, compiler-powered linting
- 정의 React Compiler 는 React 컴포넌트와 hook 의 불필요한 재계산 을 빌드 타임에 자동으로 잡아주는 optimizing compiler. 손으로 / / 를 박…
- [Frontend] SPA Architecture: CSR, SSR, SSG, hydration javascript
- 별칭: SPA, Single Page Application, CSR, SSR, SSG, ISR, Hydration, Islands Architecture, client-side routing, 스파, 단일 페이지 앱
- 정의 SPA (Single Page Application) 는 첫 로딩 시 받은 HTML / JS 번들 하나로 모든 화면 전환을 클라이언트에서 처리하는 웹 앱 구조. URL 변경…
- [GitOps] 패턴: 단일 vs 다중 repo, environment promotion devops ← 2
- 별칭: GitOps patterns, monorepo manifests, environment promotion, image updater, Renovate
- GitOps 4가지 원칙 (OpenGitOps) 1. Declarative: 시스템 원하는 상태 가 선언적 (YAML). 2. Versioned and Immutable: Git…
- [GitOps] ArgoCD: Kubernetes GitOps devops ← 3
- 별칭: ArgoCD, Argo CD, GitOps, Application, ApplicationSet, Argo Rollouts, Flux CD
- 정의 ArgoCD = Kubernetes 의 GitOps 컨트롤러. Git 리포지토리의 manifest 가 source of truth → cluster 가 자동 동기화. Git…
- [IaC] AWS CDK: TypeScript 로 CloudFormation 생성 cloud ← 2
- 별칭: AWS CDK, Cloud Development Kit, CDK construct, CDK stack, L1 L2 L3 construct, CDK Toolkit, cdktf
- 정의 AWS CDK = TS/Python/Java/Go 로 AWS 인프라 정의 → CloudFormation 으로 컴파일 → 배포. AWS 전용. 흐름 예시 한 줄 = bucke…
- [IaC] Pulumi: 코드로 인프라 (TS/Python/Go) cloud ← 2
- 별칭: Pulumi, IaC in code, Pulumi stack, Pulumi automation API
- 정의 Pulumi = 일반 프로그래밍 언어로 IaC. TypeScript, Python, Go, .NET, Java. Terraform 의 HCL DSL 대신 코드 자유도. TS…
- [IaC] Terraform State: backend, locking, drift, import cloud ← 1
- 별칭: terraform.tfstate, S3 backend, state locking, DynamoDB lock, drift detection, terraform import, state rm
- 정의 Terraform State = 코드 ↔ 실제 인프라 매핑. JSON 파일. 모든 Terraform 작업의 핵심. State 가 하는 일 | 역할 | 의미 | |---|--…
- [IaC] Terraform: HCL, provider, state cloud ← 4
- 별칭: Terraform, HCL, Terraform provider, terraform plan, terraform apply, tfstate, OpenTofu
- 정의 Terraform = 선언적 인프라 코드. HCL (HashiCorp Configuration Language) 로 리소스 정의 → AWS/GCP/Azure 등 provid…
- [Java] ArrayBlockingQueue java ← 1
- 별칭: ArrayBlockingQueue, java.util.concurrent.ArrayBlockingQueue, ABQ, 고정 크기 블로킹 큐
- 정의 는 고정 크기 원형 배열 기반의 . 생성 시 capacity 를 지정해야 하고 그 이상 늘어나지 않는다. 내부에 단일 을 사용 (head/tail 공유). 동시 throug…
- [Java] ArrayDeque java ← 3
- 별칭: ArrayDeque, java.util.ArrayDeque, Java ArrayDeque, 어레이덱, circular array deque
- 정의 는 원형 배열 (circular buffer) 기반의 구현. JDK 1.6 도입. 으로 쓰면 보다 빠르고, 로 쓰면 보다 빠르다. Stack / Queue / Deque 가…
- [Java] ArrayList java ← 8
- 별칭: ArrayList, java.util.ArrayList, Java ArrayList, 어레이리스트, ArrayList class
- 정의 는 동적 배열 (dynamic array) 로 구현된 . 내부적으로 를 들고 다니며, 용량이 부족해지면 새 배열로 옮긴다. Java 의 가장 흔한 컬렉션 구현체. 인덱스 기…
- [Java] AtomicInteger java ← 3
- 별칭: AtomicInteger, java.util.concurrent.atomic.AtomicInteger, 원자 정수, atomic int
- 정의 는 lock-free 로 원자성을 보장 하는 래퍼. 내부적으로 CAS (Compare-And-Swap) 를 사용해 락 없이 atomic 한 read-modify-write …
- [Java] AtomicReference java ← 1
- 별칭: AtomicReference, java.util.concurrent.atomic.AtomicReference, 원자 참조
- 정의 는 객체 참조를 atomic 하게 갱신 하는 래퍼. 참조 + CAS 의 결합. 의 객체 버전. 불변 객체 패턴, 상태 머신, lock-free 자료구조의 빌딩 블록. 핵심 …
- [Java] BlockingQueue java ← 8
- 별칭: BlockingQueue, java.util.concurrent.BlockingQueue, blocking queue, 블로킹 큐, BQ
- 정의 는 요소를 가져올 때 비어 있으면 대기, 넣을 때 가득 차 있으면 대기 하는 thread-safe 큐 인터페이스. 생산자-소비자 (producer-consumer) 패턴의 …
- [Java] Collection java ← 26
- 별칭: Collection, java.util.Collection, Java Collection, Collection interface, 컬렉션, JCF, Java Collections Framework
- 정의 는 그룹으로 묶인 객체들을 표현하는 최상위 인터페이스. JCF (Java Collections Framework) 의 입구이자, / / / 모두 이를 확장한다. 자체는 직접…
- [Java] ConcurrentHashMap java ← 15
- 별칭: ConcurrentHashMap, java.util.concurrent.ConcurrentHashMap, CHM, concurrent hash map, 동시성 해시맵
- 정의 는 고동시성 환경에서 사용 가능한 구현. JSR-166 (Java 5) 도입, Java 8 에서 내부 구조가 크게 재작성됐다. 과 같은 인터페이스를 제공하면서 thread-…
- [Java] ConcurrentLinkedDeque java ← 4
- 별칭: ConcurrentLinkedDeque, java.util.concurrent.ConcurrentLinkedDeque, CLD, lock-free deque
- 정의 는 lock-free . 의 양방향 버전. JDK 1.7 추가. 양 끝 모두에서 add/remove 가능, 모든 연산이 CAS 기반. 내부 구조 이중 연결 리스트 ( , 모…
- [Java] ConcurrentLinkedQueue java ← 3
- 별칭: ConcurrentLinkedQueue, java.util.concurrent.ConcurrentLinkedQueue, CLQ, lock-free queue
- 정의 는 lock-free 로 구현된 unbounded thread-safe . Michael & Scott 의 non-blocking queue 알고리즘 (1996) 기반. 가…
- [Java] ConcurrentModificationException java ← 7
- 별칭: ConcurrentModificationException, CME, java.util.ConcurrentModificationException, ConcurrentModification, CMException
- 정의 (CME) 는 가 컬렉션의 구조 변경을 탐지했을 때 던지는 unchecked 예외 ( ). 이름과 달리 반드시 동시성 (멀티스레드) 문제일 때만 발생하는 것이 아니다. 단일…
- [Java] ConcurrentSkipListMap java ← 2
- 별칭: ConcurrentSkipListMap, java.util.concurrent.ConcurrentSkipListMap, skip list map, 동시성 정렬 맵
- 정의 는 Skip List 기반의 thread-safe 정렬 . 의 동시성 버전. 과의 결정적 차이: 정렬 순서를 유지 + 인터페이스 구현 ( , , 등). Skip List 는…
- [Java] ConcurrentSkipListSet java ← 2
- 별칭: ConcurrentSkipListSet, java.util.concurrent.ConcurrentSkipListSet, concurrent sorted set
- 정의 는 을 백킹으로 사용하는 정렬된 thread-safe . 의 동시성 버전. 인터페이스 구현. floor, ceiling, subSet 등 정렬 기반 연산 제공. 복잡도 의 …
- [Java] CopyOnWriteArrayList java ← 14
- 별칭: CopyOnWriteArrayList, CopyOnWriteList, CoW ArrayList, copy-on-write list, java.util.concurrent.CopyOnWriteArrayList
- 정의 는 쓰기 시 배열 전체를 복사 하는 thread-safe 구현. 읽기에는 lock 이 전혀 없고, 쓰기에는 으로 직렬화한다. (JSR-166) 의 컬렉션. 읽기 압도적 다,…
- [Java] CopyOnWriteArraySet java
- 별칭: CopyOnWriteArraySet, java.util.concurrent.CopyOnWriteArraySet, CoW Set, copy-on-write set
- 정의 는 를 백킹으로 사용하는 thread-safe . 중복 검사를 위해 매 add 마다 (O(n)) 를 수행. 의 모든 특성 (snapshot iterator, 읽기 lock-…
- [Java] CountDownLatch java ← 3
- 별칭: CountDownLatch, java.util.concurrent.CountDownLatch, 카운트다운 래치
- 정의 는 한 스레드 또는 여러 스레드가 다른 스레드들의 작업 완료를 기다리는 일회용 synchronizer. 으로 초기화하고, 각 worker 가 작업 후 호출. waiter 는…
- [Java] CyclicBarrier java ← 3
- 별칭: CyclicBarrier, java.util.concurrent.CyclicBarrier, 사이클 배리어, 재사용 배리어
- 정의 는 N 개의 스레드가 모두 도착할 때까지 서로 기다리는 synchronizer. 모두 도착하면 동시에 출발, 다시 사용 가능 (cyclic). 시각화 핵심 메서드 가장 흔한…
- [Java] DelayQueue java
- 별칭: DelayQueue, java.util.concurrent.DelayQueue, 지연 큐
- 정의 는 각 원소가 지정된 delay 가 만료된 후에만 꺼낼 수 있는 . 우선순위는 만료 시각이 빠른 것부터. 시각화 Delayed 인터페이스 원소는 인터페이스를 구현해야 한다.…
- [Java] Deque java
- 별칭: Deque, java.util.Deque, Java Deque, double-ended queue, 양방향 큐, 덱
- 정의 (Double-Ended Queue) 는 의 확장 인터페이스. 양쪽 끝 (head, tail) 모두에서 add/remove/examine 가능한 자료구조. JDK 1.6 도…
- [Java] Fail-Fast Iterator java ← 14
- 별칭: fail-fast iterator, fail-fast, fail fast, fail-fast 이터레이터, fail-fast 순회, modCount
- 정의 Fail-Fast Iterator 는 순회 도중 컬렉션의 구조가 변경되면 즉시 을 던지는 iterator. , , 등 대부분의 컬렉션의 iterator 가 이 방식. 목적은…
- [Java] HashMap java ← 5
- 별칭: HashMap, java.util.HashMap, Java HashMap, 해시맵
- 정의 는 해시 테이블 로 구현된 . 평균 O(1) 의 put/get/remove 를 보장하고 단일 스레드 환경의 사실상 표준. JDK 1.2 도입, Java 8 에서 충돌 시 l…
- [Java] HashSet java ← 2
- 별칭: HashSet, java.util.HashSet, Java HashSet, 해시셋
- 정의 는 을 백킹으로 사용하는 구현. 내부적으로 모든 원소를 HashMap 의 key 로 저장하고, value 는 dummy 상수 . 평균 O(1) 의 add/remove/con…
- [Java] Iterable java ← 26
- 별칭: Iterable, java.lang.Iterable, Java Iterable, Iterable interface, 이터러블, for-each 대상
- 정의 는 루프로 순회 가능한 모든 타입의 최상위 인터페이스. 단 하나의 추상 메서드, 를 정의한다. 인터페이스가 을 extends 하므로 , , , 등 모든 컬렉션이 자동으로 대…
- [Java] JavaBean 프로퍼티 규약 java ← 4
- 별칭: JavaBean, Java Bean, POJO, 자바빈, getter setter convention, @ConstructorProperties
- 정의 JavaBean 은 다음 세 가지 규약을 만족하는 클래스: 1. public no-args constructor (인자 없는 public 생성자) 2. 프로퍼티 접근자: /…
- [Java] LinkedBlockingQueue java ← 2
- 별칭: LinkedBlockingQueue, java.util.concurrent.LinkedBlockingQueue, LBQ
- 정의 는 linked list 기반의 . 기본 unbounded ( ) 이지만 생성 시 capacity 지정 가능. Two-Lock Queue 알고리즘 으로 producer 와 …
- [Java] LinkedHashMap java ← 5
- 별칭: LinkedHashMap, java.util.LinkedHashMap, Java LinkedHashMap, 링크드해시맵
- 정의 는 을 상속해 삽입 순서 (또는 접근 순서) 를 유지 하는 Map. 모든 의 평균 O(1) 성능을 유지하면서 추가로 순회 순서가 일관된다. 핵심: 이중 연결 리스트 (dou…
- [Java] LinkedList java ← 9
- 별칭: LinkedList, java.util.LinkedList, Java LinkedList, 연결리스트, 링크드리스트, 이중 연결 리스트
- 정의 는 양방향 연결 리스트 (doubly linked list) 로 구현된 이자 . 각 원소는 와 포인터를 가진 노드로 보관된다. 와 같은 List 이지만, 메모리 레이아웃과 …
- [Java] List java ← 7
- 별칭: List, java.util.List, Java List, JList, 리스트, List interface
- 정의 는 순서가 있고 중복이 허용 되는 컬렉션을 표현하는 인터페이스. 각 원소는 0 부터 시작하는 정수 인덱스로 접근 가능. 인터페이스를 확장하며, 의 모든 성질을 물려받는다. …
- [Java] LongAdder java ← 1
- 별칭: LongAdder, java.util.concurrent.atomic.LongAdder, DoubleAdder, 스트라이프 카운터
- 정의 는 고경합 카운터 를 위한 자료구조. JDK 1.8 도입. 보다 동시 증가 throughput 이 압도적으로 높다. 원리는 striped counter (분산 누적). 여러…
- [Java] Map java
- 별칭: Map, java.util.Map, Java Map, Map interface, 맵
- 정의 는 key 와 value 의 쌍으로 데이터를 저장 하는 자료구조의 인터페이스. 하나의 key 에는 하나의 value 만 매핑, 중복 key 는 허용하지 않는다. 은 을 ex…
- [Java] Object java ← 25
- 별칭: Object, java.lang.Object, Java Object, Object class, 오브젝트, java Object
- 정의 는 Java 의 모든 클래스의 최상위 부모 (root) 클래스. 가 명시되지 않은 클래스는 컴파일러가 자동으로 를 붙인다. 인터페이스는 클래스가 아니라 를 직접 상속하지는 …
- [Java] Phaser java ← 2
- 별칭: Phaser, java.util.concurrent.Phaser, 페이저, 동적 배리어
- 정의 는 의 확장. 참여자 수가 동적으로 변할 수 있는 단계별 동기화. JDK 1.7 도입. 시각화 핵심 메서드 동적 참여 예 worker 가 도중에 추가/종료될 수 있는 경우 …
- [Java] PriorityBlockingQueue java ← 1
- 별칭: PriorityBlockingQueue, java.util.concurrent.PriorityBlockingQueue, PBQ, 동시성 우선순위 큐
- 정의 는 의 동시성 + blocking 버전. unbounded 힙 기반 . 특징 - unbounded, 따라서 이 절대 block 하지 않음 - 만 큐가 비어 있을 때 bloc…
- [Java] PriorityQueue java ← 3
- 별칭: PriorityQueue, java.util.PriorityQueue, Java PriorityQueue, 우선순위큐, 최소힙
- 정의 는 이진 힙 (binary heap) 기반의 구현. FIFO 가 아닌 우선순위 순서 로 원소를 꺼낸다. 기본은 min-heap, 의 자연 순서나 로 우선순위 결정. 가장 작…
- [Java] Queue java
- 별칭: Queue, java.util.Queue, Java Queue, Queue interface, 큐
- 정의 는 FIFO (First-In, First-Out) 처리 순서를 가진 인터페이스. 한쪽 끝 (tail) 에 추가하고 반대쪽 (head) 에서 제거하는 자료구조. 처럼 다른 …
- [Java] ReentrantLock java ← 16
- 별칭: ReentrantLock, java.util.concurrent.locks.ReentrantLock, reentrant lock, 재진입 락, 재진입 가능 락, Java ReentrantLock
- 정의 는 키워드와 같은 상호 배제 (mutual exclusion) 를 제공하는 클래스 기반 락. JSR-166 (Java 5) 에서 추가됐다. "재진입 (reentrant)" …
- [Java] ReentrantReadWriteLock java ← 1
- 별칭: ReentrantReadWriteLock, java.util.concurrent.locks.ReentrantReadWriteLock, RRWLock, 읽기쓰기락, ReadWriteLock
- 정의 는 읽기 락과 쓰기 락을 분리 한 의 확장. 핵심 규칙: - 여러 reader 가 동시에 read lock 획득 가능 (병렬 읽기) - writer 는 배타적, write …
- [Java] Reflection: Class, Method, Field, MethodHandle java ← 1
- 별칭: Java Reflection, java.lang.reflect, Class.forName, MethodHandle, VarHandle, 리플렉션, 자바 리플렉션
- 정의 Reflection 은 런타임에 클래스 메타데이터 (필드, 메서드, 어노테이션, 생성자) 를 조회하고, 컴파일 타임에 알 수 없는 객체를 생성/조작할 수 있게 해 주는 Ja…
- [Java] Semaphore java ← 3
- 별칭: Semaphore, java.util.concurrent.Semaphore, 세마포어, permit
- 정의 는 N 개의 permit (허가) 을 발급/회수 하는 synchronizer. permit 이 있으면 진행, 없으면 또는 즉시 실패. 자원 풀, rate limiting, …
- [Java] Servlet 생명주기 java ← 3
- 별칭: Servlet lifecycle, init service destroy, Servlet 컨테이너, servlet container, 서블릿 생명주기
- 정의 Servlet 은 컨테이너 (Tomcat / Jetty / Undertow) 가 생성, 호출, 소멸시키는 객체. 개발자는 인터페이스 메서드만 구현하고 인스턴스 관리는 일체 …
- [Java] Servlet API: HttpServletRequest, HttpServletResponse java ← 5
- 별칭: Servlet, HttpServletRequest, HttpServletResponse, ServletContext, ServletConfig, Jakarta Servlet, 서블릿
- 정의 Servlet 은 Java 진영의 표준 HTTP 처리 API. 컨테이너 (Tomcat / Jetty / Undertow) 가 HTTP 요청을 객체 ( ) 로 만들어 serv…
- [Java] Servlet Filter java ← 8
- 별칭: Servlet Filter, Filter, FilterChain, @WebFilter, OncePerRequestFilter, FilterRegistrationBean, 서블릿 필터
- 정의 Filter 는 servlet 호출 전/후 에 끼어들어 요청과 응답을 가로채는 컴포넌트. 인증, 로깅, 압축, CORS, 인코딩 변환 같은 횡단 관심사 (cross-cutt…
- [Java] Set java
- 별칭: Set, java.util.Set, Java Set, Set interface, 집합
- 정의 는 중복을 허용하지 않는 . 수학의 집합 (set) 에 대응. 같은 원소를 두 번 추가하면 두 번째는 무시된다. 인터페이스의 모든 메서드를 그대로 사용하면서, 와 (또는 )…
- [Java] StampedLock java ← 1
- 별칭: StampedLock, java.util.concurrent.locks.StampedLock, 스탬프락, optimistic read
- 정의 는 JDK 1.8 도입의 새 락. 세 가지 모드 제공. 1. Write lock (배타) 2. Read lock (공유) 3. Optimistic read (락 안 잡고 시…
- [Java] SynchronousQueue java
- 별칭: SynchronousQueue, java.util.concurrent.SynchronousQueue, 직접 핸드오프 큐
- 정의 는 용량 0 의 . 저장 공간이 없다. 은 매칭되는 가 있어야 진행하고, 반대도 마찬가지. 직접 핸드오프 (direct handoff) 패턴, producer 와 consu…
- [Java] ThreadLocal java ← 7
- 별칭: ThreadLocal, InheritableThreadLocal, ScopedValue, 스레드 로컬, java threadlocal
- 정의 는 각 스레드마다 독립된 변수 사본을 가지게 해 주는 컨테이너. 로 접근하며, 한 스레드의 값은 다른 스레드에서 볼 수 없다. 쓰임은 두 가지: (1) 같은 인스턴스를 여러…
- [Java] TreeMap java ← 5
- 별칭: TreeMap, java.util.TreeMap, Java TreeMap, 트리맵, 정렬 맵
- 정의 는 Red-Black Tree 기반의 정렬된 . (확장 인터페이스) 을 구현해 범위 쿼리, floor/ceiling, sub-map 같은 정렬 기반 연산을 제공한다. key…
- [Java] TreeSet java ← 3
- 별칭: TreeSet, java.util.TreeSet, Java TreeSet, 트리셋, 정렬 셋
- 정의 는 을 백킹으로 사용하는 정렬된 . 인터페이스를 구현해 정렬 기반 연산 ( , , 등) 을 제공. 원소는 (자연 순서) 또는 생성자에 전달한 로 정렬. 핵심 메서드 (Nav…
- [Java] Vector java ← 7
- 별칭: Vector, java.util.Vector, Java Vector, 벡터, Vector class
- 정의 는 와 거의 동일한 동적 배열 기반 이지만, 모든 public 메서드가 로 묶여 있다. Java 1.0 (1996) 부터 존재하는 레거시 컬렉션. JDK 1.2 의 Coll…
- [Java] volatile java ← 13
- 별칭: volatile, java volatile, Java volatile, volatile keyword, volatile 키워드
- 정의 은 Java 의 키워드. 필드에 붙이면 두 가지를 보장한다. 1. 가시성 (visibility): 한 스레드의 쓰기가 다른 모든 스레드에 즉시 보인다. CPU 캐시에 머무르…
- [Javascript] 스코프 체인 javascript ← 4
- 별칭: JS 스코프 체인, JavaScript scope chain, JS scope
- 정의 스코프 체인 (Scope Chain) 은 변수 식별자를 해결할 때 따라가는 중첩된 의 연결 구조. 안쪽 스코프에서 찾지 못한 변수를 바깥 스코프로 차례로 검색. 시각화 변수…
- [Javascript] 이벤트 루프 javascript ← 7
- 별칭: 이벤트 루프, event loop, event-loop, 이벤트루프, JavaScript 이벤트 루프, JS 이벤트 루프, JavaScript event loop
- 정의 이벤트 루프 (Event Loop) 는 싱글 스레드 JavaScript 엔진이 비동기 작업을 처리하기 위해 돌리는 무한 루프다. 콜 스택이 비어있을 때마다 마이크로태스크 큐…
- [Javascript] 제어 흐름 javascript
- 별칭: JS control flow, if switch loop, JS 반복문
- 정의 JS 의 제어 흐름 구문. 분기, 반복, 종료 / 계속. if / else switch 없으면 다음 case 로 fall-through. ES2023+ lookup 이 더 …
- [Javascript] 콜백 javascript ← 3
- 별칭: 콜백, callback, 콜백 함수, callback function, JavaScript callback, JS callback
- - 콜백 (callback): 다른 함수의 인자로 넘겨져, 받은 쪽이 적절한 시점에 호출하는 함수. 일급 함수 () 가 있어야 가능한 패턴이라 JavaScript 에서는 자연스럽…
- [Javascript] 콜백 지옥 javascript ← 3
- 별칭: 콜백 지옥, callback hell, 콜백지옥, pyramid of doom, JavaScript callback hell, JS callback hell
- - 콜백 지옥 (callback hell) 또는 둠 피라미드 (pyramid of doom): 순차 의존이 있는 비동기 작업을 으로 연결할 때 들여쓰기가 오른쪽으로 깊어지는 현상…
- [Javascript] 클로저 javascript ← 8
- 별칭: closure, 클로저, 클로져, 클로저(Closure), JavaScript closure, JS closure
- 정의 클로저 (Closure): 함수가 자신이 정의된 시점의 외부 변수들을 계속 참조할 수 있는 성질. 함수가 일급 객체 () 인 언어의 자연스러운 결과. 메커니즘은 + 함수 객…
- [Javascript] 타입 변환 / 강제 변환 javascript ← 7
- 별칭: JS type coercion, JS 타입 변환, JS 형변환, implicit conversion
- 정의 JavaScript 의 암묵적 형변환 (coercion). 연산자가 양쪽 피연산자의 타입을 자동으로 맞춘다. 명시적 변환과 구분. 3 가지 강제 변환 1. ToString …
- [Javascript] 함수의 종류 javascript
- 별칭: JS function types, function expression, IIFE, function declaration
- 정의 JavaScript 에서 함수를 정의하는 여러 방법. 1. Function Declaration (선언문) - 호이스팅 됨 (전체) - 자기 이름으로 재귀 가능 - 일반 함…
- [Javascript] 호이스팅 (Hoisting) javascript ← 4
- 별칭: JS Hoisting, JS 호이스팅, JavaScript 호이스팅
- 정의 호이스팅 (Hoisting) 은 JavaScript 엔진이 코드 실행 전에 선언을 스코프의 최상단으로 끌어올리는 동작. 단, / 는 로 접근 제한. var 의 호이스팅 엔진…
- [Javascript] Array javascript ← 6
- 별칭: JS Array, JavaScript 배열, Array methods
- 정의 JavaScript 의 는 순서 있는 객체. 정수 키 + . 풍부한 메서드 (map/filter/reduce/...) 가 함수형 스타일을 지원. 생성 핵심 메서드 (반복) …
- [Javascript] Arrow Function javascript ← 5
- 별칭: arrow function, Arrow Function, JavaScript arrow function, JS arrow function, 화살표 함수, arrow-function, fat arrow
- 정의 화살표 함수 (arrow function) 는 ES2015 (ES6) 에서 도입된 함수 표현식. 모양. 더 짧은 문법뿐 아니라 가 lexical 로 바인딩 되는 본질적 차이…
- [Javascript] async/await javascript ← 9
- 별칭: async/await, async await, async-await, async function, 비동기 함수, JavaScript async/await, JS async/await
- 정의 / 는 기반 비동기 코드를 마치 동기 코드처럼 쓸 수 있게 해주는 ES2017 의 문법 설탕. 본질은 Promise 그 자체, 문법만 다르다. 전체 동작 메커니즘은 글 참조…
- [Javascript] BigInt javascript ← 1
- 별칭: JS BigInt, JavaScript BigInt, 임의 정밀도 정수
- 정의 는 임의 정밀도 정수. 를 넘어가는 정수를 정확히 표현. ES2020 도입. 왜 필요한가 큰 ID, 암호화, 정밀 산술, 통화 (cent 기반 정수) 에 안전. 사용 함정:…
- [Javascript] boolean / null / undefined javascript ← 3
- 별칭: JS boolean, JS null, JS undefined, JS boolean / null / undefined, JS falsy
- 정의 JavaScript 의 3 가지 primitive. - : , - : 의도적인 "없음" - : 자동으로 부여된 "없음" (초기화 안 됨) boolean falsy / tru…
- [Javascript] Class javascript ← 5
- 별칭: JS Class, JavaScript class, ES6 class
- 정의 ES6 는 prototype chain 위의 문법 설탕. C++/Java 스타일 OOP 와 닮았지만 내부는 . 구조 상속 super 의 의미 - : 부모 constructo…
- [Javascript] Date javascript
- 별칭: JS Date, JavaScript Date, Date 객체
- 정의 JS 의 객체. 시간을 ms 단위로 (1970-01-01T00:00:00Z 기준) 저장. 매우 오래된 API 라 함정이 많다. 생성 [!CAUTION] 월이 0-base (…
- [Javascript] Destructuring javascript ← 4
- 별칭: JS Destructuring, 구조 분해 할당, JavaScript destructuring
- 정의 Destructuring 은 배열 또는 객체의 일부를 변수로 풀어내는 ES6 문법. 코드를 짧고 명시적으로. 객체 배열 함수 매개변수 자주 쓰는 idiom API 응답 분해…
- [Javascript] Error / try-catch javascript
- 별칭: JS Error, JS try catch, JavaScript 에러, custom error
- 정의 JS 의 에러 처리. 로 던지고 로 잡는다. 내장 Error 타입과 사용자 정의 Error. throw / try / catch 는 에러 유무와 무관하게 실행. 내장 Err…
- [Javascript] ES Modules (import / export) javascript ← 1
- 별칭: JS ES Modules, ESM, import export, ES6 module
- 정의 ES Modules (ESM) 은 표준 JS 모듈 시스템 (ES6). / 키워드. 브라우저와 Node.js 16+ 모두 지원. export named export defau…
- [Javascript] function javascript ← 7
- 별칭: function, JavaScript function, JS function, 함수 선언, function declaration, function expression, 일반 함수
- 정의 은 JavaScript 에서 함수를 만드는 가장 기본적인 키워드. 호이스팅, 동적 바인딩, 객체, 호출 등 과 구분되는 고유한 특성을 가진다. 함수가 값 으로 다뤄지는 의 …
- [Javascript] Iterator / Generator javascript ← 1
- 별칭: JS Iterator, JS Generator, JS Iterator Protocol, iterable protocol, function*
- 정의 - Iterator protocol : 메서드가 반환 - Iterable protocol : 가 iterator 반환 - Generator : 으로 정의, yield 로 값…
- [Javascript] JSON javascript
- 별칭: JS JSON, JSON.stringify, JSON.parse
- 정의 JSON (JavaScript Object Notation) 은 데이터 교환 형식. JS 의 객체 리터럴과 비슷하지만 엄격한 문법. - : JS 값 → JSON 문자열 - …
- [Javascript] Lexical Environment javascript ← 11
- 별칭: Lexical Environment, lexical environment, 어휘적 환경, 어휘 환경, LE, JavaScript Lexical Environment, JS Lexical Environment
- 정의 Lexical Environment (어휘적 환경) 는 ECMAScript 명세 (§9.1) 가 정의한 내부 객체. 함수가 호출될 때마다 새로 만들어지며, 이 호출의 변수들…
- [Javascript] Map / Set / WeakMap / WeakSet javascript ← 1
- 별칭: JS Map, JS Set, JS WeakMap, JS WeakSet, JS Map / Set
- 정의 ES6 의 4 가지 컬렉션. 객체 / 배열보다 적합한 경우. | 컬렉션 | 키 | 값 | 강참조 | |:---|:---|:---|:---:| | | 모든 값 | 모든 값 |…
- [Javascript] Microtask Queue javascript ← 4
- 별칭: Microtask Queue, microtask queue, 마이크로태스크 큐, microtask, 마이크로태스크, JavaScript Microtask Queue, JS microtask queue
- 정의 Microtask Queue (마이크로태스크 큐) 는 JavaScript 가 매 틱마다 완전히 비울 때까지 처리하는 우선순위 큐다. 매크로태스크 큐보다 항상 먼저 비워진다.…
- [Javascript] NaN / Infinity javascript ← 1
- 별칭: JS NaN, JS Infinity, JS NaN / Infinity, JavaScript NaN, Not a Number
- 정의 - (Not a Number) : 의미 없는 수치 연산의 결과 - , : 너무 큰/작은 수, 0 으로 나누기 IEEE 754 표준에 따른 특수 값. 타입이지만 특이한 동작.…
- [Javascript] Number javascript ← 6
- 별칭: JS Number, JavaScript 숫자, double precision
- 정의 JavaScript 의 는 IEEE 754 double-precision float (64-bit). 정수와 실수를 같은 타입으로 표현. 정수 안전 범위는 . 정수 안전 범…
- [Javascript] Object javascript ← 9
- 별칭: JS Object, JavaScript object, 객체 리터럴
- 정의 JavaScript 의 는 key-value 쌍의 컬렉션. 거의 모든 non-primitive 값이 객체. 함수, 배열, 정규식도 객체. 생성 접근 수정 / 삭제 Objec…
- [Javascript] Optional Chaining / Nullish Coalescing javascript ← 1
- 별칭: JS Optional Chaining, ?., ??, JS Nullish
- 정의 ES2020 도입의 두 가지 단축 문법. - (Optional Chaining) : 중간이 null/undefined 면 반환 - (Nullish Coalescing) : …
- [Javascript] Promise javascript ← 10
- 별칭: Promise, promise, 프로미스, JavaScript Promise, JS Promise
- 정의 Promise 는 미래의 어떤 시점에 결정될 값을 나타내는 객체다. ECMAScript 2015 (ES6) 에 도입되어 기반 비동기의 가독성과 에러 처리 문제를 해결했다. …
- [Javascript] Promise.all / race / any / allSettled javascript
- 별칭: JS Promise.all, Promise.race, Promise.any, Promise.allSettled
- 정의 의 정적 메서드 4 형제. 여러 Promise 를 동시에 다루는 도구. | 메서드 | fulfilled 조건 | rejected 조건 | 결과 | |:---|:---|:--…
- [Javascript] Prototype Chain javascript ← 2
- 별칭: JS Prototype, JS Prototype Chain, 프로토타입 체인, prototypal inheritance
- 정의 JavaScript 의 모든 객체는 (내부 슬롯) 을 가진다. 속성 lookup 시 자신에게 없으면 prototype chain 을 따라 올라가며 검색. 접근 함수의 pro…
- [Javascript] Proxy / Reflect javascript
- 별칭: JS Proxy, JS Reflect, meta-programming
- 정의 - : 객체의 기본 동작 (get, set, delete 등) 을 가로채는 (intercept) 객체 - : Proxy 의 기본 동작을 호출하는 표준 API 메타 프로그래밍…
- [Javascript] Regular Expression javascript
- 별칭: JS regex, JS RegExp, 정규식 JavaScript
- 정의 JavaScript 의 정규식. 객체 또는 리터럴 로 표현. ECMAScript 정규식 문법 (Perl 의 부분집합). 생성 리터럴이 가독성 좋음. 동적 패턴은 . flag…
- [Javascript] setInterval javascript ← 2
- 별칭: setInterval, setinterval, set interval, 주기 타이머, JavaScript setInterval, JS setInterval, window.setInterval
- 정의 은 호스트 환경이 제공하는 반복 타이머 API. 매 밀리초마다 을 매크로태스크 큐에 등록한다. 전체 메커니즘은 와 참고. 문법 | 인자 | 의미 | |:---|:---| |…
- [Javascript] setTimeout javascript ← 2
- 별칭: setTimeout, settimeout, set timeout, 타이머, JavaScript setTimeout, JS setTimeout, window.setTimeout
- 정의 은 호스트 환경 (브라우저 또는 Node.js) 이 제공하는 타이머 API. 지정한 밀리초가 지난 뒤 을 의 매크로태스크 큐에 등록한다. 자세한 흐름과 함정은 글 참고. 문…
- [Javascript] Spread / Rest javascript ← 3
- 별칭: JS Spread, JS Rest, JS Spread / Rest, ...연산자, 전개 연산자
- 정의 같은 문법 가 두 가지 의미. - Spread : iterable 을 펼침 (right-hand) - Rest : 나머지를 모음 (left-hand 또는 함수 매개변수) S…
- [Javascript] strict mode javascript
- 별칭: JS strict mode, use strict, 엄격 모드
- 정의 디렉티브로 활성화되는 엄격 실행 모드. ES5 도입. 위험한 문법을 에러로 만들어 코드 안전성 향상. ES module 과 본문은 자동으로 strict mode. 사용 st…
- [Javascript] String javascript ← 2
- 별칭: JS String, JavaScript 문자열, template literal
- 정의 JavaScript 의 은 UTF-16 코드 유닛의 불변 시퀀스. 작은따옴표, 큰따옴표, 백틱 (template literal) 으로 작성. Template Literal …
- [Javascript] Symbol javascript ← 1
- 별칭: JS Symbol, JavaScript Symbol, 심볼
- 정의 은 ES6 도입의 7번째 primitive 타입. 유일성 을 보장하는 식별자. 왜 필요한가 객체의 충돌 없는 키 로 사용. private property 흉내, well-k…
- [Javascript] TDZ (Temporal Dead Zone) javascript ← 2
- 별칭: JS TDZ, Temporal Dead Zone, 일시적 사각지대
- 정의 TDZ (Temporal Dead Zone) 는 / / 선언이 호이스팅된 시점부터 선언문 (실행) 직전까지 의 접근 불가 구간. var 와의 비교 는 호이스팅 시 자동으로 …
- [Javascript] this 바인딩 javascript
- 별칭: JS this, JS this binding, call apply bind
- 정의 JavaScript 의 는 호출 방식에 따라 결정 되는 동적 바인딩. 4 가지 호출 방식 + arrow function (lexical) 규칙. 5 가지 규칙 | # | 규…
- [Javascript] var / let / const javascript ← 4
- 별칭: JS var, JS let, JS const, JS var / let / const, JavaScript 변수 선언
- 정의 JavaScript 의 3 가지 변수 선언 키워드. | 키워드 | 스코프 | 재할당 | 재선언 | 호이스팅 | |:---|:---|:---:|:---:|:---| | | f…
- [JPA] @Embeddable, @Embedded, @Converter spring ← 3
- 별칭: JPA Embeddable, @Embedded, @AttributeOverride, JPA Converter, AttributeConverter, 값 타입, 임베디드 타입
- 정의 @Embeddable 은 별도 테이블 없이 entity 의 일부로 포함되는 값 객체 (Value Object). 같은 의미적 그룹의 필드들을 하나의 클래스로 추출. Attr…
- [JPA] 동적 쿼리: Criteria API, QueryDSL, Specification spring ← 2
- 별칭: JPA Criteria API, QueryDSL, Specification, 동적 쿼리, type-safe query, dynamic JPQL, JPA dynamic query
- 정의 동적 쿼리 = 런타임 조건에 따라 WHERE / JOIN 이 달라지는 쿼리. 검색 필터, admin 도구, 리포팅 등에서 흔함. JPQL string concatenatio…
- [JPA] 상속 전략: SINGLE_TABLE, JOINED, TABLE_PER_CLASS spring ← 2
- 별칭: JPA inheritance, InheritanceType, SINGLE_TABLE, JOINED, TABLE_PER_CLASS, @DiscriminatorColumn, @MappedSuperclass, JPA 상속
- 정의 JPA 는 객체 상속 구조를 관계형 테이블로 매핑하는 3가지 전략 + 1가지 비매핑 옵션: | 전략 | 테이블 구조 | 사용 시점 | |---|---|---| | (기본) …
- [JPA] CascadeType과 orphanRemoval spring ← 2
- 별칭: JPA Cascade, CascadeType, orphanRemoval, 고아 객체 제거, PERSIST cascade, REMOVE cascade, ALL cascade
- 정의 JPA 의 entity 연산 ( , , , , ) 을 연관 entity 에 자동 전파 하는 메커니즘. 같이 선언. 별개 개념인 orphanRemoval 은 부모 컬렉션에서 …
- [JPA] Entity Lifecycle Callbacks와 Auditing spring ← 4
- 별칭: JPA Lifecycle, @PrePersist, @PostPersist, @PreUpdate, @PostLoad, EntityListeners, AuditingEntityListener, Spring Data Auditing, JPA 생명주기 콜백
- 정의 Entity 의 라이프사이클 (persist / update / load / remove) 특정 시점에 자동 호출되는 메서드. 두 가지 형태: 1. Entity 내부 메서드…
- [JPA] FetchType: LAZY vs EAGER, N+1, fetch join spring ← 12
- 별칭: JPA FetchType, FetchType.LAZY, FetchType.EAGER, fetch join, N+1, EntityGraph, @BatchSize, JPA 페치
- 정의 FetchType 은 JPA 가 연관 entity 를 언제 로드할지 결정하는 hint. - : entity 로딩 시 즉시 함께 SELECT - : 실제 사용 시점 (prox…
- [JPA] JPQL DTO Projection: constructor expression, interface, record spring ← 2
- 별칭: JPQL projection, JPQL DTO, constructor expression, interface projection, Tuple, JPQL NEW 키워드, JPA projection
- 정의 DTO Projection 은 entity 전체가 아닌 필요한 컬럼만 query 해서 DTO 로 받기. 장점: - N+1 회피 (lazy 컬렉션 자동 무시) - entity…
- [JPA] JPQL: Jakarta Persistence Query Language spring ← 3
- 별칭: JPQL, Jakarta Persistence Query Language, HQL, @Query JPQL, TypedQuery, JPQL 문법, 엔티티 쿼리
- 정의 JPQL 은 Jakarta Persistence 표준의 객체 지향 쿼리 언어. 문법은 SQL 과 유사하지만 entity 와 그 필드를 대상으로 작동 (table / colu…
- [JPA] Optimistic Lock과 Pessimistic Lock spring ← 3
- 별칭: JPA Lock, Optimistic Lock, Pessimistic Lock, @Version, @Lock, LockModeType, OptimisticLockException, 낙관적 락, 비관적 락
- 정의 동시 수정으로 데이터가 깨지는 상황을 막는 두 가지 전략: - Optimistic (낙관적): 충돌이 드물다고 가정, 커밋 직전에 version 비교로 검증. 충돌 시 예외…
- [JPA] PersistenceContext vs PersistenceUnit 비교 spring ← 2
- 별칭: PersistenceContext vs PersistenceUnit, @PersistenceContext vs @PersistenceUnit, JPA 계층 구조, EntityManager vs EntityManagerFactory, context unit 차이
- 정의 JPA 의 두 개념은 레벨이 다르다. 이름이 비슷해서 자주 혼동하지만: - PersistenceUnit = 설정 단위 (정적, 앱 1번) - PersistenceContex…
- [JPA] PersistenceContext: 1차 캐시, dirty checking, flush spring ← 16
- 별칭: PersistenceContext, JPA 영속성 컨텍스트, 1차 캐시, first-level cache, dirty checking, flush, EntityManager state
- 정의 PersistenceContext 는 가 관리하는 entity 의 메모리 저장소 + 변경 추적기. 트랜잭션 안에서만 살아 있다 ( 진입 시 생성, commit/rollbac…
- [JPA] PersistenceUnit: EntityManagerFactory의 정의 단위 spring ← 2
- 별칭: PersistenceUnit, @PersistenceUnit, EntityManagerFactory, persistence.xml, LocalContainerEntityManagerFactoryBean, JPA 영속성 유닛, persistence unit
- 정의 PersistenceUnit 은 하나의 논리적 DB 연결 + entity 매핑 집합 을 정의한 단위. 결과물은 1개. JPA 아키텍처의 계층: 가 트랜잭션 범위의 메모리 저…
- [K8s] ConfigMap & Secret: 설정과 비밀의 분리 kubernetes ← 2
- 별칭: ConfigMap, Secret, env from, volume mount config, Sealed Secret, External Secrets, SOPS
- 정의 | | ConfigMap | Secret | |---|---|---| | 데이터 | 평문 | base64 (암호화 아님) | | 크기 | 1MB | 1MB | | 용도 | …
- [K8s] DaemonSet: 모든 노드에 한 pod kubernetes
- 별칭: DaemonSet, DS, node-level pod, log collector daemonset, node-exporter
- 정의 DaemonSet = 각 노드에 정확히 1 pod 보장. 노드 추가 시 자동 배치, 노드 제거 시 자동 정리. 흔한 사용 | 사용 | 예시 | |---|---| | 로그 수…
- [K8s] Deployment: ReplicaSet, rolling update, rollback kubernetes ← 10
- 별칭: Deployment, ReplicaSet, rolling update, k8s rollback, maxUnavailable, maxSurge, RollingUpdate strategy
- 정의 Deployment = stateless 워크로드를 위한 컨트롤러. 내부적으로 ReplicaSet 관리 + rolling update / rollback. 계층 | 객체 |…
- [K8s] Helm: 패키지 매니저, chart, release, hook kubernetes ← 2
- 별칭: Helm, Helm chart, values.yaml, Helmfile, Kustomize, Helm 3
- 정의 Helm = K8s 의 패키지 매니저. Chart (YAML 템플릿 + 메타데이터) → Release (cluster 에 배포된 인스턴스). 구조 Chart.yaml val…
- [K8s] HPA / VPA / KEDA: 자동 확장 kubernetes ← 2
- 별칭: HPA, Horizontal Pod Autoscaler, VPA, Vertical Pod Autoscaler, KEDA, Cluster Autoscaler, Karpenter
- 3가지 스케일링 HPA (Horizontal Pod Autoscaler) CPU / Memory / custom metric 기반 pod 수 조정. HPA 알고리즘 예: 현재 4…
- [K8s] Ingress: L7 라우팅, TLS termination, Gateway API kubernetes ← 2
- 별칭: Ingress, IngressController, nginx-ingress, Traefik Ingress, Gateway API, GatewayClass, HTTPRoute
- 정의 Ingress = 클러스터 외부 HTTP/HTTPS 트래픽 → 내부 Service 라우팅. L7 LB 역할. Service 의 LoadBalancer 다수 대안. [!IMP…
- [K8s] Job / CronJob: 일회성 + 스케줄 작업 kubernetes
- 별칭: K8s Job, K8s CronJob, completions, parallelism, backoffLimit, TTLAfterFinished
- 정의 | 컨트롤러 | 의미 | |---|---| | Job | 완료까지 실행하는 일회성 작업 | | CronJob | 스케줄 (cron) 에 따라 Job 생성 | Job 흐름 병…
- [K8s] NetworkPolicy: pod 간 네트워크 차단 kubernetes ← 1
- 별칭: NetworkPolicy, K8s firewall, Calico, Cilium, default deny, namespace isolation
- 정의 NetworkPolicy = pod 간 허용된 트래픽만 통과. 없으면 모든 pod ↔ pod 가 허용 (기본 open). [!IMPORTANT] NetworkPolicy 는…
- [K8s] Pod: 컨테이너의 최소 단위, sidecar, lifecycle kubernetes ← 15
- 별칭: Pod, K8s Pod, sidecar container, init container, pause container, pod lifecycle
- 정의 Pod = K8s 의 가장 작은 배포 단위. 1개 이상의 컨테이너 + 공유 네트워크 + 공유 스토리지. [!IMPORTANT] Pod 는 컨테이너의 wrapping 이 아니…
- [K8s] RBAC: Role, ClusterRole, ServiceAccount, RoleBinding kubernetes ← 1
- 별칭: RBAC, K8s RBAC, ServiceAccount, Role, ClusterRole, RoleBinding, ClusterRoleBinding
- 정의 RBAC (Role-Based Access Control) = K8s 의 권한 부여 모델. 주체 + 권한 + 바인딩. 4 객체 | 객체 | 범위 | |---|---| | |…
- [K8s] Service: ClusterIP / NodePort / LoadBalancer / ExternalName kubernetes ← 5
- 별칭: K8s Service, ClusterIP, NodePort, LoadBalancer, ExternalName, Headless Service, kube-proxy, iptables, IPVS
- 정의 Service = Pod 집합에 안정 가상 IP + DNS 부여. Pod 가 죽고 다시 만들어져도 Service IP 는 그대로. 4가지 타입 1. ClusterIP (기본…
- [K8s] StatefulSet: 순서 보장, 고유 ID, 영속 스토리지 kubernetes ← 3
- 별칭: StatefulSet, STS, stable identity, ordered deployment, PV per pod, headless service
- 정의 StatefulSet = 상태 있는 워크로드를 위한 컨트롤러. Deployment 와의 차이: | 항목 | Deployment | StatefulSet | |---|---|…
- [Network] CIDR와 Subnetting network ← 4
- 별칭: CIDR, Subnetting, subnet mask, VLSM, prefix length, 서브넷, 서브넷팅
- 정의 CIDR (Classless Inter-Domain Routing) 은 IPv4 / IPv6 주소를 prefix length 로 표기하는 표준. 1993년 등장 (RFC 1…
- [Network] CORS: Same-Origin Policy, preflight, credentials network ← 6
- 별칭: CORS, Cross-Origin Resource Sharing, Same-Origin Policy, preflight, OPTIONS request, Access-Control-Allow-Origin
- 정의 CORS (Cross-Origin Resource Sharing) 는 Same-Origin Policy (SOP) 의 완화 메커니즘. 브라우저가 origin 이 다른 리소스…
- [Network] DNS: 도메인 이름 해석 network ← 5
- 별칭: DNS, Domain Name System, DNS record, A record, AAAA, CNAME, MX, DoH, DoT, DNSSEC, 도메인 이름 시스템
- 정의 DNS (Domain Name System) 는 도메인 이름 ( ) 을 IP 주소 ( ) 로 변환하는 분산 데이터베이스. 인터넷의 가장 중요한 인프라. 기본 동작: 1. 클…
- [Network] gRPC: HTTP/2 + Protobuf, 4가지 streaming 패턴 network ← 8
- 별칭: gRPC, Protocol Buffers, Protobuf, gRPC streaming, unary RPC, bidirectional streaming, grpc-web
- 정의 gRPC 는 HTTP/2 위에서 Protobuf 직렬화 로 동작하는 고성능 RPC 프레임워크. Google 내부 Stubby 의 오픈소스 후계. 핵심 4가지: 1. Prot…
- [Network] HTTP Caching: Cache-Control, ETag, Last-Modified network ← 2
- 별칭: HTTP Caching, Cache-Control, ETag, Last-Modified, If-None-Match, 304 Not Modified, Vary header, HTTP 캐싱
- 정의 HTTP Caching 은 HTTP 응답을 클라이언트 / 중간 proxy / CDN 이 보관해 같은 요청을 다시 처리하지 않게 하는 메커니즘. 성능 + 비용 절감의 핵심. …
- [Network] HTTP/1.1: keep-alive, pipelining, chunked transfer network ← 6
- 별칭: HTTP/1.1, keep-alive, pipelining, chunked encoding, Content-Length, Connection: close
- 정의 HTTP/1.1 (1997, RFC 9112 으로 재정리) 는 텍스트 기반 stateless request/response 프로토콜. 2026 시점에도 대부분의 트래픽이 H…
- [Network] HTTP/2: multiplexing, HPACK, server push의 종말 network ← 8
- 별칭: HTTP/2, h2, HPACK, stream multiplexing, server push, h2c
- 정의 HTTP/2 (2015, RFC 9113) 는 HTTP/1.1 의 문법은 유지하되 전송을 바이너리 + 멀티플렉싱 으로 바꾼다. Head-of-Line Blocking (HT…
- [Network] HTTP/3: QUIC 위의 HTTP, 0-RTT, connection migration network ← 15
- 별칭: HTTP/3, h3, QUIC, 0-RTT, connection migration, QPACK
- 정의 HTTP/3 (2022, RFC 9114) 는 HTTP 의 전송 레이어를 TCP → QUIC 으로 교체한 버전. UDP 위에 QUIC, QUIC 위에 HTTP. 핵심 동기:…
- [Network] IP: IPv4, IPv6, 패킷 구조, fragmentation network ← 1
- 별칭: IPv4, IPv6, Internet Protocol, IP packet, IP fragmentation, TTL, MTU
- 정의 IP (Internet Protocol) 는 OSI L3 (네트워크 계층) 의 핵심 프로토콜. best-effort delivery (재전송 없음, 순서 보장 없음, 손실 …
- [Network] Load Balancer: L4 vs L7, 알고리즘, sticky session network ← 9
- 별칭: Load Balancer, L4 LB, L7 LB, round-robin, least connections, consistent hashing, health check, sticky session
- 정의 Load Balancer 는 트래픽을 여러 백엔드로 분산 하는 인프라. 수평 확장 + 가용성 + 무중단 배포 의 토대. L4 vs L7 | 구분 | L4 (Transport…
- [Network] OSI 7 Layer: 각 계층의 의미와 실전 매핑 network
- 별칭: OSI 7 Layer, OSI 모델, L1, L2, L3, L4, L5, L6, L7, TCP/IP stack
- 정의 OSI 7 Layer 모델 은 네트워크 통신을 7 계층으로 추상화 한 ITU-T 표준 (1984). 실제 인터넷은 TCP/IP 4-5 계층 이지만, OSI 의 개념적 분리 …
- [Network] Realtime 전송 비교: Polling / SSE / WebSocket / WebRTC network ← 3
- 별칭: realtime comparison, long polling, polling, SSE vs WebSocket, WebRTC DataChannel, push notification
- 정의 실시간 (서버 → 클라이언트) 데이터 전송 의 7가지 패턴 비교. 결정 트리 7가지 비교 | 패턴 | 방향 | 영속 | 프로토콜 | 사용 | |---|---|---|---|…
- [Network] SSE (Server-Sent Events): 단방향 영속 스트림 network
- 별칭: SSE, Server-Sent Events, EventSource, text/event-stream
- 정의 Server-Sent Events (SSE) 는 HTTP 위 단방향 (서버 → 클라이언트) 영속 스트림. MIME + 클라이언트의 API. 장점: HTTP/1.1 위에서 동…
- [Network] WebSocket: HTTP upgrade, frame, ping/pong network
- 별칭: WebSocket, WS, WSS, RFC 6455, Upgrade: websocket, websocket frame
- 정의 WebSocket (RFC 6455) 은 HTTP/1.1 upgrade 로 시작 하는 양방향 영속 메시지 채널. 한 TCP 위에서 서버 ↔ 클라이언트 임의 시점 push 가…
- [Observability] OpenTelemetry: 표준화된 trace/metric/log devops ← 7
- 별칭: OpenTelemetry, OTel, OTLP, OTel Collector, trace span, context propagation, W3C Trace Context
- 정의 OpenTelemetry (OTel) = observability 의 vendor-neutral 표준. CNCF. trace + metric + log 의 SDK + pro…
- [Observability] Prometheus: pull 기반 메트릭, PromQL devops ← 9
- 별칭: Prometheus, PromQL, scrape, exporter, Alertmanager, Thanos, Mimir, recording rule
- 정의 Prometheus = pull 기반 시계열 metric 시스템. PromQL 로 쿼리. CNCF graduated. 2026 클라우드 네이티브 메트릭 표준. 아키텍처 Pu…
- [Observability] SLI / SLO / SLA / Error Budget devops ← 4
- 별칭: SLI, SLO, SLA, Error Budget, SRE, Service Level Indicator, Service Level Objective, Service Level Agreement
- 정의 | | 의미 | |---|---| | SLI (Indicator) | 측정 값 (예: 5xx 비율) | | SLO (Objective) | 목표 (예: 99.9% 가용성) …
- [Pandas] .at / .iat pandas ← 1
- 별칭: Pandas at, Pandas iat, Pandas .at / .iat, Pandas .at, Pandas .iat, scalar pandas indexer
- 정의 - : 단일 스칼라 (한 행, 한 열) 의 라벨 기반 접근 - : 단일 스칼라의 정수 위치 기반 접근 의 단일 셀 전용 빠른 버전. 내부 검증 단계를 단순화해 가장 빠른 셀…
- [Pandas] .dt accessor pandas ← 3
- 별칭: Pandas dt, Pandas .dt, Pandas dt accessor, datetime accessor
- 정의 는 datetime Series 의 각 구성요소 (년/월/일/시/분/요일 등) 에 벡터로 접근하는 accessor. 의 datetime 버전. 기본 컴포넌트 | 속성 | 의…
- [Pandas] .loc / .iloc pandas ← 6
- 별칭: Pandas loc, Pandas iloc, Pandas .loc, Pandas .iloc, Pandas .loc / .iloc, 라벨 기반 인덱싱
- 정의 - : 라벨 기반 인덱싱 (index/column 이름) - : 정수 위치 기반 인덱싱 (0-based) 이 두 indexer 가 pandas 선택의 표준. 만으로는 헷갈리…
- [Pandas] .str accessor pandas ← 2
- 별칭: Pandas str, Pandas .str, Pandas str accessor, string accessor, 벡터 문자열
- 정의 는 Series 의 각 문자열 원소에 벡터화된 문자열 메서드 를 적용하는 accessor. Python str 의 거의 모든 메서드를 NaN-aware 로 제공. 기본 메서…
- [Pandas] 개요 pandas ← 3
- 별칭: pandas, 판다스, pandas overview, Python pandas
- 정의 pandas 는 Python 의 데이터 분석/조작 라이브러리. 두 가지 핵심 자료형을 중심으로 동작한다. - : 1차원 레이블 배열 (NumPy array + index) …
- [Pandas] 성능 / 메모리 최적화 pandas
- 별칭: Pandas performance, Pandas memory, pandas 최적화, pandas 빠르게
- 정의 pandas 의 흔한 성능 함정과 최적화 패턴. 벡터화 + dtype 선택 + 알고리즘 의 조합이 핵심. 1. 벡터 연산 우선 100배 이상 차이. 2. dtype 명시로 …
- [Pandas] 컬럼 선택 pandas ← 2
- 별칭: Pandas 컬럼, Pandas 열 선택, Pandas 컬럼 선택, df column select
- 정의 DataFrame 에서 하나 또는 여러 컬럼을 선택 하는 방법들. 가장 기본이자 가장 자주 쓰는 동작. 4 가지 기본 방식 단일 vs 다중 (반환 타입 차이) <CodeWi…
- [Pandas] agg / aggregate pandas ← 3
- 별칭: Pandas agg, Pandas aggregate, named aggregation
- 정의 는 여러 집계 함수를 한 번에 적용 한다. , , 모두에서 사용 가능. 는 같은 함수의 별칭. 다양한 형태 단일 함수 함수 리스트 <CodeWithOutput languag…
- [Pandas] apply / map pandas
- 별칭: Pandas Series apply, Pandas Series map, Series.apply, DataFrame.apply elementwise
- 정의 - : 각 원소 에 함수 적용 (또는 dict 매핑) - : 각 원소 에 함수 적용 (map 과 유사) - : 각 행/열 에 함수 적용 - (pandas 2.1+) : 각 …
- [Pandas] between / 다중 조건 pandas
- 별칭: Pandas between, Pandas 다중 조건, pandas combining filters
- 정의 는 SQL 과 같이 두 값 사이 인지 검사하는 Series 메서드. 다중 조건 조합은 , , 비트연산자로. between 기본 <CodeWithOutput language=…
- [Pandas] Boolean Indexing pandas ← 10
- 별칭: Pandas Boolean Indexing, pandas 마스킹, pandas 조건 필터
- 정의 Boolean Indexing 은 True/False 의 Series 를 인덱서로 전달 해 행을 선택하는 패턴. pandas 의 가장 흔한 필터링 방법. 기본 <CodeWi…
- [Pandas] Categorical pandas ← 5
- 별칭: Pandas Categorical, pd.Categorical, category dtype
- 정의 Categorical 은 제한된 고유값 만 가질 수 있는 dtype. 내부적으로 정수 코드로 저장되어 메모리 절약 과 속도 향상. 사용 <CodeWithOutput lang…
- [Pandas] clip / where / mask pandas
- 별칭: Pandas clip, Pandas where, Pandas mask, 조건부 갱신 pandas
- 정의 - : 범위 밖 값을 경계로 자르기 (outlier 처리) - : cond 가 True 면 유지, False 면 other 로 치환 - : where 의 반대 (cond T…
- [Pandas] concat pandas ← 4
- 별칭: Pandas concat, pd.concat, pandas append
- 정의 는 여러 DataFrame/Series 를 세로 (axis=0) 또는 가로 (axis=1) 로 단순 연결. SQL 의 (axis=0) 또는 column-level conca…
- [Pandas] crosstab pandas ← 1
- 별칭: Pandas crosstab, pd.crosstab, 교차표
- 정의 는 두 (또는 그 이상의) Series 로 교차 빈도표 (contingency table) 를 만든다. SQL 의 PIVOT 또는 Excel 의 피벗 테이블과 비슷. 기본 …
- [Pandas] cumsum / cummax / cummin / cumprod pandas ← 2
- 별칭: Pandas cumsum, Pandas cumulative, 누적 pandas
- 정의 누적 (cumulative) 연산. 각 위치까지의 누적 결과를 반환, 결과 길이는 원본과 동일. | 함수 | 의미 | |:---|:---| | | 누적 합 | | | 누적 …
- [Pandas] cut / qcut pandas
- 별칭: Pandas cut, Pandas qcut, binning pandas
- 정의 - : 값 기반 binning (구간을 직접 지정) - : 빈도 기반 binning (분위수로 같은 크기) 연속형 변수를 범주형으로 변환. ML 의 feature engin…
- [Pandas] DataFrame pandas ← 25
- 별칭: Pandas DataFrame, pandas.DataFrame, 데이터프레임
- 정의 은 2차원 레이블 테이블. 각 열이 , 모든 열이 같은 (행 라벨) 를 공유. SQL 테이블 / Excel 시트 / R data.frame 의 Python 대응체. 생성 <…
- [Pandas] DataFrame.style pandas
- 별칭: Pandas style, Pandas Styler, DataFrame 서식
- 정의 는 HTML/CSS 기반 서식을 DataFrame 에 적용. Jupyter, 보고서, Excel 출력에 활용. 데이터 자체는 변하지 않고 표시 만 바뀐다. 자주 쓰는 메서드…
- [Pandas] date_range / Timestamp pandas ← 3
- 별칭: Pandas date_range, pd.date_range, Pandas Timestamp, Pandas Timedelta
- 정의 - : 정해진 시작/끝/간격으로 datetime 시퀀스 생성 - : pandas 의 단일 datetime 객체 - : 시간 차이 daterange , , , 중 3 개 만 …
- [Pandas] drop_duplicates / duplicated pandas ← 1
- 별칭: Pandas drop_duplicates, Pandas duplicated, 중복 제거 pandas
- 정의 - : 각 행이 중복인지 boolean Series 반환 - : 중복 행 제거 후 DataFrame 반환 와는 다르다. 그건 Series 의 고유값 추출, 이건 행 단위 처…
- [Pandas] dropna / fillna pandas ← 3
- 별칭: Pandas dropna, Pandas fillna, Pandas dropna / fillna, 결측치 처리, NaN 처리
- 정의 - : NaN 이 있는 행/열 제거 - : NaN 을 특정 값으로 대체 데이터 분석의 가장 기본적인 결측치 처리. dropna 기본 <CodeWithOutput langua…
- [Pandas] expanding / ewm pandas ← 1
- 별칭: Pandas expanding, Pandas ewm, 지수가중이동평균
- 정의 외의 윈도우 연산. - : 시작부터 현재까지 누적 윈도우 - : exponentially weighted (지수 가중) expanding <CodeWithOutput lan…
- [Pandas] explode pandas ← 1
- 별칭: Pandas explode, DataFrame.explode, list 컬럼 펼치기
- 정의 는 list / set / tuple 등의 시퀀스 값을 가진 컬럼을 각 원소가 별도 행 이 되도록 펼친다. JSON / 로그 / 다중 태그 데이터 처리의 핵심. 기본 <Co…
- [Pandas] get_dummies / from_dummies pandas ← 1
- 별칭: Pandas get_dummies, 원-핫 인코딩, one-hot pandas
- 정의 는 범주형 컬럼을 원-핫 인코딩 (one-hot encoding). ML 전처리의 가장 흔한 단계. 기본 <CodeWithOutput language="python" out…
- [Pandas] groupby pandas ← 19
- 별칭: Pandas groupby, groupby 집계, split-apply-combine
- 정의 는 데이터를 그룹으로 나누고 (split), 각 그룹에 함수를 적용 (apply), 결과를 합쳐 (combine) 새 DataFrame 으로 만드는 split-apply-c…
- [Pandas] idxmax / idxmin pandas
- 별칭: Pandas idxmax, Pandas idxmin, argmax argmin pandas
- 정의 - : 최댓값의 index 라벨 반환 - : 최솟값의 index 라벨 , 이 값 을 반환한다면 이 함수들은 위치 를 반환. SQL 에서 "max 인 행의 다른 컬럼" 을 가…
- [Pandas] Index pandas ← 4
- 별칭: Pandas Index, pandas.Index, 인덱스, RangeIndex, MultiIndex
- 정의 는 행 / 열 라벨을 보관하는 객체. / 의 모든 라벨은 Index. 정렬, 정합성, 빠른 lookup 의 기반. 기본은 RangeIndex (0, 1, 2, ...) 지만…
- [Pandas] info / memory_usage / describe pandas
- 별칭: Pandas info, Pandas memory_usage, Pandas describe, pandas 탐색
- 정의 DataFrame 의 메타데이터 / 메모리 / 통계를 빠르게 조회하는 도구. | 메서드 | 목적 | |:---|:---| | | 컬럼별 dtype + non-null cou…
- [Pandas] interpolate pandas ← 1
- 별칭: Pandas interpolate, 결측치 보간, Series interpolate
- 정의 는 NaN 을 주변 값을 사용해 보간 으로 채운다. 시계열, 측정 데이터의 작은 결측을 자연스럽게 채울 때 유용. 기본 linear 보간 예 <CodeWithOutput l…
- [Pandas] isin / isna / notna pandas ← 3
- 별칭: Pandas isin, Pandas isna, Pandas notna, Pandas isin / isna, Pandas null check
- 정의 | 메서드 | 의미 | |:---|:---| | | 각 원소가 values 안에 있는지 (boolean Series) | | | NaN/NaT/None 여부 ( 별칭) | …
- [Pandas] iterrows / itertuples pandas
- 별칭: Pandas iterrows, Pandas itertuples, pandas 행 순회
- 정의 - : (index, Series) 순회 - : NamedTuple 순회 (빠름, 권장) - : (columnname, Series) 순회 기본 성능 비교 (강한 권고: 가…
- [Pandas] join pandas ← 3
- 별칭: Pandas join, DataFrame.join
- 정의 는 index 기반 결합 의 편의 API. 내부적으로는 와 동등하지만 더 짧다. 기본 merge 와의 비교 은 index 끼리 매칭이 기본 가정이라 코드가 짧다. 컬럼 기준…
- [Pandas] melt pandas ← 5
- 별칭: Pandas melt, DataFrame.melt, pd.melt, wide-to-long
- 정의 는 의 역방향. wide-format → long-format 변환. 여러 컬럼을 두 컬럼 ( , ) 으로 합친다. 장기간 시계열 데이터나 시각화 (ggplot, seabo…
- [Pandas] merge pandas ← 7
- 별칭: Pandas merge, DataFrame.merge, pandas join, SQL join in pandas
- 정의 는 두 DataFrame 을 SQL join 처럼 결합. 4 가지 join 타입 (inner / left / right / outer) 지원. 시각화 4 가지 join 타입…
- [Pandas] merge_asof pandas
- 별칭: Pandas merge_asof, as-of join, 시간 매칭 merge
- 정의 는 가장 가까운 키 기준 join. 일반 가 정확히 일치하는 키만 매칭하는 반면, 는 이전 (또는 가장 가까운) 키를 찾는다. 시계열 데이터 (가격, 이벤트) 와 다른 시계…
- [Pandas] mode / factorize pandas
- 별칭: Pandas mode, Pandas factorize, 최빈값 pandas
- 정의 - : 가장 빈번한 값 (최빈값) 반환 - : 고유값을 정수 코드로 변환 (label encoding) mode <CodeWithOutput language="python"…
- [Pandas] MultiIndex pandas ← 2
- 별칭: Pandas MultiIndex, 계층 인덱스, hierarchical index
- 정의 MultiIndex 는 여러 단계 (level) 의 라벨로 구성된 . SQL 의 composite key 와 비슷, 그룹화된 데이터를 자연스럽게 표현. 생성 인덱싱 <Cod…
- [Pandas] nlargest / nsmallest / rank pandas ← 1
- 별칭: Pandas nlargest, Pandas nsmallest, Pandas rank, Pandas nlargest / rank, Top-N pandas
- 정의 - : 상위 N 개 행 ( 보다 빠름) - : 하위 N 개 행 - : 각 원소의 순위 (1, 2, 3, ...) nlargest / nsmallest <CodeWithOut…
- [Pandas] Nullable Types (Int64, boolean, string[pyarrow]) pandas ← 1
- 별칭: Pandas nullable, Pandas Int64, Pandas boolean, Pandas string
- 정의 Nullable dtypes 는 NaN/None 을 타입 그대로 표현할 수 있는 pandas 의 새 타입 시스템. NumPy 기반의 (NaN 미허용) 의 한계를 극복. - …
- [Pandas] pipe / method chaining pandas
- 별칭: Pandas pipe, pandas method chain, Pandas 체이닝
- 정의 는 method chain 안에 사용자 함수를 끼워 넣기. 와 동등하지만 chain 의 흐름을 유지한다. 왜 pipe 인가 체이닝의 가독성을 위해. 기본 사용 func 가 …
- [Pandas] pivot pandas ← 5
- 별칭: Pandas pivot, DataFrame.pivot, long-to-wide
- 정의 는 long-format → wide-format 변환. 한 열의 고유 값들이 새 컬럼이 되고, 원래 데이터는 그 자리에 배치된다. 집계가 없으므로 같은 (index, co…
- [Pandas] pivot_table pandas ← 8
- 별칭: Pandas pivot_table, pd.pivot_table, Excel pivot
- 정의 는 의 확장. 집계 함수를 동반 해 중복 (index, columns) 도 처리. Excel 의 피벗 테이블과 가장 가까운 기능. 기본 <CodeWithOutput lang…
- [Pandas] PyArrow Backend pandas
- 별칭: Pandas pyarrow, Pandas arrow, Pandas 2.0 arrow
- 정의 pandas 2.0 부터 Apache Arrow 를 백킹으로 사용 하는 새 dtype 시스템. NumPy 기반의 한계 (메모리, 문자열, 타입 다양성) 를 크게 개선. 적용…
- [Pandas] query / eval pandas ← 6
- 별칭: Pandas query, Pandas eval, DataFrame.query, pandas 문자열 필터
- 정의 - : 문자열로 boolean 표현식 을 전달해 행 필터링 - : 문자열로 계산 표현식 을 평가 의 가독성 있는 대안. query 기본 긴 조건일수록 query 가 짧고 읽…
- [Pandas] read_csv / to_csv pandas ← 9
- 별칭: Pandas read_csv, Pandas to_csv, CSV pandas
- 정의 는 CSV (Comma-Separated Values) 파일 또는 비슷한 텍스트 형식을 으로 읽는 함수. pandas 사용의 99% 가 여기서 시작. 대응 출력 함수는 . …
- [Pandas] read_excel / to_excel pandas ← 5
- 별칭: Pandas read_excel, Pandas to_excel, Excel pandas, 엑셀 pandas
- 정의 는 Excel 파일 (.xlsx, .xls) 을 으로 읽는 함수. 한국 실무에서 매우 자주 쓰인다. 의존 라이브러리 | 형식 | 필요한 패키지 | |:---|:---| | …
- [Pandas] read_json / to_json pandas ← 2
- 별칭: Pandas read_json, Pandas to_json, JSON pandas
- 정의 은 JSON 문자열 또는 파일을 으로 변환. orient 파라미터가 핵심, JSON 구조를 어떻게 해석할지 결정한다. orient 옵션 비교 | orient | 구조 | 적…
- [Pandas] read_parquet / to_parquet pandas ← 2
- 별칭: Pandas read_parquet, Pandas to_parquet, Parquet pandas, Apache Parquet
- 정의 Parquet 은 column-oriented binary 포맷. CSV 대비 수십 배 빠르고 작다. dtype 보존, 압축, 부분 컬럼 읽기 지원. 데이터 분석의 사실상 …
- [Pandas] read_sql / to_sql pandas ← 7
- 별칭: Pandas read_sql, Pandas to_sql, SQL pandas, pandas DB I/O
- 정의 - : SQL 결과 → DataFrame - : DataFrame → DB 테이블 SQLAlchemy 의 connection / engine 객체를 사용. 직접 sqlite…
- [Pandas] replace / astype pandas
- 별칭: Pandas replace, Pandas astype, 값 치환 pandas, dtype 변환
- 정의 - : 특정 값을 다른 값으로 치환 - : dtype 변환 replace 기본 <CodeWithOutput language="python" outputLanguage="te…
- [Pandas] resample pandas ← 7
- 별칭: Pandas resample, DataFrame.resample, 시계열 집계
- 정의 는 시계열 데이터를 다른 빈도 (월별, 일별, 시간별 등) 로 재샘플링하면서 집계한다. 의 시계열 버전. DatetimeIndex (또는 으로 datetime 컬럼) 이 필…
- [Pandas] rolling / expanding pandas ← 5
- 별칭: Pandas rolling, Pandas expanding, 이동 평균, windowed pandas
- 정의 - : 고정 크기 슬라이딩 윈도우 (이동 평균 등) - : 시작부터 누적 윈도우 (cumulative) - : 지수 가중 이동 평균 시각화 rolling 기본 <CodeWi…
- [Pandas] sample pandas
- 별칭: Pandas sample, DataFrame.sample, random sampling
- 정의 는 행/열을 랜덤 샘플링. 빠른 탐색, train/test split, 데이터 검증에 자주 사용. 기본 주요 옵션 | 옵션 | 의미 | |:---|:---| | | 샘플 개…
- [Pandas] Series pandas ← 8
- 별칭: Pandas Series, pandas.Series, 1차원 pandas
- 정의 는 1차원 레이블 배열. NumPy + 의 결합. 의 한 열이 곧 Series. 핵심 속성 | 속성 | 의미 | |:---|:---| | | numpy array | | |…
- [Pandas] SettingWithCopyWarning pandas
- 별칭: SettingWithCopyWarning, Pandas copy view, Pandas chained indexing
- 정의 은 pandas 가 가장 자주 던지는 경고. chained indexing 으로 view 인지 copy 인지 모호한 상태에 값을 할당 할 때 발생. 왜 위험한가 - 가 co…
- [Pandas] shift / diff / pct_change pandas ← 1
- 별칭: Pandas shift, Pandas diff, Pandas pct_change, 시차 pandas
- 정의 - : 값을 n 칸 밀기 (lag/lead) - : n 칸 차이 (= ) - : 변화율 (= ) 시계열 분석의 기본 도구. 전일 대비 / 전월 대비 / 누적 증가율 등. s…
- [Pandas] sort_values / sort_index pandas ← 1
- 별칭: Pandas sort_values, Pandas sort_index, Pandas sort_values / sort_index, pandas 정렬
- 정의 - : 컬럼 값 기준 정렬 - : index (행 또는 열 라벨) 기준 정렬 기본은 오름차순, 로 내림차순. sortvalues 기본 <CodeWithOutput langu…
- [Pandas] stack / unstack pandas ← 3
- 별칭: Pandas stack, Pandas unstack, Pandas stack-unstack, Pandas stack / unstack, MultiIndex 변환
- 정의 - : 가장 안쪽 컬럼 레벨 → 행 레벨 (DataFrame → Series 또는 더 좁은 DataFrame) - : 가장 안쪽 행 레벨 → 컬럼 레벨 / 의 MultiIn…
- [Pandas] str regex (extract / split / replace) pandas ← 3
- 별칭: Pandas regex, Pandas str extract, Pandas str split, Pandas str regex, Pandas 정규식
- 정의 의 정규식 기반 메서드. 패턴 추출, 분리, 치환 의 핵심. str.extract 캡처 그룹으로 부분 문자열을 새 컬럼으로. <CodeWithOutput language="…
- [Pandas] str.contains / startswith / endswith pandas ← 2
- 별칭: Pandas str pattern, Pandas str contains, 문자열 매칭 pandas
- 정의 문자열 Series 에서 패턴 매칭 으로 필터링/검색하는 메서드들. SQL 의 , 패턴. contains <CodeWithOutput language="python" out…
- [Pandas] to_datetime pandas ← 7
- 별칭: Pandas to_datetime, pd.to_datetime, 날짜 변환
- 정의 는 문자열/숫자를 datetime 으로 변환. pandas 의 시계열 작업의 시작. 기본 <CodeWithOutput language="python" outputLangua…
- [Pandas] transform / apply pandas ← 3
- 별칭: Pandas transform, Pandas apply, Pandas transform / apply, groupby transform
- 정의 | 메서드 | 입력 | 출력 | 용도 | |:---|:---|:---|:---| | | 그룹 | 같은 shape | 정규화, 보충 | | | 그룹 | 임의 shape | 가…
- [Pandas] unique / nunique pandas
- 별칭: Pandas unique, Pandas nunique, 고유값 pandas
- 정의 - : 고유값을 등장 순서대로 numpy array 반환 - : 고유값의 개수 반환 (NaN 제외) - : 각 컬럼/행의 고유값 개수 SQL 의 / 와 동일. 사용 <Cod…
- [Pandas] value_counts pandas ← 5
- 별칭: Pandas value_counts, Series value_counts, 빈도수 pandas
- 정의 는 각 고유값의 등장 빈도 를 내림차순 Series 로 반환. SQL 의 . pandas 1.1+ 부터는 도 가능 (여러 컬럼 조합). 기본 <CodeWithOutput l…
- [Pattern] API Gateway: BFF, 라우팅, auth, rate limit distributed-systems ← 4
- 별칭: API Gateway, BFF, Backend for Frontend, Kong, Tyk, AWS API Gateway, Envoy
- 정의 API Gateway = 클라이언트와 마이크로서비스 사이의 단일 진입점. 라우팅, auth, rate limit, transformation, monitoring 의 cro…
- [Pattern] CQRS: Command / Query 분리, read model distributed-systems ← 2
- 별칭: CQRS, Command Query Responsibility Segregation, read model, write model, projection, materialized view
- 정의 CQRS (Command Query Responsibility Segregation) = 쓰기 모델 과 읽기 모델 을 분리. 같은 데이터를 다른 형태 로 저장 / 조회. […
- [Pattern] Event Sourcing: 상태 대신 이벤트 누적 distributed-systems ← 5
- 별칭: Event Sourcing, ES, event store, aggregate, snapshot, replay
- 정의 Event Sourcing = 현재 상태 대신 과거 이벤트 시퀀스 를 저장. 현재 상태 = event 모두 replay 한 결과. 핵심 약속 - 과거 모든 변화 기록. 감사…
- [Pattern] Idempotency Keys: 중복 요청 안전 처리 distributed-systems ← 7
- 별칭: Idempotency, Idempotency-Key header, Stripe idempotency, exactly-once delivery, deduplication
- 정의 Idempotency = 같은 요청을 N번 보내도 결과가 1번과 동일. 분산 시스템 / 결제 / API 의 안전망. [!IMPORTANT] 네트워크는 항상 timeout /…
- [Pattern] Microservices vs Monolith: 언제 분리, 언제 통합 distributed-systems ← 5
- 별칭: Microservices, Monolith, Modular monolith, Service boundary, Conway's Law, Distributed monolith
- 정의 | | Monolith | Modular Monolith | Microservices | |---|---|---|---| | 배포 단위 | 1개 | 1개 (모듈 명확) | …
- [Pattern] Outbox Pattern: DB + 메시지의 원자성 distributed-systems ← 11
- 별칭: Outbox pattern, transactional outbox, Debezium, CDC, dual write problem, transactional messaging
- 정의 Outbox Pattern = DB 변경 + 메시지 발행 의 원자성 보장. 이중 쓰기 (dual write) 문제 의 표준 해결. 문제: Dual Write | 시나리오 |…
- [Pattern] Saga: 분산 트랜잭션의 보상 흐름 distributed-systems ← 6
- 별칭: Saga pattern, Choreography saga, Orchestration saga, compensating transaction, long-running transaction
- 정의 Saga = 여러 service 의 로컬 트랜잭션 을 연결한 긴 흐름. 한 단계 실패 시 이전 단계의 보상 (compensating) 트랜잭션 으로 논리적 롤백. [!IMP…
- [PostgreSQL] JSONB: 장점과 단점, 인덱싱, 사용 패턴 database-internals ← 2
- 별칭: PostgreSQL JSONB, jsonb, json vs jsonb, GIN jsonb, jsonb_path_ops, JSONB indexing
- 정의 JSONB (Binary JSON, PG 9.4+) = PostgreSQL 의 binary 직렬화된 JSON. 인덱싱 가능 + 빠른 query 가 과의 핵심 차이. [!IM…
- [Python] @property, getter, setter, deleter python
- 별칭: python property, @property, getter setter, computed property
- 정의 는 메서드를 속성처럼 접근할 수 있게 해주는 데코레이터다. 호출자는 처럼 보지만 내부적으로는 함수가 실행되어 계산되거나 검증된 값을 반환한다. Java의 getter/set…
- [Python] 가비지 컬렉션: refcount + 순환 GC python
- 별칭: python gc, garbage collection, reference counting, cyclic gc, weakref, __del__
- 정의 CPython의 메모리 관리는 두 메커니즘의 조합이다. 1. Reference counting: 모든 객체에 참조 카운트( )가 있고, 카운트가 0이 되면 즉시 해제. 즉각…
- [Python] 가상환경, pyproject.toml, packaging python
- 별칭: python venv, virtualenv, pip, pyproject.toml, python packaging, wheel, PEP 517, PEP 621, uv, poetry
- 정의 Python 프로젝트의 격리·의존성·배포는 세 축이 있다. - 가상환경 (venv, virtualenv, uv, conda): 프로젝트별 의존성 격리 - 패키지 매니저 (p…
- [Python] 기본 문법: 들여쓰기, 주석, 변수 python
- 별칭: python 문법, python syntax, 들여쓰기, indentation, python 주석, python 변수
- 정의 Python은 들여쓰기(indentation)로 블록을 구분하는 언어다. C/Java의 중괄호 대신 일관된 들여쓰기 수준이 블록 스코프를 결정한다. PEP 8은 공백 4칸을…
- [Python] 데코레이터: @decorator, functools.wraps, 클래스 데코레이터 python
- 별칭: python decorator, @decorator, functools.wraps, decorator with args, class decorator
- 정의 데코레이터(decorator)는 함수/클래스를 받아 다른 함수/클래스를 반환하는 callable이다. 문법은 단순한 호출 변환에 불과: 기본 데코레이터 는 원래 함수의 행동…
- [Python] 문자열 포매팅: %, .format, f-string, Template python
- 별칭: python string formatting, %s formatting, str.format, f-string, string.Template, format spec
- 정의 Python에는 4가지 문자열 포매팅 방법이 있다. 새 코드는 f-string 우선. | 방법 | 도입 | 상태 | |------|------|------| | 포매팅 | …
- [Python] 바이트코드와 dis 모듈 python
- 별칭: python bytecode, dis module, PYC, specializing adaptive interpreter, PEP 659
- 정의 CPython 인터프리터는 Python 소스를 바이트코드로 컴파일해 평가 루프( 의 메인 switch)에서 실행한다. 바이트코드는 스택 기반 가상 머신을 위한 작은 명령어 …
- [Python] 상속, super, MRO, ABC python
- 별칭: python inheritance, super, MRO, method resolution order, ABC, abstract base class, 다중 상속
- 단일 상속 super() 부모 메서드를 호출하려면 . 다중 상속에서 MRO를 따라 다음 클래스로 디스패치. 인자 없이 호출하면 현재 클래스/인스턴스가 자동 주입된다(Python …
- [Python] 스코프와 LEGB, global, nonlocal python
- 별칭: python scope, LEGB, python global, python nonlocal, namespace, 변수 스코프
- LEGB 규칙 Python은 이름 해결 시 L → E → G → B 순서로 스코프를 탐색한다. | 단계 | 의미 | 예 | |------|------|---| | Local | …
- [Python] 연산자: 비교, 산술, 비트, 멤버십 python
- 별칭: python operators, python 연산자, is vs ==, operator precedence
- 분류 | 종류 | 연산자 | 예시 | |------|--------|------| | 산술 | | , (행렬곱) | | 비교 | | | | 동일성 | | | | 멤버십 | | |…
- [Python] 예외 처리: try, except, raise, ExceptionGroup python
- 별칭: python exception, try except, raise, exception chaining, ExceptionGroup, PEP 654
- try / except / else / finally - : try가 정상 종료된 경우만 실행. try 블록을 최소화하기 위함 - : 항상 실행. 자원 해제용 예외 계층 으로 잡…
- [Python] 제어 흐름: if, for, while, match python
- 별칭: python control flow, python if, python for, python while, match statement, structural pattern matching
- if / elif / else Python에는 가 없었으나 3.10+ 문이 추가됐다(아래 참고). for 루프 Python의 는 iterable 순회 전용. C의 인덱스 카운팅 …
- [Python] 함수 기초: def, 인수, return python
- 별칭: python function, python def, args kwargs, 함수 인수, positional keyword
- def 문으로 함수를 정의한다. 함수도 일급 객체(first-class)라 변수에 할당하고 인자로 전달할 수 있다. 인수 종류 Python 함수 시그니처는 6가지 매개변수 종류를…
- [Python] argparse, click, typer: CLI 만들기 python
- 별칭: python argparse, python cli, click, typer, command-line interface
- 정의 Python에서 CLI를 만드는 옵션은 세 가지가 주류: - (stdlib): 표준, 외부 의존성 없음 - (third-party): 데코레이터 기반, 강력한 옵션 처리 -…
- [Python] Async Generator, async for, async with python
- 별칭: python async generator, async for, async iterator, aiter anext, PEP 525, PEP 530
- 정의 Python의 비동기 모델은 코루틴 + iterator의 조합으로 확장된다. 동기 generator가 lazy 시퀀스를 만들듯, async generator는 각 값 사이에…
- [Python] asyncio: 이벤트 루프, async/await python
- 별칭: python asyncio, python async await, python event loop, coroutine, TaskGroup, PEP 492
- 정의 는 Python 표준 라이브러리의 단일 스레드 이벤트 루프 기반 비동기 I/O 프레임워크다. 로 코루틴을 정의하고 로 다른 코루틴/awaitable 완료를 기다린다. I/O…
- [Python] bytes, bytearray, memoryview python
- 별칭: python bytes, bytearray, memoryview, binary data, bytes object
- 정의 Python에서 바이너리 데이터는 세 가지 타입으로 다룬다. - : 불변 바이트 시퀀스. 0255 정수의 immutable 배열. - : 가변 바이트 시퀀스. 의 mutab…
- [Python] class 기초: 정의, __init__, self python
- 별칭: python class, 파이썬 클래스, __init__, self, 인스턴스 메서드
- 클래스 정의 self Python 메서드의 첫 번째 인수는 인스턴스 자신이다. 관례적으로 라 부른다(언어가 강제하진 않지만 PEP 8 권장). 호출 시 는 내부적으로 로 바인딩된…
- [Python] collections: Counter, deque, defaultdict, OrderedDict, ChainMap python
- 별칭: python collections, Counter, deque, defaultdict, OrderedDict, ChainMap, namedtuple
- 정의 모듈은 dict/list/tuple/set의 특수화 컨테이너를 제공한다. 표준 라이브러리에 있는 데이터 구조 도구함의 핵심. | 클래스 | 용도 | |--------|---…
- [Python] collections.abc: 추상 컬렉션 인터페이스 python
- 별칭: python collections.abc, Iterable, Sequence, Mapping, Set, MutableSequence, abc
- 정의 는 컬렉션의 추상 베이스 클래스를 제공한다. 사용자 정의 컬렉션이 빌트인과 같은 인터페이스를 구현했음을 명시하거나, isinstance 검사에 사용. PEP 3119. 타입…
- [Python] Comprehension: list, dict, set, generator python
- 별칭: python comprehension, list comprehension, dict comprehension, set comprehension, generator expression
- 정의 Comprehension(컴프리헨션)은 iterable로부터 list/set/dict/generator를 선언적·간결하게 만드는 문법이다. 일반 + 보다 30-50% 빠르며…
- [Python] concurrent.futures: ThreadPoolExecutor, ProcessPoolExecutor python
- 별칭: python concurrent.futures, ThreadPoolExecutor, ProcessPoolExecutor, Future, Executor
- 정의 는 과 위에 고수준 Executor 인터페이스를 제공한다. 워커 풀, Future 객체, map/submit API로 동기 코드처럼 병렬 작업을 작성할 수 있다. 두 Exe…
- [Python] Context Manager: with, __enter__, contextlib python
- 별칭: python context manager, with statement, __enter__, __exit__, contextmanager, ExitStack
- 정의 Context manager는 와 메서드를 가진 객체로, 문을 통해 자원 획득/해제를 안전하게 묶는다. 파일·락·DB 트랜잭션·임시 설정처럼 "들어가면 반드시 나와야 하는"…
- [Python] contextvars: 비동기 친화 컨텍스트 변수 python
- 별칭: python contextvars, ContextVar, Context, copy_context, asyncio context
- 정의 (PEP 567, 3.7+)는 현재 코드 실행 컨텍스트에 묶이는 변수다. threading의 처럼 동작하지만 asyncio 코루틴·태스크 경계도 정확히 인식. 비동기 코드에…
- [Python] cProfile, timeit, perf: 성능 프로파일링 python
- 별칭: python cprofile, timeit, py-spy, scalene, performance profiling, 프로파일링
- 정의 Python 성능 분석 도구 선택지. - (stdlib): 작은 코드 조각 벤치마크 - (stdlib): 함수 호출 단위 프로파일링, deterministic - (stdl…
- [Python] csv, io: CSV와 텍스트 스트림 python
- 별칭: python csv, csv.reader, csv.DictReader, io.StringIO, io.BytesIO, open
- 정의 는 표준 라이브러리의 CSV 파서. 는 텍스트/바이너리 스트림 추상화. CSV 처리는 작은 파일이면 모듈, 큰 데이터셋이면 나 가 적합. 기본 읽기 중요: 에 권장. CSV…
- [Python] dataclass: 자동 생성 메서드를 갖춘 데이터 클래스 python
- 별칭: python dataclass, dataclass, @dataclass, frozen dataclass, field
- 정의 (3.7+, PEP 557)는 클래스에 , , 등 상용구 메서드를 자동 생성해주는 데코레이터다. 데이터 컨테이너 클래스를 한 줄 데코레이터 + 필드 어노테이션만으로 만들 수…
- [Python] datetime, timezone, zoneinfo python
- 별칭: python datetime, timezone, zoneinfo, timedelta, naive vs aware, UTC
- 정의 모듈은 날짜·시각·기간 처리를 제공한다. 핵심 클래스: - : 연-월-일 - : 시-분-초-마이크로초 (날짜 정보 없음) - : date + time - : 기간 (날짜 간…
- [Python] Descriptor: __get__, __set__, __delete__ python
- 별칭: python descriptor, data descriptor, non-data descriptor, __get__, __set__
- 정의 Descriptor는 , , 중 하나 이상을 구현한 클래스다. 다른 클래스의 클래스 속성으로 사용되면 그 속성 접근이 descriptor의 메서드를 통해 라우팅된다. , ,…
- [Python] dict: 해시 맵과 삽입 순서 보장 python
- 별칭: python dict, 파이썬 딕셔너리, dictionary, hash map, ordered dict
- 정의 는 Python의 해시 맵 자료구조다. Python 3.7부터 삽입 순서를 언어 사양으로 보장한다(이전엔 CPython 3.6 구현 디테일이었음). 평균 O(1) 조회·삽입…
- [Python] enum: Enum, IntEnum, Flag, StrEnum python
- 별칭: python enum, IntEnum, StrEnum, Flag, auto, Enum members
- 정의 은 고정된 이름-값 매핑을 정의하는 표준 모듈. 마법 숫자나 문자열 상수를 타입화된 멤버로 대체해 타입 안정성·가독성·IDE 지원을 얻는다. Enum 기본 멤버는 싱글톤. …
- [Python] float, Decimal, Fraction python
- 별칭: python float, python decimal, python fraction, 부동소수점, 정밀 산술
- 정의 Python의 실수 산술은 세 가지 타입을 제공한다. - : IEEE 754 double precision (64비트). C 과 동일. 빠르지만 부정확. - : 임의 정밀도…
- [Python] functools: cache, partial, reduce, singledispatch python
- 별칭: python functools, lru_cache, cache, partial, reduce, singledispatch, cached_property
- 정의 는 함수형 프로그래밍 도구와 함수 변환 데코레이터를 제공하는 표준 라이브러리. 메모이제이션, 부분 적용, 디스패치, 데코레이터 메타데이터 등을 다룬다. lrucache / …
- [Python] GIL, multiprocessing 그리고 free-threaded (3.14) python
- 별칭: GIL, Python GIL, Global Interpreter Lock, free-threaded, no-gil, PEP 703, PEP 779, PEP 734, concurrent.interpreters, Python free threading
- 정의 GIL (Global Interpreter Lock) 은 CPython 인터프리터가 한 번에 하나의 OS 스레드만 파이썬 바이트코드를 실행할 수 있도록 보장하는 뮤텍스. 1…
- [Python] hashlib, secrets, hmac: 해시와 암호 보안 python
- 별칭: python hashlib, secrets, hmac, SHA-256, password hash, crypto safe random
- 정의 암호학 관련 표준 모듈 3개. - : 해시 함수 (SHA-256, MD5, BLAKE2 등) - : 암호학적으로 안전한 난수 ( 은 비안전) - : HMAC 메시지 인증 암…
- [Python] heapq, bisect, array python
- 별칭: python heapq, python bisect, python array, priority queue, binary search, min-heap
- heapq: min-heap 는 리스트를 min-heap 구조로 다루는 함수 모음. 클래스가 아니라 일반 list 위에서 동작. 기본 / 모두 O(log n). 단순 list로는…
- [Python] import 시스템과 패키지 python
- 별칭: python import, python package, __init__.py, module path, sys.path, circular import
- 정의 Python 시스템은 모듈(.py 파일)과 패키지(디렉터리)를 메모리에 로드하고 네임스페이스에 바인딩한다. CPython은 한 번 로드한 모듈을 캐시에 보관해 재import…
- [Python] importlib: 동적 import와 메타데이터 python
- 별칭: python importlib, importlib.import_module, importlib.reload, importlib.metadata, entry_points
- 정의 는 import 시스템에 대한 프로그래밍 인터페이스. 동적 모듈 로딩, 메타데이터 조회, 진입점 발견, hot reload 등을 제공한다. 플러그인 시스템·테스트·동적 디스…
- [Python] int: 임의 정밀도 정수 python
- 별칭: python int, python integer, 임의 정밀도, arbitrary precision, bignum
- 정의 Python의 는 임의 정밀도 정수(arbitrary precision integer)다. C의 / 처럼 비트 폭이 고정되지 않으며, 메모리가 허용하는 한 무한히 큰 정수를…
- [Python] Iterator, Generator, yield python
- 별칭: python iterator, python generator, yield, yield from, iter, next, __iter__
- Iterator Protocol Iterator는 와 를 구현한 객체. Iterable은 만 가지면 된다 (iterator를 반환). 문은 내부적으로 로 iterator를 얻고 …
- [Python] itertools: 효율적인 iterator 빌딩 블록 python
- 별칭: python itertools, chain, cycle, islice, groupby, combinations, permutations, product
- 정의 는 메모리 효율적인 iterator 조합기를 제공한다. lazy 평가로 무한 시퀀스도 다루며, C로 구현되어 빠르다. Haskell/Lisp 영향을 받은 함수형 도구함. 무…
- [Python] json: 직렬화와 역직렬화 python
- 별칭: python json, json.dumps, json.loads, JSON encoder, custom serializer
- 정의 모듈은 Python 객체와 JSON 텍스트 간 변환을 제공한다. 표준 라이브러리라 빠르게 시작 가능하나, 대용량/정밀도/속도 면에서 , 같은 서드파티가 우위. 기본 API …
- [Python] list: 가변 시퀀스 python
- 별칭: python list, 파이썬 리스트, 리스트 컴프리헨션, list comprehension
- 정의 Python의 는 가변 길이 동적 배열(dynamic array)이다. C의 /Java 와 같은 자료구조로, 내부적으로 PyObject 포인터의 연속 배열을 over-all…
- [Python] logging: 로거, 핸들러, 포매터 python
- 별칭: python logging, logger, log handler, log formatter, logging.config, structured logging
- 정의 은 Python 표준 로깅 프레임워크. logger - handler - formatter - filter 4구성 요소로 유연한 로그 라우팅을 구현. 단순 사용은 한 줄로,…
- [Python] match문: 구조적 패턴 매칭 python
- 별칭: python match, structural pattern matching, PEP 634, case patterns, match-case
- 정의 문(3.10+, PEP 634)은 구조적 패턴 매칭. C의 switch보다 훨씬 강력해 타입·구조·내용을 동시에 검사하고 동시에 binding한다. Haskell, Rust…
- [Python] Metaclass: type, __init_subclass__ python
- 별칭: python metaclass, type metaclass, __init_subclass__, metaclass conflict
- 정의 Metaclass는 "클래스의 클래스"다. 일반 클래스가 인스턴스의 행동을 결정하듯, metaclass는 클래스 자체의 행동(생성, 속성, 메서드 추가)을 결정한다. 모든 …
- [Python] multiprocessing: Process, Pool, Queue, Manager python
- 별칭: python multiprocessing, Process, Pool, Manager, shared memory, fork, spawn
- 정의 은 별도 프로세스로 작업을 분산. GIL 우회 → 진정한 CPU 병렬. 각 프로세스는 독립된 메모리 공간이라 데이터 공유에 오버헤드(pickle, IPC). CPU 집약 작…
- [Python] None, bool, Truthiness python
- 별칭: python none, python bool, truthiness, falsy, is None
- None 은 값 없음을 나타내는 싱글톤 객체다. 타입은 . 모든 함수가 명시적 return 없으면 을 반환한다. None 비교는 로 PEP 8이 명시한 규칙. NumPy 배열 같…
- [Python] os, shutil, glob: 파일 시스템 도구 python
- 별칭: python os, shutil, glob, 파일 시스템, os.path
- 정의 파일 시스템 다루는 세 표준 모듈: - : OS 인터페이스 (환경 변수, 프로세스, 파일 기본 연산) - : 경로 문자열 조작 (대부분 로 대체 가능) - : 고수준 파일 …
- [Python] pathlib: 객체지향 파일 시스템 경로 python
- 별칭: python pathlib, Path, PurePath, os.path, 파일 경로
- 정의 (3.4+, PEP 428)는 파일 경로를 객체로 다루는 모듈. 기존 문자열 기반 API를 대체할 만큼 강력하고 가독성 좋다. 운영체제별 차이( vs )도 추상화. 기본 사…
- [Python] pdb, breakpoint(), 디버깅 도구 python
- 별칭: python pdb, breakpoint, ipdb, pudb, debugpy, PYTHONBREAKPOINT
- 정의 는 Python 표준 라이브러리의 대화형 디버거. 중단점, 스텝 실행, 변수 검사, 콜 스택 탐색을 제공. 3.7+ 빌트인이 표준 진입점. breakpoint() 호출 지점…
- [Python] pickle, shelve, marshal: 객체 직렬화 python
- 별칭: python pickle, pickle.dumps, shelve, marshal, 직렬화, serialization
- 정의 은 Python 객체를 바이트로 직렬화하는 표준 모듈. dict, list, 사용자 클래스 등 거의 모든 객체를 디스크/네트워크로 옮길 수 있다. 보안 경고: pickle은…
- [Python] pydantic: 런타임 타입 검증과 직렬화 python
- 별칭: python pydantic, BaseModel, validators, FastAPI, data validation
- 정의 은 타입 힌트 기반 런타임 검증 + 직렬화 라이브러리. FastAPI, LangChain, Hugging Face 등 수많은 라이브러리의 기반. v2부터 Rust 코어로 빠…
- [Python] pytest: fixture, parametrize, mock python
- 별칭: python pytest, pytest fixture, parametrize, monkeypatch, conftest
- 정의 는 Python 표준 테스트 프레임워크의 사실상 표준(stdlib는 이지만 pytest가 더 강력). 단순한 함수 로 시작해서 fixture, parametrize, plu…
- [Python] random, statistics, math python
- 별칭: python random, python statistics, python math, random seed, Mersenne Twister
- random: 의사 난수 은 Mersenne Twister 기반 PRNG. 통계·시뮬레이션·게임용. 보안엔 사용. 기본 함수 seed: 재현 가능 seed 없으면 OS의 rand…
- [Python] re: 정규 표현식 python
- 별칭: python regex, python re, regular expression, re.compile, re.match
- 정의 모듈은 PCRE 호환 정규 표현식(완전 호환은 아니나 거의 유사) 엔진을 제공한다. 백트래킹 NFA 기반으로 표현력은 강하나 catastrophic backtracking …
- [Python] set, frozenset python
- 별칭: python set, frozenset, 파이썬 집합, set operations
- 정의 은 중복 없는 해시 가능 원소의 가변 컬렉션이다. dict의 키 슬롯만 가진 형태로 구현되어 평균 O(1) 멤버십·삽입·삭제를 제공한다. 은 그 불변 버전으로 해시 가능하다…
- [Python] sqlite3: 내장 SQL 데이터베이스 python
- 별칭: python sqlite3, SQLite, Connection, Cursor, DB-API 2.0, executemany
- 정의 는 Python 표준 라이브러리에 포함된 SQLite 데이터베이스 래퍼. 별도 서버 없이 단일 파일에 저장하는 임베디드 SQL DB. PEP 249 (DB-API 2.0) …
- [Python] str: 문자열과 f-string python
- 별칭: python string, python str, f-string, 문자열 포매팅, string formatting
- 정의 Python의 은 불변(immutable) 유니코드 문자열이다. 내부는 PEP 393 이후 "유연한 문자열 표현(flexible string representation)"으…
- [Python] subprocess: 외부 프로세스 실행 python
- 별칭: python subprocess, subprocess.run, Popen, shell injection, pipe
- 정의 는 외부 명령을 실행하고 입출력·exit code를 받아오는 표준 모듈. , 같은 구식 API를 대체한다. 3.5+ 이후엔 이 권장 진입점. subprocess.run 주요…
- [Python] textwrap, locale, unicodedata: 텍스트 처리 python
- 별칭: python textwrap, locale, unicodedata, string normalization, NFC, NFD
- 정의 텍스트 처리 표준 모듈 3개. - : 줄바꿈, 들여쓰기 정렬 - : 지역화 (숫자/통화/날짜 포맷) - : 유니코드 정규화·분류·검색 textwrap 긴 텍스트를 일정 폭으…
- [Python] threading: Thread, Lock, Event python
- 별칭: python threading, Thread, Lock, RLock, Event, Condition, Barrier, GIL
- 정의 은 OS 스레드 기반 동시성 모듈. GIL 때문에 CPU 바운드 작업은 가속되지 않으나 I/O 바운드(네트워크, 디스크) 작업의 병렬화는 가능. 3.13+ free-thre…
- [Python] tracemalloc, sys.getsizeof: 메모리 프로파일링 python
- 별칭: python tracemalloc, memory profiling, sys.getsizeof, memory leak, snapshot
- 정의 은 Python의 메모리 할당 추적기(PEP 454, 3.4+). 어디서 메모리가 할당되었는지 파일·줄 단위로 통계 수집. 메모리 누수 추적과 핫스팟 발견에 표준 도구. 기…
- [Python] tuple: 불변 시퀀스와 NamedTuple python
- 별칭: python tuple, 파이썬 튜플, namedtuple, tuple unpacking
- 정의 은 불변(immutable) 시퀀스다. 와 거의 같은 API를 가지나 생성 후 변경 불가하며, 그 덕에 dict 키나 set 원소로 사용 가능하다(해시 가능). 함수의 다중…
- [Python] TypedDict, Protocol, runtime_checkable python
- 별칭: python typeddict, python protocol, structural subtyping, runtime_checkable, PEP 544, PEP 589
- TypedDict (PEP 589, 3.8+) dict의 키와 값 타입을 명시. JSON API 응답이나 설정처럼 dict로 들어오지만 스키마가 정해진 경우. 런타임엔 그냥 di…
- [Python] typing: 타입 힌트 기초 python
- 별칭: python typing, type hints, Optional, Union, Generic, TypeVar
- 정의 Python 타입 힌트(PEP 484)는 런타임에 강제되지 않는 정적 어노테이션이다. , , 같은 타입 체커가 정적 분석에 사용. 런타임은 어노테이션을 무시 (단, 일부 프…
- [Python] unittest.mock: Mock, patch, MagicMock python
- 별칭: python mock, unittest.mock, MagicMock, patch, spy, test double
- 정의 은 테스트용 대역체(test double) 생성과 패칭을 위한 표준 라이브러리. , , 를 통해 외부 의존성을 격리하고 호출을 검증한다. pytest와도 잘 어울리며 같은 …
- [Python] urllib, requests, httpx: HTTP 클라이언트 python
- 별칭: python urllib, requests, httpx, urlopen, HTTP client, url parsing
- 정의 Python에서 HTTP 통신 옵션: - (stdlib): 외부 의존성 없는 기본 클라이언트. 다소 장황. - (third-party): 사실상 표준 HTTP 클라이언트. …
- [Python] warnings: 경고 발생과 필터링 python
- 별칭: python warnings, DeprecationWarning, FutureWarning, warnings.warn, warnings.filterwarnings, stacklevel
- 정의 모듈은 에러보다 약한 경고를 발생·필터링한다. 라이브러리가 deprecated API 알림, 잠재적 버그 신호, 권장하지 않는 사용 패턴 등을 사용자에게 전달할 때 사용. …
- [Python] YAML, TOML, INI: 설정 파일 포맷 python
- 별칭: python yaml, PyYAML, tomllib, configparser, ruamel.yaml, settings
- 정의 설정 파일 포맷 비교: - JSON: 데이터 직렬화. 주석 없음, 좀 엄격. ( stdlib) - YAML: 풍부한 표현, 가독성 좋음. 보안 함정. ( 외부) - TOML…
- [Python] zipfile, tarfile, gzip, lzma: 압축과 아카이브 python
- 별칭: python zipfile, tarfile, gzip, lzma, bz2, shutil.archive, 압축
- 정의 압축·아카이브 관련 표준 모듈. - : ZIP 아카이브 (Windows 친화) - : TAR/TAR.GZ/TAR.BZ2 (Unix 표준) - : 단일 파일 gzip 압축 -…
- [Rails] 배포: Kamal, Capistrano, Heroku rails
- 별칭: rails deployment, kamal, capistrano, rails heroku, rails docker, puma config
- 정의 Rails 배포 옵션: - Kamal (Rails 8 기본): Docker + zero-downtime, 자체 호스팅 - Capistrano: SSH 기반 (전통) - He…
- [Rails] 보안: CSRF, XSS, SQL injection, encrypted credentials rails
- 별칭: rails security, rails CSRF, strong parameters, encrypted credentials, secret_key_base
- 정의 Rails는 OWASP Top 10 대부분을 기본 방어한다. 그러나 설정 누락, 남용, raw SQL 등이 흔한 함정. 보안은 기본 활성이고 명시적으로 우회해야 비활성. C…
- [Rails] 성능: N+1, bullet, rack-mini-profiler rails
- 별칭: rails performance, bullet gem, rack-mini-profiler, N+1 detection, slow rails
- 정의 Rails 성능 최적화는 보통 DB 쿼리 (N+1 회피, 인덱스), 캐싱, view 렌더링, Ruby 코드 효율 순서로 접근. 측정 도구 ( , , APM)로 hotspot…
- [Rails] 쿼리 최적화: preload, eager_load, includes, references rails ← 1
- 별칭: Rails N+1, preload, eager_load, includes, references rails, rails eager loading, Active Record 쿼리 최적화, Rails 쿼리 최적화
- 정의 Active Record 는 연관 ( , ) 을 lazy 로딩한다. 부모 객체를 받아온 뒤 자식을 순회하면 자식마다 SELECT 가 1번씩 추가로 발생 = N+1 문제. R…
- [Rails] 테스트: Minitest, RSpec, FactoryBot, Capybara rails
- 별칭: rails test, rspec rails, factory bot, system test, capybara, minitest rails
- 정의 Rails는 Minitest 기반 테스트를 기본 제공한다. 커뮤니티는 RSpec도 광범위 사용. FactoryBot(객체 생성), Capybara(브라우저 시뮬레이션), R…
- [Rails] Action Cable & Solid Cable: WebSocket rails
- 별칭: action cable, websocket, solid cable, channels, broadcast, rails realtime
- 정의 Action Cable은 Rails의 WebSocket 통합. 채널(channel) 기반 발행/구독 모델. Rails 8부터 Solid Cable (DB 기반 어댑터)이 기…
- [Rails] Action Mailer: 이메일 발송 rails
- 별칭: action mailer, rails mailer, deliver_later, MailerPreview, smtp_settings
- 정의 Action Mailer는 Rails의 이메일 처리 프레임워크. 컨트롤러처럼 구조화된 mailer 클래스 + ERB 템플릿 + Active Job 통합. SMTP, Send…
- [Rails] Action Text & Active Storage 통합 rails
- 별칭: action text, rich text, trix editor, has_rich_text, rails wysiwyg
- 정의 Action Text (Rails 6+)는 Trix 에디터 + Active Storage 통합 + 안전한 HTML 저장으로 rich text 콘텐츠 처리. 댓글, 게시글, …
- [Rails] Active Job 고급: retry, schedule, callback rails ← 1
- 별칭: active job retry, discard_on, ActiveJob callbacks, rails idempotency, queue priority
- 정의 Active Job 기본 사용은 별도 페이지. 이 문서는 재시도 전략, 콜백, 시리얼라이즈, 멱등성, 우선순위 등 고급 패턴을 다룬다. Retry / Discard Wait…
- [Rails] Active Job: 백그라운드 워커 rails ← 4
- 별칭: active job, perform_later, sidekiq, good_job, solid_queue, rails background job
- 정의 Active Job은 백엔드(Sidekiq, Resque, Solid Queue 등) 추상화 계층. 같은 코드로 다른 queue adapter 교체 가능. Rails 8부터…
- [Rails] Active Record Encryption rails
- 별칭: rails encryption, encrypts attribute, deterministic encryption, rails 7 encryption
- 정의 Active Record Encryption (Rails 7.0+)은 모델 attribute 자동 암호화. 키 관리, 검색(deterministic), 마이그레이션 등 내장…
- [Rails] Active Storage: 파일 업로드와 attachment rails
- 별칭: active storage, has_one_attached, has_many_attached, blob, S3 storage, image variant
- 정의 Active Storage는 Rails 5.2+ 표준 파일 업로드 솔루션. S3, GCS, Azure, 로컬 디스크를 균일한 API로. 이미지 variant(크기 변환), …
- [Rails] Active Support: Ruby 확장 rails
- 별칭: active support, rails ruby extension, concern, Time helpers, blank present
- 정의 Active Support는 Ruby 표준 라이브러리에 Rails가 추가하는 유틸리티 + 코어 확장. , , 등 모든 Rails 코드에서 사용. Rails 없는 Ruby 프…
- [Rails] ActiveRecord 기초: Model, Migration, CRUD rails ← 3
- 별칭: activerecord basics, rails model, rails migration, create_table, AR CRUD
- 정의 ActiveRecord는 Rails의 ORM. 클래스 ↔ 테이블 1:1 매핑(관례), 인스턴스 = 행. Active Record 패턴 그대로(데이터 + 행동). 마이그레이션…
- [Rails] ActiveRecord Callbacks: 장점과 단점 rails
- 별칭: ActiveRecord callbacks, Rails callbacks, before_save, after_create, after_commit, before_validation, Rails hook
- 정의 ActiveRecord Callbacks = 모델의 라이프사이클 이벤트 (생성, 갱신, 삭제) 에 훅 을 거는 메커니즘. DRY + 자동화 가 매력이지만 암묵적 부수효과 의…
- [Rails] AR Associations: belongs_to, has_many, polymorphic rails ← 2
- 별칭: rails associations, has_many through, belongs_to, polymorphic association, STI
- 정의 ActiveRecord associations로 테이블 간 관계를 객체 그래프로 표현. 6가지 매크로( , , , , , )와 polymorphic, STI 같은 고급 패턴…
- [Rails] AR Validations와 Callbacks rails ← 1
- 별칭: rails validations, rails callbacks, before_save, validates_uniqueness_of, errors
- 정의 ActiveRecord는 save 전 검증과 다양한 라이프사이클 콜백을 제공한다. 검증은 DB 제약과 별도(애플리케이션 레벨). 콜백은 신중히, 비즈니스 로직은 servic…
- [Rails] Caching: fragment, action, low-level, Russian Doll rails
- 별칭: rails caching, fragment cache, russian doll caching, Rails.cache, solid_cache
- 정의 Rails 캐싱은 fragment, action, page, HTTP, low-level (Rails.cache) 5단계. 모델·뷰 단위로 자동 무효화 (Russian Do…
- [Rails] Concerns, Engines, Generators rails ← 2
- 별칭: rails concerns, ActiveSupport::Concern, rails engine, rails generators, mountable engine
- 정의 Concern은 모듈에 클래스 메서드와 콜백을 한 곳에 모으는 패턴. Engine은 별도 gem으로 분리 가능한 미니 Rails 앱. Generator는 코드 자동 생성 (…
- [Rails] Controller: params, strong params, filters rails
- 별칭: rails controller, strong parameters, before_action, respond_to, ActionController
- 정의 Rails Controller는 라우터가 전달한 요청을 받아 Model 조작 + View 렌더링을 조율한다. RESTful 7 action(index, show, new, …
- [Rails] Encrypted Credentials과 환경변수 rails
- 별칭: rails credentials, master.key, rails secrets, encrypted credentials, dotenv-rails
- 정의 Rails 5.2+ 는 비밀 정보를 암호화해 git에 안전하게 커밋. Rails 6+ 환경별 ( , ) 가능. 파일 + 는 대안. 기본 사용 파일 구조 노출 → 모든 비밀 …
- [Rails] Form Object, Service Object, Query Object rails
- 별칭: rails form object, service object, query object, rails fat model, POROs
- 정의 Fat Model / Skinny Controller가 한계에 달하면 POROs (Plain Old Ruby Objects)로 책임 분리. Form Object (다중 모델…
- [Rails] Hotwire: Turbo Drive, Frames, Streams, Stimulus rails
- 별칭: rails hotwire, turbo drive, turbo frames, turbo streams, stimulus, rails SPA-less
- 정의 Hotwire는 Rails 7부터 기본인 "SPA 없이 SPA 같은 UX"를 위한 프론트엔드 접근. Turbo Drive(전체 페이지 전환을 fetch + DOM swap)…
- [Rails] I18n: 다국어와 지역화 rails
- 별칭: rails i18n, rails translations, I18n.t, rails-i18n gem, locale files
- 정의 Rails I18n은 로케일별 번역, 숫자/날짜 포맷, 시간대, 복수형, 통화 등을 통합 처리. 에 번역 저장, 로 조회. View, controller, model 어디서…
- [Rails] Rails 8: Solid Queue/Cache/Cable, Kamal, Propshaft rails
- 별칭: rails 8, solid queue, solid cache, solid cable, kamal deploy, propshaft, no PaaS
- 정의 Rails 8 (2024 11월)의 표어는 "No PaaS"다. Solid 시리즈로 Redis/외부 큐 의존을 제거하고, Kamal로 Docker 기반 자체 호스팅을 간단하…
- [Rails] Routes: resources, nested, scope, constraints rails
- 별칭: rails routes, rails routing, resources, resourceful routes, nested routes, rails namespace
- 정의 Rails 라우팅은 URL을 controller#action으로 매핑. RESTful resources 매크로가 7개 표준 액션을 한 줄로 생성. 에 정의. 로 전체 확인.…
- [Rails] Views: ERB, helpers, partials, layouts rails
- 별칭: rails views, ERB, rails helper, partial, layout, form_with, ViewComponent
- 정의 Rails View는 ERB(Embedded Ruby) 템플릿 + helper + partial + layout 조합. controller가 를 view로 전달. 뷰 로직은…
- [React] Component Composition: Props, Children, Render Prop, HOC, Compound frameworks ← 3
- 별칭: React Component Composition, props children, render prop, Higher Order Component, HOC, Compound Component, Slot, Portal, Context Provider, function component, class component, stateless component, stateful component
- 정의 Component Composition 은 작은 컴포넌트를 조합 해 큰 UI 를 만드는 React 의 핵심 빌드 블록. 객체지향의 상속 (inheritance) 대신 Com…
- [React] Lifecycle: Mount / Update / Unmount, StrictMode, Activity, RSC frameworks ← 3
- 별칭: React Lifecycle, React mount, React unmount, componentDidMount, componentWillUnmount, componentDidUpdate, Strict Mode, Strict Mode double invoke, React Activity, React Server Components lifecycle, hydration
- 정의 React Lifecycle 은 컴포넌트의 생성 → 갱신 → 제거 의 흐름. 함수 컴포넌트에서는 클래스의 lifecycle method 가 사라지고 render + effe…
- [React] useEffect: 동기화의 본질, dep array, cleanup, useEffectEvent frameworks
- 별칭: useEffect, useEffectEvent, useLayoutEffect, useInsertionEffect, effect cleanup, effect dependency array, Strict Mode double invoke, race condition useEffect
- 정의 는 컴포넌트의 렌더 결과 와 외부 시스템 을 동기화 하는 hook. - 외부 시스템: 브라우저 DOM, WebSocket, 구독, 타이머, 외부 라이브러리 (D3, Mapb…
- [React] useMemo / useCallback / memo: 자동 시대의 수동 도구 frameworks ← 2
- 별칭: useMemo, useCallback, React.memo, memo, memoization, referential equality, Object.is, React Compiler memoization
- 정의 세 가지 도구는 동일한 목표 (불필요한 재계산 / 재생성 / 재렌더 방지) 를 서로 다른 위치 에서 잡는다. - : 값 의 메모이제이션. deps 가 같으면 같은 값 반환.…
- [Redis] Bloom / Cuckoo / CMS / TopK: 확률 자료구조 database-internals
- 별칭: Redis Bloom Filter, Cuckoo Filter, Count-Min Sketch, CMS, TopK, BF.ADD, BF.EXISTS, CF.ADD, CMS.INCRBY, TOPK.ADD, probabilistic data structures
- 정의 확률 자료구조 (Probabilistic Data Structures) 는 작은 메모리 로 대규모 데이터의 통계적 답 을 제어된 오차 로 내는 자료구조군. Redis 는 B…
- [Redis] Cache Patterns: Cache-Aside, Stampede, Eviction database-internals
- 별칭: Cache Aside, Look-aside cache, Write-through, Write-behind, Read-through, Cache Stampede, Thundering Herd, Dogpile, Stale-while-revalidate, single-flight, LRU, LFU, maxmemory-policy
- 정의 Cache Pattern 은 Redis (또는 다른 캐시) 를 어떤 경로로 읽고 쓰는지 의 디자인 결정. 같은 인프라로도 패턴 선택에 따라 일관성 / 지연 / 부하 가 완전…
- [Redis] Cluster: 16384 슬롯, MOVED/ASK, Atomic Slot Migration database-internals
- 별칭: Redis Cluster, Valkey Cluster, hash slot, CRC16, hash tag, MOVED, ASK, ASKING, CLUSTER MEET, gossip, atomic slot migration
- 정의 Redis Cluster 는 수평 확장 을 위한 내장된 sharding + 자동 failover. 16384 개의 hash slot 으로 키 공간 을 잘라 여러 노드 에 분…
- [Redis] Distributed Lock: SET NX, Redlock, Fencing Token database-internals ← 1
- 별칭: Redis 분산 락, Distributed Lock, Redlock, Redlock 5 instances, SET NX EX, fencing token, Redisson, Kleppmann Redlock, lock expiry
- 정의 분산 락 (Distributed Lock) 은 여러 프로세스 / 머신 에서 한 시점에 하나만 임계 영역에 진입하도록 보장하는 동기화 도구. Redis 는 간단한 SETNX …
- [Redis] Hash: 객체 저장, Field TTL (7.4+), Listpack vs Hashtable database-internals
- 별칭: Redis Hash, HSET, HGET, HGETALL, HINCRBY, HEXPIRE, HPEXPIRE, HPERSIST, HTTL, Hash Field TTL, field expiration, HSETEX, HGETEX, HGETDEL
- 정의 Redis Hash 는 키 안의 작은 dict. 하나의 키 ( ) 가 여러 field → value 쌍을 가진다. 부분 갱신 / 부분 조회 가 atomic + 효율적. = …
- [Redis] HyperLogLog & Geo: 확률 카운팅 + 공간 인덱스 database-internals
- 별칭: Redis HyperLogLog, HLL, PFADD, PFCOUNT, PFMERGE, Redis Geo, GEOADD, GEOSEARCH, GEODIST, geohash, cardinality estimation, spatial index
- 정의 이 페이지는 작지만 강력한 두 자료구조 를 묶는다. - HyperLogLog (HLL): 대규모 unique count 를 0.81% 오차로 12 KB 안에 추정. - Ge…
- [Redis] List: Quicklist / Listpack, BLPOP, Sidekiq 큐 database-internals
- 별칭: Redis List, LPUSH, RPUSH, LMOVE, BRPOPLPUSH, BLPOP, BRPOP, LRANGE, quicklist, listpack, ziplist, circular buffer
- 정의 Redis List 는 양끝 push / pop 이 O(1) 인 순서 보존 시퀀스. 큐 (FIFO), 스택 (LIFO), 최근 N개 목록, Sidekiq 같은 큐 시스템 의…
- [Redis] Persistence: RDB / AOF / Hybrid database-internals ← 6
- 별칭: Redis Persistence, RDB, AOF, appendfsync, BGSAVE, BGREWRITEAOF, save points, Redis fork
- 정의 Redis Persistence 는 in-memory 데이터를 디스크 로 지속화하는 메커니즘. 세 가지 옵션: 1. RDB (Redis Database file): 주기적 …
- [Redis] Pub/Sub vs Streams: 휘발 신호 vs 영속 로그 database-internals ← 5
- 별칭: Redis Pub/Sub, Redis Streams, XADD, XREADGROUP, XACK, XPENDING, Consumer Group, Keyspace Notifications, Sidekiq queue, BullMQ
- 정의 - Pub/Sub ( / ): 지금 듣고 있는 구독자 에게만 메시지가 전달되는 휘발성 신호. 영속 없음, ACK 없음. fan-out. - Streams ( / / / ):…
- [Redis] Replication & Sentinel: 비동기 복제와 자동 Failover database-internals ← 5
- 별칭: Redis Replication, Redis Sentinel, PSYNC, replication backlog, min-replicas-to-write, WAIT command, REPLICAOF, Redis HA, Redis failover
- 정의 Redis Replication 은 primary (master) → replica (slave) 방향의 비동기 단방향 복제. 읽기 부하 분산 과 고가용성 의 토대. Red…
- [Redis] Set: 중복 없는 멤버십, SINTER / SUNION / SDIFF database-internals
- 별칭: Redis Set, SADD, SREM, SISMEMBER, SMISMEMBER, SMEMBERS, SUNION, SINTER, SDIFF, SINTERCARD, intset
- 정의 Redis Set 은 중복 없는 unordered 멤버 집합. SADD / SREM / SISMEMBER 가 O(1), SINTER / SUNION / SDIFF 의 집합 …
- [Redis] Sorted Set: Skiplist + Dict, 리더보드, 우선순위 큐 database-internals
- 별칭: Redis Sorted Set, ZSet, ZADD, ZRANGE, ZRANGEBYSCORE, ZRANGEBYLEX, ZRANK, ZSCORE, ZPOPMIN, ZPOPMAX, ZMPOP, skiplist, leaderboard, sliding window, priority queue
- 정의 Redis Sorted Set (ZSet) 은 멤버 + 점수 (score) 의 순서 보존 unique 집합. score 기준 정렬 + 멤버 기준 O(1) 조회 가 동시에 가…
- [Redis] Stream: Radix Tree + Listpack, Consumer Group 내부 database-internals
- 별칭: Redis Stream, XADD, XREAD, XREADGROUP, XACK, XCLAIM, XAUTOCLAIM, XPENDING, XTRIM, XDELEX, XACKDEL, XNACK, radix tree, listpack stream, stream ID
- 정의 Redis Stream 은 append-only 로그 자료구조. 시간 순서가 보존되는 영속 메시지 시퀀스 + consumer group 으로 작업 분배. Kafka 의 Re…
- [Redis] String / Bitmap / Bitfield: 가장 기본 + 가장 강력 database-internals
- 별칭: Redis String, Redis Bitmap, Redis Bitfield, SDS, Simple Dynamic String, INCR, INCRBYFLOAT, SETRANGE, GETRANGE, BITCOUNT, BITOP, BITPOS, BITFIELD, SETBIT
- 정의 Redis String 은 binary-safe 한 바이트 열. 최대 512 MB. 문자열만이 아니라 정수, 부동소수, 직렬화된 객체, 비트맵 (Bitmap), 패킹된 정수…
- [Redis] Vector Search: HNSW, SVS-VAMANA, Semantic Cache database-internals
- 별칭: RediSearch, Valkey Search, Vector Set, HNSW, SVS-VAMANA, FLAT vector index, FT.SEARCH, FT.HYBRID, semantic cache, RAG, vector embedding
- 정의 Vector Search 는 임베딩 벡터의 거리/유사도 기준으로 근접한 K 개 를 찾는 검색. Redis 는 RediSearch 모듈 (Redis 8 부터는 코어) 과 Va…
- [Search] ElasticSearch 기본 원리: Inverted Index, Segment, Lucene search ← 5
- 별칭: ES 기본 원리, inverted index, 역색인, Lucene segment, near real-time, refresh interval, translog, Lucene
- 정의 ES 의 모든 동작 은 Lucene 의 inverted index 위에 얹혀있다. 문서 단위 저장 + term 단위 검색 의 분리. Inverted Index (역색인) 위…
- [Search] Elasticsearch vs OpenSearch: 라이센스 분기와 차이 search ← 1
- 별칭: OpenSearch, ES vs OpenSearch, Elastic license, SSPL, AGPLv3 elasticsearch, fork, AWS OpenSearch Service
- 정의 OpenSearch = AWS 가 2021 년 Elasticsearch 7.10 에서 fork 한 Apache 2.0 라이센스 search engine. Kibana → O…
- [Search] ElasticSearch: Lucene 위 분산 검색 엔진 search ← 3
- 별칭: ElasticSearch, Elastic, Elastic Stack, ELK, ES license, ES 8.x, ES 9.x
- 정의 ElasticSearch = Apache Lucene 위의 분산 RESTful 검색/분석 엔진. 2010 출시. Logstash + Kibana + Beats 와 함께 El…
- [Search] ES 인프라: cluster, shard, replica, ELK search ← 2
- 별칭: ES cluster, ES shard, ES replica, node role, ILM, ELK Stack, Elastic Stack, Beats, Elastic Agent, Fleet, Logstash, Kibana
- 정의 ES 는 분산 시스템. cluster + multiple nodes + shards + replicas + Elastic Stack 보조 도구. Cluster 구조 Node…
- [Search] ES 한글 인덱싱: nori, mecab, 형태소 분석 search ← 3
- 별칭: 한글 인덱싱, nori, nori_tokenizer, mecab-ko, mecab-ko-analyzer, arirang, 한국어 분석기, 한글 형태소 분석, Korean analyzer
- 정의 한국어 는 교착어 + 띄어쓰기 모호 + 형태소 변화 때문에 공백 단순 분리 로는 검색 불가. 형태소 분석 (morphological analysis) 필수. 한글이 어려운 …
- [Search] ES Aggregations: metric, bucket, pipeline search ← 4
- 별칭: aggregations, aggs, terms agg, date_histogram, metric aggregation, bucket aggregation, pipeline aggregation, sub-aggregation
- 정의 Aggregations (aggs) = ES 의 집계 분석. SQL 의 GROUP BY + 함수 + window. 검색 결과 또는 전체 위에서. 3가지 카테고리 Metric…
- [Search] ES Indexing: bulk, refresh, ingest pipeline search ← 4
- 별칭: ES indexing, bulk API, _bulk, ingest pipeline, refresh, force_merge, _reindex, update by query
- 정의 Indexing = JSON 문서를 역색인에 등록 하는 행위. Lucene segment 빌드 + refresh + flush 의 흐름. 단일 인덱싱 | 동작 | 결과 | …
- [Search] ES Mapping: field type, dynamic, multi-field search ← 6
- 별칭: ES mapping, field type, dynamic mapping, text vs keyword, multi-field, nested vs object, runtime field
- 정의 Mapping = ES 의 schema. 각 필드의 type + analyzer + indexing 옵션. 대부분 immutable (재인덱싱 필요). Field Type …
- [Search] ES Query: must / should / filter / must_not search ← 7
- 별칭: ES query, bool query, must, should, filter, must_not, match, term, range, query DSL, ESQL
- 정의 ES 의 Query DSL = JSON 기반 표현력 풍부한 쿼리 언어. bool query + leaf query 의 조합. bool query: 4가지 절 | 절 | AN…
- [Search] ES Relevance Scoring: BM25, TF-IDF, function_score search ← 5
- 별칭: BM25, Okapi BM25, TF-IDF, relevance score, _score, k1, b parameter, function_score, rescore
- 정의 Relevance Score ( ) = 쿼리와 문서의 매칭 강도. ES 7+ 의 기본은 BM25 (TF-IDF 의 발전형). BM25 공식 | 부분 | 의미 | |---|-…
- [Search] ES Sort: relevance, field, script, geo search ← 3
- 별칭: ES sort, sort by relevance, _score, doc_values, fielddata, search_after, PIT, track_total_hits
- 정의 ES 의 기본 정렬 = relevance score (BM25) 내림차순. 명시적 sort 로 변경 가능. docvalues 로 메모리 효율적 정렬. 5가지 정렬 1. Fi…
- [Search] ES Vector Search: kNN, ELSER, RAG search ← 5
- 별칭: ES vector search, dense_vector, sparse_vector, kNN search, HNSW, ELSER, Elastic Learned Sparse EncodeR, hybrid search, RRF, semantic_text
- 정의 ES 의 벡터 검색 = 임베딩 기반 의미 검색. kNN (Approximate Nearest Neighbor) 으로 수억 벡터 안에서 가까운 K개 찾기. 2026 시점의 E…
- [Spring AI] 개요: ChatClient, ChatModel, Prompt spring ← 1
- 별칭: Spring AI, ChatClient, ChatModel, Prompt, PromptTemplate, spring ai overview, 스프링 AI
- 정의 Spring AI 는 LLM (OpenAI, Anthropic, Vertex AI, Bedrock, Ollama 등) 을 Spring 스타일로 사용하게 해 주는 abstra…
- [Spring AI] RAG: Embedding, VectorStore, QuestionAnswerAdvisor spring ← 1
- 별칭: Spring AI RAG, Embedding, EmbeddingModel, VectorStore, PgVector, Chroma, QuestionAnswerAdvisor, DocumentReader, ETL pipeline
- 정의 RAG (Retrieval Augmented Generation) 는 LLM 의 지식 한계 (학습 cutoff, 사내 문서 부재) 를 극복하기 위해, 질문 시점에 외부 지식…
- [Spring Batch] 대용량 배치 처리 spring ← 1
- 별칭: spring batch, Job, Step, ItemReader, ItemProcessor, ItemWriter, chunk processing
- 정의 Spring Batch는 대용량 데이터의 배치 처리 (ETL, 일괄 통계, 마이그레이션 등)를 위한 프레임워크. Job → Step → ItemReader → ItemPro…
- [Spring Boot] 자동 구성과 @SpringBootApplication spring ← 8
- 별칭: spring boot autoconfiguration, EnableAutoConfiguration, starter dependencies, spring.factories, AutoConfiguration
- 정의 Spring Boot의 핵심 가치 = 자동 구성(autoconfiguration). classpath의 라이브러리를 보고 합리적 기본 설정으로 Bean 등록. Tomcat이…
- [Spring Boot] Actuator 커스텀: Endpoint, HealthIndicator, Metric spring
- 별칭: Actuator custom endpoint, Custom HealthIndicator, Custom Metric Micrometer, @Endpoint, @ReadOperation, Actuator 확장, 스프링 액추에이터 커스텀
- 정의 Spring Boot Actuator 의 확장 포인트. 기본 endpoint ( , , ) 외에 도메인 정보 노출: - : 새로운 endpoint - : 의 sub-heal…
- [Spring Boot] Build Plugins: Maven, Gradle, Executable JAR, OCI Image spring ← 2
- 별칭: Spring Boot Maven Plugin, Spring Boot Gradle Plugin, Executable JAR, Layered JAR, OCI image, bootBuildImage, 스프링 부트 빌드
- 정의 Spring Boot 의 빌드 플러그인은 표준 jar 가 아닌 executable jar (fat jar / uber jar) 생성. 추가로 OCI 이미지, native i…
- [Spring Boot] Database Initialization: schema.sql, Flyway, Liquibase spring ← 3
- 별칭: Spring Boot DB initialization, schema.sql, data.sql, Flyway, Liquibase, DB migration, DDL auto, 스프링 부트 DB 초기화
- 정의 DB 스키마 / 데이터를 application 시작 시점에 자동 설정하는 메커니즘. 세 가지 접근: 1. / (Spring Boot 내장, 단순) 2. Hibernate (…
- [Spring Boot] Deployment: 전통 WAR, Cloud, Systemd spring ← 3
- 별칭: Spring Boot Deployment, WAR deployment, Cloud Foundry Spring Boot, Heroku Spring Boot, AWS Beanstalk Spring Boot, systemd service Spring Boot, 스프링 부트 배포
- 정의 컨테이너 / K8s 외의 Spring Boot 배포 옵션: - Traditional WAR: 외부 Tomcat / Jetty (legacy 환경) - systemd serv…
- [Spring Boot] Docker / Kubernetes 배포 spring ← 4
- 별칭: Spring Boot Docker, Spring Boot Kubernetes, K8s deployment, Helm Spring Boot, Probe health liveness readiness, Docker Compose Spring Boot, 스프링 부트 컨테이너 배포
- 정의 Spring Boot 앱을 컨테이너로 배포. 두 가지 주류: - Docker / Docker Compose: 단일 호스트, 개발 + 소규모 운영 - Kubernetes: 멀…
- [Spring Boot] Embedded Web Server 설정과 튜닝 spring ← 4
- 별칭: Spring Boot Embedded Server, Tomcat tuning, Netty tuning, Jetty tuning, Undertow tuning, WebServerFactoryCustomizer, server.port, 내장 웹 서버
- 정의 Spring Boot 의 starter 가 내장 서버를 함께 번들. 별도 WAR 배포 / 외부 Tomcat 불필요. 기본 매핑: - → Tomcat (기본) - → Nett…
- [Spring Boot] Hibernate Naming Strategy spring ← 2
- 별칭: Hibernate Naming Strategy, PhysicalNamingStrategy, ImplicitNamingStrategy, SpringPhysicalNamingStrategy, snake_case naming, camelCase to snake_case, JPA 컬럼명 매핑, 하이버네이트 네이밍 전략
- 정의 Hibernate 가 entity 클래스 / 필드명 → DB table / column 명으로 변환하는 규칙. 두 단계로 분리: | 단계 | 역할 | 인터페이스 | |---…
- [Spring Boot] Logging: Logback, Log4j2, Structured Logging spring ← 2
- 별칭: Spring Boot Logging, logback-spring.xml, log4j2-spring.xml, structured logging, MDC Spring Boot, JSON logging, spring boot 로그 설정
- 정의 Spring Boot 의 기본 로거는 Logback ( 가 자동 포함). SLF4J facade 위에서 동작. 교체 가능: - : Log4j2 (높은 처리량, async l…
- [Spring Boot] Multi-DataSource: 복수 DB 연결과 트랜잭션 spring ← 2
- 별칭: Spring Boot Multi DataSource, Multiple DataSource, ChainedTransactionManager, RoutingDataSource, Read Replica Spring Boot, 복수 데이터소스, 다중 DB
- 정의 한 Spring Boot 앱이 여러 DB / 여러 스키마 에 접근. 패턴 세 가지: 1. 물리적으로 분리된 DB (orders DB + analytics DB) 2. Rea…
- [Spring Boot] Properties 외부화: PropertySource, Profile, @ConfigurationProperties spring ← 4
- 별칭: Spring Boot Properties, Externalized Configuration, application.yml, application.properties, PropertySource, @ConfigurationProperties Spring Boot, Spring Boot 환경 설정
- 정의 Spring Boot 는 설정값을 15가지 소스에서 우선순위로 병합. 같은 키가 여러 곳에 있으면 우선순위 높은 게 이김. 코드 변경 없이 환경별 설정 가능. 핵심 소스 (…
- [Spring Boot] SSL/HTTPS 설정 spring ← 2
- 별칭: Spring Boot SSL, Spring Boot HTTPS, TLS, keystore, PEM Spring Boot, SSL Bundle, mutual TLS, mTLS spring
- 정의 Spring Boot 에서 HTTPS / TLS 설정 방법. JKS (legacy), PKCS12, PEM (modern), SSL Bundles (Spring Boot 3…
- [Spring Boot] YAML Configuration: multi-document, profiles, anchors spring
- 별칭: Spring Boot YAML, application.yml, YAML profile, YAML anchor, spring config import, 스프링 YAML 설정
- 정의 Spring Boot 는 와 모두 지원. YAML 권장: 계층 구조 가독성, multi-document, anchors / aliases, list / map native …
- [Spring Cloud] Eureka, Config, Gateway, OpenFeign spring ← 5
- 별칭: spring cloud, spring cloud gateway, eureka discovery, config server, openfeign, circuit breaker
- 정의 Spring Cloud는 Spring Boot 기반 마이크로서비스 인프라 패턴 (service discovery, config server, gateway, circuit …
- [Spring Data] MongoDB: MongoTemplate, MongoRepository spring
- 별칭: Spring Data MongoDB, MongoTemplate, MongoRepository, ReactiveMongoTemplate, @Document, spring mongo, 스프링 몽고
- 정의 Spring Data MongoDB 는 MongoDB 를 Spring 스타일로 사용하는 추상화. JPA 와 비슷한 Repository 패턴 + MongoDB native q…
- [Spring MVC] Argument Resolver: Custom HandlerMethodArgumentResolver spring ← 1
- 별칭: HandlerMethodArgumentResolver, HandlerMethodReturnValueHandler, @AuthenticationPrincipal, @RequestAttribute, @SessionAttribute, Custom annotation, ArgumentResolver
- 정의 HandlerMethodArgumentResolver = 컨트롤러 메서드 인자를 어떻게 채울지 결정 하는 확장점. Spring 의 수십 개 표준 resolver + 커스텀 …
- [Spring MVC] Content Negotiation: Accept 헤더, MediaType, ContentNegotiationStrategy spring ← 1
- 별칭: Content Negotiation, Accept header, MediaType, ContentNegotiationStrategy, produces, consumes, HttpMessageConverter, Jackson
- 정의 Content Negotiation = 같은 endpoint 가 Accept 헤더 에 따라 다른 포맷 응답. JSON / XML / HTML / CSV 등. 결정 우선순위 …
- [Spring MVC] Exception Handling: @ExceptionHandler, ControllerAdvice, ProblemDetail spring ← 3
- 별칭: @ExceptionHandler, @ControllerAdvice, @RestControllerAdvice, ProblemDetail, RFC 7807, ResponseEntityExceptionHandler, ErrorAttributes, global exception handler
- 정의 Spring MVC 의 예외 처리 3 계층: 1. - 컨트롤러 내부 2. / - 전역 3. 상속 - Spring 의 표준 예외 자동 처리 처리 우선순위 컨트롤러 내부 컨트롤…
- [Spring MVC] Form Handling: @ModelAttribute, DataBinder, conversion spring ← 4
- 별칭: @ModelAttribute, Form binding, WebDataBinder, ConversionService, PropertyEditor, InitBinder, Formatter, BindingErrorProcessor
- 정의 Form Handling = HTML form 의 요청 파라미터 → Java 객체 변환 + 검증 + 에러 처리. 핵심: + + . 기본 흐름 자세한 BindingResult…
- [Spring MVC] Model + BindingResult: 뷰 모델과 바인딩 오류 처리 spring ← 5
- 별칭: Spring Model, BindingResult, ModelAndView, RedirectAttributes, @ModelAttribute, Errors, FieldError, ObjectError
- 정의 Model = 컨트롤러 → 뷰 (Thymeleaf, JSP) 로 데이터 전달. BindingResult = 요청 파라미터 → 객체 바인딩 결과 + 오류. 둘 다 Spring…
- [Spring MVC] Thymeleaf: 서버 사이드 템플릿 엔진 spring ← 2
- 별칭: Thymeleaf, spring thymeleaf, th:each, th:if, th:object, th:field, Thymeleaf fragment, th:fragment, th:replace, layout dialect
- 정의 Thymeleaf = Java 서버 사이드 HTML 템플릿 엔진. natural template 철학 (브라우저에서 그대로 열어도 동작). Spring Boot 가 기본 권…
- [Spring Security] OAuth2 Authorization Code Flow + PKCE spring ← 3
- 별칭: OAuth2 Authorization Code, OAuth2 Client, PKCE, OAuth2 Resource Server, Authorization Code Grant, OAuth2 Flow, 스프링 OAuth2
- 정의 가 OAuth2 Login (소셜 로그인) 의 개요를 다룬다면, 이 페이지는 표준 Authorization Code Grant 의 전체 흐름과 PKCE, refresh to…
- [Spring Security] Session Management와 Remember-Me spring ← 2
- 별칭: Spring Security Session, SessionManagement, Remember-Me, concurrent session, session fixation, Spring Session, 세션 관리
- 정의 가 JWT / stateless 위주를 다룬다면, 이 페이지는 session-based 인증 의 세부 동작 (생성 정책, 동시 세션 제한, fixation 방어, remem…
- [Spring Security] Testing: @WithMockUser, MockMvc, jwt(), oauth2Login() spring ← 2
- 별칭: Spring Security Test, @WithMockUser, @WithUserDetails, MockMvc security, csrf().with, jwt().jwt, 스프링 시큐리티 테스트
- 정의 Spring Security 가 적용된 컨트롤러를 테스트할 때 흔한 어려움: - 매번 실제 로그인 절차를 거쳐야 인증된 요청 가능 - CSRF token 이 없으면 POST…
- [Spring Validation] Custom Validator: ConstraintValidator, Groups, cross-field spring
- 별칭: ConstraintValidator, Custom @Valid annotation, Validation Groups, cross-field validation, @AssertTrue, @GroupSequence, ConstraintValidatorContext
- 정의 기본 , 등으로 부족한 도메인 검증 을 인터페이스 로 구현. 재사용 가능한 어노테이션 형태. 기본 validation 의 일반은 . 패턴 3가지 1. Constraint C…
- [Spring] @Autowired 해결 전략: @Qualifier, @Primary, byType spring ← 4
- 별칭: @Autowired, @Qualifier, @Primary, byType byName, autowire resolution, spring 의존성 해결, ObjectProvider
- 정의 가 의 기초 (생성자/필드/setter 주입) 를 다룬다면, 이 페이지는 같은 타입의 Bean 이 여러 개일 때 어떻게 하나를 골라내는지 의 해결 전략을 다룬다. 기본 알고…
- [Spring] @Conditional, Profile, @ConfigurationProperties spring ← 7
- 별칭: spring conditional, @Profile, @ConfigurationProperties, auto-configuration condition
- 정의 Spring Boot는 조건부 Bean 등록 메커니즘을 제공한다. classpath, property, 다른 Bean 유무 등에 따라 자동 구성을 활성화/비활성화. , 어노…
- [Spring] @Scheduled와 @Async spring ← 5
- 별칭: spring scheduled, spring async, task scheduler, TaskExecutor, cron expression
- 정의 Spring은 @Scheduled (정기 작업)와 @Async (비동기 메서드)를 어노테이션으로 제공. ThreadPool, TaskScheduler 설정 가능. Quart…
- [Spring] 개요: Framework, Boot, Cloud spring ← 2
- 별칭: spring overview, spring framework, spring boot, spring ecosystem
- 정의 Spring은 Java 엔터프라이즈 표준 프레임워크 그룹. 2003년 Rod Johnson이 EJB 대안으로 시작. IoC/DI가 핵심. 현재는: - Spring Frame…
- [Spring] Actuator: health, metrics, info spring ← 7
- 별칭: spring actuator, spring boot actuator, /actuator, Micrometer, health endpoint
- 정의 Spring Boot Actuator는 프로덕션용 monitoring/management endpoint 자동 제공. health check, metrics, env, be…
- [Spring] AMQP / RabbitMQ spring ← 2
- 별칭: spring amqp, rabbittemplate, @RabbitListener, exchange, queue binding
- 정의 Spring AMQP는 RabbitMQ 등 AMQP 0-9-1 호환 브로커의 Spring 통합. (publisher), (consumer), exchange/queue 자동…
- [Spring] AOP: @Aspect, Pointcut, Advice spring ← 8
- 별칭: spring aop, AspectJ, @Aspect, @Before, @Around, pointcut expression
- 정의 AOP (Aspect-Oriented Programming)는 cross-cutting concerns(로깅, 트랜잭션, 보안 등)를 비즈니스 코드에서 분리하는 기법. Sp…
- [Spring] Bean Lifecycle: 초기화와 소멸 콜백 spring ← 5
- 별칭: spring bean lifecycle, @PostConstruct, @PreDestroy, InitializingBean, DisposableBean, afterPropertiesSet, Bean 생명주기, 스프링 빈 라이프사이클
- 정의 가 Bean 등록과 주입 을 다룬다면, 이 페이지는 등록 이후 생성 → 사용 → 소멸 사이에 끼어드는 콜백을 다룬다. Spring 컨테이너가 단순히 객체를 만들고 끝내는 게…
- [Spring] Bean Scope 심화: Singleton, Prototype, Web Scope spring ← 3
- 별칭: spring bean scope, singleton scope, prototype scope, request scope, session scope, scoped proxy, @Scope, Bean 스코프
- 정의 가 5가지 scope 의 개요 를 다룬다면, 이 페이지는 그 중 함정 (prototype-into-singleton) 과 해결 패턴 (ScopedProxy, ObjectPr…
- [Spring] Bean Validation: @Valid, @NotBlank, custom spring ← 11
- 별칭: spring validation, bean validation, Jakarta validation, @Valid, @Validated, custom validator
- 정의 Spring은 Jakarta Bean Validation (JSR-380)을 표준으로 사용. , , 등 어노테이션으로 선언적 검증. Spring MVC가 로 자동 통합. 설…
- [Spring] BeanPostProcessor와 BeanFactoryPostProcessor spring ← 5
- 별칭: BeanPostProcessor, BeanFactoryPostProcessor, spring extension point, AutowiredAnnotationBeanPostProcessor, Spring 확장점, BPP, BFPP
- 정의 Spring 컨테이너의 2가지 확장점: - BeanFactoryPostProcessor (BFPP): Bean 인스턴스가 만들어지기 전, (메타데이터) 을 수정. 클래스명,…
- [Spring] Cache: @Cacheable, @CacheEvict, Redis spring ← 3
- 별칭: spring cache, @Cacheable, @CacheEvict, @CachePut, spring cache redis, CaffeineCache
- 정의 Spring Cache는 메서드 결과를 캐시하는 추상화. 한 줄로 메모이제이션. 백엔드는 Caffeine, Redis, Hazelcast, EhCache 등 자유롭게. 캐시…
- [Spring] CompositeMap & CompositeIterator spring
- 별칭: CompositeMap, CompositeIterator, org.springframework.util.CompositeMap, composite map
- 정의 는 두 개의 Map 을 하나의 view 로 합쳐서 보여주는 read-mostly 자료구조. 첫 번째 Map 이 우선, 없으면 두 번째 Map 을 본다. 는 여러 Iterat…
- [Spring] ConcurrentLruCache spring
- 별칭: ConcurrentLruCache, org.springframework.util.ConcurrentLruCache, Spring LRU Cache
- 정의 는 Spring 5.3+ 의 thread-safe LRU 캐시. 크기 제한이 있고 가장 오래 안 쓰인 entry 부터 제거. 내부적으로 + (또는 비슷한 자료구조) 조합으로…
- [Spring] ConcurrentReferenceHashMap spring ← 1
- 별칭: ConcurrentReferenceHashMap, org.springframework.util.ConcurrentReferenceHashMap, Spring ConcurrentReferenceHashMap, weak concurrent map, soft concurrent map
- 정의 는 Spring Framework 의 핵심 유틸리티. 의 동시성 과 / 의 GC 친화성 을 결합한 Map. JDK 표준에 없는 조합. 메모리 압박 시 GC 가 entry 를…
- [Spring] DispatcherServlet: Front Controller 내부 spring ← 9
- 별칭: DispatcherServlet, FrontController, HandlerMapping, HandlerAdapter, ViewResolver, spring front controller, 디스패처 서블릿
- 정의 가 / 사용법 을 다룬다면, 이 페이지는 그 모든 요청을 받아 처리하는 의 내부 메커니즘 을 다룬다. 은 본질적으로 하나의 Servlet (). Front Controlle…
- [Spring] Events: @EventListener, @TransactionalEventListener spring ← 1
- 별칭: Spring Events, @EventListener, @TransactionalEventListener, ApplicationEventPublisher, ApplicationEvent, spring 이벤트, 이벤트 발행 구독
- 정의 Spring 의 in-process pub-sub. 모놀리식 앱 안에서 모듈 간 의존성을 줄이는 도구. 외부 메시지 브로커 (Kafka, RabbitMQ) 와 다른 점: 같…
- [Spring] HandlerInterceptor: preHandle, postHandle, afterCompletion spring ← 4
- 별칭: HandlerInterceptor, spring interceptor, preHandle postHandle afterCompletion, WebMvcConfigurer, 스프링 인터셉터, AsyncHandlerInterceptor
- 정의 HandlerInterceptor 는 내부에서 handler (Controller 메서드) 실행 전후 에 끼어드는 Spring MVC 전용 메커니즘. Filter 와 비슷하…
- [Spring] IoC와 DI: Bean, ApplicationContext, @Autowired spring ← 10
- 별칭: spring ioc, spring di, dependency injection, ApplicationContext, BeanFactory, constructor injection
- 정의 IoC (Inversion of Control)는 객체 생성/생명주기 제어를 프레임워크가 가져가는 원칙. DI (Dependency Injection)는 그 구현 방법. S…
- [Spring] JdbcTemplate, NamedParameterJdbcTemplate spring ← 4
- 별칭: spring jdbc, JdbcTemplate, NamedParameterJdbcTemplate, RowMapper, spring sql
- 정의 JdbcTemplate은 JPA 없이 raw SQL을 안전하게 다루는 Spring 표준. boilerplate 제거 (try-with-resources, exception …
- [Spring] LinkedCaseInsensitiveMap spring
- 별칭: LinkedCaseInsensitiveMap, org.springframework.util.LinkedCaseInsensitiveMap, case insensitive map
- 정의 는 을 기반으로 key 비교를 대소문자 무시 로 하는 Map. 단, 원본 key (대소문자 보존) 도 유지. HTTP 헤더 같은 도메인에서 과 을 같은 key 로 다뤄야 할…
- [Spring] MultiValueMap & LinkedMultiValueMap spring
- 별칭: MultiValueMap, LinkedMultiValueMap, org.springframework.util.MultiValueMap, org.springframework.util.LinkedMultiValueMap, MultiMap, Spring MultiValueMap
- 정의 는 하나의 key 에 여러 value 가 매핑되는 Map 인터페이스. 형식적으로는 의 sugared 형태. 는 그 기본 구현체, 내부적으로 를 보관 (삽입 순서 유지). S…
- [Spring] Native Image: GraalVM, 빠른 시작 spring ← 2
- 별칭: spring native, graalvm native, AOT compilation, spring boot native, buildpacks native
- 정의 Spring Native (3.0+)는 Spring Boot 앱을 GraalVM Native Image로 컴파일해 즉시 시작·낮은 메모리·작은 바이너리를 얻는다. JIT 없…
- [Spring] Reflection 유틸: ReflectionUtils, AnnotationUtils, ResolvableType spring ← 1
- 별칭: spring reflection, ReflectionUtils, AnnotationUtils, MethodIntrospector, BeanUtils, ResolvableType, AopUtils, 스프링 리플렉션
- 정의 Spring 은 reflection 을 헤비하게 쓴다. DI 처리, AOP 프록시, 해결, Jackson 통합, JPA entity 매핑 모두 reflection 위에서 동…
- [Spring] RequestContextHolder, LocaleContextHolder: ThreadLocal 기반 요청 컨텍스트 spring ← 11
- 별칭: RequestContextHolder, LocaleContextHolder, spring request context, ServletRequestAttributes, 스프링 요청 컨텍스트, RequestContextFilter
- 정의 Spring 은 HTTP 요청 / 응답 / locale / 트랜잭션 / 인증 같은 요청 범위 데이터를 ThreadLocal 에 저장 해 전역 노출한다. 메서드 인자로 일일이…
- [Spring] Resilience4j: CircuitBreaker, Retry, RateLimiter spring ← 1
- 별칭: resilience4j, circuit breaker pattern, spring retry, rate limiter, bulkhead
- 정의 Resilience4j는 Java용 fault-tolerance 라이브러리. Hystrix(maintenance) 대체. Spring Boot 통합으로 어노테이션 ( , ,…
- [Spring] RestClient, WebClient, RestTemplate spring ← 4
- 별칭: spring restclient, RestTemplate deprecated, WebClient, HTTP client spring, spring 6 RestClient
- 정의 Spring HTTP 클라이언트 3종: - RestTemplate: 동기, 전통 (5.0+ maintenance) - WebClient: reactive, async/syn…
- [Spring] Security: Filter Chain, JWT, OAuth2 spring ← 12
- 별칭: spring security, SecurityFilterChain, JWT, OAuth2, PasswordEncoder, authentication
- 정의 Spring Security는 인증·인가의 사실상 표준. 서블릿 필터 체인 위에 다양한 인증/권한 처리를 모듈식으로. 6.0+ 부터 Lambda DSL 표준, Bean 방식…
- [Spring] SpEL: Spring Expression Language spring
- 별칭: spring spel, expression language, @Value SpEL, spring expression, ExpressionParser
- 정의 SpEL (Spring Expression Language)은 Spring의 강력한 표현 언어. , , 등 어노테이션 내에서 동적 표현 평가. property 조회, 메서드…
- [Spring] Spring Data JPA: Repository, Query Methods spring ← 22
- 별칭: spring data jpa, JpaRepository, query methods, @Query, Specifications, Pageable
- 정의 Spring Data JPA는 JPA(Hibernate) 위에 Repository 추상화를 얹어 boilerplate를 제거. 인터페이스만 정의하면 Spring이 구현체 자…
- [Spring] Spring Data Redis spring
- 별칭: spring redis, RedisTemplate, redis pub/sub, lettuce, redis cache spring
- 정의 Spring Data Redis는 Redis 클라이언트(Lettuce, Jedis)의 Spring 추상화. , (저수준), 통합, (객체 매핑), pub/sub 등. 설정 …
- [Spring] Spring for Apache Kafka spring ← 3
- 별칭: spring kafka, KafkaTemplate, @KafkaListener, kafka producer, kafka consumer
- 정의 Spring Kafka는 Apache Kafka 클라이언트의 Spring 친화 래퍼. (producer), (consumer), (topic 관리), Spring Boot …
- [Spring] Spring MVC: @RestController, @RequestMapping spring ← 20
- 별칭: spring mvc, RestController, RequestMapping, PathVariable, RequestBody, ResponseEntity
- 정의 Spring MVC는 Servlet 기반 동기 웹 프레임워크. 이 요청을 받아 핸들러(컨트롤러 메서드)에 라우팅. REST API와 전통 MVC(HTML) 모두 지원. We…
- [Spring] Stereotype 어노테이션: @Component, @Service, @Repository, @Controller spring ← 4
- 별칭: @Component, @Service, @Repository, @Controller, @RestController, spring stereotype, 스프링 스테레오타입, @ComponentScan
- 정의 Stereotype 어노테이션 은 클래스가 Spring 컨테이너의 어떤 역할 (role) 인지를 의미적으로 표시한다. 모두 를 메타 어노테이션 으로 가진 specializa…
- [Spring] Testing: @SpringBootTest, MockMvc, Testcontainers spring ← 2
- 별칭: spring test, SpringBootTest, WebMvcTest, DataJpaTest, MockMvc, Testcontainers
- 정의 Spring Boot Test는 단위/슬라이스/통합 테스트 모두 지원. 가 JUnit 5, Mockito, AssertJ, Hamcrest, JsonPath 포함. 슬라이스…
- [Spring] Transaction: @Transactional, propagation, isolation spring ← 16
- 별칭: spring transaction, @Transactional, propagation, isolation level, rollback, PlatformTransactionManager
- 정의 Spring 트랜잭션은 AOP 기반 선언형 트랜잭션 관리. 한 줄로 메서드 전체를 트랜잭션 범위로. JDBC, JPA, MongoDB 등 backend에 동일 API. 기본…
- [Spring] Virtual Threads (Project Loom): Spring 6.1+ spring ← 1
- 별칭: Virtual Threads, Project Loom, spring loom, Virtual Thread Executor, spring 가상 스레드, loom integration
- 정의 Virtual Thread 는 JDK 21+ 에서 GA 된 경량 thread. JVM 이 OS thread (carrier) 위에 가상 thread 를 M:N 매핑. 수백만…
- [Spring] WebFlux: Reactive, Mono, Flux spring ← 11
- 별칭: spring webflux, reactor, Mono, Flux, spring reactive
- 정의 Spring WebFlux는 Project Reactor 기반의 비동기·non-blocking 웹 프레임워크. Spring MVC와 별개. Netty 기본 (Tomcat도 …
- [Spring] WebSocket과 STOMP spring
- 별칭: spring websocket, spring stomp, WebSocketHandler, messaging, spring sock-js
- 정의 Spring은 raw WebSocket API와 메시징 프로토콜 STOMP 둘 다 지원한다. STOMP는 publish/subscribe 기반 메시지 broker ( , ,…
- [SQL] Data Types sql ← 7
- 별칭: SQL Data Types, SQL 데이터 타입, SQL Types, DATE, TIMESTAMP, JSON, JSONB, VARCHAR, NUMERIC
- 정의 SQL 의 컬럼은 타입 을 가진다. 가능한 값의 도메인, 가능한 연산, 정렬 순서, 인덱스 종류, 저장 크기가 타입에 따라 결정된다. 같은 의미의 타입도 dialect 마다…
- [SQL] DCL TCL sql ← 6
- 별칭: SQL DCL TCL, SQL DCL, SQL TCL, GRANT, REVOKE, Transaction, BEGIN, COMMIT, ROLLBACK, SAVEPOINT, ACID
- 정의 - DCL (Data Control Language): 권한. , . - TCL (Transaction Control Language): 트랜잭션 경계. , , , . 같이…
- [SQL] DDL sql ← 6
- 별칭: SQL DDL, DDL, Data Definition Language, CREATE TABLE, ALTER TABLE, DROP TABLE
- 정의 DDL (Data Definition Language) 은 스키마를 정의/변경/제거 하는 SQL 의 하위 집합. 대상은 테이블, 인덱스, 뷰, 시퀀스, 스키마, 도메인 등.…
- [SQL] DML sql ← 8
- 별칭: SQL DML, DML, Data Manipulation Language, SELECT, INSERT, UPDATE, DELETE, Upsert
- 정의 DML (Data Manipulation Language) 은 데이터 자체를 조회/삽입/수정/삭제 하는 SQL 의 하위 집합. 일상 쿼리의 99% 가 여기에 속한다. | 명…
- [SQL] GROUP BY sql ← 6
- 별칭: SQL GROUP BY, GROUP BY, HAVING, Aggregation, SQL Aggregate, Window Function
- 정의 는 데이터를 키별로 그룹으로 나누고 각 그룹에 집계 함수 (aggregate) 를 적용해 그룹당 한 행으로 줄이는 연산. SQL 의 split-apply-combine. 와…
- [SQL] JOIN sql ← 5
- 별칭: SQL JOIN, INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL OUTER JOIN, CROSS JOIN, SELF JOIN
- 정의 JOIN 은 두 개 이상의 테이블을 공통 컬럼 (보통 키) 으로 결합해 한 결과셋으로 만드는 연산. SQL 의 관계 모델 핵심. 종류는 5 가지: , , , , . 같은 테…
- [Voice AI] 음성 에이전트 아키텍처: Cascading / Streaming / S2S + Latency Budget ai ← 16
- 별칭: voice agent architecture, cascaded pipeline, streaming pipeline, speech-to-speech, latency budget, end-to-end voice
- 정의 실시간 음성 AI 의 3가지 패턴. 각자 지연 vs 유연성 vs 비용 트레이드오프. 3 패턴 비교 | | Cascading | Streaming | S2S | |---|--…
- [Voice AI] 음성 우선 프롬프트 + Function Calling + Structured Output ai ← 2
- 별칭: voice-first prompt, function calling, tool use, structured output, JSON schema, voice prompt design, persona
- 음성 우선 프롬프트 설계 음성 답변 = 귀로 듣는다. 텍스트 답변과 완전 다르게 짜야 한다. 음성 프롬프트의 핵심 원칙 | 원칙 | 의미 | |---|---| | 짧게 | 한 답…
- [Voice AI] 파이프라인 디커플링: Redis Streams / Kafka 적용 distributed-systems ← 1
- 별칭: voice pipeline decoupling, ASR LLM TTS decoupling, voice queue, stateless orchestrator, horizontal scaling voice
- 정의 대규모 음성 에이전트 = STT/LLM/TTS 를 분리 배포 + 메시지 큐로 디커플링. 수평 확장 + 독립 실패. [!NOTE] 소규모 (수십 동시 통화) 는 monolit…
- [Voice AI] Agent 패턴: Supervisor, Handoff, ReAct, HITL ai ← 6
- 별칭: Supervisor pattern, Agent Handoff, ReAct, Human-in-the-Loop, HITL, multi-agent, agent orchestration
- 정의 복잡한 음성 에이전트 = 여러 sub-agent + 조정 패턴. 단일 LLM 으로 처리하기 어려운 흐름. [!IMPORTANT] 각 sub-agent 내부는 VAD → ST…
- [Voice AI] LLM Serving: vLLM, PagedAttention, continuous batching ai ← 2
- 별칭: vLLM, PagedAttention, continuous batching, LLM serving, TTFT, KV cache, SSE streaming, TGI, SGLang
- 정의 LLM Serving = 자체 호스팅 LLM 을 낮은 TTFT + 높은 throughput 으로 제공. 음성 에이전트의 LLM 단계 지연 결정. | 도구 | 특징 | |--…
- [Voice AI] P50/P95/P99: latency 분포와 SLO devops ← 4
- 별칭: P50, P95, P99, latency percentile, tail latency, histogram, HDR histogram, tdigest
- 정의 P50 / P95 / P99 = latency 분포의 분위수. 평균은 outlier 에 가려져 무의미. 음성 에이전트의 사용자 경험 은 p95/p99 가 결정. [!IMPO…
- [Voice AI] Pipecat vs LiveKit Agents: 프레임워크 비교 ai ← 4
- 별칭: Pipecat, LiveKit Agents, Vapi, Retell, voice agent framework, voice pipeline, Frame processor, build vs buy
- 정의 2026 시점 voice agent 프레임워크 4가지 선택지: | | Pipecat | LiveKit Agents | Vapi / Retell | 자체 구축 | |---|-…
- [Voice AI] Speech-to-Speech: OpenAI Realtime, Gemini Live, Moshi voice ← 2
- 별칭: Speech-to-Speech, S2S, OpenAI Realtime API, GPT-4o Realtime, Gemini Live, Moshi, audio-native LLM, voice-to-voice
- 정의 S2S (Speech-to-Speech) = STT → LLM → TTS 직렬 파이프라인 우회, 오디오 → 오디오 직접 처리. 톤/감정 보존 + < 300ms latency…
- [Voice AI] STT 모델: Whisper, Deepgram, AssemblyAI, CLOVA voice ← 3
- 별칭: STT, Speech-to-Text, ASR, Whisper, Deepgram Nova, AssemblyAI Universal, Naver CLOVA Speech, Google Speech-to-Text, Azure Speech
- 정의 STT (Speech-to-Text) / ASR (Automatic Speech Recognition) = 음성 → 텍스트 변환. 2026 시점 전사 정확도 인간 수준, 실…
- [Voice AI] STT 스트리밍: partial vs final, endpointing, gRPC/WS voice ← 6
- 별칭: STT streaming, partial transcript, final transcript, endpointing, time-to-final, interim result, gRPC streaming STT, WebSocket STT
- 정의 스트리밍 STT = 오디오 청크 가 들어올 때마다 부분 결과 (partial) 를 즉시 반환 + 발화 종료 시 최종 결과 (final) 확정. [!IMPORTANT] 대화형…
- [Voice AI] TTS 모델: ElevenLabs, Cartesia, Edge TTS, 한국어 voice ← 4
- 별칭: TTS, Text-to-Speech, neural TTS, ElevenLabs, Cartesia Sonic, Edge TTS, OpenAI TTS, Naver Clova Voice, Typecast, voice cloning, vocoder
- 정의 TTS (Text-to-Speech) = 텍스트 → 음성 합성. 2026 시점 사람과 구분 어려운 자연도 + < 200ms first audio + voice cloning…
- [Voice AI] TTS 스트리밍 + SSML: TTFB, sentence aggregation, 청킹 voice ← 6
- 별칭: TTS streaming, SSML, Speech Synthesis Markup Language, sentence aggregation, TTFB, time-to-first-audio, chunked TTS, audio streaming
- 정의 TTS 스트리밍 = 텍스트 일부만 받아도 즉시 합성 + 오디오 청크 단위 전송. TTFB (Time-to-First-Audio) 최소화 = 대화 자연스러움의 핵심. TTFB…
- [Voice AI] Turn Detection + Barge-in + AEC: 자연스러운 대화 voice ← 6
- 별칭: turn detection, semantic turn detection, barge-in, interruption, full duplex, AEC, echo cancellation, speak-or-listen, duplex orchestration
- 정의 자연스러운 음성 대화의 3 요소: 1. Turn Detection - 사용자가 말끝났는지 정확히 판단 2. Barge-in - 에이전트가 말하는 중에 사용자가 끼어들 수 있…
- [Voice AI] VAD: Silero, 에너지 기반, endpointing 임계값 voice ← 6
- 별칭: VAD, Voice Activity Detection, Silero VAD, WebRTC VAD, 음성 활동 감지, endpointing, energy-based VAD, neural VAD
- 정의 VAD (Voice Activity Detection) = 오디오 스트림에서 음성 vs 비음성 (침묵, 노이즈) 구분. 음성 에이전트의 발화 시작 / 종료 감지에 필수. 종…
- [Voice AI] Voice RAG: 지연 병목 + 예측적 프리페치 ai ← 1
- 별칭: voice RAG, voice agent RAG, speculative retrieval, predictive prefetch, voice latency RAG
- 정의 Voice RAG = 음성 에이전트에 RAG (Retrieval-Augmented Generation) 결합. 벡터 DB 조회 가 지연 누적 의 큰 원인이 되므로 예측적 프…
- [Voice AI] WebRTC: PeerConnection, ICE, STUN/TURN, SFU network ← 4
- 별칭: WebRTC, RTCPeerConnection, ICE, STUN, TURN, SFU, MCU, DataChannel, DTLS-SRTP, getUserMedia
- 정의 WebRTC = 브라우저 / 모바일 P2P 실시간 미디어 + 데이터 표준. 음성, 비디오, 데이터 채널. 2026 시점 voice agent + 영상 통화 + 화면 공유 의…
- [Voice AI] WebSocket 미디어 스트림: 양방향 풀듀플렉스, 프레임 버퍼링 network
- 별칭: WebSocket media stream, full duplex, frame buffering, PCM streaming, Twilio Media Streams, binary websocket
- 정의 WebSocket Media Stream = 양방향 바이너리 오디오 스트림. WebRTC 가 어려운 전화 / 서버↔서버 / 옛 클라이언트 에서 표준. 자세한 일반 WebSo…
- [Voice] Neural TTS 내부: Tacotron, FastSpeech, VITS, HiFi-GAN voice
- 별칭: Neural TTS architecture, Tacotron, FastSpeech, VITS, HiFi-GAN, BigVGAN, StyleTTS 2, flow matching TTS, vocoder
- 정의 Neural TTS 의 진화: 2단계 (acoustic + vocoder) → end-to-end. 2026 시점 VITS 계열 + Flow matching 이 상용 표준.…
- [Voice] Whisper 내부: encoder-decoder, log-mel, tokenizer voice ← 1
- 별칭: Whisper architecture, Whisper encoder, Whisper decoder, log-mel spectrogram, Whisper tokenizer, Whisper timestamps, faster-whisper CTranslate2
- 정의 Whisper = OpenAI 의 encoder-decoder Transformer STT. 680K 시간 다국어 supervised training. 2022 공개, 20…
- 0-1 BFS algorithm ← 3
- 별칭: 0-1 bfs, 0-1 너비 우선 탐색, deque BFS
- 정의 0-1 BFS 는 간선 가중치가 0 또는 1만 존재하는 그래프에서 최단 경로를 O(V + E) 에 구하는 알고리즘. deque 를 사용해 가중치 0 간선은 앞에, 가중치 1…
- 2-SAT (2-Satisfiability) algorithm ← 1
- 별칭: 2-sat, 2-CNF, 투 샛, two sat
- 정의 2-SAT (2-Satisfiability) 는 각 절(clause)이 정확히 두 리터럴(literal)의 OR 로 이루어진 CNF (Conjunctive Normal Fo…
- 3D 기하 (Geometry) 기본 algorithm ← 2
- 별칭: geometry-3d, 3D geometry, 3D 기하, 3차원 기하
- 정의 3D 기하 는 3차원 공간 위의 점, 직선, 평면, 벡터를 다루는 분야. PS 에서는 정육면체 / 구 / 원뿔 체적, 3D convex hull, 최근접 점 3D 등이 등장…
- 4차원 이상 기하 (Hyper Geometry) algorithm
- 별칭: geometry hyper, 4D geometry, hyper geometry, geometry-hyper, 고차원 기하
- 정의 고차원 기하 (Hyper / 4D+ Geometry) 는 4차원 이상의 공간 (d >= 4) 에서 점, 벡터, 초평면, 초구 등을 다루는 분야. PS 에서는 d ≤ 4 인 …
algorithm (249)
- (오목 포함) 다각형 내부 점 판정 (Point in Polygon) ← 1
- 정의 다각형 내부 점 판정 (Point in Polygon, PIP) 은 단순 다각형 (볼록 또는 오목) 과 하나의 점이 주어졌을 때, 점이 내부/경계/외부 중 어디에 있는지 판…
- [Algorithm] Karatsuba 곱셈: O(n²) 벽을 깬 분할 정복
- 정의 Karatsuba 알고리즘 은 두 큰 정수의 곱셈 을 분할 정복 으로 풀어 O(n^log₂3) ≈ O(n^1.585) 시간에 처리하는 알고리즘. 1962년 Anatoly K…
- 0-1 BFS ← 3
- 정의 0-1 BFS 는 간선 가중치가 0 또는 1만 존재하는 그래프에서 최단 경로를 O(V + E) 에 구하는 알고리즘. deque 를 사용해 가중치 0 간선은 앞에, 가중치 1…
- 2-SAT (2-Satisfiability) ← 1
- 정의 2-SAT (2-Satisfiability) 는 각 절(clause)이 정확히 두 리터럴(literal)의 OR 로 이루어진 CNF (Conjunctive Normal Fo…
- 3D 기하 (Geometry) 기본 ← 2
- 정의 3D 기하 는 3차원 공간 위의 점, 직선, 평면, 벡터를 다루는 분야. PS 에서는 정육면체 / 구 / 원뿔 체적, 3D convex hull, 최근접 점 3D 등이 등장…
- 4차원 이상 기하 (Hyper Geometry)
- 정의 고차원 기하 (Hyper / 4D+ Geometry) 는 4차원 이상의 공간 (d >= 4) 에서 점, 벡터, 초평면, 초구 등을 다루는 분야. PS 에서는 d ≤ 4 인 …
- 가우스 소거법 (Gaussian Elimination) ← 2
- 정의 가우스 소거법 (Gaussian Elimination) 은 선형 연립방정식 의 해를 구하거나, 행렬의 역행렬 / rank / determinant 를 계산하는 O(N^3) …
- 각도 정렬 (Angle Sorting) ← 2
- 정의 각도 정렬 (Angle Sorting / Polar Sort) 은 2차원 평면 위의 점들을 기준점에 대한 극각 (polar angle) 순서로 정렬하는 기법. atan2 함…
- 값 / 좌표 압축 (Coordinate Compression) ← 1
- 정의 값 / 좌표 압축 (Coordinate Compression) 은 큰 범위의 값 (예: 10^9) 을 정렬된 순서를 유지하며 작은 정수 인덱스 (0..K-1) 로 매핑하는 …
- 강한 연결 요소 (SCC) ← 6
- 정의 강한 연결 요소 (Strongly Connected Component, SCC) 는 방향 그래프에서 서로 도달 가능한 정점들의 최대 부분 집합. SCC 내 임의 두 정점 u…
- 게임 이론 (Game Theory) ← 2
- 정의 게임 이론 (Game Theory) 은 둘 이상의 플레이어가 정해진 규칙 아래 의사 결정을 내리는 상황을 수학적으로 모델링하는 분야. PS에서는 두 명이 완벽한 플레이를 할…
- 격자 그래프 (Grid Graph) ← 2
- 정의 격자 그래프 (Grid Graph) 는 2차원 배열 (N × M 격자) 위의 그래프. 각 칸이 노드, 인접한 칸 사이가 간선. 4방향 또는 8방향 이동. 격자 위 최단 경로…
- 경사 하강법 (Gradient Descent) ← 2
- 정의 경사 하강법 (Gradient Descent, GD) 은 미분 가능한 목적 함수 f(x) 의 1차 도함수 (gradient) 방향으로 반복 이동하며 극소값 (local mi…
- 구현 (Implementation) ← 1
- 정의 구현 (Implementation) 은 PS 에서 알고리즘적 난이도는 낮지만 정확한 코딩이 필요한 문제 유형. 주로 시뮬레이션 (simulation), 조건 분기 (cond…
- 그래프 순회 (Graph Traversal) ← 4
- 정의 그래프 순회 (Graph Traversal) 는 그래프 G=(V, E) 의 모든 정점 V 를 체계적으로 방문하는 알고리즘 패밀리. 대표 구현: 너비 우선 탐색 (BFS), …
- 그리디 (Greedy) ← 4
- 정의 그리디 (Greedy) 알고리즘은 매 단계마다 국소 최적 (locally optimal) 선택을 하여 전역 최적해 (globally optimal solution) 에 도달…
- 그린 정리 (Green's Theorem)
- 정의 그린 정리 (Green's Theorem) 는 평면 위의 폐곡선 C 에 대한 선적분(line integral) 과 그 내부 영역 D 에 대한 이중 적분(double inte…
- 기하 (Geometry) 기본 ← 6
- 정의 Computational Geometry 는 점, 선, 다각형 등 기하 객체를 컴퓨터로 처리하는 알고리즘 분야. PS 에서는 2D 평면 위의 정수 좌표 가 주로 다루어지며,…
- 깊이 우선 탐색 (DFS) ← 20
- 정의 깊이 우선 탐색 (Depth-First Search, DFS) 는 그래프 G=(V, E) 에서 갈 수 있는 만큼 깊이 들어가다가 막히면 백트래킹하는 알고리즘. 스택 (LIF…
- 너비 우선 탐색 (BFS) ← 18
- 정의 너비 우선 탐색 (Breadth-First Search, BFS) 는 그래프 G=(V, E) 에서 시작 정점 s 로부터 가까운 정점부터 순서대로 방문하는 알고리즘. 큐 (F…
- 네트워크 유량 (Network Flow) ← 5
- 정의 네트워크 유량 (Network Flow) 은 방향 그래프 G = (V, E) 에서 각 간선 (u, v) 의 용량 (capacity) c(u, v) 가 주어질 때, 소스 s …
- 누적 합 (Prefix Sum) ← 13
- 정의 누적 합 (Prefix Sum) 은 배열 에 대해 (또는 1-indexed ) 을 미리 계산해 두고, 임의 구간 합 을 O(1) 에 구하는 정형. 문제 풀이에서 "구간 N …
- 다각형 넓이 (Polygon Area)
- 정의 다각형 넓이 (Polygon Area) 는 2D 평면 위 단순다각형 (non-self-intersecting polygon) 의 면적을 신발끈 공식 (Shoelace For…
- 다익스트라 알고리즘 (Dijkstra's Algorithm) ← 12
- 정의 다익스트라 알고리즘 (Dijkstra's Algorithm) 은 음이 아닌 가중치 그래프에서 단일 시작점 s 로부터 모든 정점까지의 최단 거리를 찾는 그리디 알고리즘. Ed…
- 다차원 세그먼트 트리 (Multi-dimensional Segment Tree)
- 정의 다차원 세그먼트 트리 (Multi-dimensional Segment Tree) 는 2차원 이상 배열에서 직사각형 구간 쿼리 + 점 갱신 을 O(log^d N) 에 처리하는…
- 단절점 (Articulation Point)
- 정의 단절점 (Articulation Point, Cut Vertex) 은 무향 연결 그래프에서 제거했을 때 그래프가 둘 이상의 컴포넌트로 분리되는 정점. Robert Tarja…
- 단조 큐 최적화 (Monotone Queue Optimization)
- 정의 단조 큐 최적화 (Monotone Queue Optimization) 는 DP 전이 에서, 전이 후보 j 의 집합 이 슬라이딩 윈도우 를 이루고 f(j) 가 결합된 값이 단…
- 담금질 기법 (Simulated Annealing) ← 2
- 정의 담금질 기법 (Simulated Annealing, SA) 은 금속의 담금질 (annealing) 과정에서 영감을 받은 확률적 메타휴리스틱. 온도 T 가 높을 때는 나쁜 해…
- 덱 (Deque) ← 6
- 정의 Deque (덱, double-ended queue) 는 양쪽 끝에서 O(1) push/pop 이 가능한 선형 자료구조. 큐 + 스택의 일반화. 내부 구현은 대개 chunk…
- 덱 활용 구간 최댓값 트릭 (Monotonic Deque Trick) ← 3
- 정의 덱 트릭 (Deque Trick) 은 덱 (double-ended queue) 에 원소의 인덱스를 단조로운 값 순서 로 유지해, 슬라이딩 윈도우의 최댓값 또는 최솟값을 O(…
- 덱 DP (슬라이딩 윈도우 최적화)
- 정의 덱 DP (Deque DP) 는 점화식 꼴에서 monotonic deque 를 써서 최적 후보를 O(N) 에 유지하는 기법. 슬라이딩 윈도우 최댓값/최솟값의 일반화로, 윈도…
- 도형 불 연산 (Geometric Boolean Operations)
- 정의 도형 불 연산 (Geometric Boolean Operations) 은 두 다각형(또는 임의의 폐곡선)에 대해 합집합(union), 교집합(intersection), 차집…
- 동적 계획법 (Dynamic Programming) ← 18
- 정의 동적 계획법 (Dynamic Programming, DP) 은 큰 문제를 작은 부분 문제로 나누고, 각 부분 문제의 최적해를 저장하여 중복 계산을 제거하는 최적화 기법. R…
- 두 포인터 (Two Pointer) ← 6
- 정의 두 포인터 (Two Pointer) 는 정렬 또는 단조 구조 에서 두 인덱스 , 을 서로 다른 속도 / 방향 으로 이동시키며 부분 구간 / 페어를 O(N) 에 탐색하는 기법…
- 라빈-카프 알고리즘 (Rabin-Karp) ← 2
- 정의 라빈-카프 (Rabin-Karp) 는 롤링 해시 (rolling hash) 를 이용해 패턴 문자열 이 텍스트 의 어디에 등장하는지 찾는 문자열 매칭 알고리즘. 1987 년 …
- 레드-블랙 트리 (Red-Black Tree) ← 1
- 정의 레드-블랙 트리 (Red-Black Tree) 는 각 노드에 색 (빨강/검정) 을 부여하고 5 가지 규약을 지켜 높이 O(log N) 을 보장하는 자가 균형 . 삽입/삭제/…
- 레이지 프로파게이션 (Lazy Propagation) ← 2
- 정의 레이지 프로파게이션 (Lazy Propagation) 은 세그먼트 트리의 확장으로, 구간 갱신 (range update) 와 구간 쿼리 (range query) 를 모두 O…
- 로프 (Rope)
- 정의 로프 (Rope) 는 문자열을 이진 트리로 표현해 split (분할), concat (연결) 을 O(log N) 에 처리하는 자료구조. 각 리프는 짧은 문자열 조각, 내부 …
- 뤼카 정리 (Lucas Theorem) ← 1
- 정의 뤼카 정리 (Lucas Theorem) 는 소수 p 에 대해 큰 n, r 의 이항 계수 nCr 을 p 로 나눈 나머지를 O(logp N) 에 구하는 방법. n, r 을 p …
- 리차오 트리 (Li Chao Tree)
- 정의 리차오 트리 (Li Chao Tree) 는 평면 상의 직선 (또는 선분) 집합에서 특정 x좌표에서의 최댓값 (또는 최솟값) 을 O(log N) 에 구하는 자료구조. 세그먼트…
- 매개 변수 탐색 (Parametric Search) ← 1
- 정의 매개 변수 탐색 (Parametric Search) 은 답 자체를 이분 탐색하는 기법. "조건을 만족하는 최소값 / 최대값" 문제에서, 조건 만족 여부가 단조성 (monot…
- 매내처 알고리즘 (Manacher's Algorithm) ← 3
- 정의 매내처 알고리즘 (Manacher's Algorithm) 은 문자열 의 모든 위치에서 중심으로 하는 최장 회문 (palindrome) 반지름 을 O(N) 시간에 계산하는 선…
- 머지 소트 트리 (Merge Sort Tree)
- 정의 머지 소트 트리 (Merge Sort Tree) 는 세그먼트 트리의 각 노드에 해당 구간의 정렬된 부분 배열을 저장하는 자료구조. 구간 내에서 k 이하 원소의 개수, k번째…
- 모듈러 역원 (Modular Multiplicative Inverse) ← 11
- 정의 정수 a 의 모듈러 역원 (modular multiplicative inverse) 은 을 만족하는 정수 x. 기호로 또는 . 존재 조건: gcd(a, m) = 1 일 때만…
- 문자열 (String) ← 6
- 정의 문자열 (String) 은 문자(character)의 순서 있는 나열. 프로그래밍에서는 연속된 메모리에 저장된 문자 배열 로 구현되며, 각 문자는 ASCII(7비트) 또는 …
- 문자열 해싱 (String Hashing) ← 6
- 정의 문자열 해싱 (String Hashing) 은 문자열을 고정 길이의 정수 (해시값) 로 매핑하여, 부분 문자열 비교를 O(1) 에 수행할 수 있게 만드는 기법. Rabin과…
- 물리 시뮬레이션 (Physics Simulation)
- 정의 물리 시뮬레이션 (Physics Simulation) 은 뉴턴 역학의 운동 방정식 (F=ma, 속도, 가속도) 을 수치적으로 적분하여 시간 경과에 따른 물체의 위치와 속도를…
- 미적분 (Calculus) ← 1
- 정의 미적분 (Calculus) 은 함수의 변화율(미분)과 누적량(적분)을 다루는 수학 분야. 알고리즘 문제에서는 수치 미분 (Numerical Differentiation) 과…
- 민코프스키 합 DP ← 2
- 정의 민코프스키 합 (Minkowski Sum) 은 두 점 집합 , 의 합 . 두 볼록 다각형의 민코프스키 합은 각 변을 각도순으로 합친 새로운 볼록 다각형, O(|A| + |B…
- 방향 비순환 그래프 (DAG) ← 2
- 정의 방향 비순환 그래프 (Directed Acyclic Graph, DAG) 는 사이클이 없는 방향 그래프. 어떤 정점에서 출발해도 자기 자신으로 돌아오는 경로가 없다. DAG…
- 배낭 문제 (Knapsack) ← 4
- 정의 배낭 문제 (Knapsack Problem) 은 무게 제한 W 인 배낭에 가치 vi, 무게 wi 인 물건 N 개 중 일부를 담아 총 가치 최대화하는 조합 최적화 문제. NP…
- 백트래킹 (Backtracking) ← 6
- 정의 백트래킹 (Backtracking) 은 DFS + 가지치기 (pruning) 로 모든 경우를 탐색하되, 불가능한 후보를 조기 제거하여 탐색 공간을 극적으로 줄이는 알고리즘.…
- 번사이드 보조정리 (Burnside's Lemma)
- 정의 번사이드 보조정리 (Burnside's Lemma, Cauchy-Frobenius Lemma) 는 군 G 가 집합 X 에 작용할 때, 궤도(orbit)의 개수 를 구하는 공…
- 베이즈 정리 (Bayes Theorem)
- 정의 베이즈 정리 (Bayes Theorem) 는 조건부 확률의 대칭성을 이용해 P(A|B) 를 P(B|A) 로 표현하는 공식: - P(A): 사전 확률 (prior) - 증거를…
- 벨만-포드 알고리즘 (Bellman-Ford Algorithm) ← 6
- 정의 벨만-포드 알고리즘 (Bellman-Ford Algorithm) 은 음수 가중치 간선을 허용하면서 단일 시작점 s 로부터 모든 정점까지의 최단 거리를 찾는 DP 기반 알고리…
- 병렬 이분 탐색 (Parallel Binary Search) ← 3
- 정의 병렬 이분 탐색 (Parallel Binary Search, PBS) 은 Q 개의 쿼리를 각각 독립적으로 이분탐색하지 않고, 모든 쿼리의 이분탐색을 라운드별로 동시에 진행하…
- 보이어-무어 다수결 투표 (Boyer-Moore Majority Vote)
- 정의 보이어-무어 다수결 투표 (Boyer-Moore Majority Vote) 는 배열에서 과반수 (> N/2) 를 차지하는 원소를 O(N) 시간, O(1) 공간으로 찾는 알고…
- 볼록 껍질 (Convex Hull) ← 12
- 정의 볼록 껍질 (Convex Hull) 은 주어진 점 집합 P 를 모두 포함하는 최소 크기의 볼록 다각형. 즉 P 의 어떤 점도 다각형 외부에 있지 않고, 다각형의 꼭짓점은 P…
- 볼록 다각형 내부 점 판정 (Point in Convex Polygon) ← 3
- 정의 볼록 다각형 내부 점 판정 은 볼록 다각형(convex polygon) 과 하나의 점이 주어졌을 때, 점이 다각형의 내부/경계/외부 중 어디에 있는지 O(log N) 에 판…
- 볼록 다각형 접선 최적화 ← 5
- 정의 볼록 다각형의 접선을 이용한 최적화 는 두 종류 비용의 곱 / 합 형태의 trade-off 를 최소화 / 최대화할 때, 모든 가능 해 (x, y) 들이 만드는 평면 점집합의…
- 분리 집합 (Disjoint Set, Union-Find) ← 1
- 정의 분리 집합 (Disjoint Set, Union-Find) 은 서로 겹치지 않는 집합들을 관리하며, 다음 두 연산을 거의 상수 시간 (amortized O(α(N)), α는…
- 분할 정복 (Divide and Conquer) ← 4
- 정의 분할 정복 (Divide and Conquer) 은 문제를 더 작은 부분 문제로 나누고 (Divide), 각각 해결한 후 (Conquer), 결과를 합쳐 (Combine) …
- 분할 정복을 이용한 거듭제곱 (Exponentiation by Squaring) ← 7
- 정의 분할 정복을 이용한 거듭제곱 (Exponentiation by Squaring) 은 을 O(log n) 시간에 계산하는 분할 정복 알고리즘. 같은 모듈러 연산에서 특히 필수…
- 분할정복 DP 최적화 (Divide and Conquer Optimization) ← 4
- 정의 분할정복 DP 최적화 (Divide and Conquer Optimization) 는 꼴의 DP 에서, 최적 분할점 opt[i][j] 가 j 에 대해 단조 비감소 ( ) 일…
- 불변량 (Invariant) ← 2
- 정의 불변량 (Invariant) 은 어떤 변환(operation)이 적용되어도 변하지 않는 양이나 성질. 불가능성 증명, 알고리즘의 정당성(correctness) 증명, 종료 …
- 브루트포스 (Bruteforcing)
- 정의 브루트포스 (Bruteforcing, 완전 탐색) 는 가능한 모든 경우를 체계적으로 나열하고 검증하는 알고리즘. 프로그래밍 대회에서 가장 기초이자 가장 안전한 접근이며, 문…
- 비트마스크 DP (Bitmask DP) ← 1
- 정의 비트마스크 DP (Bitmask DP) 는 상태 공간이 부분집합 으로 표현될 때, 각 부분집합을 정수의 비트로 인코딩해 DP 상태로 삼는 기법. N ≤ 20 범위에서 O(2…
- 비트마스킹 (Bitmask) ← 3
- 정의 비트마스킹 (Bitmask) 은 집합 / 상태 를 정수의 비트 패턴 으로 인코딩해 집합 연산을 비트 연산으로 처리하는 기법. 같은 집합을 으로 표현하면, 멤버 확인 / 추가…
- 비트셋 LCS (Bitset LCS) ← 1
- 정의 Bitset LCS 는 두 문자열 A, B 의 최장 공통 부분 수열 (LCS) 길이를 O(NM/w) 시간에 구하는 기법. 표준 LCS DP 의 O(NM) 를 비트 병렬 (b…
- 사칙연산 (Arithmetic Operations) ← 1
- 정의 사칙연산 (Arithmetic Operations) 은 덧셈, 뺄셈, 곱셈, 나눗셈의 정확한 구현을 다루는 PS 태그. 큰 수 표현 (large integer), 오버플로우…
- 삼분 탐색 (Ternary Search) ← 2
- 정의 삼분 탐색 (Ternary Search) 은 단봉 (unimodal) 함수의 극값 (최대 / 최소) 을 O(log N) 에 찾는 알고리즘. 구간을 3등분하는 두 점 , 에서…
- 서큘레이션 (Circulation)
- 정의 서큘레이션 (Circulation) 은 방향 그래프 G = (V, E) 에서 모든 간선에 하한 l(u,v) 과 상한 c(u,v) 이 주어질 때, 모든 정점에서 유량 보존 (…
- 선분 교차 (Line Segment Intersection) ← 1
- 정의 선분 교차 판정 (Line Segment Intersection) 은 2D 평면 위 두 선분 AB 와 CD 가 서로 교차하는지 O(1) 에 판정하는 기하 연산. CCW (C…
- 선인장 그래프 (Cactus Graph)
- 정의 선인장 그래프 (Cactus Graph) 는 모든 간선이 최대 한 개의 단순 사이클에만 포함되는 무방향 연결 그래프. 트리 (tree) 의 일반화로, 사이클은 허용하되 "사…
- 선형 계획법 (Linear Programming) ← 1
- 정의 선형 계획법 (Linear Programming, LP) 은 선형 부등식 제약 조건 아래에서 선형 목적 함수를 최적화 (최대화/최소화) 하는 문제. 표준형: 변수 x ∈ ℝ…
- 선형대수 (Linear Algebra) ← 2
- 정의 선형대수 (Linear Algebra) 는 벡터 공간 (vector space) 과 선형 변환 (linear transformation) 을 다루는 수학 분야. PS 에서는…
- 세그먼트 트리 (Segment Tree) ← 19
- 정의 세그먼트 트리 (Segment Tree) 는 배열의 구간 쿼리 (range query) 와 점 갱신 (point update) 를 모두 O(log N) 에 처리하는 이진 트…
- 세그먼트 트리 그래프 간선 압축
- 정의 세그먼트 트리 그래프 간선 압축 은 "한 정점 v 에서 구간 의 모든 정점으로 가는 간선" (또는 구간에서 구간으로) 을 단순 V·N 간선 대신 세그먼트 트리의 노드를 가상…
- 소수 판정 (Primality Test) ← 5
- 정의 소수 판정 (Primality Test) 은 주어진 정수 N이 소수인지 합성수인지 판별하는 알고리즘. 시행 나눗셈 (Trial Division) O(√N), 확률적 Ferm…
- 소인수분해 (Prime Factorization) ← 6
- 정의 소인수분해 (Prime Factorization) 는 양의 정수 N을 소수들의 곱으로 유일하게 나타내는 것. N = p₁^a₁ · p₂^a₂ · ... · pₖ^aₖ. 시행…
- 수치해석 (Numerical Analysis) ← 1
- 정의 수치해석 (Numerical Analysis) 은 해석적 해가 어렵거나 없는 문제를 수치적 근사로 푸는 분야. PS 에서는 크게 두 가지가 자주 등장한다. Newton-Ra…
- 수학 (Mathematics) ← 4
- 정의 수학 (Mathematics) 은 문제 해결에 필요한 모듈러 산술 (modular arithmetic), 최대공약수/최소공배수 (GCD/LCM), 거듭제곱 (exponent…
- 순열 사이클 분해 (Permutation Cycle Decomposition) ← 1
- 정의 순열 사이클 분해는 순열 p[1..N]을 서로소(disjoint)인 사이클들의 곱으로 표현하는 것. 각 사이클 (a1 a2 ... ak) 는 a1 -> p[a1] = a2,…
- 스위핑 (Sweeping) ← 5
- 정의 스위핑 (Sweeping) 은 시간 또는 공간 축 위의 이벤트를 정렬한 뒤, 한 방향으로 훑으며 상태를 갱신해 문제를 푸는 기법입니다. 선분 교차, 구간 합집합, 최대 겹침…
- 스택 (Stack) ← 3
- 정의 스택 (Stack) 은 LIFO (Last In, First Out) 순서로 원소를 관리하는 추상 자료구조입니다. , , 세 연산만 제공하며, 가장 최근 삽입된 원소만 접근…
- 스프라그-그런디 정리 (Sprague-Grundy) ← 2
- 정의 스프라그-그런디 정리 (Sprague-Grundy) 는 모든 impartial combinatorial game (두 플레이어가 같은 행동 가능, 무작위성 없음, 완전 정보…
- 슬라이딩 윈도우 (Sliding Window) ← 5
- 정의 슬라이딩 윈도우 (Sliding Window) 는 배열/문자열 위에서 고정 크기 또는 가변 크기 윈도우가 한 방향으로 미끄러지며 각 윈도우마다 조건 (합, 최댓값, 중복 여…
- 시뮬레이션 (Simulation) ← 3
- 정의 시뮬레이션 (Simulation) 은 문제에서 제시한 규칙을 그대로 코드로 옮겨 한 단계씩 따라가는 알고리즘. 복잡한 로직보다 정확한 구현과 엣지 케이스 처리 가 핵심. P…
- 쌍대성 (Duality) ← 1
- 정의 쌍대성 (Duality) 은 하나의 최적화 문제 (Primal) 에 항상 대응되는 또 다른 최적화 문제 (Dual) 가 존재한다는 원리. LP 에서 Primal-Dual 쌍…
- 안정 결혼 문제 (Stable Marriage)
- 정의 안정 결혼 문제 (Stable Marriage Problem) 는 N 명의 남성과 N 명의 여성이 각자 선호도 목록을 가지고 있을 때, 모든 쌍이 안정적 (stable) 인…
- 애드 혹 (Ad Hoc) ← 2
- 정의 애드 혹 (Ad Hoc) 은 범용 알고리즘이 아닌, 그 문제만의 관찰·트릭·창의적 사고로 푸는 문제 유형. 라틴어로 "이 목적을 위한" 이라는 뜻. 정형화된 자료구조나 DP…
- 양방향 탐색 (Bidirectional Search) ← 1
- 정의 양방향 탐색 (Bidirectional Search) 은 source 와 target 에서 동시에 탐색을 진행하여 중간에서 만나는 전략. 주로 무가중치 그래프의 최단 경로를…
- 에라토스테네스의 체 (Sieve of Eratosthenes) ← 6
- 정의 에라토스테네스의 체 (Sieve of Eratosthenes) 는 1부터 N 까지의 모든 소수를 O(N log log N) 에 찾는 고대 그리스 알고리즘. 기원전 240 년…
- 역추적 (DP Traceback)
- 정의 역추적 (Traceback) 은 DP 표를 채울 때 parent / choice 배열에 최적해의 결정을 기록하고, 최종 상태에서 출발하여 거꾸로 따라가며 최적해를 복원하는 …
- 연결 리스트 (Linked List)
- 정의 연결 리스트 (Linked List) 는 노드 + 포인터로 구성된 선형 자료구조. 각 노드는 데이터 + 다음 노드 포인터. 종류: - Singly Linked List: 노…
- 오일러 경로/회로 (Eulerian Path and Circuit)
- 정의 오일러 경로 (Eulerian Path) 는 그래프의 모든 간선을 정확히 한 번씩 지나는 경로. 오일러 회로 (Eulerian Circuit) 는 시작점과 끝점이 같은 오일…
- 오일러 지표 (Euler Characteristic)
- 정의 오일러 지표 (Euler Characteristic) χ 는 다면체(polyhedron) 또는 CW 복합체의 위상적 불변량으로, χ = V - E + F 로 정의. V는 꼭…
- 오일러 투어 테크닉 (Euler Tour Technique) ← 3
- 정의 오일러 투어 테크닉 (ETT, Euler Tour Technique) 은 트리를 DFS 방문 순서로 펼쳐 서브트리 쿼리를 구간 쿼리로 변환하는 정형. 각 노드 u 의 in-…
- 오일러 피 함수 (Euler's Totient Function) ← 2
- 정의 오일러 피 함수 φ(n) 는 1 이상 n 이하의 자연수 중 n 과 서로소인 수의 개수. 1763년 레온하르트 오일러가 도입. , 소수 p 에 대해 . 문제 상황과 동기 n …
- 외판원 순회 문제 (TSP)
- 정의 외판원 순회 문제 (TSP) 는 N 개 도시를 모두 정확히 한 번씩 방문하고 시작 도시로 돌아오는 최소 비용 경로 (Hamiltonian cycle) 를 찾는 NP-hard…
- 우선순위 큐 (Priority Queue) ← 1
- 정의 우선순위 큐 (Priority Queue) 는 원소 중 최댓값 (또는 최솟값) 을 O(log N) 에 추출하는 자료구조. 내부 구현은 대개 힙 (heap). - Max-He…
- 위상 정렬 (Topological Sorting) ← 2
- 정의 위상 정렬 (Topological Sorting) 은 방향 비순환 그래프 (DAG) 의 모든 정점을 간선 방향을 어기지 않도록 일렬로 나열하는 것. 간선 가 있으면 정렬 결…
- 유클리드 호제법 (Euclidean Algorithm) ← 8
- 정의 유클리드 호제법 (Euclidean Algorithm) 은 두 정수 a, b 의 최대공약수 (GCD, Greatest Common Divisor) 를 O(log min(a,…
- 이분 그래프 (Bipartite Graph) ← 4
- 정의 이분 그래프 (Bipartite Graph) 는 정점 집합 V 를 두 개의 독립 집합 L, R 로 분할할 수 있고, 모든 간선이 L 과 R 을 잇는 그래프. 같은 집합 내 …
- 이분 매칭 (Bipartite Matching) ← 8
- 정의 이분 매칭 (Bipartite Matching) 은 이분 그래프 G = (L ∪ R, E) 에서 간선 부분집합 M ⊆ E 을 선택하되, M 의 어떤 두 간선도 정점을 공유하…
- 이분 탐색 (Binary Search) ← 10
- 정의 이분 탐색 (Binary Search) 은 정렬된 시퀀스에서 목표값의 위치를 O(log N) 에 찾는 알고리즘. 매 단계에서 후보 구간을 절반으로 줄인다. 탐색이 본질이 아…
- 이산 로그 (Discrete Logarithm) ← 2
- 정의 이산 로그 (Discrete Logarithm) 는 군 G 에서 를 만족하는 최소 음이 아닌 정수 x 를 찾는 문제. 실수 로그와 달리, mod 연산 아래에서의 역연산은 어…
- 이산 제곱근 (Discrete Square Root / Tonelli-Shanks) ← 1
- 정의 이산 제곱근 (Discrete Square Root) 은 소수 p 에 대해 를 만족하는 x 를 찾는 문제. 가 이차잉여 (quadratic residue) 이면 해가 존재하…
- 이산 k 제곱근 (Discrete Kth Root)
- 정의 이산 k 제곱근 (Discrete Kth Root) 은 소수 p 에 대해 를 만족하는 모든 x 를 찾는 문제. 원시근 (primitive root) 으로 지표화하여 이산 로…
- 이중 연결 요소 (BCC, Biconnected Component) ← 1
- 정의 이중 연결 요소 (Biconnected Component, BCC) 는 무방향 그래프에서 정점 하나를 제거해도 연결성이 유지되는 최대 부분 그래프. 단절점 (articula…
- 임의 정밀도 / 큰 수 산술 (Arbitrary Precision) ← 2
- 정의 임의 정밀도 (Arbitrary Precision) 또는 큰 수 산술 (Big Integer / Bignum) 은 고정된 바이트 한계(32-bit, 64-bit) 없이 메모…
- 자료구조 (Data Structures)
- 정의 자료구조 (Data Structure) 는 데이터를 효율적으로 저장하고 접근하기 위한 조직화 방법. 문제 풀이에서는 시간 복잡도와 공간 복잡도의 trade-off 를 정확히…
- 자릿수 DP (Digit DP)
- 정의 자릿수 DP (Digit DP) 는 [0, N] 범위 또는 [L, R] 구간에서 조건을 만족하는 정수의 개수를 세는 DP 기법. 각 자릿수를 순차적으로 선택하며, "현재까지…
- 작은 집합을 큰 집합에 합치기 (Smaller to Larger)
- 정의 Smaller to Larger (작은 집합을 큰 집합에 합치기) 는 두 집합을 합칠 때 항상 작은 쪽을 큰 쪽에 합치면 전체 O(N log N) 또는 O(N log^2 N…
- 재귀 (Recursion) ← 3
- 정의 재귀 (Recursion) 는 함수가 자기 자신을 호출하는 프로그래밍 기법. base case (종료 조건) 와 recursive case (재귀 단계) 로 구성되며, 복잡…
- 재귀 트리 DP / Rerooting
- 정의 Rerooting (재귀 트리 DP) 은 모든 정점을 루트로 하는 트리 DP 결과를 O(N) 에 구하는 기법. 두 번의 DFS 로 "루트 v 에서 서브트리 DP" → "루트…
- 전처리 (Precomputation)
- 정의 전처리 (Precomputation) 는 런타임 이전 또는 초기화 단계에서 필요한 값을 미리 계산해 두고, 본 쿼리/연산을 빠르게 처리하는 정형. 대표적으로 테이블 채우기,…
- 정규 표현식 (Regular Expression, Regex) ← 2
- 정의 정규 표현식 (Regular Expression) 은 문자열 패턴을 형식 언어로 표현한 표기법. Stephen Kleene 이 1956년 정규 언어 (regular lang…
- 정렬 알고리즘 ← 16
- 정의 정렬 (sort) 은 원소들의 컬렉션을 어떤 전순서 (total order) 기준으로 재배열하는 것. 알고리즘 입문의 정석 주제이자, 데이터베이스·검색·통계 등 모든 시스템…
- 정수론 (Number Theory) ← 4
- 정의 정수론 (Number Theory) 은 정수의 성질과 관계를 연구하는 분야. PS 에서는 약수/배수, 소수 (prime), 모듈러 연산, 유클리드 호제법, 확장 유클리드, …
- 제곱근 분할 (Sqrt Decomposition) ← 3
- 정의 제곱근 분할 (Sqrt Decomposition) 은 크기 N 배열을 √N 개씩 블록으로 나누고, 각 블록을 전처리해 구간 연산을 O(√N) 에 처리하는 자료구조 기법. 문…
- 조합론 (Combinatorics) ← 8
- 정의 조합론 (Combinatorics) 은 유한 집합의 원소를 세는 수학 분야. PS 에서는 주로 순열 (Permutation), 조합 (Combination), 이항계수 (B…
- 조화수 (Harmonic Number)
- 정의 조화수 (Harmonic Number) 은 자연수 n 에 대해 역수의 합 으로 정의. 점근적으로 (γ ≈ 0.5772, 오일러-마스케로니 상수). 정수론과 알고리즘 분석에서…
- 중국인의 나머지 정리 (Chinese Remainder Theorem) ← 9
- 정의 중국인의 나머지 정리 (CRT) 는 다음과 같은 연립 합동식의 해가 유일 하게 존재함을 보장: 단, m1, m2, ..., mk 는 쌍마다 서로소 (pairwise copr…
- 중심 분해 (Centroid Decomposition) ← 3
- 정의 중심 분해 (Centroid Decomposition) 는 트리를 중심 으로 재귀적으로 분할하여 O(log N) 깊이의 분해 트리 를 만드는 기법. 각 레벨에서 트리 크기가…
- 집합과 맵 (Set and Map) ← 14
- 정의 집합 (Set) 은 고유한 원소들의 모임을 나타내는 추상 자료구조로, 멤버십 검사, 삽입, 삭제를 지원한다. 맵 (Map, Dictionary) 은 키-값 쌍을 저장하며, …
- 차분 배열 (Difference Array) ← 2
- 정의 차분 배열 (Difference Array) 은 배열 의 인접 차 (adjacent difference) 를 저장하는 배열 (단, ). 원 배열은 , 즉 d 의 누적 합 (…
- 차분 분석 (Differential Cryptanalysis)
- 정의 차분 분석 (Differential Cryptanalysis) 은 선택된 평문 공격(chosen-plaintext attack)으로, 1991년 Eli Biham과 Adi …
- 차수열 (Degree Sequence)
- 정의 차수열 (Degree Sequence) 은 그래프의 각 정점 차수를 내림차순으로 나열한 수열 d[1] >= d[2] >= ... >= d[N]. 이 수열을 만족하는 단순 그…
- 최단 경로 (Shortest Path)
- 정의 최단 경로 (Shortest Path) 는 그래프 G = (V, E) 에서 시작 정점 s 에서 목표 정점 t 까지 가는 경로 중 가중치 합이 최소인 경로 를 찾는 문제. 단…
- 최대 부분 배열 합 (Maximum Subarray)
- 정의 최대 부분 배열 합 (Maximum Subarray) 은 배열에서 연속한 구간의 합 중 최댓값을 찾는 문제. 예: → 최대 구간 , 합 6. Kadane's Algorith…
- 최대 유량 최소 컷 정리 (Max-Flow Min-Cut Theorem) ← 4
- 정의 최대 유량 최소 컷 정리 (Max-Flow Min-Cut Theorem) 는 네트워크 유량 그래프 G = (V, E) 에서 source s 에서 sink t 로의 최대 유량…
- 최소 공통 조상 (Lowest Common Ancestor) ← 12
- 정의 최소 공통 조상 (LCA, Lowest Common Ancestor) 는 트리에서 두 노드 u, v 의 공통 조상 중 가장 깊은 (루트에서 가장 먼) 노드. Binary L…
- 최소 비용 최대 유량 (Min-Cost Max-Flow, MCMF) ← 3
- 정의 최소 비용 최대 유량 (Min-Cost Max-Flow, MCMF) 은 각 간선에 용량(capacity)과 단위 비용(cost)이 주어질 때, 최대 유량을 달성하는 여러 방…
- 최소 신장 트리 (MST, Minimum Spanning Tree) ← 4
- 정의 최소 신장 트리 (Minimum Spanning Tree, MST) 는 연결 그래프 G = (V, E) 에서 모든 정점을 연결 하면서 간선 가중치 합이 최소 인 부분 그래프…
- 최소 외접원 (Minimum Enclosing Circle)
- 정의 최소 외접원 (Minimum Enclosing Circle, MEC) 은 평면 위 N 개의 점을 모두 포함하는 가장 작은 반지름의 원을 찾는 문제. 대표 알고리즘은 Emo …
- 최장 공통 부분 수열 (Longest Common Subsequence) ← 4
- 정의 최장 공통 부분 수열 (Longest Common Subsequence, LCS) 은 두 수열 A, B 에서 순서를 유지하며 공통으로 등장하는 부분 수열 중 가장 긴 것을 …
- 최장 증가 부분 수열 (Longest Increasing Subsequence) ← 3
- 정의 최장 증가 부분 수열 (Longest Increasing Subsequence, LIS) 은 주어진 수열에서 순서를 유지하며 선택한 부분 수열 중 엄격히 증가하는 가장 긴 …
- 춤추는 링크 (Dancing Links, DLX)
- 정의 Dancing Links (DLX) 는 0-1 행렬을 doubly linked toroidal list 로 표현하는 자료구조. 각 1 을 하나의 노드로 두고, 노드들이 좌/…
- 카테시안 트리 (Cartesian Tree)
- 정의 카테시안 트리 (Cartesian Tree) 는 배열 a[0..N-1] 로부터 만드는 이진 트리로, 다음 두 성질을 동시에 만족: 1. In-order 순회 = 원래 배열 …
- 커넥션 프로파일 DP (Broken Profile DP)
- 정의 커넥션 프로파일 DP (Broken Profile DP) 는 직사각형 격자를 tile-by-tile 로 처리하면서, 처리된 영역과 아직 처리되지 않은 영역의 경계 (brok…
- 케이스 워크 (Case Work) ← 2
- 정의 케이스 워크 (Case Work) 는 문제를 여러 조건/경우로 분류하여 각각 해결하는 패턴. if-else, switch-case, 의사결정 트리 등으로 구현. 복잡한 조건…
- 쿼리 √N / √Q 버킷팅 ← 1
- 정의 쿼리 √N / √Q 버킷팅 은 쿼리들을 √N 또는 √Q 개씩 묶어 일괄 처리해 원래 O(Q·log N) 또는 O(N·Q) 였던 비용을 O((N + Q)·√N) 등으로 줄이는…
- 큐 (Queue) ← 7
- 정의 큐 (Queue) 는 FIFO (First In, First Out) 순서로 원소를 관리하는 추상 자료구조입니다. (또는 ), (또는 ), 세 연산만 제공하며, 가장 먼저 …
- 크누스 최적화 (Knuth Optimization) ← 4
- 정의 크누스 최적화 (Knuth Optimization) 는 구간 DP 에서 최적 분할점 k = opt[i][j] 의 단조성 을 이용해 시간 복잡도를 O(N^3) 에서 O(N^2…
- 통계 (Statistics)
- 정의 통계 (Statistics) 는 데이터를 수집, 정리, 분석하는 학문. PS 에서는 주로 기술 통계 (Descriptive Statistics) 의 기본값들인 평균 (Mea…
- 트라이 (Trie, 접두사 트리) ← 7
- 정의 트라이 (Trie) 는 Edward Fredkin 이 1960년 제안한 문자열 집합을 저장하는 트리 자료구조. 각 노드는 문자 하나, 간선은 다음 문자로의 전이. 루트에서 …
- 트리 (Trees) ← 5
- 정의 트리 (Tree) 는 사이클이 없는 연결 그래프 (acyclic connected graph). N 개 정점이면 정확히 N-1 개 간선. 임의의 두 정점 사이에 유일한 경로…
- 트리 동형 사상 (Tree Isomorphism)
- 정의 트리 동형 사상 (Tree Isomorphism) 판정은 두 트리 T1, T2 가 구조적으로 같은지, 즉 노드 라벨을 무시했을 때 edge 연결 패턴이 동일한지 O(N) 에…
- 트리 압축 (Tree Compression / Virtual Tree)
- 정의 트리 압축 (Tree Compression / Virtual Tree) 은 원본 트리에서 주어진 정점 부분 집합 S 만으로 원래 조상 관계를 보존하는 작은 트리를 구성하는 …
- 트리 위에서 exchange argument
- 정의 Exchange Argument (교환 논증) 은 그리디 알고리즘의 최적성 증명 에서 가장 자주 쓰이는 기법. 두 인접 원소를 교환했을 때 답이 나빠지지 않으면, 어떤 정렬…
- 트리 DP (Tree Dynamic Programming) ← 5
- 정의 트리 DP (Tree Dynamic Programming) 는 트리 구조에서 각 서브트리의 최적해를 post-order DFS 로 계산하여 전체 트리의 답을 구하는 정형. …
- 트리를 사용한 집합과 맵 (Tree Set / Tree Map) ← 2
- 정의 트리 집합 (Tree Set) 과 트리 맵 (Tree Map) 은 균형 이진 탐색 트리 (Balanced BST) 를 기반으로 한 정렬된 자료구조로, 삽입, 조회, 삭제를 …
- 트리의 중심 (Centroid) ← 1
- 정의 트리의 중심 (Centroid) 은 정점 v 를 제거했을 때 생기는 모든 connected component 의 크기가 ⌊N/2⌋ 이하가 되는 정점. 모든 트리는 최소 1개…
- 트리의 지름 (Tree Diameter) ← 1
- 정의 트리의 지름 (Tree Diameter) 는 트리에서 가장 먼 두 노드 사이의 거리 (경로 길이). 가중치 없는 트리는 간선 개수, 가중치 트리는 간선 가중치 합. 대표 알…
- 파싱 (Parsing) - tokenization, recursive descent, expression ← 2
- 정의 파싱 은 입력 문자열을 구조화된 표현 (AST) 으로 변환하는 과정. 컴파일러/인터프리터의 첫 단계. 세 단계: Tokenization (lexing) → Parsing (…
- 퍼시스턴트 세그먼트 트리 (Persistent Segment Tree) ← 2
- 정의 퍼시스턴트 세그먼트 트리 (Persistent Segment Tree, PST) 는 버전별 배열 상태를 모두 유지 하면서, 각 버전마다 O(log N) 시간에 쿼리/갱신 가…
- 페르마 소정리 (Fermat's Little Theorem) ← 3
- 정의 페르마 소정리 (Fermat's Little Theorem, FLT) 는 소수 p 와 gcd(a, p) = 1 인 정수 a 에 대해 다음이 성립: 1640년 피에르 드 페르…
- 평면 그래프 (Planar Graph) ← 1
- 정의 평면 그래프 (Planar Graph) 는 간선끼리 교차하지 않고 평면에 그릴 수 있는 그래프. 연결된 평면 그래프는 항상 Euler 공식 를 만족한다, 여기서 = 꼭짓점,…
- 포함-배제 원리 (Inclusion-Exclusion Principle)
- 정의 포함-배제 원리 (Inclusion-Exclusion Principle, PIE) 는 여러 집합의 합집합 크기를 교집합 항으로 표현하는 조합론 공식. 가장 간단한 형태: N…
- 플로이드-워셜 알고리즘 (Floyd-Warshall Algorithm) ← 3
- 정의 플로이드-워셜 알고리즘 (Floyd-Warshall Algorithm) 은 모든 정점 쌍 (i, j) 사이의 최단 거리를 구하는 DP 알고리즘. Robert W. Floyd…
- 피사노 주기 (Pisano Period)
- 정의 피사노 주기 (Pisano Period) 은 피보나치 수열 을 m 으로 나눈 나머지 수열이 주기적 이 될 때의 최소 주기. 피보나치 수열 mod m 은 항상 주기적이며, 주…
- 피타고라스 정리 (Pythagorean Theorem)
- 정의 피타고라스 정리는 직각삼각형에서 빗변 c 의 제곱이 두 직각변 a, b 의 제곱의 합과 같다는 정리: c^2 = a^2 + b^2. 기원전 6세기 그리스 수학자 피타고라스가…
- 함수 그래프 (Functional Graph) ← 1
- 정의 함수 그래프 (Functional Graph) 는 정점 집합 V 와 함수 f: V → V 로 정의되는 방향 그래프. 각 정점 v 에서 정확히 하나의 간선 v → f(v) 가…
- 해 구성하기 (Constructive) ← 2
- 정의 해 구성하기 (Constructive Algorithm) 는 답의 존재를 증명하는 대신, 명시적으로 답을 만드는 문제 유형. "가능한가?" → YES/NO 가 아니라, "가…
- 해시를 사용한 집합과 맵 (Hash Set / Hash Map) ← 3
- 정의 해시 집합 (Hash Set) 과 해시 맵 (Hash Map) 은 해시 함수를 이용해 키를 버킷 인덱스로 변환하고, 평균 O(1) 시간에 삽입, 조회, 삭제를 수행하는 자료…
- 헝가리안 알고리즘 (Hungarian Algorithm) ← 1
- 정의 헝가리안 알고리즘 (Hungarian Algorithm) 은 완전 이분 그래프 K{n,n} 에서 최대 (또는 최소) 가중치 완전 매칭 을 O(n^3) 에 찾는 알고리즘. -…
- 홀의 결혼 정리 (Hall's Marriage Theorem)
- 정의 홀의 결혼 정리 (Hall's Marriage Theorem) 는 이분 그래프 G = (L, R, E) 에서 완전 매칭 (perfect matching) 이 존재할 필요충분…
- 홀짝성 (Parity) ← 1
- 정의 홀짝성 (Parity) 은 어떤 양이 짝수 / 홀수 라는 두 상태로 분류되는 불변량. 수학적으로는 의 값. PS 에서는 증명 (impossibility), 2색 분할, 대칭…
- 확률 (Probability) ← 6
- 정의 확률 (Probability) 은 사건이 발생할 가능성을 수치화한 값. 표본 공간 Ω 에 대해 P(A) = |A| / |Ω| (동일 확률), 또는 더 일반적으로는 σ-alg…
- 확장 유클리드 호제법 (Extended Euclidean Algorithm) ← 2
- 정의 확장 유클리드 호제법 (Extended Euclidean Algorithm) 은 두 정수 a, b 에 대해 를 구하면서, 동시에 를 만족하는 정수 x, y 를 찾는 알고리즘…
- 회전 캘리퍼스 (Rotating Calipers) ← 1
- 정의 회전 캘리퍼스 (Rotating Calipers) 는 볼록 다각형 위에서 서로 마주보는 두 평행선 (겹지름, antipodal pair) 을 회전시키며 다각형의 최장 거리,…
- 휴리스틱 (Heuristics) ← 2
- 정의 휴리스틱 (Heuristics) 은 NP-hard 문제나 지나치게 큰 탐색 공간에서 최적해 대신 실용적으로 충분히 좋은 해를 빠르게 찾는 방법의 총칭. 크게 근사 알고리즘 …
- 희소 배열 (Sparse Table) ← 7
- 정의 희소 배열 (Sparse Table) 은 정적 배열에서 결합 법칙을 만족하는 idempotent 연산 (min, max, gcd, lcm 등) 의 구간 쿼리를 O(1) 시간…
- A* (A-star) 알고리즘 ← 1
- 정의 A\ 알고리즘 은 휴리스틱 기반 최단 경로 탐색 알고리즘. f(n)=g(n)+h(n) 을 평가 함수로 사용해 시작점에서 목표까지의 최단 경로를 찾는다. 1968년 Hart,…
- Aho-Corasick (아호-코라식) ← 5
- 정의 Aho-Corasick 은 Alfred Aho 와 Margaret Corasick 이 1975년 고안한 다중 패턴 문자열 매칭 알고리즘. Trie 에 KMP failure …
- Aliens Trick ← 9
- 정의 Aliens Trick (또는 WQS Binary Search, Lagrange Optimization) 은 "정확히 K 개 선택" 같은 까다로운 제약을 가진 DP 를, 제…
- Atcoder ← 5
- 개요 Atcoder는 알고리즘 문제를 풀고 경진대회를 개최하는 웹 플랫폼입니다.
- Barrett Reduction ← 4
- 정의 Barrett Reduction 은 고정된 modulus 에 대해 을 나눗셈 명령 없이 곱셈 + 시프트 + 뺄셈 몇 번으로 계산하는 알고리즘. Paul Barrett 198…
- BBST (Splay Tree, Treap) ← 8
- 정의 BBST (Balanced Binary Search Tree) 는 균형이 amortized / expected 로 보장되는 이진 탐색 트리. PS 에서는 split / me…
- Berlekamp-Massey ← 5
- 정의 Berlekamp-Massey (BM) 알고리즘은 주어진 수열의 최단 선형 점화식 (minimal linear recurrence) 을 O(N²) 에 복원하는 알고리즘. 1…
- Birthday Problem (생일 문제) ← 1
- 정의 생일 문제 (Birthday Problem) 는 N 개의 동등한 가능성이 있는 결과에서 무작위로 k 개를 선택할 때 적어도 하나의 충돌이 발생할 확률을 분석하는 문제. 충돌…
- Bitset Optimization ← 6
- 정의 Bitset Optimization 은 불리언 / 비트 단위 정보 를 또는 배열에 패킹해, 한 명령어로 64 비트씩 병렬 연산 함으로써 시간 복잡도를 /64 (또는 , w …
- Bubble Sort ← 3
- 정의 Bubble Sort (버블 정렬) 는 인접한 두 원소를 비교해 잘못된 순서면 교환하는 작업을 배열을 통과하며 반복하는 정렬. 한 번의 통과 (pass) 마다 가장 큰 원소…
- Bulldozer Trick (Rotating Sweep) ← 6
- 정의 Bulldozer Trick (Rotating Sweep) 은 평면의 N 개 점에 대해 모든 두 점쌍을 잇는 직선의 기울기를 정렬 한 뒤, 기울기를 회전시키며 점들의 정렬 …
- CDQ 분할 정복 (CDQ Divide and Conquer) ← 1
- 정의 CDQ 분할 정복 은 오프라인에서 3차원 이상의 부분 순서 (partial order) 문제를 O(N log² N) 에 해결하는 기법. 한 축으로 분할하고, 다른 축을 2D…
- Chordal Graph ← 2
- 정의 Chordal Graph (현 그래프, Triangulated Graph) 는 모든 길이 4 이상의 사이클이 chord (사이클의 비인접 두 정점을 잇는 간선) 를 가지는 …
- CHT (Convex Hull Trick) ← 7
- 정의 Convex Hull Trick (CHT) 은 DP 전이 같이 선형식들의 lower envelope (또는 upper envelope) 에서 한 점 값을 평가하는 패턴을, …
- Dial's Algorithm (버킷 기반 다익스트라)
- 정의 Dial's Algorithm 은 가중치가 작은 정수 일 때 우선순위 큐 대신 버킷 배열 을 사용해 Dijkstra 를 O(V + E + W) 로 최적화한 알고리즘. W는 …
- Directed MST ← 4
- 정의 Directed MST (Arborescence) 는 유향 그래프와 루트 이 주어졌을 때, 에서 모든 정점으로 도달 가능 한 간선들의 최소 가중치 부분집합을 구하는 문제. …
- Dominator Tree ← 3
- 정의 유향 그래프와 시작점 가 주어졌을 때, 정점 가 정점 를 dominate 한다는 것은 에서 로 가는 모든 경로가 반드시 를 지난다 는 뜻. Dominator Tree 는 모…
- Dual of Planar Graph ← 1
- 정의 평면 그래프 (planar graph) 의 쌍대 그래프 (dual graph) 는 G 의 각 면 (face) 을 정점으로, G 의 두 면을 공유하는 각 간선을 G\ 의 간선…
- Dynamic Tree (Link/Cut Tree, Euler Tour Tree, Top Tree) ← 6
- 정의 Dynamic Tree 는 트리에 간선 추가 (link) / 제거 (cut) 가 섞이는 환경에서 경로 / 서브트리 집계 쿼리 를 O(log N) 에 처리하는 자료구조 가족.…
- External Merge Sort ← 7
- 정의 External Merge Sort (외부 머지 정렬) 는 데이터가 메모리에 들어가지 않을 때 사용하는 변형. 두 단계로 동작한다. 1. Run 생성: 메모리 크기만큼 청크…
- Fast I/O ← 4
- 정의 Fast I/O 는 표준 라이브러리의 일반 목적 입출력 (C 의 / , C++ 의 / , Python 의 ) 대신, 버퍼와 바이트 단위 처리에 특화된 직접 구현으로 상수항을…
- FFT, NTT ← 12
- 정의 FFT (Fast Fourier Transform, 고속 푸리에 변환) 은 길이 인 수열의 이산 푸리에 변환 (DFT) 을 O(n log n) 에 계산하는 분할정복 알고리즘…
- Flood Fill ← 1
- 정의 Flood Fill 은 격자 (grid) 또는 이미지에서 특정 위치와 연결된 같은 색 영역을 모두 칠하는 알고리즘. 그래픽 소프트웨어의 "페인트 버킷 (paint bucke…
- Floor Sum (유리 등차수열 내림 합)
- 정의 Floor Sum 은 을 O(log m) 에 계산하는 알고리즘. AtCoder Library (ACL) 의 함수로 표준화되었다. 분수 의 내림 합을 i = 0 .. n-1 …
- FWHT (Fast Walsh-Hadamard Transform) ← 4
- 정의 FWHT (Fast Walsh-Hadamard Transform) 은 비트 연산 (XOR, AND, OR) 에 대한 컨볼루션 을 O(N log N) 에 계산하는 변환. FF…
- General Graph Matching (Blossom Algorithm) ← 3
- 정의 General Graph Matching (Blossom Algorithm) 은 이분 그래프가 아닌 일반 무향 그래프 에서 최대 매칭 (최대 간선 집합 중 한 정점이 두 번…
- Generating Function ← 10
- 정의 Generating Function (생성 함수) 은 수열 를 형식 멱급수 (formal power series) 으로 인코딩한 것. 수열의 산수 를 다항식 / 멱급수의 대…
- Hackenbush (하켄부시 게임)
- 정의 Hackenbush 는 John H. Conway 가 "On Numbers and Games" (1976) 에서 고안한 combinatorial game. 바닥에 연결된 여…
- Half-Plane Intersection
- 정의 반평면 교집합 (Half-Plane Intersection) 은 N 개의 직선으로 정의된 반평면 (또는 ) 을 모두 만족하는 점들의 집합, 즉 볼록다각형 (convex po…
- Heap Sort ← 5
- 정의 Heap Sort (힙 정렬) 는 힙 (heap) 자료구조의 최댓값 / 최솟값을 O(log n) 에 추출 하는 성질을 이용한 정렬. In-place 이고 최악 O(n log…
- Heavy-Light Decomposition ← 5
- 정의 Heavy-Light Decomposition (HLD) 는 트리를 O(log N) 개의 경로 (chain) 로 분해해 임의 경로 쿼리 (u-v 경로의 합/최대/최소) 를 …
- Hirschberg (히르쉬버그) LCS ← 1
- 정의 Hirschberg 알고리즘 은 두 문자열 A, B 의 LCS 를 O(N) 공간 (메모리) 만 사용해 구하는 분할 정복 DP. 표준 LCS 의 O(NM) 공간을 O(N) 으…
- Insertion Sort ← 4
- 정의 Insertion Sort (삽입 정렬) 는 한 번에 한 원소씩 이미 정렬된 부분에 올바른 위치를 찾아 삽입 하는 정렬. 카드 정리하듯이 한 장씩 적절한 자리에 끼워넣는 동…
- Kinetic Segment Tree ← 1
- 정의 Kinetic Segment Tree (KST) 는 각 원소가 시간 t 에 대한 일차함수 로 변하는 상황에서, 최댓값 / 최솟값 같은 시간 의존 쿼리 를 효율적으로 처리하는…
- KMP 문자열 매칭 (Knuth-Morris-Pratt) ← 9
- 정의 KMP (Knuth-Morris-Pratt) 는 Donald Knuth, James H. Morris, Vaughan Pratt 가 1977년 고안한 선형 시간 문자열 매칭…
- Knuth X 알고리즘 (Exact Cover) ← 1
- 정의 Knuth X 는 Exact Cover 문제를 푸는 backtracking 알고리즘. 0-1 행렬이 주어졌을 때 모든 열이 정확히 한 번씩 커버되도록 행의 부분 집합을 선택…
- LGV Theorem (Lindstrom-Gessel-Viennot) ← 2
- 정의 Lindstrom-Gessel-Viennot (LGV) Theorem 은 DAG (또는 격자) 에서 N 개의 시작점 / N 개의 끝점이 주어졌을 때 교차하지 않는 (non-…
- Lifting The Exponent (LTE) Lemma
- 정의 Lifting The Exponent (LTE) 는 소수 p에 대해 또는 을 계산하는 정리. vp(x)는 x의 p-진 값 (p로 나누어떨어지는 횟수). 1640년 페르마가 …
- Linearity of Expectation (기댓값의 선형성)
- 정의 Linearity of Expectation (기댓값의 선형성) 은 두 확률 변수 X, Y 에 대해 가 항상 성립한다는 정리. X 와 Y 가 독립일 필요가 없다. 스칼라 곱…
- Matroid, Matroid Intersection ← 3
- 정의 Matroid 는 독립 집합 (independent set) 의 추상 구조. 유한 집합 와 그 부분집합족 가 다음을 만족하면 matroid . PS 에서는 두 매트로이드의 …
- Merge Sort ← 10
- 정의 Merge Sort (병합 정렬) 는 분할 정복 (Divide & Conquer) 으로 동작하는 비교 정렬. 배열을 반으로 나눠 각각 정렬한 뒤, 두 정렬된 부분을 병합 (…
- Miller-Rabin 소수 판정 (Miller-Rabin Primality Test) ← 4
- 정의 Miller-Rabin 소수 판정 은 N 이 소수인지 확률적/결정론적으로 판별하는 알고리즘. Fermat 작은 정리와 이차잉여 성질을 결합해 O(k log^3 N) 에 동작…
- MITM (Meet in the Middle) ← 4
- 정의 Meet in the Middle (MITM) 은 입력을 절반으로 나누어 각각의 모든 경우를 2^(N/2) 에 열거한 뒤, 두 결과를 합쳐서 정답을 찾는 알고리즘. naiv…
- Mo's Algorithm (Mo's) ← 6
- 정의 Mo's Algorithm 은 오프라인 구간 쿼리를 (L, R) 정렬로 재배치해 포인터 이동을 amortized O((N+Q)√N) 으로 줄이는 기법. 문제 상황과 동기 크…
- Mobius Function, Mobius Inversion ← 4
- 정의 Mobius Function 은 양의 정수에 대한 수론 함수: Mobius Inversion (뫼비우스 역원) 은 합 / 컨볼루션 관계의 역변환. PS 에서는 GCD / 서…
- Multipoint Evaluation ← 3
- 정의 Multipoint Evaluation 은 차수 의 다항식 를 N 개의 점 에서 동시에 평가 ( 를 모두 구함) 하는 것을 O((N + M) log²(N+M)) 에 계산하는…
- Offline Incremental SCC, Offline Dynamic MST ← 5
- 정의 Offline Incremental SCC 는 간선이 시간 순서대로 추가만 되는 유향 그래프에서, 두 정점이 같은 SCC 에 처음 속하는 시각 을 모든 쌍에 대해 오프라인으…
- Offline Queries (오프라인 쿼리) ← 1
- 정의 오프라인 쿼리 (Offline Queries) 는 쿼리가 주어진 순서대로 처리하지 않고, 효율성을 위해 재정렬하거나 배치 처리 하는 기법. 쿼리를 다시 정렬하여 정렬 상태를…
- Palindrome Tree (eerTree) ← 2
- 정의 Palindrome Tree (또는 eerTree) 는 문자열 의 모든 서로 다른 회문 부분문자열 을 선형 공간 O(n) 에 저장하는 자료구조. 2014 년 Mikhail …
- Permutation Tree ← 2
- 정의 Permutation Tree (a.k.a. Divide-Combine Tree) 는 순열을 연속 구간 (consecutive interval, 값이 연속인 구간) 단위로 …
- Pick 정리 (Pick's Theorem) ← 1
- 정의 Pick 정리는 꼭짓점이 격자점 (integer lattice) 위에 있는 단순 다각형의 넓이 A 를 내부 격자점 개수 I 와 경계 격자점 개수 B 로 표현: A = I +…
- Pigeonhole Principle (비둘기집 원리)
- 정의 비둘기집 원리 (Pigeonhole Principle) 는 "N+1 개의 객체를 N 개의 상자에 넣으면, 적어도 하나의 상자는 두 개 이상의 객체를 포함한다" 는 자명한 조…
- Pollard Rho 소인수분해 (Pollard's Rho Algorithm) ← 3
- 정의 Pollard Rho 는 큰 정수 N 의 비자명 약수를 O(N^(1/4)) 확률적 시간에 찾는 알고리즘. 생일 역설 (Birthday Paradox) 을 활용해 난수 수열의…
- Polynomial Division, Kitamasa ← 1
- 정의 Kitamasa 는 길이 의 선형 점화식 의 번째 항을 O(K² log n) 또는 FFT/NTT 와 결합해 O(K log K · log n) 에 계산하는 알고리즘. 행렬 거…
- Polynomial Interpolation ← 3
- 정의 Polynomial Interpolation (다항식 보간) 은 N+1 개의 점 으로부터 유일하게 결정되는 차수 ≤ N 의 다항식 를 복원하는 것. PS 에서는 DP 의 결…
- Push-Relabel, Cost Scaling ← 4
- 정의 Push-Relabel 은 증가 경로 (augmenting path) 기반 의 Ford-Fulkerson / Dinic 과 달리 각 정점의 잉여 흐름 (excess) 을 국…
- Quick Sort ← 10
- 정의 Quick Sort (퀵 정렬) 는 분할 정복 (Divide & Conquer) 기반 비교 정렬. 1959 년 Tony Hoare 가 고안. 배열에서 pivot 을 하나 골…
- Randomization (무작위화) ← 1
- 정의 무작위화 (Randomization) 는 알고리즘 내부에 난수를 도입하여 평균 성능 향상 또는 결정론적 방법보다 단순한 해결책 을 얻는 기법. 크게 두 부류로 나뉜다: - …
- Regions Trick ← 2
- 정의 Regions Trick 은 비슷한 쿼리들을 시공간 영역으로 묶어 캐싱 해, 동일/유사 결과를 재사용해 총 비용을 줄이는 패턴. 쿼리 캐싱 (query caching) 의 …
- Run Enumerate ← 2
- 정의 Run 은 문자열에서 주기적으로 반복되는 maximal 구간. 정확히는 구간 의 주기 가 이면서, 양 끝으로 확장 시 주기가 깨지는 부분. Run Enumerate 는 길이…
- Segment Tree Beats ← 6
- 정의 Segment Tree Beats (STB), 일명 Ji Driver Segment Tree 는 naive lazy propagation 으로는 표현 불가능한 비단조 laz…
- Selection Sort ← 4
- 정의 Selection Sort (선택 정렬) 는 매 단계에서 남은 원소 중 최솟값을 찾아 맨 앞으로 보내는 정렬. n-1 번의 단계 후 정렬 완료. 다른 O(n²) 정렬과 달리…
- SIMD ← 6
- 정의 SIMD (Single Instruction Multiple Data) 는 한 명령어로 여러 데이터 를 병렬 처리하는 CPU 기능. x86 의 SSE / AVX / AVX2…
- Slope Trick ← 6
- 정의 Slope Trick (기울기 트릭) 은 볼록 (convex) 한 piecewise-linear 함수 를 DP 상태값으로 들고 갈 때, 함수 전체를 메모리에 펼치지 않고 꺾…
- SOS DP (Sum Over Subsets) ← 1
- 정의 SOS DP (Sum Over Subsets) 는 길이 2^N 의 배열 a 에 대해, 모든 mask (0..2^N-1) 마다 mask 의 부분 집합 (submask) 에 대…
- Stern-Brocot Tree ← 2
- 정의 Stern-Brocot Tree (SBT) 는 모든 양의 기약 분수 (positive coprime fraction) 를 정확히 한 번씩 노드로 가지는 무한 이진 트리. 1…
- Stoer-Wagner 전역 최소 컷 (Global Minimum Cut)
- 정의 Stoer-Wagner 알고리즘 은 무방향 가중치 그래프 에서 source/sink 없이 가장 작은 컷 (global minimum cut) 을 찾는 알고리즘. 시간 복잡도…
- Suffix Array (접미사 배열) ← 2
- 정의 Suffix Array (SA, 접미사 배열) 는 문자열 s 의 모든 접미사를 사전순 정렬한 인덱스 배열. SA[i] = 시작 위치 (0-indexed). 보통 LCP (L…
- Suffix Automaton, Suffix Tree ← 4
- 정의 Suffix Automaton (SAM) 은 문자열 의 모든 부분문자열을 단어로 받는 최소 결정성 유한 오토마타 (minimal DFA). 노드 수 ≤ 2n, 간선 수 ≤ …
- Treewidth, Tree Decomposition ← 1
- 정의 Tree Decomposition 은 그래프 를 bag (정점 집합) 들을 노드로 하는 트리 로 분해한 것. Treewidth = 가장 작은 분해의 최대 bag 크기 - 1…
- UTF-8 인코딩
- 정의 UTF-8 은 Unicode code point (00x10FFFF) 를 14 byte 가변 길이로 인코딩하는 방식. 1993년 ISO/IEC 10646 표준의 일부로 도입…
- Voronoi Diagram, Delaunay Triangulation ← 2
- 정의 Voronoi Diagram 은 평면의 N 개 점에 대해 각 점을 가장 가까운 점으로 가지는 영역 들로 평면을 분할한 그림. 각 영역은 볼록 다각형 (또는 무한 영역). D…
- XOR 기저 (XOR Basis)
- 정의 XOR 기저 (XOR Basis, Linear Basis over GF(2)) 는 정수 집합 S 의 XOR 합 (XOR span) 으로 만들 수 있는 모든 값을 생성하는 최…
- Young Tableau, RSK Correspondence
- 정의 Young Diagram 은 행마다 길이가 단조 감소 하는 칸들의 배열 (왼쪽 위 정렬). Young Tableau 는 그 칸에 1..n 을 채워 넣은 것 중 행과 열 모두…
- Z 알고리즘 (Z Algorithm) ← 4
- 정의 Z 알고리즘 (Z Algorithm) 은 문자열 의 각 위치 i 에 대해, 와 의 최장 공통 접두사 (LCP) 길이 를 O(N) 시간에 모두 계산하는 선형 알고리즘. 결과 …
spring (79)
- [JPA] @Embeddable, @Embedded, @Converter ← 3
- 정의 @Embeddable 은 별도 테이블 없이 entity 의 일부로 포함되는 값 객체 (Value Object). 같은 의미적 그룹의 필드들을 하나의 클래스로 추출. Attr…
- [JPA] 동적 쿼리: Criteria API, QueryDSL, Specification ← 2
- 정의 동적 쿼리 = 런타임 조건에 따라 WHERE / JOIN 이 달라지는 쿼리. 검색 필터, admin 도구, 리포팅 등에서 흔함. JPQL string concatenatio…
- [JPA] 상속 전략: SINGLE_TABLE, JOINED, TABLE_PER_CLASS ← 2
- 정의 JPA 는 객체 상속 구조를 관계형 테이블로 매핑하는 3가지 전략 + 1가지 비매핑 옵션: | 전략 | 테이블 구조 | 사용 시점 | |---|---|---| | (기본) …
- [JPA] CascadeType과 orphanRemoval ← 2
- 정의 JPA 의 entity 연산 ( , , , , ) 을 연관 entity 에 자동 전파 하는 메커니즘. 같이 선언. 별개 개념인 orphanRemoval 은 부모 컬렉션에서 …
- [JPA] Entity Lifecycle Callbacks와 Auditing ← 4
- 정의 Entity 의 라이프사이클 (persist / update / load / remove) 특정 시점에 자동 호출되는 메서드. 두 가지 형태: 1. Entity 내부 메서드…
- [JPA] FetchType: LAZY vs EAGER, N+1, fetch join ← 12
- 정의 FetchType 은 JPA 가 연관 entity 를 언제 로드할지 결정하는 hint. - : entity 로딩 시 즉시 함께 SELECT - : 실제 사용 시점 (prox…
- [JPA] JPQL DTO Projection: constructor expression, interface, record ← 2
- 정의 DTO Projection 은 entity 전체가 아닌 필요한 컬럼만 query 해서 DTO 로 받기. 장점: - N+1 회피 (lazy 컬렉션 자동 무시) - entity…
- [JPA] JPQL: Jakarta Persistence Query Language ← 3
- 정의 JPQL 은 Jakarta Persistence 표준의 객체 지향 쿼리 언어. 문법은 SQL 과 유사하지만 entity 와 그 필드를 대상으로 작동 (table / colu…
- [JPA] Optimistic Lock과 Pessimistic Lock ← 3
- 정의 동시 수정으로 데이터가 깨지는 상황을 막는 두 가지 전략: - Optimistic (낙관적): 충돌이 드물다고 가정, 커밋 직전에 version 비교로 검증. 충돌 시 예외…
- [JPA] PersistenceContext vs PersistenceUnit 비교 ← 2
- 정의 JPA 의 두 개념은 레벨이 다르다. 이름이 비슷해서 자주 혼동하지만: - PersistenceUnit = 설정 단위 (정적, 앱 1번) - PersistenceContex…
- [JPA] PersistenceContext: 1차 캐시, dirty checking, flush ← 16
- 정의 PersistenceContext 는 가 관리하는 entity 의 메모리 저장소 + 변경 추적기. 트랜잭션 안에서만 살아 있다 ( 진입 시 생성, commit/rollbac…
- [JPA] PersistenceUnit: EntityManagerFactory의 정의 단위 ← 2
- 정의 PersistenceUnit 은 하나의 논리적 DB 연결 + entity 매핑 집합 을 정의한 단위. 결과물은 1개. JPA 아키텍처의 계층: 가 트랜잭션 범위의 메모리 저…
- [Spring AI] 개요: ChatClient, ChatModel, Prompt ← 1
- 정의 Spring AI 는 LLM (OpenAI, Anthropic, Vertex AI, Bedrock, Ollama 등) 을 Spring 스타일로 사용하게 해 주는 abstra…
- [Spring AI] RAG: Embedding, VectorStore, QuestionAnswerAdvisor ← 1
- 정의 RAG (Retrieval Augmented Generation) 는 LLM 의 지식 한계 (학습 cutoff, 사내 문서 부재) 를 극복하기 위해, 질문 시점에 외부 지식…
- [Spring Batch] 대용량 배치 처리 ← 1
- 정의 Spring Batch는 대용량 데이터의 배치 처리 (ETL, 일괄 통계, 마이그레이션 등)를 위한 프레임워크. Job → Step → ItemReader → ItemPro…
- [Spring Boot] 자동 구성과 @SpringBootApplication ← 8
- 정의 Spring Boot의 핵심 가치 = 자동 구성(autoconfiguration). classpath의 라이브러리를 보고 합리적 기본 설정으로 Bean 등록. Tomcat이…
- [Spring Boot] Actuator 커스텀: Endpoint, HealthIndicator, Metric
- 정의 Spring Boot Actuator 의 확장 포인트. 기본 endpoint ( , , ) 외에 도메인 정보 노출: - : 새로운 endpoint - : 의 sub-heal…
- [Spring Boot] Build Plugins: Maven, Gradle, Executable JAR, OCI Image ← 2
- 정의 Spring Boot 의 빌드 플러그인은 표준 jar 가 아닌 executable jar (fat jar / uber jar) 생성. 추가로 OCI 이미지, native i…
- [Spring Boot] Database Initialization: schema.sql, Flyway, Liquibase ← 3
- 정의 DB 스키마 / 데이터를 application 시작 시점에 자동 설정하는 메커니즘. 세 가지 접근: 1. / (Spring Boot 내장, 단순) 2. Hibernate (…
- [Spring Boot] Deployment: 전통 WAR, Cloud, Systemd ← 3
- 정의 컨테이너 / K8s 외의 Spring Boot 배포 옵션: - Traditional WAR: 외부 Tomcat / Jetty (legacy 환경) - systemd serv…
- [Spring Boot] Docker / Kubernetes 배포 ← 4
- 정의 Spring Boot 앱을 컨테이너로 배포. 두 가지 주류: - Docker / Docker Compose: 단일 호스트, 개발 + 소규모 운영 - Kubernetes: 멀…
- [Spring Boot] Embedded Web Server 설정과 튜닝 ← 4
- 정의 Spring Boot 의 starter 가 내장 서버를 함께 번들. 별도 WAR 배포 / 외부 Tomcat 불필요. 기본 매핑: - → Tomcat (기본) - → Nett…
- [Spring Boot] Hibernate Naming Strategy ← 2
- 정의 Hibernate 가 entity 클래스 / 필드명 → DB table / column 명으로 변환하는 규칙. 두 단계로 분리: | 단계 | 역할 | 인터페이스 | |---…
- [Spring Boot] Logging: Logback, Log4j2, Structured Logging ← 2
- 정의 Spring Boot 의 기본 로거는 Logback ( 가 자동 포함). SLF4J facade 위에서 동작. 교체 가능: - : Log4j2 (높은 처리량, async l…
- [Spring Boot] Multi-DataSource: 복수 DB 연결과 트랜잭션 ← 2
- 정의 한 Spring Boot 앱이 여러 DB / 여러 스키마 에 접근. 패턴 세 가지: 1. 물리적으로 분리된 DB (orders DB + analytics DB) 2. Rea…
- [Spring Boot] Properties 외부화: PropertySource, Profile, @ConfigurationProperties ← 4
- 정의 Spring Boot 는 설정값을 15가지 소스에서 우선순위로 병합. 같은 키가 여러 곳에 있으면 우선순위 높은 게 이김. 코드 변경 없이 환경별 설정 가능. 핵심 소스 (…
- [Spring Boot] SSL/HTTPS 설정 ← 2
- 정의 Spring Boot 에서 HTTPS / TLS 설정 방법. JKS (legacy), PKCS12, PEM (modern), SSL Bundles (Spring Boot 3…
- [Spring Boot] YAML Configuration: multi-document, profiles, anchors
- 정의 Spring Boot 는 와 모두 지원. YAML 권장: 계층 구조 가독성, multi-document, anchors / aliases, list / map native …
- [Spring Cloud] Eureka, Config, Gateway, OpenFeign ← 5
- 정의 Spring Cloud는 Spring Boot 기반 마이크로서비스 인프라 패턴 (service discovery, config server, gateway, circuit …
- [Spring Data] MongoDB: MongoTemplate, MongoRepository
- 정의 Spring Data MongoDB 는 MongoDB 를 Spring 스타일로 사용하는 추상화. JPA 와 비슷한 Repository 패턴 + MongoDB native q…
- [Spring MVC] Argument Resolver: Custom HandlerMethodArgumentResolver ← 1
- 정의 HandlerMethodArgumentResolver = 컨트롤러 메서드 인자를 어떻게 채울지 결정 하는 확장점. Spring 의 수십 개 표준 resolver + 커스텀 …
- [Spring MVC] Content Negotiation: Accept 헤더, MediaType, ContentNegotiationStrategy ← 1
- 정의 Content Negotiation = 같은 endpoint 가 Accept 헤더 에 따라 다른 포맷 응답. JSON / XML / HTML / CSV 등. 결정 우선순위 …
- [Spring MVC] Exception Handling: @ExceptionHandler, ControllerAdvice, ProblemDetail ← 3
- 정의 Spring MVC 의 예외 처리 3 계층: 1. - 컨트롤러 내부 2. / - 전역 3. 상속 - Spring 의 표준 예외 자동 처리 처리 우선순위 컨트롤러 내부 컨트롤…
- [Spring MVC] Form Handling: @ModelAttribute, DataBinder, conversion ← 4
- 정의 Form Handling = HTML form 의 요청 파라미터 → Java 객체 변환 + 검증 + 에러 처리. 핵심: + + . 기본 흐름 자세한 BindingResult…
- [Spring MVC] Model + BindingResult: 뷰 모델과 바인딩 오류 처리 ← 5
- 정의 Model = 컨트롤러 → 뷰 (Thymeleaf, JSP) 로 데이터 전달. BindingResult = 요청 파라미터 → 객체 바인딩 결과 + 오류. 둘 다 Spring…
- [Spring MVC] Thymeleaf: 서버 사이드 템플릿 엔진 ← 2
- 정의 Thymeleaf = Java 서버 사이드 HTML 템플릿 엔진. natural template 철학 (브라우저에서 그대로 열어도 동작). Spring Boot 가 기본 권…
- [Spring Security] OAuth2 Authorization Code Flow + PKCE ← 3
- 정의 가 OAuth2 Login (소셜 로그인) 의 개요를 다룬다면, 이 페이지는 표준 Authorization Code Grant 의 전체 흐름과 PKCE, refresh to…
- [Spring Security] Session Management와 Remember-Me ← 2
- 정의 가 JWT / stateless 위주를 다룬다면, 이 페이지는 session-based 인증 의 세부 동작 (생성 정책, 동시 세션 제한, fixation 방어, remem…
- [Spring Security] Testing: @WithMockUser, MockMvc, jwt(), oauth2Login() ← 2
- 정의 Spring Security 가 적용된 컨트롤러를 테스트할 때 흔한 어려움: - 매번 실제 로그인 절차를 거쳐야 인증된 요청 가능 - CSRF token 이 없으면 POST…
- [Spring Validation] Custom Validator: ConstraintValidator, Groups, cross-field
- 정의 기본 , 등으로 부족한 도메인 검증 을 인터페이스 로 구현. 재사용 가능한 어노테이션 형태. 기본 validation 의 일반은 . 패턴 3가지 1. Constraint C…
- [Spring] @Autowired 해결 전략: @Qualifier, @Primary, byType ← 4
- 정의 가 의 기초 (생성자/필드/setter 주입) 를 다룬다면, 이 페이지는 같은 타입의 Bean 이 여러 개일 때 어떻게 하나를 골라내는지 의 해결 전략을 다룬다. 기본 알고…
- [Spring] @Conditional, Profile, @ConfigurationProperties ← 7
- 정의 Spring Boot는 조건부 Bean 등록 메커니즘을 제공한다. classpath, property, 다른 Bean 유무 등에 따라 자동 구성을 활성화/비활성화. , 어노…
- [Spring] @Scheduled와 @Async ← 5
- 정의 Spring은 @Scheduled (정기 작업)와 @Async (비동기 메서드)를 어노테이션으로 제공. ThreadPool, TaskScheduler 설정 가능. Quart…
- [Spring] 개요: Framework, Boot, Cloud ← 2
- 정의 Spring은 Java 엔터프라이즈 표준 프레임워크 그룹. 2003년 Rod Johnson이 EJB 대안으로 시작. IoC/DI가 핵심. 현재는: - Spring Frame…
- [Spring] Actuator: health, metrics, info ← 7
- 정의 Spring Boot Actuator는 프로덕션용 monitoring/management endpoint 자동 제공. health check, metrics, env, be…
- [Spring] AMQP / RabbitMQ ← 2
- 정의 Spring AMQP는 RabbitMQ 등 AMQP 0-9-1 호환 브로커의 Spring 통합. (publisher), (consumer), exchange/queue 자동…
- [Spring] AOP: @Aspect, Pointcut, Advice ← 8
- 정의 AOP (Aspect-Oriented Programming)는 cross-cutting concerns(로깅, 트랜잭션, 보안 등)를 비즈니스 코드에서 분리하는 기법. Sp…
- [Spring] Bean Lifecycle: 초기화와 소멸 콜백 ← 5
- 정의 가 Bean 등록과 주입 을 다룬다면, 이 페이지는 등록 이후 생성 → 사용 → 소멸 사이에 끼어드는 콜백을 다룬다. Spring 컨테이너가 단순히 객체를 만들고 끝내는 게…
- [Spring] Bean Scope 심화: Singleton, Prototype, Web Scope ← 3
- 정의 가 5가지 scope 의 개요 를 다룬다면, 이 페이지는 그 중 함정 (prototype-into-singleton) 과 해결 패턴 (ScopedProxy, ObjectPr…
- [Spring] Bean Validation: @Valid, @NotBlank, custom ← 11
- 정의 Spring은 Jakarta Bean Validation (JSR-380)을 표준으로 사용. , , 등 어노테이션으로 선언적 검증. Spring MVC가 로 자동 통합. 설…
- [Spring] BeanPostProcessor와 BeanFactoryPostProcessor ← 5
- 정의 Spring 컨테이너의 2가지 확장점: - BeanFactoryPostProcessor (BFPP): Bean 인스턴스가 만들어지기 전, (메타데이터) 을 수정. 클래스명,…
- [Spring] Cache: @Cacheable, @CacheEvict, Redis ← 3
- 정의 Spring Cache는 메서드 결과를 캐시하는 추상화. 한 줄로 메모이제이션. 백엔드는 Caffeine, Redis, Hazelcast, EhCache 등 자유롭게. 캐시…
- [Spring] CompositeMap & CompositeIterator
- 정의 는 두 개의 Map 을 하나의 view 로 합쳐서 보여주는 read-mostly 자료구조. 첫 번째 Map 이 우선, 없으면 두 번째 Map 을 본다. 는 여러 Iterat…
- [Spring] ConcurrentLruCache
- 정의 는 Spring 5.3+ 의 thread-safe LRU 캐시. 크기 제한이 있고 가장 오래 안 쓰인 entry 부터 제거. 내부적으로 + (또는 비슷한 자료구조) 조합으로…
- [Spring] ConcurrentReferenceHashMap ← 1
- 정의 는 Spring Framework 의 핵심 유틸리티. 의 동시성 과 / 의 GC 친화성 을 결합한 Map. JDK 표준에 없는 조합. 메모리 압박 시 GC 가 entry 를…
- [Spring] DispatcherServlet: Front Controller 내부 ← 9
- 정의 가 / 사용법 을 다룬다면, 이 페이지는 그 모든 요청을 받아 처리하는 의 내부 메커니즘 을 다룬다. 은 본질적으로 하나의 Servlet (). Front Controlle…
- [Spring] Events: @EventListener, @TransactionalEventListener ← 1
- 정의 Spring 의 in-process pub-sub. 모놀리식 앱 안에서 모듈 간 의존성을 줄이는 도구. 외부 메시지 브로커 (Kafka, RabbitMQ) 와 다른 점: 같…
- [Spring] HandlerInterceptor: preHandle, postHandle, afterCompletion ← 4
- 정의 HandlerInterceptor 는 내부에서 handler (Controller 메서드) 실행 전후 에 끼어드는 Spring MVC 전용 메커니즘. Filter 와 비슷하…
- [Spring] IoC와 DI: Bean, ApplicationContext, @Autowired ← 10
- 정의 IoC (Inversion of Control)는 객체 생성/생명주기 제어를 프레임워크가 가져가는 원칙. DI (Dependency Injection)는 그 구현 방법. S…
- [Spring] JdbcTemplate, NamedParameterJdbcTemplate ← 4
- 정의 JdbcTemplate은 JPA 없이 raw SQL을 안전하게 다루는 Spring 표준. boilerplate 제거 (try-with-resources, exception …
- [Spring] LinkedCaseInsensitiveMap
- 정의 는 을 기반으로 key 비교를 대소문자 무시 로 하는 Map. 단, 원본 key (대소문자 보존) 도 유지. HTTP 헤더 같은 도메인에서 과 을 같은 key 로 다뤄야 할…
- [Spring] MultiValueMap & LinkedMultiValueMap
- 정의 는 하나의 key 에 여러 value 가 매핑되는 Map 인터페이스. 형식적으로는 의 sugared 형태. 는 그 기본 구현체, 내부적으로 를 보관 (삽입 순서 유지). S…
- [Spring] Native Image: GraalVM, 빠른 시작 ← 2
- 정의 Spring Native (3.0+)는 Spring Boot 앱을 GraalVM Native Image로 컴파일해 즉시 시작·낮은 메모리·작은 바이너리를 얻는다. JIT 없…
- [Spring] Reflection 유틸: ReflectionUtils, AnnotationUtils, ResolvableType ← 1
- 정의 Spring 은 reflection 을 헤비하게 쓴다. DI 처리, AOP 프록시, 해결, Jackson 통합, JPA entity 매핑 모두 reflection 위에서 동…
- [Spring] RequestContextHolder, LocaleContextHolder: ThreadLocal 기반 요청 컨텍스트 ← 11
- 정의 Spring 은 HTTP 요청 / 응답 / locale / 트랜잭션 / 인증 같은 요청 범위 데이터를 ThreadLocal 에 저장 해 전역 노출한다. 메서드 인자로 일일이…
- [Spring] Resilience4j: CircuitBreaker, Retry, RateLimiter ← 1
- 정의 Resilience4j는 Java용 fault-tolerance 라이브러리. Hystrix(maintenance) 대체. Spring Boot 통합으로 어노테이션 ( , ,…
- [Spring] RestClient, WebClient, RestTemplate ← 4
- 정의 Spring HTTP 클라이언트 3종: - RestTemplate: 동기, 전통 (5.0+ maintenance) - WebClient: reactive, async/syn…
- [Spring] Security: Filter Chain, JWT, OAuth2 ← 12
- 정의 Spring Security는 인증·인가의 사실상 표준. 서블릿 필터 체인 위에 다양한 인증/권한 처리를 모듈식으로. 6.0+ 부터 Lambda DSL 표준, Bean 방식…
- [Spring] SpEL: Spring Expression Language
- 정의 SpEL (Spring Expression Language)은 Spring의 강력한 표현 언어. , , 등 어노테이션 내에서 동적 표현 평가. property 조회, 메서드…
- [Spring] Spring Data JPA: Repository, Query Methods ← 22
- 정의 Spring Data JPA는 JPA(Hibernate) 위에 Repository 추상화를 얹어 boilerplate를 제거. 인터페이스만 정의하면 Spring이 구현체 자…
- [Spring] Spring Data Redis
- 정의 Spring Data Redis는 Redis 클라이언트(Lettuce, Jedis)의 Spring 추상화. , (저수준), 통합, (객체 매핑), pub/sub 등. 설정 …
- [Spring] Spring for Apache Kafka ← 3
- 정의 Spring Kafka는 Apache Kafka 클라이언트의 Spring 친화 래퍼. (producer), (consumer), (topic 관리), Spring Boot …
- [Spring] Spring MVC: @RestController, @RequestMapping ← 20
- 정의 Spring MVC는 Servlet 기반 동기 웹 프레임워크. 이 요청을 받아 핸들러(컨트롤러 메서드)에 라우팅. REST API와 전통 MVC(HTML) 모두 지원. We…
- [Spring] Stereotype 어노테이션: @Component, @Service, @Repository, @Controller ← 4
- 정의 Stereotype 어노테이션 은 클래스가 Spring 컨테이너의 어떤 역할 (role) 인지를 의미적으로 표시한다. 모두 를 메타 어노테이션 으로 가진 specializa…
- [Spring] Testing: @SpringBootTest, MockMvc, Testcontainers ← 2
- 정의 Spring Boot Test는 단위/슬라이스/통합 테스트 모두 지원. 가 JUnit 5, Mockito, AssertJ, Hamcrest, JsonPath 포함. 슬라이스…
- [Spring] Transaction: @Transactional, propagation, isolation ← 16
- 정의 Spring 트랜잭션은 AOP 기반 선언형 트랜잭션 관리. 한 줄로 메서드 전체를 트랜잭션 범위로. JDBC, JPA, MongoDB 등 backend에 동일 API. 기본…
- [Spring] Virtual Threads (Project Loom): Spring 6.1+ ← 1
- 정의 Virtual Thread 는 JDK 21+ 에서 GA 된 경량 thread. JVM 이 OS thread (carrier) 위에 가상 thread 를 M:N 매핑. 수백만…
- [Spring] WebFlux: Reactive, Mono, Flux ← 11
- 정의 Spring WebFlux는 Project Reactor 기반의 비동기·non-blocking 웹 프레임워크. Spring MVC와 별개. Netty 기본 (Tomcat도 …
- [Spring] WebSocket과 STOMP
- 정의 Spring은 raw WebSocket API와 메시징 프로토콜 STOMP 둘 다 지원한다. STOMP는 publish/subscribe 기반 메시지 broker ( , ,…
python (72)
- [Python] @property, getter, setter, deleter
- 정의 는 메서드를 속성처럼 접근할 수 있게 해주는 데코레이터다. 호출자는 처럼 보지만 내부적으로는 함수가 실행되어 계산되거나 검증된 값을 반환한다. Java의 getter/set…
- [Python] 가비지 컬렉션: refcount + 순환 GC
- 정의 CPython의 메모리 관리는 두 메커니즘의 조합이다. 1. Reference counting: 모든 객체에 참조 카운트( )가 있고, 카운트가 0이 되면 즉시 해제. 즉각…
- [Python] 가상환경, pyproject.toml, packaging
- 정의 Python 프로젝트의 격리·의존성·배포는 세 축이 있다. - 가상환경 (venv, virtualenv, uv, conda): 프로젝트별 의존성 격리 - 패키지 매니저 (p…
- [Python] 기본 문법: 들여쓰기, 주석, 변수
- 정의 Python은 들여쓰기(indentation)로 블록을 구분하는 언어다. C/Java의 중괄호 대신 일관된 들여쓰기 수준이 블록 스코프를 결정한다. PEP 8은 공백 4칸을…
- [Python] 데코레이터: @decorator, functools.wraps, 클래스 데코레이터
- 정의 데코레이터(decorator)는 함수/클래스를 받아 다른 함수/클래스를 반환하는 callable이다. 문법은 단순한 호출 변환에 불과: 기본 데코레이터 는 원래 함수의 행동…
- [Python] 문자열 포매팅: %, .format, f-string, Template
- 정의 Python에는 4가지 문자열 포매팅 방법이 있다. 새 코드는 f-string 우선. | 방법 | 도입 | 상태 | |------|------|------| | 포매팅 | …
- [Python] 바이트코드와 dis 모듈
- 정의 CPython 인터프리터는 Python 소스를 바이트코드로 컴파일해 평가 루프( 의 메인 switch)에서 실행한다. 바이트코드는 스택 기반 가상 머신을 위한 작은 명령어 …
- [Python] 상속, super, MRO, ABC
- 단일 상속 super() 부모 메서드를 호출하려면 . 다중 상속에서 MRO를 따라 다음 클래스로 디스패치. 인자 없이 호출하면 현재 클래스/인스턴스가 자동 주입된다(Python …
- [Python] 스코프와 LEGB, global, nonlocal
- LEGB 규칙 Python은 이름 해결 시 L → E → G → B 순서로 스코프를 탐색한다. | 단계 | 의미 | 예 | |------|------|---| | Local | …
- [Python] 연산자: 비교, 산술, 비트, 멤버십
- 분류 | 종류 | 연산자 | 예시 | |------|--------|------| | 산술 | | , (행렬곱) | | 비교 | | | | 동일성 | | | | 멤버십 | | |…
- [Python] 예외 처리: try, except, raise, ExceptionGroup
- try / except / else / finally - : try가 정상 종료된 경우만 실행. try 블록을 최소화하기 위함 - : 항상 실행. 자원 해제용 예외 계층 으로 잡…
- [Python] 제어 흐름: if, for, while, match
- if / elif / else Python에는 가 없었으나 3.10+ 문이 추가됐다(아래 참고). for 루프 Python의 는 iterable 순회 전용. C의 인덱스 카운팅 …
- [Python] 함수 기초: def, 인수, return
- def 문으로 함수를 정의한다. 함수도 일급 객체(first-class)라 변수에 할당하고 인자로 전달할 수 있다. 인수 종류 Python 함수 시그니처는 6가지 매개변수 종류를…
- [Python] argparse, click, typer: CLI 만들기
- 정의 Python에서 CLI를 만드는 옵션은 세 가지가 주류: - (stdlib): 표준, 외부 의존성 없음 - (third-party): 데코레이터 기반, 강력한 옵션 처리 -…
- [Python] Async Generator, async for, async with
- 정의 Python의 비동기 모델은 코루틴 + iterator의 조합으로 확장된다. 동기 generator가 lazy 시퀀스를 만들듯, async generator는 각 값 사이에…
- [Python] asyncio: 이벤트 루프, async/await
- 정의 는 Python 표준 라이브러리의 단일 스레드 이벤트 루프 기반 비동기 I/O 프레임워크다. 로 코루틴을 정의하고 로 다른 코루틴/awaitable 완료를 기다린다. I/O…
- [Python] bytes, bytearray, memoryview
- 정의 Python에서 바이너리 데이터는 세 가지 타입으로 다룬다. - : 불변 바이트 시퀀스. 0255 정수의 immutable 배열. - : 가변 바이트 시퀀스. 의 mutab…
- [Python] class 기초: 정의, __init__, self
- 클래스 정의 self Python 메서드의 첫 번째 인수는 인스턴스 자신이다. 관례적으로 라 부른다(언어가 강제하진 않지만 PEP 8 권장). 호출 시 는 내부적으로 로 바인딩된…
- [Python] collections: Counter, deque, defaultdict, OrderedDict, ChainMap
- 정의 모듈은 dict/list/tuple/set의 특수화 컨테이너를 제공한다. 표준 라이브러리에 있는 데이터 구조 도구함의 핵심. | 클래스 | 용도 | |--------|---…
- [Python] collections.abc: 추상 컬렉션 인터페이스
- 정의 는 컬렉션의 추상 베이스 클래스를 제공한다. 사용자 정의 컬렉션이 빌트인과 같은 인터페이스를 구현했음을 명시하거나, isinstance 검사에 사용. PEP 3119. 타입…
- [Python] Comprehension: list, dict, set, generator
- 정의 Comprehension(컴프리헨션)은 iterable로부터 list/set/dict/generator를 선언적·간결하게 만드는 문법이다. 일반 + 보다 30-50% 빠르며…
- [Python] concurrent.futures: ThreadPoolExecutor, ProcessPoolExecutor
- 정의 는 과 위에 고수준 Executor 인터페이스를 제공한다. 워커 풀, Future 객체, map/submit API로 동기 코드처럼 병렬 작업을 작성할 수 있다. 두 Exe…
- [Python] Context Manager: with, __enter__, contextlib
- 정의 Context manager는 와 메서드를 가진 객체로, 문을 통해 자원 획득/해제를 안전하게 묶는다. 파일·락·DB 트랜잭션·임시 설정처럼 "들어가면 반드시 나와야 하는"…
- [Python] contextvars: 비동기 친화 컨텍스트 변수
- 정의 (PEP 567, 3.7+)는 현재 코드 실행 컨텍스트에 묶이는 변수다. threading의 처럼 동작하지만 asyncio 코루틴·태스크 경계도 정확히 인식. 비동기 코드에…
- [Python] cProfile, timeit, perf: 성능 프로파일링
- 정의 Python 성능 분석 도구 선택지. - (stdlib): 작은 코드 조각 벤치마크 - (stdlib): 함수 호출 단위 프로파일링, deterministic - (stdl…
- [Python] csv, io: CSV와 텍스트 스트림
- 정의 는 표준 라이브러리의 CSV 파서. 는 텍스트/바이너리 스트림 추상화. CSV 처리는 작은 파일이면 모듈, 큰 데이터셋이면 나 가 적합. 기본 읽기 중요: 에 권장. CSV…
- [Python] dataclass: 자동 생성 메서드를 갖춘 데이터 클래스
- 정의 (3.7+, PEP 557)는 클래스에 , , 등 상용구 메서드를 자동 생성해주는 데코레이터다. 데이터 컨테이너 클래스를 한 줄 데코레이터 + 필드 어노테이션만으로 만들 수…
- [Python] datetime, timezone, zoneinfo
- 정의 모듈은 날짜·시각·기간 처리를 제공한다. 핵심 클래스: - : 연-월-일 - : 시-분-초-마이크로초 (날짜 정보 없음) - : date + time - : 기간 (날짜 간…
- [Python] Descriptor: __get__, __set__, __delete__
- 정의 Descriptor는 , , 중 하나 이상을 구현한 클래스다. 다른 클래스의 클래스 속성으로 사용되면 그 속성 접근이 descriptor의 메서드를 통해 라우팅된다. , ,…
- [Python] dict: 해시 맵과 삽입 순서 보장
- 정의 는 Python의 해시 맵 자료구조다. Python 3.7부터 삽입 순서를 언어 사양으로 보장한다(이전엔 CPython 3.6 구현 디테일이었음). 평균 O(1) 조회·삽입…
- [Python] enum: Enum, IntEnum, Flag, StrEnum
- 정의 은 고정된 이름-값 매핑을 정의하는 표준 모듈. 마법 숫자나 문자열 상수를 타입화된 멤버로 대체해 타입 안정성·가독성·IDE 지원을 얻는다. Enum 기본 멤버는 싱글톤. …
- [Python] float, Decimal, Fraction
- 정의 Python의 실수 산술은 세 가지 타입을 제공한다. - : IEEE 754 double precision (64비트). C 과 동일. 빠르지만 부정확. - : 임의 정밀도…
- [Python] functools: cache, partial, reduce, singledispatch
- 정의 는 함수형 프로그래밍 도구와 함수 변환 데코레이터를 제공하는 표준 라이브러리. 메모이제이션, 부분 적용, 디스패치, 데코레이터 메타데이터 등을 다룬다. lrucache / …
- [Python] GIL, multiprocessing 그리고 free-threaded (3.14)
- 정의 GIL (Global Interpreter Lock) 은 CPython 인터프리터가 한 번에 하나의 OS 스레드만 파이썬 바이트코드를 실행할 수 있도록 보장하는 뮤텍스. 1…
- [Python] hashlib, secrets, hmac: 해시와 암호 보안
- 정의 암호학 관련 표준 모듈 3개. - : 해시 함수 (SHA-256, MD5, BLAKE2 등) - : 암호학적으로 안전한 난수 ( 은 비안전) - : HMAC 메시지 인증 암…
- [Python] heapq, bisect, array
- heapq: min-heap 는 리스트를 min-heap 구조로 다루는 함수 모음. 클래스가 아니라 일반 list 위에서 동작. 기본 / 모두 O(log n). 단순 list로는…
- [Python] import 시스템과 패키지
- 정의 Python 시스템은 모듈(.py 파일)과 패키지(디렉터리)를 메모리에 로드하고 네임스페이스에 바인딩한다. CPython은 한 번 로드한 모듈을 캐시에 보관해 재import…
- [Python] importlib: 동적 import와 메타데이터
- 정의 는 import 시스템에 대한 프로그래밍 인터페이스. 동적 모듈 로딩, 메타데이터 조회, 진입점 발견, hot reload 등을 제공한다. 플러그인 시스템·테스트·동적 디스…
- [Python] int: 임의 정밀도 정수
- 정의 Python의 는 임의 정밀도 정수(arbitrary precision integer)다. C의 / 처럼 비트 폭이 고정되지 않으며, 메모리가 허용하는 한 무한히 큰 정수를…
- [Python] Iterator, Generator, yield
- Iterator Protocol Iterator는 와 를 구현한 객체. Iterable은 만 가지면 된다 (iterator를 반환). 문은 내부적으로 로 iterator를 얻고 …
- [Python] itertools: 효율적인 iterator 빌딩 블록
- 정의 는 메모리 효율적인 iterator 조합기를 제공한다. lazy 평가로 무한 시퀀스도 다루며, C로 구현되어 빠르다. Haskell/Lisp 영향을 받은 함수형 도구함. 무…
- [Python] json: 직렬화와 역직렬화
- 정의 모듈은 Python 객체와 JSON 텍스트 간 변환을 제공한다. 표준 라이브러리라 빠르게 시작 가능하나, 대용량/정밀도/속도 면에서 , 같은 서드파티가 우위. 기본 API …
- [Python] list: 가변 시퀀스
- 정의 Python의 는 가변 길이 동적 배열(dynamic array)이다. C의 /Java 와 같은 자료구조로, 내부적으로 PyObject 포인터의 연속 배열을 over-all…
- [Python] logging: 로거, 핸들러, 포매터
- 정의 은 Python 표준 로깅 프레임워크. logger - handler - formatter - filter 4구성 요소로 유연한 로그 라우팅을 구현. 단순 사용은 한 줄로,…
- [Python] match문: 구조적 패턴 매칭
- 정의 문(3.10+, PEP 634)은 구조적 패턴 매칭. C의 switch보다 훨씬 강력해 타입·구조·내용을 동시에 검사하고 동시에 binding한다. Haskell, Rust…
- [Python] Metaclass: type, __init_subclass__
- 정의 Metaclass는 "클래스의 클래스"다. 일반 클래스가 인스턴스의 행동을 결정하듯, metaclass는 클래스 자체의 행동(생성, 속성, 메서드 추가)을 결정한다. 모든 …
- [Python] multiprocessing: Process, Pool, Queue, Manager
- 정의 은 별도 프로세스로 작업을 분산. GIL 우회 → 진정한 CPU 병렬. 각 프로세스는 독립된 메모리 공간이라 데이터 공유에 오버헤드(pickle, IPC). CPU 집약 작…
- [Python] None, bool, Truthiness
- None 은 값 없음을 나타내는 싱글톤 객체다. 타입은 . 모든 함수가 명시적 return 없으면 을 반환한다. None 비교는 로 PEP 8이 명시한 규칙. NumPy 배열 같…
- [Python] os, shutil, glob: 파일 시스템 도구
- 정의 파일 시스템 다루는 세 표준 모듈: - : OS 인터페이스 (환경 변수, 프로세스, 파일 기본 연산) - : 경로 문자열 조작 (대부분 로 대체 가능) - : 고수준 파일 …
- [Python] pathlib: 객체지향 파일 시스템 경로
- 정의 (3.4+, PEP 428)는 파일 경로를 객체로 다루는 모듈. 기존 문자열 기반 API를 대체할 만큼 강력하고 가독성 좋다. 운영체제별 차이( vs )도 추상화. 기본 사…
- [Python] pdb, breakpoint(), 디버깅 도구
- 정의 는 Python 표준 라이브러리의 대화형 디버거. 중단점, 스텝 실행, 변수 검사, 콜 스택 탐색을 제공. 3.7+ 빌트인이 표준 진입점. breakpoint() 호출 지점…
- [Python] pickle, shelve, marshal: 객체 직렬화
- 정의 은 Python 객체를 바이트로 직렬화하는 표준 모듈. dict, list, 사용자 클래스 등 거의 모든 객체를 디스크/네트워크로 옮길 수 있다. 보안 경고: pickle은…
- [Python] pydantic: 런타임 타입 검증과 직렬화
- 정의 은 타입 힌트 기반 런타임 검증 + 직렬화 라이브러리. FastAPI, LangChain, Hugging Face 등 수많은 라이브러리의 기반. v2부터 Rust 코어로 빠…
- [Python] pytest: fixture, parametrize, mock
- 정의 는 Python 표준 테스트 프레임워크의 사실상 표준(stdlib는 이지만 pytest가 더 강력). 단순한 함수 로 시작해서 fixture, parametrize, plu…
- [Python] random, statistics, math
- random: 의사 난수 은 Mersenne Twister 기반 PRNG. 통계·시뮬레이션·게임용. 보안엔 사용. 기본 함수 seed: 재현 가능 seed 없으면 OS의 rand…
- [Python] re: 정규 표현식
- 정의 모듈은 PCRE 호환 정규 표현식(완전 호환은 아니나 거의 유사) 엔진을 제공한다. 백트래킹 NFA 기반으로 표현력은 강하나 catastrophic backtracking …
- [Python] set, frozenset
- 정의 은 중복 없는 해시 가능 원소의 가변 컬렉션이다. dict의 키 슬롯만 가진 형태로 구현되어 평균 O(1) 멤버십·삽입·삭제를 제공한다. 은 그 불변 버전으로 해시 가능하다…
- [Python] sqlite3: 내장 SQL 데이터베이스
- 정의 는 Python 표준 라이브러리에 포함된 SQLite 데이터베이스 래퍼. 별도 서버 없이 단일 파일에 저장하는 임베디드 SQL DB. PEP 249 (DB-API 2.0) …
- [Python] str: 문자열과 f-string
- 정의 Python의 은 불변(immutable) 유니코드 문자열이다. 내부는 PEP 393 이후 "유연한 문자열 표현(flexible string representation)"으…
- [Python] subprocess: 외부 프로세스 실행
- 정의 는 외부 명령을 실행하고 입출력·exit code를 받아오는 표준 모듈. , 같은 구식 API를 대체한다. 3.5+ 이후엔 이 권장 진입점. subprocess.run 주요…
- [Python] textwrap, locale, unicodedata: 텍스트 처리
- 정의 텍스트 처리 표준 모듈 3개. - : 줄바꿈, 들여쓰기 정렬 - : 지역화 (숫자/통화/날짜 포맷) - : 유니코드 정규화·분류·검색 textwrap 긴 텍스트를 일정 폭으…
- [Python] threading: Thread, Lock, Event
- 정의 은 OS 스레드 기반 동시성 모듈. GIL 때문에 CPU 바운드 작업은 가속되지 않으나 I/O 바운드(네트워크, 디스크) 작업의 병렬화는 가능. 3.13+ free-thre…
- [Python] tracemalloc, sys.getsizeof: 메모리 프로파일링
- 정의 은 Python의 메모리 할당 추적기(PEP 454, 3.4+). 어디서 메모리가 할당되었는지 파일·줄 단위로 통계 수집. 메모리 누수 추적과 핫스팟 발견에 표준 도구. 기…
- [Python] tuple: 불변 시퀀스와 NamedTuple
- 정의 은 불변(immutable) 시퀀스다. 와 거의 같은 API를 가지나 생성 후 변경 불가하며, 그 덕에 dict 키나 set 원소로 사용 가능하다(해시 가능). 함수의 다중…
- [Python] TypedDict, Protocol, runtime_checkable
- TypedDict (PEP 589, 3.8+) dict의 키와 값 타입을 명시. JSON API 응답이나 설정처럼 dict로 들어오지만 스키마가 정해진 경우. 런타임엔 그냥 di…
- [Python] typing: 타입 힌트 기초
- 정의 Python 타입 힌트(PEP 484)는 런타임에 강제되지 않는 정적 어노테이션이다. , , 같은 타입 체커가 정적 분석에 사용. 런타임은 어노테이션을 무시 (단, 일부 프…
- [Python] unittest.mock: Mock, patch, MagicMock
- 정의 은 테스트용 대역체(test double) 생성과 패칭을 위한 표준 라이브러리. , , 를 통해 외부 의존성을 격리하고 호출을 검증한다. pytest와도 잘 어울리며 같은 …
- [Python] urllib, requests, httpx: HTTP 클라이언트
- 정의 Python에서 HTTP 통신 옵션: - (stdlib): 외부 의존성 없는 기본 클라이언트. 다소 장황. - (third-party): 사실상 표준 HTTP 클라이언트. …
- [Python] warnings: 경고 발생과 필터링
- 정의 모듈은 에러보다 약한 경고를 발생·필터링한다. 라이브러리가 deprecated API 알림, 잠재적 버그 신호, 권장하지 않는 사용 패턴 등을 사용자에게 전달할 때 사용. …
- [Python] YAML, TOML, INI: 설정 파일 포맷
- 정의 설정 파일 포맷 비교: - JSON: 데이터 직렬화. 주석 없음, 좀 엄격. ( stdlib) - YAML: 풍부한 표현, 가독성 좋음. 보안 함정. ( 외부) - TOML…
- [Python] zipfile, tarfile, gzip, lzma: 압축과 아카이브
- 정의 압축·아카이브 관련 표준 모듈. - : ZIP 아카이브 (Windows 친화) - : TAR/TAR.GZ/TAR.BZ2 (Unix 표준) - : 단일 파일 gzip 압축 -…
- Python
- 정의 Python은 Guido van Rossum이 1991년 발표한 인터프리터 방식의 동적 타이핑 언어다. 읽기 쉬운 문법과 방대한 라이브러리 생태계로 웹 백엔드, 데이터 분석…
pandas (65)
- [Pandas] .at / .iat ← 1
- 정의 - : 단일 스칼라 (한 행, 한 열) 의 라벨 기반 접근 - : 단일 스칼라의 정수 위치 기반 접근 의 단일 셀 전용 빠른 버전. 내부 검증 단계를 단순화해 가장 빠른 셀…
- [Pandas] .dt accessor ← 3
- 정의 는 datetime Series 의 각 구성요소 (년/월/일/시/분/요일 등) 에 벡터로 접근하는 accessor. 의 datetime 버전. 기본 컴포넌트 | 속성 | 의…
- [Pandas] .loc / .iloc ← 6
- 정의 - : 라벨 기반 인덱싱 (index/column 이름) - : 정수 위치 기반 인덱싱 (0-based) 이 두 indexer 가 pandas 선택의 표준. 만으로는 헷갈리…
- [Pandas] .str accessor ← 2
- 정의 는 Series 의 각 문자열 원소에 벡터화된 문자열 메서드 를 적용하는 accessor. Python str 의 거의 모든 메서드를 NaN-aware 로 제공. 기본 메서…
- [Pandas] 개요 ← 3
- 정의 pandas 는 Python 의 데이터 분석/조작 라이브러리. 두 가지 핵심 자료형을 중심으로 동작한다. - : 1차원 레이블 배열 (NumPy array + index) …
- [Pandas] 성능 / 메모리 최적화
- 정의 pandas 의 흔한 성능 함정과 최적화 패턴. 벡터화 + dtype 선택 + 알고리즘 의 조합이 핵심. 1. 벡터 연산 우선 100배 이상 차이. 2. dtype 명시로 …
- [Pandas] 컬럼 선택 ← 2
- 정의 DataFrame 에서 하나 또는 여러 컬럼을 선택 하는 방법들. 가장 기본이자 가장 자주 쓰는 동작. 4 가지 기본 방식 단일 vs 다중 (반환 타입 차이) <CodeWi…
- [Pandas] agg / aggregate ← 3
- 정의 는 여러 집계 함수를 한 번에 적용 한다. , , 모두에서 사용 가능. 는 같은 함수의 별칭. 다양한 형태 단일 함수 함수 리스트 <CodeWithOutput languag…
- [Pandas] apply / map
- 정의 - : 각 원소 에 함수 적용 (또는 dict 매핑) - : 각 원소 에 함수 적용 (map 과 유사) - : 각 행/열 에 함수 적용 - (pandas 2.1+) : 각 …
- [Pandas] between / 다중 조건
- 정의 는 SQL 과 같이 두 값 사이 인지 검사하는 Series 메서드. 다중 조건 조합은 , , 비트연산자로. between 기본 <CodeWithOutput language=…
- [Pandas] Boolean Indexing ← 10
- 정의 Boolean Indexing 은 True/False 의 Series 를 인덱서로 전달 해 행을 선택하는 패턴. pandas 의 가장 흔한 필터링 방법. 기본 <CodeWi…
- [Pandas] Categorical ← 5
- 정의 Categorical 은 제한된 고유값 만 가질 수 있는 dtype. 내부적으로 정수 코드로 저장되어 메모리 절약 과 속도 향상. 사용 <CodeWithOutput lang…
- [Pandas] clip / where / mask
- 정의 - : 범위 밖 값을 경계로 자르기 (outlier 처리) - : cond 가 True 면 유지, False 면 other 로 치환 - : where 의 반대 (cond T…
- [Pandas] concat ← 4
- 정의 는 여러 DataFrame/Series 를 세로 (axis=0) 또는 가로 (axis=1) 로 단순 연결. SQL 의 (axis=0) 또는 column-level conca…
- [Pandas] crosstab ← 1
- 정의 는 두 (또는 그 이상의) Series 로 교차 빈도표 (contingency table) 를 만든다. SQL 의 PIVOT 또는 Excel 의 피벗 테이블과 비슷. 기본 …
- [Pandas] cumsum / cummax / cummin / cumprod ← 2
- 정의 누적 (cumulative) 연산. 각 위치까지의 누적 결과를 반환, 결과 길이는 원본과 동일. | 함수 | 의미 | |:---|:---| | | 누적 합 | | | 누적 …
- [Pandas] cut / qcut
- 정의 - : 값 기반 binning (구간을 직접 지정) - : 빈도 기반 binning (분위수로 같은 크기) 연속형 변수를 범주형으로 변환. ML 의 feature engin…
- [Pandas] DataFrame ← 25
- 정의 은 2차원 레이블 테이블. 각 열이 , 모든 열이 같은 (행 라벨) 를 공유. SQL 테이블 / Excel 시트 / R data.frame 의 Python 대응체. 생성 <…
- [Pandas] DataFrame.style
- 정의 는 HTML/CSS 기반 서식을 DataFrame 에 적용. Jupyter, 보고서, Excel 출력에 활용. 데이터 자체는 변하지 않고 표시 만 바뀐다. 자주 쓰는 메서드…
- [Pandas] date_range / Timestamp ← 3
- 정의 - : 정해진 시작/끝/간격으로 datetime 시퀀스 생성 - : pandas 의 단일 datetime 객체 - : 시간 차이 daterange , , , 중 3 개 만 …
- [Pandas] drop_duplicates / duplicated ← 1
- 정의 - : 각 행이 중복인지 boolean Series 반환 - : 중복 행 제거 후 DataFrame 반환 와는 다르다. 그건 Series 의 고유값 추출, 이건 행 단위 처…
- [Pandas] dropna / fillna ← 3
- 정의 - : NaN 이 있는 행/열 제거 - : NaN 을 특정 값으로 대체 데이터 분석의 가장 기본적인 결측치 처리. dropna 기본 <CodeWithOutput langua…
- [Pandas] expanding / ewm ← 1
- 정의 외의 윈도우 연산. - : 시작부터 현재까지 누적 윈도우 - : exponentially weighted (지수 가중) expanding <CodeWithOutput lan…
- [Pandas] explode ← 1
- 정의 는 list / set / tuple 등의 시퀀스 값을 가진 컬럼을 각 원소가 별도 행 이 되도록 펼친다. JSON / 로그 / 다중 태그 데이터 처리의 핵심. 기본 <Co…
- [Pandas] get_dummies / from_dummies ← 1
- 정의 는 범주형 컬럼을 원-핫 인코딩 (one-hot encoding). ML 전처리의 가장 흔한 단계. 기본 <CodeWithOutput language="python" out…
- [Pandas] groupby ← 19
- 정의 는 데이터를 그룹으로 나누고 (split), 각 그룹에 함수를 적용 (apply), 결과를 합쳐 (combine) 새 DataFrame 으로 만드는 split-apply-c…
- [Pandas] idxmax / idxmin
- 정의 - : 최댓값의 index 라벨 반환 - : 최솟값의 index 라벨 , 이 값 을 반환한다면 이 함수들은 위치 를 반환. SQL 에서 "max 인 행의 다른 컬럼" 을 가…
- [Pandas] Index ← 4
- 정의 는 행 / 열 라벨을 보관하는 객체. / 의 모든 라벨은 Index. 정렬, 정합성, 빠른 lookup 의 기반. 기본은 RangeIndex (0, 1, 2, ...) 지만…
- [Pandas] info / memory_usage / describe
- 정의 DataFrame 의 메타데이터 / 메모리 / 통계를 빠르게 조회하는 도구. | 메서드 | 목적 | |:---|:---| | | 컬럼별 dtype + non-null cou…
- [Pandas] interpolate ← 1
- 정의 는 NaN 을 주변 값을 사용해 보간 으로 채운다. 시계열, 측정 데이터의 작은 결측을 자연스럽게 채울 때 유용. 기본 linear 보간 예 <CodeWithOutput l…
- [Pandas] isin / isna / notna ← 3
- 정의 | 메서드 | 의미 | |:---|:---| | | 각 원소가 values 안에 있는지 (boolean Series) | | | NaN/NaT/None 여부 ( 별칭) | …
- [Pandas] iterrows / itertuples
- 정의 - : (index, Series) 순회 - : NamedTuple 순회 (빠름, 권장) - : (columnname, Series) 순회 기본 성능 비교 (강한 권고: 가…
- [Pandas] join ← 3
- 정의 는 index 기반 결합 의 편의 API. 내부적으로는 와 동등하지만 더 짧다. 기본 merge 와의 비교 은 index 끼리 매칭이 기본 가정이라 코드가 짧다. 컬럼 기준…
- [Pandas] melt ← 5
- 정의 는 의 역방향. wide-format → long-format 변환. 여러 컬럼을 두 컬럼 ( , ) 으로 합친다. 장기간 시계열 데이터나 시각화 (ggplot, seabo…
- [Pandas] merge ← 7
- 정의 는 두 DataFrame 을 SQL join 처럼 결합. 4 가지 join 타입 (inner / left / right / outer) 지원. 시각화 4 가지 join 타입…
- [Pandas] merge_asof
- 정의 는 가장 가까운 키 기준 join. 일반 가 정확히 일치하는 키만 매칭하는 반면, 는 이전 (또는 가장 가까운) 키를 찾는다. 시계열 데이터 (가격, 이벤트) 와 다른 시계…
- [Pandas] mode / factorize
- 정의 - : 가장 빈번한 값 (최빈값) 반환 - : 고유값을 정수 코드로 변환 (label encoding) mode <CodeWithOutput language="python"…
- [Pandas] MultiIndex ← 2
- 정의 MultiIndex 는 여러 단계 (level) 의 라벨로 구성된 . SQL 의 composite key 와 비슷, 그룹화된 데이터를 자연스럽게 표현. 생성 인덱싱 <Cod…
- [Pandas] nlargest / nsmallest / rank ← 1
- 정의 - : 상위 N 개 행 ( 보다 빠름) - : 하위 N 개 행 - : 각 원소의 순위 (1, 2, 3, ...) nlargest / nsmallest <CodeWithOut…
- [Pandas] Nullable Types (Int64, boolean, string[pyarrow]) ← 1
- 정의 Nullable dtypes 는 NaN/None 을 타입 그대로 표현할 수 있는 pandas 의 새 타입 시스템. NumPy 기반의 (NaN 미허용) 의 한계를 극복. - …
- [Pandas] pipe / method chaining
- 정의 는 method chain 안에 사용자 함수를 끼워 넣기. 와 동등하지만 chain 의 흐름을 유지한다. 왜 pipe 인가 체이닝의 가독성을 위해. 기본 사용 func 가 …
- [Pandas] pivot ← 5
- 정의 는 long-format → wide-format 변환. 한 열의 고유 값들이 새 컬럼이 되고, 원래 데이터는 그 자리에 배치된다. 집계가 없으므로 같은 (index, co…
- [Pandas] pivot_table ← 8
- 정의 는 의 확장. 집계 함수를 동반 해 중복 (index, columns) 도 처리. Excel 의 피벗 테이블과 가장 가까운 기능. 기본 <CodeWithOutput lang…
- [Pandas] PyArrow Backend
- 정의 pandas 2.0 부터 Apache Arrow 를 백킹으로 사용 하는 새 dtype 시스템. NumPy 기반의 한계 (메모리, 문자열, 타입 다양성) 를 크게 개선. 적용…
- [Pandas] query / eval ← 6
- 정의 - : 문자열로 boolean 표현식 을 전달해 행 필터링 - : 문자열로 계산 표현식 을 평가 의 가독성 있는 대안. query 기본 긴 조건일수록 query 가 짧고 읽…
- [Pandas] read_csv / to_csv ← 9
- 정의 는 CSV (Comma-Separated Values) 파일 또는 비슷한 텍스트 형식을 으로 읽는 함수. pandas 사용의 99% 가 여기서 시작. 대응 출력 함수는 . …
- [Pandas] read_excel / to_excel ← 5
- 정의 는 Excel 파일 (.xlsx, .xls) 을 으로 읽는 함수. 한국 실무에서 매우 자주 쓰인다. 의존 라이브러리 | 형식 | 필요한 패키지 | |:---|:---| | …
- [Pandas] read_json / to_json ← 2
- 정의 은 JSON 문자열 또는 파일을 으로 변환. orient 파라미터가 핵심, JSON 구조를 어떻게 해석할지 결정한다. orient 옵션 비교 | orient | 구조 | 적…
- [Pandas] read_parquet / to_parquet ← 2
- 정의 Parquet 은 column-oriented binary 포맷. CSV 대비 수십 배 빠르고 작다. dtype 보존, 압축, 부분 컬럼 읽기 지원. 데이터 분석의 사실상 …
- [Pandas] read_sql / to_sql ← 7
- 정의 - : SQL 결과 → DataFrame - : DataFrame → DB 테이블 SQLAlchemy 의 connection / engine 객체를 사용. 직접 sqlite…
- [Pandas] replace / astype
- 정의 - : 특정 값을 다른 값으로 치환 - : dtype 변환 replace 기본 <CodeWithOutput language="python" outputLanguage="te…
- [Pandas] resample ← 7
- 정의 는 시계열 데이터를 다른 빈도 (월별, 일별, 시간별 등) 로 재샘플링하면서 집계한다. 의 시계열 버전. DatetimeIndex (또는 으로 datetime 컬럼) 이 필…
- [Pandas] rolling / expanding ← 5
- 정의 - : 고정 크기 슬라이딩 윈도우 (이동 평균 등) - : 시작부터 누적 윈도우 (cumulative) - : 지수 가중 이동 평균 시각화 rolling 기본 <CodeWi…
- [Pandas] sample
- 정의 는 행/열을 랜덤 샘플링. 빠른 탐색, train/test split, 데이터 검증에 자주 사용. 기본 주요 옵션 | 옵션 | 의미 | |:---|:---| | | 샘플 개…
- [Pandas] Series ← 8
- 정의 는 1차원 레이블 배열. NumPy + 의 결합. 의 한 열이 곧 Series. 핵심 속성 | 속성 | 의미 | |:---|:---| | | numpy array | | |…
- [Pandas] SettingWithCopyWarning
- 정의 은 pandas 가 가장 자주 던지는 경고. chained indexing 으로 view 인지 copy 인지 모호한 상태에 값을 할당 할 때 발생. 왜 위험한가 - 가 co…
- [Pandas] shift / diff / pct_change ← 1
- 정의 - : 값을 n 칸 밀기 (lag/lead) - : n 칸 차이 (= ) - : 변화율 (= ) 시계열 분석의 기본 도구. 전일 대비 / 전월 대비 / 누적 증가율 등. s…
- [Pandas] sort_values / sort_index ← 1
- 정의 - : 컬럼 값 기준 정렬 - : index (행 또는 열 라벨) 기준 정렬 기본은 오름차순, 로 내림차순. sortvalues 기본 <CodeWithOutput langu…
- [Pandas] stack / unstack ← 3
- 정의 - : 가장 안쪽 컬럼 레벨 → 행 레벨 (DataFrame → Series 또는 더 좁은 DataFrame) - : 가장 안쪽 행 레벨 → 컬럼 레벨 / 의 MultiIn…
- [Pandas] str regex (extract / split / replace) ← 3
- 정의 의 정규식 기반 메서드. 패턴 추출, 분리, 치환 의 핵심. str.extract 캡처 그룹으로 부분 문자열을 새 컬럼으로. <CodeWithOutput language="…
- [Pandas] str.contains / startswith / endswith ← 2
- 정의 문자열 Series 에서 패턴 매칭 으로 필터링/검색하는 메서드들. SQL 의 , 패턴. contains <CodeWithOutput language="python" out…
- [Pandas] to_datetime ← 7
- 정의 는 문자열/숫자를 datetime 으로 변환. pandas 의 시계열 작업의 시작. 기본 <CodeWithOutput language="python" outputLangua…
- [Pandas] transform / apply ← 3
- 정의 | 메서드 | 입력 | 출력 | 용도 | |:---|:---|:---|:---| | | 그룹 | 같은 shape | 정규화, 보충 | | | 그룹 | 임의 shape | 가…
- [Pandas] unique / nunique
- 정의 - : 고유값을 등장 순서대로 numpy array 반환 - : 고유값의 개수 반환 (NaN 제외) - : 각 컬럼/행의 고유값 개수 SQL 의 / 와 동일. 사용 <Cod…
- [Pandas] value_counts ← 5
- 정의 는 각 고유값의 등장 빈도 를 내림차순 Series 로 반환. SQL 의 . pandas 1.1+ 부터는 도 가능 (여러 컬럼 조합). 기본 <CodeWithOutput l…
django (57)
- [Django 6.0] Content Security Policy: XSS 방어의 최종형
- 정의 Content Security Policy (CSP) = 브라우저에게 어떤 스크립트/스타일/이미지 만 허용 할지 선언. XSS 공격의 마지막 방어선. Django 6.0 부…
- [Django 6.0] Tasks Framework: 내장 백그라운드 작업
- 정의 Django Tasks Framework = Django 6.0 (2025) 도입된 내장 백그라운드 작업 실행 표준. Celery 없이 간단한 async task 를 표준 …
- [Django] 개요와 프로젝트 구조 ← 2
- 정의 Django는 2003년 시작된 Python 풀스택 웹 프레임워크. "Web framework for perfectionists with deadlines"라는 모토대로 b…
- [Django] 마이그레이션: makemigrations, migrate, 데이터 마이그레이션 ← 2
- 정의 Django 마이그레이션은 모델 변경을 DB 스키마 변경으로 변환·기록하는 시스템. 는 모델과 현재 마이그레이션 상태를 비교해 새 마이그레이션 파일 생성. 는 DB에 적용.…
- [Django] 배포: Gunicorn, Uvicorn, whitenoise, Docker ← 2
- 정의 Django 프로덕션 배포는 WSGI/ASGI 서버 + 리버스 프록시 + 정적 파일 + DB + 캐시 + 큐 조합. runserver는 개발 전용. nginx + gunic…
- [Django] 보안: CSRF, XSS, SQL injection, headers ← 5
- 정의 Django는 OWASP Top 10 대부분을 기본 방어한다: CSRF 토큰, ORM의 SQL 인젝션 방지, 템플릿 자동 escape, 비밀번호 해싱, 세션 쿠키 보안 등.…
- [Django] 인증: User, login, permissions ← 4
- 정의 Django는 User 모델, 인증·세션, 권한·그룹을 기본 제공한다. 앱이 핵심. 비밀번호 해싱(PBKDF2, scrypt, Argon2), 세션, 권한, 그룹, 비밀번호…
- [Django] 첫 프로젝트 튜토리얼: 순차 학습 ← 1
- 정의 Django 를 처음 접하는 사람 을 위한 순차 학습 페이지. 투표 앱 (polls) 을 만들며 Django 의 핵심 개념을 익힌다. 먼저 로 MTV 패턴과 프로젝트 구조를…
- [Django] 테스트: TestCase, Client, factory_boy ← 3
- 정의 Django는 표준 라이브러리 기반 TestCase를 제공한다. 트랜잭션 격리, fixtures, test client, DB 셋업 자동화. 실무는 + 가 사실상 표준. 기…
- [Django] Admin: 자동 생성 관리자 페이지 ← 2
- 정의 Django Admin은 모델 등록만으로 CRUD UI 자동 생성하는 내장 백오피스. 내부 운영 도구, 콘텐츠 관리(CMS) 등에 강력. 권한 시스템 통합. Rails에는 …
- [Django] Aggregation: annotate, aggregate, F, Q, Window ← 2
- 정의 Django ORM의 annotate / aggregate / F / Q / Window는 SQL의 GROUP BY, 집계 함수, 동적 조건, 컬럼 참조, Window 함수…
- [Django] async views와 ASGI ← 2
- 정의 Django 3.1+ 부터 async view를 지원한다. 로 view를 정의하면 ASGI 서버(Uvicorn, Daphne, Hypercorn) 아래에서 코루틴으로 실행.…
- [Django] Caching: per-site, per-view, low-level ← 3
- 정의 Django 캐싱은 데이터/페이지 재생성 비용 회피의 핵심. 4단계 그래뉴얼리티 제공: site-wide → per-view → template fragment → low-…
- [Django] Celery: 비동기 태스크와 큐 ← 2
- 정의 Celery는 Python의 분산 태스크 큐. 비동기·예약·재시도 작업을 워커가 처리. Django와 통합되어 이메일 발송, 이미지 처리, ML 추론, 스크래핑 같은 무거운…
- [Django] Channels: WebSocket, Consumer, Group ← 6
- 정의 Django Channels는 Django에 WebSocket, 비동기 프로토콜, 백그라운드 작업을 추가하는 공식 확장. 기본 Django는 HTTP만, Channels는 …
- [Django] ContentTypes, Generic Relations ← 1
- 정의 는 모든 모델을 동적으로 참조하는 시스템. 댓글이 Post, Photo, Video 등 여러 모델을 가리킬 수 있게 함. + 을 활용. 활성화 기본 에 포함됨: 각 모델마다…
- [Django] DRF 개요: Serializer, ViewSet, Router ← 4
- 학습 로드맵 이 페이지는 개요. 처음 접하는 사람은 아래 순서로 읽으면 자연스럽다: DRF 는 파이프라인이 핵심. 한번 그림으로 보면 이해가 쉽다: 정의 Django REST F…
- [Django] DRF Permission, Throttle, Filter ← 6
- 정의 DRF는 view 호출 전 인증(Authentication) → 권한(Permission) → 스로틀(Throttle) 순으로 검사. 각 단계가 통과해야 view 메서드 실…
- [Django] DRF Serializer 심화 ← 5
- 정의 DRF Serializer는 JSON ↔ Python ↔ Model의 변환과 검증을 담당한다. Django Form과 비슷한 인터페이스이나 API/JSON에 특화. 검증, …
- [Django] DRF ViewSet, Router, @action ← 5
- 정의 ViewSet은 같은 리소스의 관련 view들을 클래스 하나로 묶는다. Django의 generic views와 비슷하나 / / / / / action 메서드로 통일. Ro…
- [Django] Email: send_mail, EmailMessage, 템플릿 ← 2
- 정의 Django의 은 SMTP, 콘솔, 파일, 메모리, dummy 등 다양한 백엔드를 통합한 이메일 전송 API. 외부 서비스(SendGrid, Mailgun, AWS SES,…
- [Django] File Uploads + Storage: FileField, ImageField, S3 ← 1
- 정의 Django 의 파일 업로드 + 저장 시스템. FileField/ImageField + Storage backend 로 로컬 / S3 / GCS 등 자유롭게. Model 필…
- [Django] Form과 ModelForm ← 5
- 정의 Django Form은 사용자 입력 정의·검증·렌더링·바인딩을 통합. 일반 은 임의 필드, 은 모델 자동 매핑. 검증과 보안(CSRF, SQL 인젝션 방지) 내장. Form…
- [Django] Formsets: 여러 폼 동시 처리 ← 2
- 정의 Formset = 여러 폼을 한 페이지에서 동시 처리. "상품 3개 한 번에 등록", "주문 상세 여러 줄 편집" 같은 시나리오. 3가지 종류 1. 기본 FormSet Te…
- [Django] i18n: 다국어와 시간대 ← 1
- 정의 Django는 gettext 기반 국제화(i18n)와 지역화(l10n) 표준 시스템을 제공한다. 코드/템플릿의 문자열을 추출해 파일로 번역, 컴파일된 파일을 런타임에 사용.…
- [Django] Logging: LOGGING 설정과 구조화 로그 ← 1
- 정의 Django는 Python 모듈을 그대로 사용하나 설정 dict로 일괄 구성한다. 구조화 로그(JSON), 외부 서비스(Sentry, Datadog, CloudWatch) …
- [Django] Management Commands ← 2
- 정의 Django 커스텀 명령은 형태로 실행되는 CLI 도구. 정기 작업(cron + management command), 데이터 마이그레이션, import/export, 디버깅…
- [Django] Messages Framework: flash 메시지
- 정의 Messages Framework = 1회성 flash 메시지 (성공, 오류 등) 를 사용자에게 표시. Post/Redirect/Get 패턴에서 필수. 목적 + 대안 기본 …
- [Django] Middleware: 요청/응답 가로채기 ← 2
- 정의 Middleware는 모든 요청/응답을 가로채는 체인 구조 처리기. 요청은 위 → 아래, 응답은 아래 → 위로 흐른다. 인증, 세션, CSRF, gzip 압축, 보안 헤더 …
- [Django] Mixin 패턴: LoginRequired, UserPasses, Custom ← 4
- 정의 Django Mixin은 CBV에 공통 기능을 추가하는 작은 클래스. 다중 상속으로 조합. 인증, 권한, 로깅, 메시지 등에 활용. MRO(Method Resolution …
- [Django] Model과 Field 타입 ← 3
- 정의 Django 모델은 DB 테이블의 Python 표현이다. 상속, 클래스 속성 = 컬럼, 메타 클래스 = 테이블 설정. 모델 정의 후 + 로 DB 스키마 자동 생성. 기본 정…
- [Django] ModelForm: 모델 기반 폼 자동 생성 ← 2
- 정의 ModelForm = Model 로부터 Form 자동 생성. 필드 반복 정의 없이 CRUD 폼 완성. 일반 Form 은 참고. 왜 ModelForm? 기본 사용 vs [!W…
- [Django] ORM 심화: N+1, prefetch, Subquery, Window ← 4
- 정의 Django ORM은 SQL을 잘 모르는 개발자에게도 안전하지만 비효율을 숨기기 쉽다. N+1, 비효율 JOIN, 큰 결과셋 메모리 폭발이 흔한 함정. selectrelat…
- [Django] Pagination: Paginator, ListView, DRF ← 1
- 정의 Django는 빌트인 클래스와 ListView의 자동 페이지네이션을 제공한다. DRF는 PageNumber / LimitOffset / Cursor 3종. 페이지네이션은 큰…
- [Django] Q / F / Case / When / Database Functions
- 정의 Django ORM 의 고급 표현식. Python 에서 짜지만 SQL 로 컴파일 되어 DB 에서 실행. Raw SQL 없이 복잡한 쿼리. 일반 ORM 은 , 참고. 1. Q…
- [Django] QuerySet과 Manager ← 5
- 정의 QuerySet은 DB 쿼리를 lazy하게 빌드하는 객체. , 같은 메서드를 체이닝해도 실제 SQL 실행은 평가 시점( , , , slice 등)에 한 번 발생. Manag…
- [Django] Sessions와 Cookies ← 2
- 정의 Django Session은 서버 측 사용자 상태 저장. 클라이언트엔 세션 ID만 쿠키로 저장, 실제 데이터는 백엔드(DB, cache, file, cookie). 인증, …
- [Django] settings 관리: 환경 분리, secrets, 12-factor ← 2
- 정의 Django settings는 단일 Python 파일에 모든 설정을 두는 게 기본이지만, 환경별 분리·비밀 정보 분리·12-factor 원칙 적용이 실무 표준. 개발/스테이…
- [Django] Shortcuts + Decorators: render, redirect, get_object_or_404 ← 1
- 정의 Django 의 View 작성을 간결하게 하는 shortcut 함수들 + view 에 공통 기능을 붙이는 decorator 들. Shortcuts (django.shortc…
- [Django] Signals 내부 구현: 옵저버 패턴 심층 분석 ← 1
- 정의 Django signal은 GoF의 옵저버(Observer) 패턴을 Python의 동적 디스패치, weakref, threading.lock으로 구현한 것이다. 일반 사용은…
- [Django] Signals: 모델 이벤트 hook ← 2
- 정의 Django signal은 발신자(sender)가 특정 이벤트를 알리면 등록된 수신자(receiver)들이 호출되는 옵저버 패턴. 모델 저장/삭제, 요청 시작/종료, 마이그…
- [Django] Static과 Media 파일 ← 2
- 정의 Django는 정적 파일을 두 카테고리로 구분한다. - Static: 앱·테마의 일부인 CSS/JS/이미지. 배포 시 으로 한 곳에 모음. - Media: 사용자가 업로드한…
- [Django] Template 언어: 태그, 필터, 상속 ← 2
- 정의 Django Template Language (DTL)는 HTML과 Python 사이의 안전한 표현 언어. 임의 Python 실행 차단(보안), 로 변수, 로 태그, 로 필…
- [Django] Transactions: atomic, on_commit, savepoint ← 1
- 정의 Transaction = 여러 SQL 문을 원자적 (all-or-nothing) 으로 실행. Django 는 자동 커밋 (autocommit) 모드가 기본, 으로 명시적 트…
- [Django] URL 디스패치: path, re_path, include ← 2
- 정의 Django는 URL 패턴 리스트로 요청을 view에 라우팅한다. 1.01.x는 (regex만), 2.0+ (간결한 converter 문법)와 (regex) 두 방식. 기본…
- [Django] View: 함수 기반 vs 클래스 기반 ← 6
- 정의 Django View는 HTTP 요청을 받아 응답을 반환하는 callable. 두 스타일이 공존. - FBV (Function-Based View): 일반 함수. 간단하고 …
- [DRF] Authentication: Session, Token, JWT, OAuth2 ← 4
- 정의 Authentication = 누가 요청했는지 식별. Authorization () 과 별개. 흐름 자세한 permission 은 . 내장 Authentication Cla…
- [DRF] Filtering: django-filter, SearchFilter, OrderingFilter ← 4
- 정의 Filtering = 쿼리 파라미터로 결과 제한. 3가지 backend + custom. 3가지 내장 Backend 설치 + 설정 1. DjangoFilterBackend …
- [DRF] Pagination + Throttling ← 4
- 정의 Pagination = 큰 목록을 페이지 단위로 나눔. Throttling = 요청 빈도 제한. 둘 다 API 안정성의 기본. Pagination 3종 언제 어느 것을 쓸까…
- [DRF] Request + Response 객체 ← 4
- 정의 DRF 의 = Django 의 확장. = 의 확장. 자동 content negotiation + renderer 처리. 요청이 뷰에 도달하기까지 에 값이 실제로 들어가려면 …
- [DRF] Routers: DefaultRouter, SimpleRouter, custom actions ← 3
- 정의 Router = ViewSet 에 대한 URL 자동 생성. Rails 의 와 유사. 왜 Router? 종류 DefaultRouter 생성되는 URL: | URL | Meth…
- [DRF] Schemas + OpenAPI: 자동 문서화 ← 4
- 정의 OpenAPI (전 Swagger) = REST API를 기계 가독 스펙으로 기술하는 표준. DRF는 이 스펙을 ViewSet / Serializer 로부터 자동 추출할 수…
- [DRF] Testing: APIClient, APITestCase, force_authenticate ← 3
- 정의 DRF의 테스트 도구는 Django 위에 API 특화 helper 를 얹은 것. 로 real endpoint 를 호출하거나 로 View 단위 테스트가 가능. 테스트 도구 계…
- [DRF] Tutorial + Quickstart: 첫 API 서버 5분 ← 6
- 정의 Django REST Framework (DRF) 를 처음 사용 하는 사람을 위한 순차 시작 가이드. 5분 안에 동작하는 API 서버 완성. DRF 개요는 . Django …
- [DRF] Versioning + Content Negotiation ← 4
- 정의 Versioning = API 의 여러 버전 공존. Content Negotiation = 같은 endpoint 가 여러 형식 (JSON, XML, HTML) 응답. Ver…
- [DRF] Views: APIView, GenericViews, Mixins, FBV ← 7
- 정의 DRF View 4가지 스타일. 자유도 vs 자동화 트레이드오프. 4가지 스타일 | 스타일 | 코드량 | 자유도 | |---|---|---| | | 유사 Django FBV…
- Django ← 2
- 개요 Django는 2003년 시작된 Python 풀스택 웹 프레임워크. batteries-included (ORM, 관리자, 인증, 폼, 마이그레이션, 캐싱 등 기본 내장)과 …
java (50)
- [Java] ArrayBlockingQueue ← 1
- 정의 는 고정 크기 원형 배열 기반의 . 생성 시 capacity 를 지정해야 하고 그 이상 늘어나지 않는다. 내부에 단일 을 사용 (head/tail 공유). 동시 throug…
- [Java] ArrayDeque ← 3
- 정의 는 원형 배열 (circular buffer) 기반의 구현. JDK 1.6 도입. 으로 쓰면 보다 빠르고, 로 쓰면 보다 빠르다. Stack / Queue / Deque 가…
- [Java] ArrayList ← 8
- 정의 는 동적 배열 (dynamic array) 로 구현된 . 내부적으로 를 들고 다니며, 용량이 부족해지면 새 배열로 옮긴다. Java 의 가장 흔한 컬렉션 구현체. 인덱스 기…
- [Java] AtomicInteger ← 3
- 정의 는 lock-free 로 원자성을 보장 하는 래퍼. 내부적으로 CAS (Compare-And-Swap) 를 사용해 락 없이 atomic 한 read-modify-write …
- [Java] AtomicReference ← 1
- 정의 는 객체 참조를 atomic 하게 갱신 하는 래퍼. 참조 + CAS 의 결합. 의 객체 버전. 불변 객체 패턴, 상태 머신, lock-free 자료구조의 빌딩 블록. 핵심 …
- [Java] BlockingQueue ← 8
- 정의 는 요소를 가져올 때 비어 있으면 대기, 넣을 때 가득 차 있으면 대기 하는 thread-safe 큐 인터페이스. 생산자-소비자 (producer-consumer) 패턴의 …
- [Java] Collection ← 26
- 정의 는 그룹으로 묶인 객체들을 표현하는 최상위 인터페이스. JCF (Java Collections Framework) 의 입구이자, / / / 모두 이를 확장한다. 자체는 직접…
- [Java] ConcurrentHashMap ← 15
- 정의 는 고동시성 환경에서 사용 가능한 구현. JSR-166 (Java 5) 도입, Java 8 에서 내부 구조가 크게 재작성됐다. 과 같은 인터페이스를 제공하면서 thread-…
- [Java] ConcurrentLinkedDeque ← 4
- 정의 는 lock-free . 의 양방향 버전. JDK 1.7 추가. 양 끝 모두에서 add/remove 가능, 모든 연산이 CAS 기반. 내부 구조 이중 연결 리스트 ( , 모…
- [Java] ConcurrentLinkedQueue ← 3
- 정의 는 lock-free 로 구현된 unbounded thread-safe . Michael & Scott 의 non-blocking queue 알고리즘 (1996) 기반. 가…
- [Java] ConcurrentModificationException ← 7
- 정의 (CME) 는 가 컬렉션의 구조 변경을 탐지했을 때 던지는 unchecked 예외 ( ). 이름과 달리 반드시 동시성 (멀티스레드) 문제일 때만 발생하는 것이 아니다. 단일…
- [Java] ConcurrentSkipListMap ← 2
- 정의 는 Skip List 기반의 thread-safe 정렬 . 의 동시성 버전. 과의 결정적 차이: 정렬 순서를 유지 + 인터페이스 구현 ( , , 등). Skip List 는…
- [Java] ConcurrentSkipListSet ← 2
- 정의 는 을 백킹으로 사용하는 정렬된 thread-safe . 의 동시성 버전. 인터페이스 구현. floor, ceiling, subSet 등 정렬 기반 연산 제공. 복잡도 의 …
- [Java] CopyOnWriteArrayList ← 14
- 정의 는 쓰기 시 배열 전체를 복사 하는 thread-safe 구현. 읽기에는 lock 이 전혀 없고, 쓰기에는 으로 직렬화한다. (JSR-166) 의 컬렉션. 읽기 압도적 다,…
- [Java] CopyOnWriteArraySet
- 정의 는 를 백킹으로 사용하는 thread-safe . 중복 검사를 위해 매 add 마다 (O(n)) 를 수행. 의 모든 특성 (snapshot iterator, 읽기 lock-…
- [Java] CountDownLatch ← 3
- 정의 는 한 스레드 또는 여러 스레드가 다른 스레드들의 작업 완료를 기다리는 일회용 synchronizer. 으로 초기화하고, 각 worker 가 작업 후 호출. waiter 는…
- [Java] CyclicBarrier ← 3
- 정의 는 N 개의 스레드가 모두 도착할 때까지 서로 기다리는 synchronizer. 모두 도착하면 동시에 출발, 다시 사용 가능 (cyclic). 시각화 핵심 메서드 가장 흔한…
- [Java] DelayQueue
- 정의 는 각 원소가 지정된 delay 가 만료된 후에만 꺼낼 수 있는 . 우선순위는 만료 시각이 빠른 것부터. 시각화 Delayed 인터페이스 원소는 인터페이스를 구현해야 한다.…
- [Java] Deque
- 정의 (Double-Ended Queue) 는 의 확장 인터페이스. 양쪽 끝 (head, tail) 모두에서 add/remove/examine 가능한 자료구조. JDK 1.6 도…
- [Java] Fail-Fast Iterator ← 14
- 정의 Fail-Fast Iterator 는 순회 도중 컬렉션의 구조가 변경되면 즉시 을 던지는 iterator. , , 등 대부분의 컬렉션의 iterator 가 이 방식. 목적은…
- [Java] HashMap ← 5
- 정의 는 해시 테이블 로 구현된 . 평균 O(1) 의 put/get/remove 를 보장하고 단일 스레드 환경의 사실상 표준. JDK 1.2 도입, Java 8 에서 충돌 시 l…
- [Java] HashSet ← 2
- 정의 는 을 백킹으로 사용하는 구현. 내부적으로 모든 원소를 HashMap 의 key 로 저장하고, value 는 dummy 상수 . 평균 O(1) 의 add/remove/con…
- [Java] Iterable ← 26
- 정의 는 루프로 순회 가능한 모든 타입의 최상위 인터페이스. 단 하나의 추상 메서드, 를 정의한다. 인터페이스가 을 extends 하므로 , , , 등 모든 컬렉션이 자동으로 대…
- [Java] JavaBean 프로퍼티 규약 ← 4
- 정의 JavaBean 은 다음 세 가지 규약을 만족하는 클래스: 1. public no-args constructor (인자 없는 public 생성자) 2. 프로퍼티 접근자: /…
- [Java] LinkedBlockingQueue ← 2
- 정의 는 linked list 기반의 . 기본 unbounded ( ) 이지만 생성 시 capacity 지정 가능. Two-Lock Queue 알고리즘 으로 producer 와 …
- [Java] LinkedHashMap ← 5
- 정의 는 을 상속해 삽입 순서 (또는 접근 순서) 를 유지 하는 Map. 모든 의 평균 O(1) 성능을 유지하면서 추가로 순회 순서가 일관된다. 핵심: 이중 연결 리스트 (dou…
- [Java] LinkedList ← 9
- 정의 는 양방향 연결 리스트 (doubly linked list) 로 구현된 이자 . 각 원소는 와 포인터를 가진 노드로 보관된다. 와 같은 List 이지만, 메모리 레이아웃과 …
- [Java] List ← 7
- 정의 는 순서가 있고 중복이 허용 되는 컬렉션을 표현하는 인터페이스. 각 원소는 0 부터 시작하는 정수 인덱스로 접근 가능. 인터페이스를 확장하며, 의 모든 성질을 물려받는다. …
- [Java] LongAdder ← 1
- 정의 는 고경합 카운터 를 위한 자료구조. JDK 1.8 도입. 보다 동시 증가 throughput 이 압도적으로 높다. 원리는 striped counter (분산 누적). 여러…
- [Java] Map
- 정의 는 key 와 value 의 쌍으로 데이터를 저장 하는 자료구조의 인터페이스. 하나의 key 에는 하나의 value 만 매핑, 중복 key 는 허용하지 않는다. 은 을 ex…
- [Java] Object ← 25
- 정의 는 Java 의 모든 클래스의 최상위 부모 (root) 클래스. 가 명시되지 않은 클래스는 컴파일러가 자동으로 를 붙인다. 인터페이스는 클래스가 아니라 를 직접 상속하지는 …
- [Java] Phaser ← 2
- 정의 는 의 확장. 참여자 수가 동적으로 변할 수 있는 단계별 동기화. JDK 1.7 도입. 시각화 핵심 메서드 동적 참여 예 worker 가 도중에 추가/종료될 수 있는 경우 …
- [Java] PriorityBlockingQueue ← 1
- 정의 는 의 동시성 + blocking 버전. unbounded 힙 기반 . 특징 - unbounded, 따라서 이 절대 block 하지 않음 - 만 큐가 비어 있을 때 bloc…
- [Java] PriorityQueue ← 3
- 정의 는 이진 힙 (binary heap) 기반의 구현. FIFO 가 아닌 우선순위 순서 로 원소를 꺼낸다. 기본은 min-heap, 의 자연 순서나 로 우선순위 결정. 가장 작…
- [Java] Queue
- 정의 는 FIFO (First-In, First-Out) 처리 순서를 가진 인터페이스. 한쪽 끝 (tail) 에 추가하고 반대쪽 (head) 에서 제거하는 자료구조. 처럼 다른 …
- [Java] ReentrantLock ← 16
- 정의 는 키워드와 같은 상호 배제 (mutual exclusion) 를 제공하는 클래스 기반 락. JSR-166 (Java 5) 에서 추가됐다. "재진입 (reentrant)" …
- [Java] ReentrantReadWriteLock ← 1
- 정의 는 읽기 락과 쓰기 락을 분리 한 의 확장. 핵심 규칙: - 여러 reader 가 동시에 read lock 획득 가능 (병렬 읽기) - writer 는 배타적, write …
- [Java] Reflection: Class, Method, Field, MethodHandle ← 1
- 정의 Reflection 은 런타임에 클래스 메타데이터 (필드, 메서드, 어노테이션, 생성자) 를 조회하고, 컴파일 타임에 알 수 없는 객체를 생성/조작할 수 있게 해 주는 Ja…
- [Java] Semaphore ← 3
- 정의 는 N 개의 permit (허가) 을 발급/회수 하는 synchronizer. permit 이 있으면 진행, 없으면 또는 즉시 실패. 자원 풀, rate limiting, …
- [Java] Servlet 생명주기 ← 3
- 정의 Servlet 은 컨테이너 (Tomcat / Jetty / Undertow) 가 생성, 호출, 소멸시키는 객체. 개발자는 인터페이스 메서드만 구현하고 인스턴스 관리는 일체 …
- [Java] Servlet API: HttpServletRequest, HttpServletResponse ← 5
- 정의 Servlet 은 Java 진영의 표준 HTTP 처리 API. 컨테이너 (Tomcat / Jetty / Undertow) 가 HTTP 요청을 객체 ( ) 로 만들어 serv…
- [Java] Servlet Filter ← 8
- 정의 Filter 는 servlet 호출 전/후 에 끼어들어 요청과 응답을 가로채는 컴포넌트. 인증, 로깅, 압축, CORS, 인코딩 변환 같은 횡단 관심사 (cross-cutt…
- [Java] Set
- 정의 는 중복을 허용하지 않는 . 수학의 집합 (set) 에 대응. 같은 원소를 두 번 추가하면 두 번째는 무시된다. 인터페이스의 모든 메서드를 그대로 사용하면서, 와 (또는 )…
- [Java] StampedLock ← 1
- 정의 는 JDK 1.8 도입의 새 락. 세 가지 모드 제공. 1. Write lock (배타) 2. Read lock (공유) 3. Optimistic read (락 안 잡고 시…
- [Java] SynchronousQueue
- 정의 는 용량 0 의 . 저장 공간이 없다. 은 매칭되는 가 있어야 진행하고, 반대도 마찬가지. 직접 핸드오프 (direct handoff) 패턴, producer 와 consu…
- [Java] ThreadLocal ← 7
- 정의 는 각 스레드마다 독립된 변수 사본을 가지게 해 주는 컨테이너. 로 접근하며, 한 스레드의 값은 다른 스레드에서 볼 수 없다. 쓰임은 두 가지: (1) 같은 인스턴스를 여러…
- [Java] TreeMap ← 5
- 정의 는 Red-Black Tree 기반의 정렬된 . (확장 인터페이스) 을 구현해 범위 쿼리, floor/ceiling, sub-map 같은 정렬 기반 연산을 제공한다. key…
- [Java] TreeSet ← 3
- 정의 는 을 백킹으로 사용하는 정렬된 . 인터페이스를 구현해 정렬 기반 연산 ( , , 등) 을 제공. 원소는 (자연 순서) 또는 생성자에 전달한 로 정렬. 핵심 메서드 (Nav…
- [Java] Vector ← 7
- 정의 는 와 거의 동일한 동적 배열 기반 이지만, 모든 public 메서드가 로 묶여 있다. Java 1.0 (1996) 부터 존재하는 레거시 컬렉션. JDK 1.2 의 Coll…
- [Java] volatile ← 13
- 정의 은 Java 의 키워드. 필드에 붙이면 두 가지를 보장한다. 1. 가시성 (visibility): 한 스레드의 쓰기가 다른 모든 스레드에 즉시 보인다. CPU 캐시에 머무르…
javascript (46)
- [Frontend] SPA Architecture: CSR, SSR, SSG, hydration
- 정의 SPA (Single Page Application) 는 첫 로딩 시 받은 HTML / JS 번들 하나로 모든 화면 전환을 클라이언트에서 처리하는 웹 앱 구조. URL 변경…
- [Javascript] 스코프 체인 ← 4
- 정의 스코프 체인 (Scope Chain) 은 변수 식별자를 해결할 때 따라가는 중첩된 의 연결 구조. 안쪽 스코프에서 찾지 못한 변수를 바깥 스코프로 차례로 검색. 시각화 변수…
- [Javascript] 이벤트 루프 ← 7
- 정의 이벤트 루프 (Event Loop) 는 싱글 스레드 JavaScript 엔진이 비동기 작업을 처리하기 위해 돌리는 무한 루프다. 콜 스택이 비어있을 때마다 마이크로태스크 큐…
- [Javascript] 제어 흐름
- 정의 JS 의 제어 흐름 구문. 분기, 반복, 종료 / 계속. if / else switch 없으면 다음 case 로 fall-through. ES2023+ lookup 이 더 …
- [Javascript] 콜백 ← 3
- - 콜백 (callback): 다른 함수의 인자로 넘겨져, 받은 쪽이 적절한 시점에 호출하는 함수. 일급 함수 () 가 있어야 가능한 패턴이라 JavaScript 에서는 자연스럽…
- [Javascript] 콜백 지옥 ← 3
- - 콜백 지옥 (callback hell) 또는 둠 피라미드 (pyramid of doom): 순차 의존이 있는 비동기 작업을 으로 연결할 때 들여쓰기가 오른쪽으로 깊어지는 현상…
- [Javascript] 클로저 ← 8
- 정의 클로저 (Closure): 함수가 자신이 정의된 시점의 외부 변수들을 계속 참조할 수 있는 성질. 함수가 일급 객체 () 인 언어의 자연스러운 결과. 메커니즘은 + 함수 객…
- [Javascript] 타입 변환 / 강제 변환 ← 7
- 정의 JavaScript 의 암묵적 형변환 (coercion). 연산자가 양쪽 피연산자의 타입을 자동으로 맞춘다. 명시적 변환과 구분. 3 가지 강제 변환 1. ToString …
- [Javascript] 함수의 종류
- 정의 JavaScript 에서 함수를 정의하는 여러 방법. 1. Function Declaration (선언문) - 호이스팅 됨 (전체) - 자기 이름으로 재귀 가능 - 일반 함…
- [Javascript] 호이스팅 (Hoisting) ← 4
- 정의 호이스팅 (Hoisting) 은 JavaScript 엔진이 코드 실행 전에 선언을 스코프의 최상단으로 끌어올리는 동작. 단, / 는 로 접근 제한. var 의 호이스팅 엔진…
- [Javascript] Array ← 6
- 정의 JavaScript 의 는 순서 있는 객체. 정수 키 + . 풍부한 메서드 (map/filter/reduce/...) 가 함수형 스타일을 지원. 생성 핵심 메서드 (반복) …
- [Javascript] Arrow Function ← 5
- 정의 화살표 함수 (arrow function) 는 ES2015 (ES6) 에서 도입된 함수 표현식. 모양. 더 짧은 문법뿐 아니라 가 lexical 로 바인딩 되는 본질적 차이…
- [Javascript] async/await ← 9
- 정의 / 는 기반 비동기 코드를 마치 동기 코드처럼 쓸 수 있게 해주는 ES2017 의 문법 설탕. 본질은 Promise 그 자체, 문법만 다르다. 전체 동작 메커니즘은 글 참조…
- [Javascript] BigInt ← 1
- 정의 는 임의 정밀도 정수. 를 넘어가는 정수를 정확히 표현. ES2020 도입. 왜 필요한가 큰 ID, 암호화, 정밀 산술, 통화 (cent 기반 정수) 에 안전. 사용 함정:…
- [Javascript] boolean / null / undefined ← 3
- 정의 JavaScript 의 3 가지 primitive. - : , - : 의도적인 "없음" - : 자동으로 부여된 "없음" (초기화 안 됨) boolean falsy / tru…
- [Javascript] Class ← 5
- 정의 ES6 는 prototype chain 위의 문법 설탕. C++/Java 스타일 OOP 와 닮았지만 내부는 . 구조 상속 super 의 의미 - : 부모 constructo…
- [Javascript] Date
- 정의 JS 의 객체. 시간을 ms 단위로 (1970-01-01T00:00:00Z 기준) 저장. 매우 오래된 API 라 함정이 많다. 생성 [!CAUTION] 월이 0-base (…
- [Javascript] Destructuring ← 4
- 정의 Destructuring 은 배열 또는 객체의 일부를 변수로 풀어내는 ES6 문법. 코드를 짧고 명시적으로. 객체 배열 함수 매개변수 자주 쓰는 idiom API 응답 분해…
- [Javascript] Error / try-catch
- 정의 JS 의 에러 처리. 로 던지고 로 잡는다. 내장 Error 타입과 사용자 정의 Error. throw / try / catch 는 에러 유무와 무관하게 실행. 내장 Err…
- [Javascript] ES Modules (import / export) ← 1
- 정의 ES Modules (ESM) 은 표준 JS 모듈 시스템 (ES6). / 키워드. 브라우저와 Node.js 16+ 모두 지원. export named export defau…
- [Javascript] function ← 7
- 정의 은 JavaScript 에서 함수를 만드는 가장 기본적인 키워드. 호이스팅, 동적 바인딩, 객체, 호출 등 과 구분되는 고유한 특성을 가진다. 함수가 값 으로 다뤄지는 의 …
- [Javascript] Iterator / Generator ← 1
- 정의 - Iterator protocol : 메서드가 반환 - Iterable protocol : 가 iterator 반환 - Generator : 으로 정의, yield 로 값…
- [Javascript] JSON
- 정의 JSON (JavaScript Object Notation) 은 데이터 교환 형식. JS 의 객체 리터럴과 비슷하지만 엄격한 문법. - : JS 값 → JSON 문자열 - …
- [Javascript] Lexical Environment ← 11
- 정의 Lexical Environment (어휘적 환경) 는 ECMAScript 명세 (§9.1) 가 정의한 내부 객체. 함수가 호출될 때마다 새로 만들어지며, 이 호출의 변수들…
- [Javascript] Map / Set / WeakMap / WeakSet ← 1
- 정의 ES6 의 4 가지 컬렉션. 객체 / 배열보다 적합한 경우. | 컬렉션 | 키 | 값 | 강참조 | |:---|:---|:---|:---:| | | 모든 값 | 모든 값 |…
- [Javascript] Microtask Queue ← 4
- 정의 Microtask Queue (마이크로태스크 큐) 는 JavaScript 가 매 틱마다 완전히 비울 때까지 처리하는 우선순위 큐다. 매크로태스크 큐보다 항상 먼저 비워진다.…
- [Javascript] NaN / Infinity ← 1
- 정의 - (Not a Number) : 의미 없는 수치 연산의 결과 - , : 너무 큰/작은 수, 0 으로 나누기 IEEE 754 표준에 따른 특수 값. 타입이지만 특이한 동작.…
- [Javascript] Number ← 6
- 정의 JavaScript 의 는 IEEE 754 double-precision float (64-bit). 정수와 실수를 같은 타입으로 표현. 정수 안전 범위는 . 정수 안전 범…
- [Javascript] Object ← 9
- 정의 JavaScript 의 는 key-value 쌍의 컬렉션. 거의 모든 non-primitive 값이 객체. 함수, 배열, 정규식도 객체. 생성 접근 수정 / 삭제 Objec…
- [Javascript] Optional Chaining / Nullish Coalescing ← 1
- 정의 ES2020 도입의 두 가지 단축 문법. - (Optional Chaining) : 중간이 null/undefined 면 반환 - (Nullish Coalescing) : …
- [Javascript] Promise ← 10
- 정의 Promise 는 미래의 어떤 시점에 결정될 값을 나타내는 객체다. ECMAScript 2015 (ES6) 에 도입되어 기반 비동기의 가독성과 에러 처리 문제를 해결했다. …
- [Javascript] Promise.all / race / any / allSettled
- 정의 의 정적 메서드 4 형제. 여러 Promise 를 동시에 다루는 도구. | 메서드 | fulfilled 조건 | rejected 조건 | 결과 | |:---|:---|:--…
- [Javascript] Prototype Chain ← 2
- 정의 JavaScript 의 모든 객체는 (내부 슬롯) 을 가진다. 속성 lookup 시 자신에게 없으면 prototype chain 을 따라 올라가며 검색. 접근 함수의 pro…
- [Javascript] Proxy / Reflect
- 정의 - : 객체의 기본 동작 (get, set, delete 등) 을 가로채는 (intercept) 객체 - : Proxy 의 기본 동작을 호출하는 표준 API 메타 프로그래밍…
- [Javascript] Regular Expression
- 정의 JavaScript 의 정규식. 객체 또는 리터럴 로 표현. ECMAScript 정규식 문법 (Perl 의 부분집합). 생성 리터럴이 가독성 좋음. 동적 패턴은 . flag…
- [Javascript] setInterval ← 2
- 정의 은 호스트 환경이 제공하는 반복 타이머 API. 매 밀리초마다 을 매크로태스크 큐에 등록한다. 전체 메커니즘은 와 참고. 문법 | 인자 | 의미 | |:---|:---| |…
- [Javascript] setTimeout ← 2
- 정의 은 호스트 환경 (브라우저 또는 Node.js) 이 제공하는 타이머 API. 지정한 밀리초가 지난 뒤 을 의 매크로태스크 큐에 등록한다. 자세한 흐름과 함정은 글 참고. 문…
- [Javascript] Spread / Rest ← 3
- 정의 같은 문법 가 두 가지 의미. - Spread : iterable 을 펼침 (right-hand) - Rest : 나머지를 모음 (left-hand 또는 함수 매개변수) S…
- [Javascript] strict mode
- 정의 디렉티브로 활성화되는 엄격 실행 모드. ES5 도입. 위험한 문법을 에러로 만들어 코드 안전성 향상. ES module 과 본문은 자동으로 strict mode. 사용 st…
- [Javascript] String ← 2
- 정의 JavaScript 의 은 UTF-16 코드 유닛의 불변 시퀀스. 작은따옴표, 큰따옴표, 백틱 (template literal) 으로 작성. Template Literal …
- [Javascript] Symbol ← 1
- 정의 은 ES6 도입의 7번째 primitive 타입. 유일성 을 보장하는 식별자. 왜 필요한가 객체의 충돌 없는 키 로 사용. private property 흉내, well-k…
- [Javascript] TDZ (Temporal Dead Zone) ← 2
- 정의 TDZ (Temporal Dead Zone) 는 / / 선언이 호이스팅된 시점부터 선언문 (실행) 직전까지 의 접근 불가 구간. var 와의 비교 는 호이스팅 시 자동으로 …
- [Javascript] this 바인딩
- 정의 JavaScript 의 는 호출 방식에 따라 결정 되는 동적 바인딩. 4 가지 호출 방식 + arrow function (lexical) 규칙. 5 가지 규칙 | # | 규…
- [Javascript] var / let / const ← 4
- 정의 JavaScript 의 3 가지 변수 선언 키워드. | 키워드 | 스코프 | 재할당 | 재선언 | 호이스팅 | |:---|:---|:---:|:---:|:---| | | f…
- 고차 함수 ← 6
- - 고차함수란 하나 이상의 함수를 인자로 받거나 반환하는 함수를 말합니다. - 일급 함수라는 특성을 활용해 실제로 함수를 다루는 연산을 수행하는 함수입니다. 즉, 아래 조건 중 …
- 일급 함수 ← 7
- - 함수를 값처럼 다루어 변수에 담거나 다른 함수의 인자로 전달하거나 함수의 반환값으로 사용할 수 있는 함수. 일급 함수의 이러한 특성을 활용하여 를 구현할 수 있습니다. - 함…
database-internals (35)
- [DB Internals] B-Tree 내부: split, merge, search 알고리즘 ← 4
- 정의 B-Tree (Bayer & McCreight, 1972) = 디스크 I/O 최적화된 balanced multi-way search tree. 모든 leaf 깊이 동일 + …
- [DB Internals] B-Tree와 B+Tree 인덱싱 ← 8
- 정의 B-Tree (B+ Tree) 는 거의 모든 RDB 의 인덱스 자료구조. balanced tree, 디스크 I/O 최소화 설계. 특징: - 균형 (balanced): 모든 …
- [DB Internals] B+ Tree 내부: leaf linked list, range scan ← 3
- 정의 B+ Tree = B-Tree 의 변형. 모든 데이터가 leaf 에만, internal node 는 navigation key만. Leaf 들이 linked list 로 연…
- [DB Internals] CHAR / VARCHAR / TEXT / JSONB: 문자열 타입 비교
- 정의 문자열 저장 타입 4가지 비교. 성능 + 저장 + 유연성 트레이드오프. 4가지 비교 (PostgreSQL) | 타입 | 최대 길이 | 저장 방식 | 뒤 공백 | 사용 | |…
- [DB Internals] GIN Index 깊이: 구조, jsonb_path_ops, tsvector ← 3
- 정의 GIN (Generalized Inverted Index) = 한 값이 여러 항목 을 가지는 데이터 (배열, JSON, tsvector) 의 역색인. PostgreSQL 의…
- [DB Internals] MVCC: Multi-Version Concurrency Control ← 8
- 정의 MVCC (Multi-Versioning Concurrency Control) 는 트랜잭션 간 격리를 여러 버전의 row 로 구현. 동시 read / write 가 락 없이…
- [DB Internals] R-Tree: 공간 인덱스, MBR, split ← 3
- 정의 R-Tree (Guttman, 1984) = 공간 데이터 (2D, 3D) 를 인덱싱하는 balanced tree. 각 노드는 Minimum Bounding Rectangle…
- [DB Internals] Redis 8 / Valkey 9: 라이센스 분기, 신 데이터 구조, 실전 운영 ← 21
- 정의 Redis 는 in-memory key-value 데이터 구조 서버. 2009년 Salvatore Sanfilippo (antirez) 가 Lua Manuscripts 의 …
- [DB] Cassandra: LSM-tree, quorum, eventually consistent
- 정의 Apache Cassandra = 마스터리스 (peer-to-peer) 분산 KV 스토어. write 우선, eventually consistent, 수평 무한 확장. 20…
- [DB] DynamoDB: PK + SK, single-table design, GSI / LSI ← 3
- 정의 DynamoDB 는 AWS 의 fully managed key-value + document NoSQL. low-latency, infinite scale, schemale…
- [DB] EXPLAIN 읽기: scan, join, sort, cost ← 4
- 정의 EXPLAIN = 쿼리 실행 계획 표시. EXPLAIN ANALYZE = 실제로 실행 + 실제 시간 측정. Scan 종류 | Scan | 의미 | 적합 | |---|---|…
- [DB] GIN / GiST / Hash / BRIN: 비-B-tree 인덱스 ← 5
- 정의 B-tree 외 PostgreSQL 의 특수 인덱스 들. 자세한 B-tree 는 참고. | 인덱스 | 적합 | |---|---| | B-tree | = < > BETWEEN…
- [DB] MongoDB: 문서 DB, WiredTiger, replica set, aggregation ← 5
- 정의 MongoDB 는 BSON (binary JSON) 문서 기반 NoSQL DB. schema-less 라기보다 flexible schema. 2026 시점 Atlas (ma…
- [DB] MySQL / InnoDB: clustered index, redo log, MVCC ← 18
- 정의 MySQL + InnoDB (기본 스토리지 엔진) 의 clustered index + redo log 기반 행 기반 RDBMS. 웹 / SaaS 의 가장 흔한 backbon…
- [DB] PostgreSQL: 프로세스 모델, MVCC, WAL, 확장성 ← 28
- 정의 PostgreSQL 은 오픈소스 ORDBMS. 1986 UC Berkeley POSTGRES 의 후예. MVCC, 확장 가능 타입, JSONB, full-text searc…
- [DB] Sharding vs Partitioning: 수평 확장의 두 얼굴 ← 3
- 정의 | | Partitioning | Sharding | |---|---|---| | 범위 | 한 DB 안 | 여러 DB 노드 | | 목적 | 큰 테이블 관리 | 수평 확장 (…
- [DB] SQLite: 단일 파일, WAL 모드, edge / mobile
- 정의 SQLite 는 세계에서 가장 많이 배포된 DB (모든 스마트폰, 브라우저, OS). 서버 없이 라이브러리, 단일 파일, zero-config. embedded + edge…
- [DB] Transaction Isolation Levels: 완벽 가이드 ← 4
- 정의 Transaction Isolation Level (트랜잭션 격리 수준) = 동시에 실행되는 여러 트랜잭션이 서로의 변경을 어디까지 볼 수 있는지 규정하는 수준. ACID …
- [DB] WAL: Write-Ahead Log, crash recovery, replication 의 토대 ← 7
- 정의 Write-Ahead Log (WAL) = 데이터 변경 전 로그를 먼저 디스크에 기록. 모든 모던 RDB / KV / 분산 시스템의 내구성 기반. 핵심 약속: 로그가 디스크…
- [PostgreSQL] JSONB: 장점과 단점, 인덱싱, 사용 패턴 ← 2
- 정의 JSONB (Binary JSON, PG 9.4+) = PostgreSQL 의 binary 직렬화된 JSON. 인덱싱 가능 + 빠른 query 가 과의 핵심 차이. [!IM…
- [Redis] Bloom / Cuckoo / CMS / TopK: 확률 자료구조
- 정의 확률 자료구조 (Probabilistic Data Structures) 는 작은 메모리 로 대규모 데이터의 통계적 답 을 제어된 오차 로 내는 자료구조군. Redis 는 B…
- [Redis] Cache Patterns: Cache-Aside, Stampede, Eviction
- 정의 Cache Pattern 은 Redis (또는 다른 캐시) 를 어떤 경로로 읽고 쓰는지 의 디자인 결정. 같은 인프라로도 패턴 선택에 따라 일관성 / 지연 / 부하 가 완전…
- [Redis] Cluster: 16384 슬롯, MOVED/ASK, Atomic Slot Migration
- 정의 Redis Cluster 는 수평 확장 을 위한 내장된 sharding + 자동 failover. 16384 개의 hash slot 으로 키 공간 을 잘라 여러 노드 에 분…
- [Redis] Distributed Lock: SET NX, Redlock, Fencing Token ← 1
- 정의 분산 락 (Distributed Lock) 은 여러 프로세스 / 머신 에서 한 시점에 하나만 임계 영역에 진입하도록 보장하는 동기화 도구. Redis 는 간단한 SETNX …
- [Redis] Hash: 객체 저장, Field TTL (7.4+), Listpack vs Hashtable
- 정의 Redis Hash 는 키 안의 작은 dict. 하나의 키 ( ) 가 여러 field → value 쌍을 가진다. 부분 갱신 / 부분 조회 가 atomic + 효율적. = …
- [Redis] HyperLogLog & Geo: 확률 카운팅 + 공간 인덱스
- 정의 이 페이지는 작지만 강력한 두 자료구조 를 묶는다. - HyperLogLog (HLL): 대규모 unique count 를 0.81% 오차로 12 KB 안에 추정. - Ge…
- [Redis] List: Quicklist / Listpack, BLPOP, Sidekiq 큐
- 정의 Redis List 는 양끝 push / pop 이 O(1) 인 순서 보존 시퀀스. 큐 (FIFO), 스택 (LIFO), 최근 N개 목록, Sidekiq 같은 큐 시스템 의…
- [Redis] Persistence: RDB / AOF / Hybrid ← 6
- 정의 Redis Persistence 는 in-memory 데이터를 디스크 로 지속화하는 메커니즘. 세 가지 옵션: 1. RDB (Redis Database file): 주기적 …
- [Redis] Pub/Sub vs Streams: 휘발 신호 vs 영속 로그 ← 5
- 정의 - Pub/Sub ( / ): 지금 듣고 있는 구독자 에게만 메시지가 전달되는 휘발성 신호. 영속 없음, ACK 없음. fan-out. - Streams ( / / / ):…
- [Redis] Replication & Sentinel: 비동기 복제와 자동 Failover ← 5
- 정의 Redis Replication 은 primary (master) → replica (slave) 방향의 비동기 단방향 복제. 읽기 부하 분산 과 고가용성 의 토대. Red…
- [Redis] Set: 중복 없는 멤버십, SINTER / SUNION / SDIFF
- 정의 Redis Set 은 중복 없는 unordered 멤버 집합. SADD / SREM / SISMEMBER 가 O(1), SINTER / SUNION / SDIFF 의 집합 …
- [Redis] Sorted Set: Skiplist + Dict, 리더보드, 우선순위 큐
- 정의 Redis Sorted Set (ZSet) 은 멤버 + 점수 (score) 의 순서 보존 unique 집합. score 기준 정렬 + 멤버 기준 O(1) 조회 가 동시에 가…
- [Redis] Stream: Radix Tree + Listpack, Consumer Group 내부
- 정의 Redis Stream 은 append-only 로그 자료구조. 시간 순서가 보존되는 영속 메시지 시퀀스 + consumer group 으로 작업 분배. Kafka 의 Re…
- [Redis] String / Bitmap / Bitfield: 가장 기본 + 가장 강력
- 정의 Redis String 은 binary-safe 한 바이트 열. 최대 512 MB. 문자열만이 아니라 정수, 부동소수, 직렬화된 객체, 비트맵 (Bitmap), 패킹된 정수…
- [Redis] Vector Search: HNSW, SVS-VAMANA, Semantic Cache
- 정의 Vector Search 는 임베딩 벡터의 거리/유사도 기준으로 근접한 K 개 를 찾는 검색. Redis 는 RediSearch 모듈 (Redis 8 부터는 코어) 과 Va…
cloud (32)
- [AWS] ALB vs NLB: L7 vs L4 로드 밸런서 ← 5
- 정의 | | ALB | NLB | (Classic ELB) | |---|---|---|---| | Layer | L7 (HTTP) | L4 (TCP/UDP) | L4 + L7 (…
- [AWS] Auto Scaling: EC2 ASG, target tracking, predictive ← 2
- 정의 Auto Scaling Group (ASG) = EC2 instance 자동 증감. desired / min / max + scaling policy. 구조 Scaling …
- [AWS] CloudFront: CDN, origin, behavior, signed URL ← 2
- 정의 CloudFront = AWS 의 글로벌 CDN. 전세계 엣지 (600 PoP) 에서 사용자에게 가까이. 동작 Origin 종류 | Origin | 사용 | |---|---…
- [AWS] CloudWatch: 메트릭, 로그, 알람 ← 3
- 정의 CloudWatch = AWS 의 모니터링 + 로그 + 알람 통합 서비스. 4가지 구성 Metrics | 종류 | 의미 | |---|---| | Standard resolu…
- [AWS] EBS vs Instance Store: 영속 vs 임시 스토리지 ← 2
- 정의 | | EBS | Instance Store | |---|---|---| | 영속성 | 영속 | 임시 (instance 종료 시 손실) | | 위치 | 네트워크 attach…
- [AWS] EC2 Instance Types: family, generation, sizing
- 정의 EC2 인스턴스 수백 종. family + generation + modifier + size. 워크로드에 맞춰 right-sizing. Family | Family | 용…
- [AWS] EC2: 인스턴스 타입, AMI, EBS ← 6
- 정의 EC2 (Elastic Compute Cloud) = AWS 의 VM 서비스. instance type (CPU / RAM / NW) 결정 + AMI (OS 이미지) + E…
- [AWS] ECS + Fargate: 컨테이너 오케스트레이션 ← 1
- 정의 ECS (Elastic Container Service) = AWS 의 컨테이너 오케스트레이션. K8s 보다 단순. Fargate = ECS / EKS 의 서버리스 실행 환…
- [AWS] EKS: managed Kubernetes ← 3
- 정의 EKS (Elastic Kubernetes Service) = AWS 의 managed K8s control plane. worker node 는 사용자 (또는 Fargat…
- [AWS] EventBridge: 이벤트 버스, 스케줄러, partner sources ← 6
- 정의 EventBridge = AWS 의 통합 event bus. 옛 CloudWatch Events 의 후계. AWS service 이벤트 + custom 이벤트 + SaaS …
- [AWS] IAM: User, Role, Policy, STS ← 10
- 정의 IAM (Identity and Access Management) = AWS 의 권한 관리 전부. User, Group, Role, Policy. 객체 | 객체 | 의미 |…
- [AWS] KMS: 암호화 키 관리, envelope encryption ← 4
- 정의 KMS (Key Management Service) = 암호화 키 중앙 관리. envelope encryption + IAM 통합 + 감사 로그. 키 종류 | 종류 | 의미…
- [AWS] Lambda Cold Start: 원인과 완화 ← 1
- 정의 Cold Start = Lambda 가 처음 호출 또는 idle 후 다시 호출 시 컨테이너 + 런타임 + 사용자 코드 init 의 시간. 단계 | 단계 | 시간 (Node)…
- [AWS] Lambda: 서버리스 함수, 트리거, 동시성 ← 7
- 정의 AWS Lambda = 서버리스 함수 실행. 이벤트 트리거 → 함수 실행 → 결과 / 비동기 처리. 서버 관리 0. 트리거 종류 | 트리거 | 모델 | |---|---| |…
- [AWS] RDS Multi-AZ + Read Replica
- 정의 RDS (Relational Database Service) = AWS 의 managed RDB. MySQL, PostgreSQL, MariaDB, Oracle, SQL S…
- [AWS] Route 53: DNS, routing policies, health checks ← 3
- 정의 Route 53 = AWS 의 글로벌 DNS + health check + 라우팅 정책. 단순 DNS 뿐 아니라 글로벌 트래픽 분산. Hosted Zone Alias Rec…
- [AWS] S3: object storage, storage classes, lifecycle ← 7
- 정의 S3 = AWS 의 object storage. bucket + key + object. 11 9's durability, 무한 확장. 2026 시점 인터넷의 핵심 스토리지…
- [AWS] Secrets Manager + Parameter Store ← 4
- 정의 | | Secrets Manager | Parameter Store (SSM) | |---|---|---| | 가격 | $0.40/secret/월 + $0.05/10k AP…
- [AWS] Security Group vs NACL: stateful vs stateless 방화벽 ← 1
- 정의 | | SG (Security Group) | NACL (Network ACL) | |---|---|---| | 상태 | Stateful | Stateless | | 적용 …
- [AWS] SNS: pub-sub fan-out ← 2
- 정의 SNS (Simple Notification Service) = pub-sub fan-out. 한 message → 여러 subscriber 에 동시 배포. 구조 Subsc…
- [AWS] SQS: managed queue, FIFO, DLQ ← 4
- 정의 SQS = AWS 의 완전 관리형 메시지 큐. infinite scale, no provisioning, pay-per-request. Standard vs FIFO | |…
- [AWS] Step Functions: 워크플로 오케스트레이션 ← 2
- 정의 Step Functions = 서버리스 워크플로 오케스트레이션. Amazon States Language (ASL, JSON) 으로 상태 기계 정의. ASL 예시 시각화 자…
- [AWS] STS / AssumeRole: 임시 자격, cross-account ← 2
- 정의 STS (Security Token Service) = 임시 자격 증명 발급. short-lived (15분-12시간) credentials. 5가지 API | API | …
- [AWS] VPC: subnet, route, NAT, peering ← 7
- 정의 VPC (Virtual Private Cloud) = AWS 안의 논리적 격리 네트워크. CIDR 정의 + subnet 분할 + 라우팅. 구조 Subnet 종류 | 종류 |…
- [Container] cgroups + namespaces: 컨테이너의 두 기둥 ← 4
- 정의 컨테이너 = namespaces + cgroups + 파일시스템 (overlay). VM 이 아니라 host 의 프로세스 + 격리. Namespaces (격리) | Name…
- [Container] Docker: image, layer, registry ← 6
- 정의 Docker = 컨테이너 빌드 + 실행 + 배포 의 표준 도구. 2013 출시 → 컨테이너 시대 의 시작. 현재는 OCI 표준 으로 진화 ( , , 등 호환). Layere…
- [Container] Image Best Practices: 작게, 안전하게 ← 3
- 5가지 원칙 1. Base Image 선택 | Base | 크기 | 적합 | |---|---|---| | | 70 MB | 개발 / 디버깅 친화 | | | 40 MB | 일반 |…
- [Container] OCI Image: spec, manifest, layer 표준 ← 3
- 정의 OCI (Open Container Initiative) = 컨테이너 표준 (Linux Foundation, 2015). image format + runtime + dis…
- [IaC] AWS CDK: TypeScript 로 CloudFormation 생성 ← 2
- 정의 AWS CDK = TS/Python/Java/Go 로 AWS 인프라 정의 → CloudFormation 으로 컴파일 → 배포. AWS 전용. 흐름 예시 한 줄 = bucke…
- [IaC] Pulumi: 코드로 인프라 (TS/Python/Go) ← 2
- 정의 Pulumi = 일반 프로그래밍 언어로 IaC. TypeScript, Python, Go, .NET, Java. Terraform 의 HCL DSL 대신 코드 자유도. TS…
- [IaC] Terraform State: backend, locking, drift, import ← 1
- 정의 Terraform State = 코드 ↔ 실제 인프라 매핑. JSON 파일. 모든 Terraform 작업의 핵심. State 가 하는 일 | 역할 | 의미 | |---|--…
- [IaC] Terraform: HCL, provider, state ← 4
- 정의 Terraform = 선언적 인프라 코드. HCL (HashiCorp Configuration Language) 로 리소스 정의 → AWS/GCP/Azure 등 provid…
rails (28)
- [Rails] 배포: Kamal, Capistrano, Heroku
- 정의 Rails 배포 옵션: - Kamal (Rails 8 기본): Docker + zero-downtime, 자체 호스팅 - Capistrano: SSH 기반 (전통) - He…
- [Rails] 보안: CSRF, XSS, SQL injection, encrypted credentials
- 정의 Rails는 OWASP Top 10 대부분을 기본 방어한다. 그러나 설정 누락, 남용, raw SQL 등이 흔한 함정. 보안은 기본 활성이고 명시적으로 우회해야 비활성. C…
- [Rails] 성능: N+1, bullet, rack-mini-profiler
- 정의 Rails 성능 최적화는 보통 DB 쿼리 (N+1 회피, 인덱스), 캐싱, view 렌더링, Ruby 코드 효율 순서로 접근. 측정 도구 ( , , APM)로 hotspot…
- [Rails] 쿼리 최적화: preload, eager_load, includes, references ← 1
- 정의 Active Record 는 연관 ( , ) 을 lazy 로딩한다. 부모 객체를 받아온 뒤 자식을 순회하면 자식마다 SELECT 가 1번씩 추가로 발생 = N+1 문제. R…
- [Rails] 테스트: Minitest, RSpec, FactoryBot, Capybara
- 정의 Rails는 Minitest 기반 테스트를 기본 제공한다. 커뮤니티는 RSpec도 광범위 사용. FactoryBot(객체 생성), Capybara(브라우저 시뮬레이션), R…
- [Rails] Action Cable & Solid Cable: WebSocket
- 정의 Action Cable은 Rails의 WebSocket 통합. 채널(channel) 기반 발행/구독 모델. Rails 8부터 Solid Cable (DB 기반 어댑터)이 기…
- [Rails] Action Mailer: 이메일 발송
- 정의 Action Mailer는 Rails의 이메일 처리 프레임워크. 컨트롤러처럼 구조화된 mailer 클래스 + ERB 템플릿 + Active Job 통합. SMTP, Send…
- [Rails] Action Text & Active Storage 통합
- 정의 Action Text (Rails 6+)는 Trix 에디터 + Active Storage 통합 + 안전한 HTML 저장으로 rich text 콘텐츠 처리. 댓글, 게시글, …
- [Rails] Active Job 고급: retry, schedule, callback ← 1
- 정의 Active Job 기본 사용은 별도 페이지. 이 문서는 재시도 전략, 콜백, 시리얼라이즈, 멱등성, 우선순위 등 고급 패턴을 다룬다. Retry / Discard Wait…
- [Rails] Active Job: 백그라운드 워커 ← 4
- 정의 Active Job은 백엔드(Sidekiq, Resque, Solid Queue 등) 추상화 계층. 같은 코드로 다른 queue adapter 교체 가능. Rails 8부터…
- [Rails] Active Record Encryption
- 정의 Active Record Encryption (Rails 7.0+)은 모델 attribute 자동 암호화. 키 관리, 검색(deterministic), 마이그레이션 등 내장…
- [Rails] Active Storage: 파일 업로드와 attachment
- 정의 Active Storage는 Rails 5.2+ 표준 파일 업로드 솔루션. S3, GCS, Azure, 로컬 디스크를 균일한 API로. 이미지 variant(크기 변환), …
- [Rails] Active Support: Ruby 확장
- 정의 Active Support는 Ruby 표준 라이브러리에 Rails가 추가하는 유틸리티 + 코어 확장. , , 등 모든 Rails 코드에서 사용. Rails 없는 Ruby 프…
- [Rails] ActiveRecord 기초: Model, Migration, CRUD ← 3
- 정의 ActiveRecord는 Rails의 ORM. 클래스 ↔ 테이블 1:1 매핑(관례), 인스턴스 = 행. Active Record 패턴 그대로(데이터 + 행동). 마이그레이션…
- [Rails] ActiveRecord Callbacks: 장점과 단점
- 정의 ActiveRecord Callbacks = 모델의 라이프사이클 이벤트 (생성, 갱신, 삭제) 에 훅 을 거는 메커니즘. DRY + 자동화 가 매력이지만 암묵적 부수효과 의…
- [Rails] AR Associations: belongs_to, has_many, polymorphic ← 2
- 정의 ActiveRecord associations로 테이블 간 관계를 객체 그래프로 표현. 6가지 매크로( , , , , , )와 polymorphic, STI 같은 고급 패턴…
- [Rails] AR Validations와 Callbacks ← 1
- 정의 ActiveRecord는 save 전 검증과 다양한 라이프사이클 콜백을 제공한다. 검증은 DB 제약과 별도(애플리케이션 레벨). 콜백은 신중히, 비즈니스 로직은 servic…
- [Rails] Caching: fragment, action, low-level, Russian Doll
- 정의 Rails 캐싱은 fragment, action, page, HTTP, low-level (Rails.cache) 5단계. 모델·뷰 단위로 자동 무효화 (Russian Do…
- [Rails] Concerns, Engines, Generators ← 2
- 정의 Concern은 모듈에 클래스 메서드와 콜백을 한 곳에 모으는 패턴. Engine은 별도 gem으로 분리 가능한 미니 Rails 앱. Generator는 코드 자동 생성 (…
- [Rails] Controller: params, strong params, filters
- 정의 Rails Controller는 라우터가 전달한 요청을 받아 Model 조작 + View 렌더링을 조율한다. RESTful 7 action(index, show, new, …
- [Rails] Encrypted Credentials과 환경변수
- 정의 Rails 5.2+ 는 비밀 정보를 암호화해 git에 안전하게 커밋. Rails 6+ 환경별 ( , ) 가능. 파일 + 는 대안. 기본 사용 파일 구조 노출 → 모든 비밀 …
- [Rails] Form Object, Service Object, Query Object
- 정의 Fat Model / Skinny Controller가 한계에 달하면 POROs (Plain Old Ruby Objects)로 책임 분리. Form Object (다중 모델…
- [Rails] Hotwire: Turbo Drive, Frames, Streams, Stimulus
- 정의 Hotwire는 Rails 7부터 기본인 "SPA 없이 SPA 같은 UX"를 위한 프론트엔드 접근. Turbo Drive(전체 페이지 전환을 fetch + DOM swap)…
- [Rails] I18n: 다국어와 지역화
- 정의 Rails I18n은 로케일별 번역, 숫자/날짜 포맷, 시간대, 복수형, 통화 등을 통합 처리. 에 번역 저장, 로 조회. View, controller, model 어디서…
- [Rails] Rails 8: Solid Queue/Cache/Cable, Kamal, Propshaft
- 정의 Rails 8 (2024 11월)의 표어는 "No PaaS"다. Solid 시리즈로 Redis/외부 큐 의존을 제거하고, Kamal로 Docker 기반 자체 호스팅을 간단하…
- [Rails] Routes: resources, nested, scope, constraints
- 정의 Rails 라우팅은 URL을 controller#action으로 매핑. RESTful resources 매크로가 7개 표준 액션을 한 줄로 생성. 에 정의. 로 전체 확인.…
- [Rails] Views: ERB, helpers, partials, layouts
- 정의 Rails View는 ERB(Embedded Ruby) 템플릿 + helper + partial + layout 조합. controller가 를 view로 전달. 뷰 로직은…
- Ruby on Rails ← 3
- 정의 Ruby on Rails (또는 Rails)는 Ruby 언어 기반의 풀스택 웹 프레임워크다. David Heinemeier Hansson (DHH)이 2004년 Baseca…
network (23)
- [Network] CIDR와 Subnetting ← 4
- 정의 CIDR (Classless Inter-Domain Routing) 은 IPv4 / IPv6 주소를 prefix length 로 표기하는 표준. 1993년 등장 (RFC 1…
- [Network] CORS: Same-Origin Policy, preflight, credentials ← 6
- 정의 CORS (Cross-Origin Resource Sharing) 는 Same-Origin Policy (SOP) 의 완화 메커니즘. 브라우저가 origin 이 다른 리소스…
- [Network] DNS: 도메인 이름 해석 ← 5
- 정의 DNS (Domain Name System) 는 도메인 이름 ( ) 을 IP 주소 ( ) 로 변환하는 분산 데이터베이스. 인터넷의 가장 중요한 인프라. 기본 동작: 1. 클…
- [Network] gRPC: HTTP/2 + Protobuf, 4가지 streaming 패턴 ← 8
- 정의 gRPC 는 HTTP/2 위에서 Protobuf 직렬화 로 동작하는 고성능 RPC 프레임워크. Google 내부 Stubby 의 오픈소스 후계. 핵심 4가지: 1. Prot…
- [Network] HTTP Caching: Cache-Control, ETag, Last-Modified ← 2
- 정의 HTTP Caching 은 HTTP 응답을 클라이언트 / 중간 proxy / CDN 이 보관해 같은 요청을 다시 처리하지 않게 하는 메커니즘. 성능 + 비용 절감의 핵심. …
- [Network] HTTP/1.1: keep-alive, pipelining, chunked transfer ← 6
- 정의 HTTP/1.1 (1997, RFC 9112 으로 재정리) 는 텍스트 기반 stateless request/response 프로토콜. 2026 시점에도 대부분의 트래픽이 H…
- [Network] HTTP/2: multiplexing, HPACK, server push의 종말 ← 8
- 정의 HTTP/2 (2015, RFC 9113) 는 HTTP/1.1 의 문법은 유지하되 전송을 바이너리 + 멀티플렉싱 으로 바꾼다. Head-of-Line Blocking (HT…
- [Network] HTTP/3: QUIC 위의 HTTP, 0-RTT, connection migration ← 15
- 정의 HTTP/3 (2022, RFC 9114) 는 HTTP 의 전송 레이어를 TCP → QUIC 으로 교체한 버전. UDP 위에 QUIC, QUIC 위에 HTTP. 핵심 동기:…
- [Network] IP: IPv4, IPv6, 패킷 구조, fragmentation ← 1
- 정의 IP (Internet Protocol) 는 OSI L3 (네트워크 계층) 의 핵심 프로토콜. best-effort delivery (재전송 없음, 순서 보장 없음, 손실 …
- [Network] Load Balancer: L4 vs L7, 알고리즘, sticky session ← 9
- 정의 Load Balancer 는 트래픽을 여러 백엔드로 분산 하는 인프라. 수평 확장 + 가용성 + 무중단 배포 의 토대. L4 vs L7 | 구분 | L4 (Transport…
- [Network] OSI 7 Layer: 각 계층의 의미와 실전 매핑
- 정의 OSI 7 Layer 모델 은 네트워크 통신을 7 계층으로 추상화 한 ITU-T 표준 (1984). 실제 인터넷은 TCP/IP 4-5 계층 이지만, OSI 의 개념적 분리 …
- [Network] Realtime 전송 비교: Polling / SSE / WebSocket / WebRTC ← 3
- 정의 실시간 (서버 → 클라이언트) 데이터 전송 의 7가지 패턴 비교. 결정 트리 7가지 비교 | 패턴 | 방향 | 영속 | 프로토콜 | 사용 | |---|---|---|---|…
- [Network] SSE (Server-Sent Events): 단방향 영속 스트림
- 정의 Server-Sent Events (SSE) 는 HTTP 위 단방향 (서버 → 클라이언트) 영속 스트림. MIME + 클라이언트의 API. 장점: HTTP/1.1 위에서 동…
- [Network] WebSocket: HTTP upgrade, frame, ping/pong
- 정의 WebSocket (RFC 6455) 은 HTTP/1.1 upgrade 로 시작 하는 양방향 영속 메시지 채널. 한 TCP 위에서 서버 ↔ 클라이언트 임의 시점 push 가…
- [Voice AI] WebRTC: PeerConnection, ICE, STUN/TURN, SFU ← 4
- 정의 WebRTC = 브라우저 / 모바일 P2P 실시간 미디어 + 데이터 표준. 음성, 비디오, 데이터 채널. 2026 시점 voice agent + 영상 통화 + 화면 공유 의…
- [Voice AI] WebSocket 미디어 스트림: 양방향 풀듀플렉스, 프레임 버퍼링
- 정의 WebSocket Media Stream = 양방향 바이너리 오디오 스트림. WebRTC 가 어려운 전화 / 서버↔서버 / 옛 클라이언트 에서 표준. 자세한 일반 WebSo…
- DTLS ← 1
- 정의 DTLS (Datagram Transport Layer Security)는 위에서 동작하는 의 변형. 데이터그램 (UDP 패킷) 기반 통신에 보안을 제공한다. 와 WebRT…
- Head-of-Line Blocking ← 9
- 정의 Head-of-Line Blocking (HOLB) 은 처리 순서가 정해진 큐에서 맨 앞 항목의 지연이 그 뒤 항목 전체의 지연으로 전파되는 현상이다. 네트워크 프로토콜에서…
- HPACK ← 4
- 정의 HPACK (RFC 7541)은 HTTP/2 에서 요청·응답 헤더를 압축하기 위해 설계된 방식. HTTP/1.1 의 헤더는 매 요청마다 텍스트로 반복 전송되었다 (한 페이지…
- QUIC
- 정의 QUIC (Quick UDP Internet Connections)은 Google이 2012년 처음 제안하고 2021년 RFC 9000으로 표준화된 UDP 기반 전송 프로토…
- TCP ← 13
- 정의 TCP (Transmission Control Protocol)는 신뢰성 있는 연결 지향 전송 계층 프로토콜이다. RFC 9293 으로 정의되어 있다. HTTP/1.1·2,…
- TLS / SSL ← 13
- 정의 TLS (Transport Layer Security)는 (또는 위 ) 위에서 동작하는 암호화·인증 프로토콜이다. SSL 은 TLS 의 전신 (Netscape 1995, 더…
- UDP ← 11
- 정의 UDP (User Datagram Protocol)는 비연결·비신뢰 전송 계층 프로토콜이다. RFC 768 (1980) 로 정의되었다. 와 대비된다. "보내고 잊는다(fir…
distributed-systems (16)
- [Distributed Systems] 분산 트랜잭션: 2PC, Saga, Outbox ← 5
- 정의 분산 트랜잭션 은 여러 service / DB / 메시지 큐에 걸친 작업을 ACID 처럼 묶는 문제. 마이크로서비스 / 이벤트 기반 아키텍처의 핵심 도전. 3가지 접근: 1…
- [Distributed Systems] CAP Theorem과 PACELC ← 3
- 정의 CAP Theorem (Eric Brewer, 2000): 분산 시스템에서 3가지 중 2개만 동시에 보장 가능. - C (Consistency): 모든 노드가 같은 시점에 …
- [Distributed Systems] Consensus: Raft, Paxos ← 5
- 정의 Consensus (합의): 여러 노드가 같은 값에 동의 하는 분산 알고리즘. CAP 의 C 보장의 기반. 용도: - Leader election: 1개 leader 선출 …
- [Distributed] Kafka Consumer Group: rebalancing, offset, lag ← 2
- 정의 Consumer Group = 같은 를 가진 consumer 들이 함께 한 topic 을 분담 소비. partition 단위로 분배. Partition 할당 규칙: - pa…
- [Distributed] Kafka: 분산 로그, partition, consumer group ← 13
- 정의 Apache Kafka = 분산 commit log. 고처리량 (수백만 msg/s), 영속, 수평 확장. event-driven 아키텍처 의 de facto. 핵심 개념: …
- [Distributed] Message Broker 비교: Kafka / RabbitMQ / NATS / SQS / Redis Streams ← 3
- 결정 트리 6가지 broker 매트릭스 | 항목 | Kafka | RabbitMQ | NATS | SQS | Redis Streams | Google Pub/Sub | |---|…
- [Distributed] NATS: 가벼움, JetStream, subject 라우팅 ← 3
- 정의 NATS = 극도로 가벼운 메시징 시스템. core NATS = at-most-once Pub/Sub + request-reply. JetStream = 영속 / at-le…
- [Distributed] RabbitMQ: exchange, queue, routing key ← 4
- 정의 RabbitMQ = AMQP 0.9.1 기반 traditional message broker. exchange → queue 라우팅, workload distribution…
- [Pattern] API Gateway: BFF, 라우팅, auth, rate limit ← 4
- 정의 API Gateway = 클라이언트와 마이크로서비스 사이의 단일 진입점. 라우팅, auth, rate limit, transformation, monitoring 의 cro…
- [Pattern] CQRS: Command / Query 분리, read model ← 2
- 정의 CQRS (Command Query Responsibility Segregation) = 쓰기 모델 과 읽기 모델 을 분리. 같은 데이터를 다른 형태 로 저장 / 조회. […
- [Pattern] Event Sourcing: 상태 대신 이벤트 누적 ← 5
- 정의 Event Sourcing = 현재 상태 대신 과거 이벤트 시퀀스 를 저장. 현재 상태 = event 모두 replay 한 결과. 핵심 약속 - 과거 모든 변화 기록. 감사…
- [Pattern] Idempotency Keys: 중복 요청 안전 처리 ← 7
- 정의 Idempotency = 같은 요청을 N번 보내도 결과가 1번과 동일. 분산 시스템 / 결제 / API 의 안전망. [!IMPORTANT] 네트워크는 항상 timeout /…
- [Pattern] Microservices vs Monolith: 언제 분리, 언제 통합 ← 5
- 정의 | | Monolith | Modular Monolith | Microservices | |---|---|---|---| | 배포 단위 | 1개 | 1개 (모듈 명확) | …
- [Pattern] Outbox Pattern: DB + 메시지의 원자성 ← 11
- 정의 Outbox Pattern = DB 변경 + 메시지 발행 의 원자성 보장. 이중 쓰기 (dual write) 문제 의 표준 해결. 문제: Dual Write | 시나리오 |…
- [Pattern] Saga: 분산 트랜잭션의 보상 흐름 ← 6
- 정의 Saga = 여러 service 의 로컬 트랜잭션 을 연결한 긴 흐름. 한 단계 실패 시 이전 단계의 보상 (compensating) 트랜잭션 으로 논리적 롤백. [!IMP…
- [Voice AI] 파이프라인 디커플링: Redis Streams / Kafka 적용 ← 1
- 정의 대규모 음성 에이전트 = STT/LLM/TTS 를 분리 배포 + 메시지 큐로 디커플링. 수평 확장 + 독립 실패. [!NOTE] 소규모 (수십 동시 통화) 는 monolit…
concurrency (14)
- [Concurrency] Backpressure: 흐름 제어로 시스템 보호 ← 5
- 정의 Backpressure = 생산자가 소비자 속도에 맞춰 자기 속도 조절. 분산 시스템의 cascade failure 방지. [!IMPORTANT] Backpressure 의…
- [Concurrency] Circuit Breaker: cascade failure 방어 ← 6
- 정의 Circuit Breaker = 전기 회로의 차단기처럼, 백엔드 다운 / 느림 시 호출 자체를 차단 → 빠른 실패 + 백엔드 회복 시간. 3가지 상태 | 상태 | 의미 | …
- [Concurrency] Connection Pool: DB, HTTP, gRPC 의 공통 패턴 ← 2
- 정의 Connection Pool = 연결을 미리 만들어 두고 재사용. 매 요청마다 TCP + TLS + auth 비용을 회피. Pool 의 동작 = producer (reque…
- [Concurrency] Rate Limiting: token bucket, sliding window ← 3
- 정의 Rate Limiting = 시간당 요청 수 제한. API 보호, fair use, 비용 제어, DDoS 완화. 5가지 알고리즘 1. Fixed Window - 단순. - …
- [Concurrency] Retry + Exponential Backoff + Jitter ← 5
- 정의 Retry with Exponential Backoff + Jitter = 실패 시 점점 긴 간격으로 재시도, 랜덤 분산. 분산 시스템의 thundering herd / r…
- Asynchronous (비동기) ← 4
- 정의 Asynchronous (비동기) 는 호출자가 결과를 즉시 기다리지 않고 다음 줄로 진행하는 실행 모델. 결과는 나중에 콜백, Future, Promise, 이벤트 등의 메…
- Blocking (블로킹) ← 16
- 정의 Blocking 은 호출이 결과가 준비될 때까지 호출 스레드를 멈춰두는 실행 방식. 멈춰 있는 동안 그 스레드는 다른 일을 할 수 없다. OS 가 스레드를 sleep 상태로…
- Non-Blocking (논블로킹) ← 14
- 정의 Non-Blocking 은 호출이 결과를 기다리지 않고 즉시 반환 하는 실행 방식. 결과가 준비되지 않았다면 "아직 안 됐다" 라는 신호 ( , , , 등) 를 반환하고, …
- Pub/Sub Bus ← 5
- 정의 Pub/Sub Bus (Publish-Subscribe bus)는 메시지 송신자(publisher)와 수신자(subscriber)가 서로를 모르고도 통신할 수 있게 해주는 …
- Stateful ← 6
- 정의 Stateful (상태유지) 서버는 클라이언트와의 세션·연결 컨텍스트를 메모리에 유지한다. 후속 요청·이벤트는 이 컨텍스트를 활용해 처리된다. 같은 클라이언트의 요청은 같은…
- Stateless ← 5
- 정의 Stateless (무상태) 서버는 클라이언트의 요청 간 상태를 기억하지 않는다. 각 요청은 완전히 독립적이며, 처리에 필요한 모든 정보는 요청 자체에 담겨 있어야 한다. …
- Stateless vs Stateful ← 2
- 정의 Stateless (무상태): 서버가 클라이언트 요청 간 상태를 기억하지 않음. 각 요청은 완전히 독립적이며 필요한 모든 정보는 요청에 담겨 있다. Stateful (상태유…
- Sticky Session ← 11
- 정의 Sticky Session (= Session Affinity)은 로드밸런서가 같은 클라이언트의 요청을 항상 같은 백엔드 서버로 라우팅하도록 하는 동작이다. 서버, 즉 세션…
- Synchronous (동기) ← 5
- 정의 Synchronous (동기) 는 호출자가 결과가 나올 때까지 기다리는 실행 모델. 함수를 호출한 코드는 그 함수가 반환할 때까지 다음 줄로 진행하지 않는다. 이 정의는 J…
kubernetes (12)
- [K8s] ConfigMap & Secret: 설정과 비밀의 분리 ← 2
- 정의 | | ConfigMap | Secret | |---|---|---| | 데이터 | 평문 | base64 (암호화 아님) | | 크기 | 1MB | 1MB | | 용도 | …
- [K8s] DaemonSet: 모든 노드에 한 pod
- 정의 DaemonSet = 각 노드에 정확히 1 pod 보장. 노드 추가 시 자동 배치, 노드 제거 시 자동 정리. 흔한 사용 | 사용 | 예시 | |---|---| | 로그 수…
- [K8s] Deployment: ReplicaSet, rolling update, rollback ← 10
- 정의 Deployment = stateless 워크로드를 위한 컨트롤러. 내부적으로 ReplicaSet 관리 + rolling update / rollback. 계층 | 객체 |…
- [K8s] Helm: 패키지 매니저, chart, release, hook ← 2
- 정의 Helm = K8s 의 패키지 매니저. Chart (YAML 템플릿 + 메타데이터) → Release (cluster 에 배포된 인스턴스). 구조 Chart.yaml val…
- [K8s] HPA / VPA / KEDA: 자동 확장 ← 2
- 3가지 스케일링 HPA (Horizontal Pod Autoscaler) CPU / Memory / custom metric 기반 pod 수 조정. HPA 알고리즘 예: 현재 4…
- [K8s] Ingress: L7 라우팅, TLS termination, Gateway API ← 2
- 정의 Ingress = 클러스터 외부 HTTP/HTTPS 트래픽 → 내부 Service 라우팅. L7 LB 역할. Service 의 LoadBalancer 다수 대안. [!IMP…
- [K8s] Job / CronJob: 일회성 + 스케줄 작업
- 정의 | 컨트롤러 | 의미 | |---|---| | Job | 완료까지 실행하는 일회성 작업 | | CronJob | 스케줄 (cron) 에 따라 Job 생성 | Job 흐름 병…
- [K8s] NetworkPolicy: pod 간 네트워크 차단 ← 1
- 정의 NetworkPolicy = pod 간 허용된 트래픽만 통과. 없으면 모든 pod ↔ pod 가 허용 (기본 open). [!IMPORTANT] NetworkPolicy 는…
- [K8s] Pod: 컨테이너의 최소 단위, sidecar, lifecycle ← 15
- 정의 Pod = K8s 의 가장 작은 배포 단위. 1개 이상의 컨테이너 + 공유 네트워크 + 공유 스토리지. [!IMPORTANT] Pod 는 컨테이너의 wrapping 이 아니…
- [K8s] RBAC: Role, ClusterRole, ServiceAccount, RoleBinding ← 1
- 정의 RBAC (Role-Based Access Control) = K8s 의 권한 부여 모델. 주체 + 권한 + 바인딩. 4 객체 | 객체 | 범위 | |---|---| | |…
- [K8s] Service: ClusterIP / NodePort / LoadBalancer / ExternalName ← 5
- 정의 Service = Pod 집합에 안정 가상 IP + DNS 부여. Pod 가 죽고 다시 만들어져도 Service IP 는 그대로. 4가지 타입 1. ClusterIP (기본…
- [K8s] StatefulSet: 순서 보장, 고유 ID, 영속 스토리지 ← 3
- 정의 StatefulSet = 상태 있는 워크로드를 위한 컨트롤러. Deployment 와의 차이: | 항목 | Deployment | StatefulSet | |---|---|…
search (12)
- [Search] ElasticSearch 기본 원리: Inverted Index, Segment, Lucene ← 5
- 정의 ES 의 모든 동작 은 Lucene 의 inverted index 위에 얹혀있다. 문서 단위 저장 + term 단위 검색 의 분리. Inverted Index (역색인) 위…
- [Search] Elasticsearch vs OpenSearch: 라이센스 분기와 차이 ← 1
- 정의 OpenSearch = AWS 가 2021 년 Elasticsearch 7.10 에서 fork 한 Apache 2.0 라이센스 search engine. Kibana → O…
- [Search] ElasticSearch: Lucene 위 분산 검색 엔진 ← 3
- 정의 ElasticSearch = Apache Lucene 위의 분산 RESTful 검색/분석 엔진. 2010 출시. Logstash + Kibana + Beats 와 함께 El…
- [Search] ES 인프라: cluster, shard, replica, ELK ← 2
- 정의 ES 는 분산 시스템. cluster + multiple nodes + shards + replicas + Elastic Stack 보조 도구. Cluster 구조 Node…
- [Search] ES 한글 인덱싱: nori, mecab, 형태소 분석 ← 3
- 정의 한국어 는 교착어 + 띄어쓰기 모호 + 형태소 변화 때문에 공백 단순 분리 로는 검색 불가. 형태소 분석 (morphological analysis) 필수. 한글이 어려운 …
- [Search] ES Aggregations: metric, bucket, pipeline ← 4
- 정의 Aggregations (aggs) = ES 의 집계 분석. SQL 의 GROUP BY + 함수 + window. 검색 결과 또는 전체 위에서. 3가지 카테고리 Metric…
- [Search] ES Indexing: bulk, refresh, ingest pipeline ← 4
- 정의 Indexing = JSON 문서를 역색인에 등록 하는 행위. Lucene segment 빌드 + refresh + flush 의 흐름. 단일 인덱싱 | 동작 | 결과 | …
- [Search] ES Mapping: field type, dynamic, multi-field ← 6
- 정의 Mapping = ES 의 schema. 각 필드의 type + analyzer + indexing 옵션. 대부분 immutable (재인덱싱 필요). Field Type …
- [Search] ES Query: must / should / filter / must_not ← 7
- 정의 ES 의 Query DSL = JSON 기반 표현력 풍부한 쿼리 언어. bool query + leaf query 의 조합. bool query: 4가지 절 | 절 | AN…
- [Search] ES Relevance Scoring: BM25, TF-IDF, function_score ← 5
- 정의 Relevance Score ( ) = 쿼리와 문서의 매칭 강도. ES 7+ 의 기본은 BM25 (TF-IDF 의 발전형). BM25 공식 | 부분 | 의미 | |---|-…
- [Search] ES Sort: relevance, field, script, geo ← 3
- 정의 ES 의 기본 정렬 = relevance score (BM25) 내림차순. 명시적 sort 로 변경 가능. docvalues 로 메모리 효율적 정렬. 5가지 정렬 1. Fi…
- [Search] ES Vector Search: kNN, ELSER, RAG ← 5
- 정의 ES 의 벡터 검색 = 임베딩 기반 의미 검색. kNN (Approximate Nearest Neighbor) 으로 수억 벡터 안에서 가까운 K개 찾기. 2026 시점의 E…
frameworks (10)
- [비교] JPA EAGER vs Rails eager_load ← 1
- 정의 JPA 와 Rails 는 둘 다 "eager" 라는 용어를 ORM 의 연관 로딩 전략에 사용한다. 이름은 비슷하지만 의미는 정반대. - JPA : 매핑 선언 시점에 영구 설…
- [Frontend] React 19.x: Actions, Activity, RSC, Foundation
- 정의 React 19 ( ) 는 Server Components 의 정식화 와 Actions 라는 새 패러다임을 들고 나온 메이저 릴리즈. 이후 ( ), ( ) 까지 minor …
- [Frontend] React Compiler 1.0: 자동 memoization 의 새 표준 ← 4
- 정의 React Compiler 는 React 컴포넌트와 hook 의 불필요한 재계산 을 빌드 타임에 자동으로 잡아주는 optimizing compiler. 손으로 / / 를 박…
- [React] Component Composition: Props, Children, Render Prop, HOC, Compound ← 3
- 정의 Component Composition 은 작은 컴포넌트를 조합 해 큰 UI 를 만드는 React 의 핵심 빌드 블록. 객체지향의 상속 (inheritance) 대신 Com…
- [React] Lifecycle: Mount / Update / Unmount, StrictMode, Activity, RSC ← 3
- 정의 React Lifecycle 은 컴포넌트의 생성 → 갱신 → 제거 의 흐름. 함수 컴포넌트에서는 클래스의 lifecycle method 가 사라지고 render + effe…
- [React] useEffect: 동기화의 본질, dep array, cleanup, useEffectEvent
- 정의 는 컴포넌트의 렌더 결과 와 외부 시스템 을 동기화 하는 hook. - 외부 시스템: 브라우저 DOM, WebSocket, 구독, 타이머, 외부 라이브러리 (D3, Mapb…
- [React] useMemo / useCallback / memo: 자동 시대의 수동 도구 ← 2
- 정의 세 가지 도구는 동일한 목표 (불필요한 재계산 / 재생성 / 재렌더 방지) 를 서로 다른 위치 에서 잡는다. - : 값 의 메모이제이션. deps 가 같으면 같은 값 반환.…
- Astro ← 4
- 개요 Astro 는 콘텐츠 중심 사이트를 위한 정적 사이트 생성기다. Islands Architecture로 필요한 부분만 hydration 하기 때문에 기본 페이지 로드가 빠르…
- BrainDB ← 2
- 개요 BrainDB 는 마크다운 콘텐츠를 데이터베이스처럼 다룰 수 있게 해주는 통합 라이브러리다. 제공하는 것 - 위키링크 자동 처리 ( ) - backlink 추출 - 콘텐츠 …
- D3 ← 2
- 개요 D3.js 는 데이터 기반의 SVG / Canvas 시각화 라이브러리다. 이 블로그의 그래프 페이지는 D3 의 으로 노드를 배치한다. 사용한 force - , 노드 사이의 …
sql (10)
- [SQL] Data Types ← 7
- 정의 SQL 의 컬럼은 타입 을 가진다. 가능한 값의 도메인, 가능한 연산, 정렬 순서, 인덱스 종류, 저장 크기가 타입에 따라 결정된다. 같은 의미의 타입도 dialect 마다…
- [SQL] DCL TCL ← 6
- 정의 - DCL (Data Control Language): 권한. , . - TCL (Transaction Control Language): 트랜잭션 경계. , , , . 같이…
- [SQL] DDL ← 6
- 정의 DDL (Data Definition Language) 은 스키마를 정의/변경/제거 하는 SQL 의 하위 집합. 대상은 테이블, 인덱스, 뷰, 시퀀스, 스키마, 도메인 등.…
- [SQL] DML ← 8
- 정의 DML (Data Manipulation Language) 은 데이터 자체를 조회/삽입/수정/삭제 하는 SQL 의 하위 집합. 일상 쿼리의 99% 가 여기에 속한다. | 명…
- [SQL] GROUP BY ← 6
- 정의 는 데이터를 키별로 그룹으로 나누고 각 그룹에 집계 함수 (aggregate) 를 적용해 그룹당 한 행으로 줄이는 연산. SQL 의 split-apply-combine. 와…
- [SQL] JOIN ← 5
- 정의 JOIN 은 두 개 이상의 테이블을 공통 컬럼 (보통 키) 으로 결합해 한 결과셋으로 만드는 연산. SQL 의 관계 모델 핵심. 종류는 5 가지: , , , , . 같은 테…
- MySQL ← 2
- 정의 MySQL 은 1995 년 MySQL AB (스웨덴) 가 만들어 2008 년 Sun → 2010 년 Oracle 로 인수된 오픈소스 RDBMS. GPL + 상용 듀얼 라이선…
- PostgreSQL ← 2
- 정의 PostgreSQL 은 1986 년 UC Berkeley 의 POSTGRES 프로젝트에서 출발해 1996 년 SQL 지원 버전으로 오픈소스화된 객체-관계형 DBMS (ORD…
- Redis
- 정의 Redis (REmote DIctionary Server)는 인메모리 키-값 저장소이다. Salvatore Sanfilippo가 2009년 만들었고, 현재는 Redis Lt…
- SQL ← 8
- 정의 SQL (Structured Query Language) 은 관계형 데이터베이스 (RDBMS) 와 대화하기 위한 선언형 (declarative) 질의 언어. 1970 년 E…
voice (9)
- [Voice AI] Speech-to-Speech: OpenAI Realtime, Gemini Live, Moshi ← 2
- 정의 S2S (Speech-to-Speech) = STT → LLM → TTS 직렬 파이프라인 우회, 오디오 → 오디오 직접 처리. 톤/감정 보존 + < 300ms latency…
- [Voice AI] STT 모델: Whisper, Deepgram, AssemblyAI, CLOVA ← 3
- 정의 STT (Speech-to-Text) / ASR (Automatic Speech Recognition) = 음성 → 텍스트 변환. 2026 시점 전사 정확도 인간 수준, 실…
- [Voice AI] STT 스트리밍: partial vs final, endpointing, gRPC/WS ← 6
- 정의 스트리밍 STT = 오디오 청크 가 들어올 때마다 부분 결과 (partial) 를 즉시 반환 + 발화 종료 시 최종 결과 (final) 확정. [!IMPORTANT] 대화형…
- [Voice AI] TTS 모델: ElevenLabs, Cartesia, Edge TTS, 한국어 ← 4
- 정의 TTS (Text-to-Speech) = 텍스트 → 음성 합성. 2026 시점 사람과 구분 어려운 자연도 + < 200ms first audio + voice cloning…
- [Voice AI] TTS 스트리밍 + SSML: TTFB, sentence aggregation, 청킹 ← 6
- 정의 TTS 스트리밍 = 텍스트 일부만 받아도 즉시 합성 + 오디오 청크 단위 전송. TTFB (Time-to-First-Audio) 최소화 = 대화 자연스러움의 핵심. TTFB…
- [Voice AI] Turn Detection + Barge-in + AEC: 자연스러운 대화 ← 6
- 정의 자연스러운 음성 대화의 3 요소: 1. Turn Detection - 사용자가 말끝났는지 정확히 판단 2. Barge-in - 에이전트가 말하는 중에 사용자가 끼어들 수 있…
- [Voice AI] VAD: Silero, 에너지 기반, endpointing 임계값 ← 6
- 정의 VAD (Voice Activity Detection) = 오디오 스트림에서 음성 vs 비음성 (침묵, 노이즈) 구분. 음성 에이전트의 발화 시작 / 종료 감지에 필수. 종…
- [Voice] Neural TTS 내부: Tacotron, FastSpeech, VITS, HiFi-GAN
- 정의 Neural TTS 의 진화: 2단계 (acoustic + vocoder) → end-to-end. 2026 시점 VITS 계열 + Flow matching 이 상용 표준.…
- [Voice] Whisper 내부: encoder-decoder, log-mel, tokenizer ← 1
- 정의 Whisper = OpenAI 의 encoder-decoder Transformer STT. 680K 시간 다국어 supervised training. 2022 공개, 20…
devops (8)
- [CI/CD] GitHub Actions: workflow, action, runner ← 5
- 정의 GitHub Actions = GitHub 내장 CI/CD. YAML workflow + marketplace action. 2018 출시 → Travis CI 대체. 구조…
- [DevOps] 무중단 배포: Blue-Green, Canary, Rolling, Expand-Contract ← 3
- 정의 무중단 배포 (Zero-Downtime Deployment) 는 서비스 가동을 멈추지 않고 새 버전을 배포하는 일련의 전략. 핵심 도전 4가지: 1. 트래픽 전환: 어떻게 …
- [GitOps] 패턴: 단일 vs 다중 repo, environment promotion ← 2
- GitOps 4가지 원칙 (OpenGitOps) 1. Declarative: 시스템 원하는 상태 가 선언적 (YAML). 2. Versioned and Immutable: Git…
- [GitOps] ArgoCD: Kubernetes GitOps ← 3
- 정의 ArgoCD = Kubernetes 의 GitOps 컨트롤러. Git 리포지토리의 manifest 가 source of truth → cluster 가 자동 동기화. Git…
- [Observability] OpenTelemetry: 표준화된 trace/metric/log ← 7
- 정의 OpenTelemetry (OTel) = observability 의 vendor-neutral 표준. CNCF. trace + metric + log 의 SDK + pro…
- [Observability] Prometheus: pull 기반 메트릭, PromQL ← 9
- 정의 Prometheus = pull 기반 시계열 metric 시스템. PromQL 로 쿼리. CNCF graduated. 2026 클라우드 네이티브 메트릭 표준. 아키텍처 Pu…
- [Observability] SLI / SLO / SLA / Error Budget ← 4
- 정의 | | 의미 | |---|---| | SLI (Indicator) | 측정 값 (예: 5xx 비율) | | SLO (Objective) | 목표 (예: 99.9% 가용성) …
- [Voice AI] P50/P95/P99: latency 분포와 SLO ← 4
- 정의 P50 / P95 / P99 = latency 분포의 분위수. 평균은 outlier 에 가려져 무의미. 음성 에이전트의 사용자 경험 은 p95/p99 가 결정. [!IMPO…
auth-security (7)
- [Auth] CSRF: 위조 요청 공격과 방어 ← 5
- 정의 CSRF (Cross-Site Request Forgery) 는 사용자가 로그인된 상태 에서 공격자가 만든 페이지 가 피해자 브라우저로 위조 요청 을 보내는 공격. 쿠키 기…
- [Auth] JWT: 구조, 서명, 만료, refresh token ← 9
- 정의 JWT (JSON Web Token) (RFC 7519) 은 base64url 인코딩된 JSON + 서명 형태의 self-contained token. 서버가 세션 저장 없…
- [Auth] mTLS (Mutual TLS): 양방향 인증서 인증 ← 3
- 정의 mTLS (Mutual TLS) 는 서버뿐 아니라 클라이언트도 TLS 인증서로 자기 신분 증명. 일반 TLS = 서버 인증만, mTLS = 양방향. 활용: 서비스 메시 (I…
- [Auth] OAuth 2.0 / 2.1: Authorization Code + PKCE ← 9
- 정의 OAuth 2.0 (RFC 6749, 2012) 은 제3자 앱이 사용자 동의로 자원에 접근 하게 하는 권한 위임 프레임워크. 인증 (authentication) 이 아니라 …
- [Auth] OpenID Connect (OIDC): OAuth 위의 인증 레이어 ← 3
- 정의 OpenID Connect (OIDC) 는 OAuth 2.0 위에 얹은 인증 (authentication) 표준. OAuth 가 권한 위임 (authorization), O…
- [Auth] SAML 2.0: XML 기반 기업 SSO ← 2
- 정의 SAML 2.0 (Security Assertion Markup Language) 는 XML 기반 기업 SSO 표준. 2005년 OASIS 표준화. 모바일 친화도 / 단순성…
- [Auth] Session Cookie: HttpOnly, SameSite, Secure flag ← 6
- 정의 Session Cookie 는 서버가 발급한 임의 ID 를 쿠키에 보관. 매 요청 자동 첨부. 서버 측 세션 store (Redis, DB) 와 짝. [!IMPORTANT]…
ai (6)
- [Voice AI] 음성 에이전트 아키텍처: Cascading / Streaming / S2S + Latency Budget ← 16
- 정의 실시간 음성 AI 의 3가지 패턴. 각자 지연 vs 유연성 vs 비용 트레이드오프. 3 패턴 비교 | | Cascading | Streaming | S2S | |---|--…
- [Voice AI] 음성 우선 프롬프트 + Function Calling + Structured Output ← 2
- 음성 우선 프롬프트 설계 음성 답변 = 귀로 듣는다. 텍스트 답변과 완전 다르게 짜야 한다. 음성 프롬프트의 핵심 원칙 | 원칙 | 의미 | |---|---| | 짧게 | 한 답…
- [Voice AI] Agent 패턴: Supervisor, Handoff, ReAct, HITL ← 6
- 정의 복잡한 음성 에이전트 = 여러 sub-agent + 조정 패턴. 단일 LLM 으로 처리하기 어려운 흐름. [!IMPORTANT] 각 sub-agent 내부는 VAD → ST…
- [Voice AI] LLM Serving: vLLM, PagedAttention, continuous batching ← 2
- 정의 LLM Serving = 자체 호스팅 LLM 을 낮은 TTFT + 높은 throughput 으로 제공. 음성 에이전트의 LLM 단계 지연 결정. | 도구 | 특징 | |--…
- [Voice AI] Pipecat vs LiveKit Agents: 프레임워크 비교 ← 4
- 정의 2026 시점 voice agent 프레임워크 4가지 선택지: | | Pipecat | LiveKit Agents | Vapi / Retell | 자체 구축 | |---|-…
- [Voice AI] Voice RAG: 지연 병목 + 예측적 프리페치 ← 1
- 정의 Voice RAG = 음성 에이전트에 RAG (Retrieval-Augmented Generation) 결합. 벡터 DB 조회 가 지연 누적 의 큰 원인이 되므로 예측적 프…
ml (6)
- 모델 양자화 ← 3
- 정의 양자화 (Quantization) 는 신경망 모델의 가중치/활성화를 높은 정밀도 (FP32, FP16) 에서 낮은 정밀도 (INT8, INT4 등) 로 변환하여 메모리와 연…
- 분산 학습 ← 2
- 정의 분산 학습 (Distributed Training) 은 한 또는 에 들어가지 않는 큰 모델을 여러 가속기에 나눠서 학습시키는 기법. 현대 LLM (Llama 405B, GP…
- HBM ← 2
- 정의 HBM (High Bandwidth Memory)는 DRAM die 를 수직으로 적층해 매우 높은 대역폭을 제공하는 메모리 패키지. AI 시대 GPU/TPU 의 메모리 병목…
- SIMT ← 2
- 정의 SIMT (Single Instruction, Multiple Threads) 는 NVIDIA 가 정립한 GPU 의 실행 모델이다. 한 명령(instruction) 을 한 …
- SPMD ← 2
- 정의 SPMD (Single Program, Multiple Data)는 병렬 컴퓨팅의 대표 모델 중 하나. 모든 프로세스(또는 thread)가 같은 프로그램을 실행하되, 각자 …
- Systolic Array ← 2
- 정의 Systolic Array 는 격자 형태로 배치된 다수의 Processing Element (PE) 가, 입력 데이터가 박동(systolic)처럼 격자를 가로질러 흐르는 동…
api-design (5)
- [API Design] API Versioning: URL / Header / Date 비교 ← 2
- 정의 API Versioning 은 breaking change 를 클라이언트에 강요 없이 호환성을 유지하는 전략. 잘못 잡으면 모든 클라이언트 동시 마이그레이션 강요. 무엇이 …
- [API Design] GraphQL: 단일 endpoint, N+1, persisted queries ← 5
- 정의 GraphQL (Facebook, 2015) 은 클라이언트가 필요한 필드만 명시 하는 query language + 런타임. 단일 endpoint, typed schema,…
- [API Design] JSON-RPC vs gRPC vs REST: RPC 패턴 비교
- 정의 RPC (Remote Procedure Call) = 원격 함수 호출 추상화. 세 가지 주요 형태: 1. JSON-RPC: JSON 위 RPC. 가벼움. 2. gRPC: P…
- [API Design] OpenAPI / Swagger: 스펙, 코드 생성, contract testing
- 정의 OpenAPI Specification (OAS) 은 REST API 를 기술하는 YAML/JSON 형식. 옛 이름 Swagger. 2017 부터 OpenAPI Initia…
- [API Design] REST API: 원칙, 자원 모델링, HATEOAS, 버전 관리
- 정의 REST (Representational State Transfer) 는 Roy Fielding 의 2000년 박사논문에서 정립된 분산 시스템 아키텍처 스타일. HTTP 의…
일치하는 용어가 없습니다. 다른 검색어를 시도해보세요.