전체 글
-
[Kubernetes] Validating Admission Webhook 알아보기Kubernetes 2025. 2. 17. 20:35
들어가며Kubernetes에서 리소스 생성이나 변경 요청은 API Server를 통해 처리됩니다. 예를 들어 사용자가 kubectl create, kubectl apply, kubectl replace 와 같은 명령을 실행하면, 해당 요청은 모두 API Server로 전달됩니다. 이 과정에서 기본적인 스키마 검증이나 권한 검사는 자동으로 수행되지만, 도메인 규칙까지 보장해 주지는 않습니다.예를 들어 다음과 같은 요구사항은 Kubernetes 기본 기능만으로는 표현하기 어렵습니다.특정 필드 조합이 함께 존재하면 안 되는 경우리소스 간 관계를 고려한 제약 조건운영 정책에 따른 생성·수정 제한이러한 문제를 해결하기 위해 Kubernetes는 Admission Webhook이라는 확장 지점을 제공하며, 그중 하..
-
[Kubernetes] Operator Pattern 과 Lease 알아보기Kubernetes 2025. 2. 17. 06:52
들어가며Kubernetes의 Lease는 Operator Pattern에서 여러 Controller 중 하나의 Active Controller를 선출하기 위해 사용되는 리소스입니다.Operator나 Controller는 보통 고가용성을 위해 여러 replica로 실행되지만, 실제로 중요한 판단과 상태 변경은 단 하나의 Controller만 수행해야 합니다. 이때 어떤 Controller가 그 역할을 맡을지를 결정하는 장치가 바로 Lease입니다.이번 글에서는 Operator Pattern 에서 K8s Lease 가 왜 필요해졌는지, 그리고 Kubernetes 에서 Lease가 어떻게 Active Controller를 보장하는지에 대해서 알아보도록 하겠습니다.Operator Pattern 이란 ?Opera..
-
[대규모 데이터 모델링] Dimensional Modeling (Fact & Dimension)Data Warehouse 2025. 2. 13. 18:38
들어가며데이터를 다루는 일을 하다 보면, 결국 어떻게 저장하고 어떻게 바라볼 것인가라는 질문으로 귀결됩니다. 특히 분석과 리포팅을 목적으로 하는 시스템에서는 단순히 데이터를 쌓는 것보다, 사람이 이해하기 쉬운 구조로 모델링하는 것이 훨씬 중요해집니다.이번 글에서는 데이터 모델링 기법 중에서도 분석 시스템에서 가장 널리 사용되는 Dimensional Modeling에 대해 정리해보려고 합니다. 데이터 웨어하우스나 데이터 마트 설계 과정에서 한 번쯤은 반드시 만나게 되는 개념이기 때문에, 전체적인 흐름을 차분히 짚어보겠습니다. Dimensional Modeling이란 무엇인가요?Dimensional Modeling은 분석과 조회를 최우선 목표로 하는 데이터 모델링 기법입니다. 트랜잭션 처리(OLTP)를 위한..
-
[Kubernetes] kube-scheduler 에 대해 알아보기Kubernetes 2025. 2. 13. 07:26
들어가며kubectl create 또는 kubectl apply를 통해 생성된 Pod 리소스는 Kubernetes API Server를 거쳐 etcd에 저장됩니다. 이 시점에서 Pod는 아직 어떤 Node에도 할당되지 않은 상태이며, 스케줄링을 기다리는 단계에 놓이게 됩니다.kube-scheduler는 API Server를 통해 etcd에 저장된 리소스 상태를 watch하고 있으며, 이 중 아직 Node가 지정되지 않은 Pod를 감지하면 스케줄링 대상 Pod로 인식합니다. 이후 kube-scheduler는 클러스터의 현재 상태와 다양한 제약 조건을 기반으로 해당 Pod를 실행할 Node를 결정하고, 그 결과를 다시 API Server에 반영합니다.kube-scheduler는 Pod의 Node를 지정한 이..
-
Kubernetes Metrics Server 알아보기Kubernetes 2025. 2. 11. 06:42
들어가며Metrics Server는 쿠버네티스 클러스터 내에서 Node, Pod, Container의 리소스 사용량 메트릭을 제공하는 API 서버입니다. CPU와 메모리 사용량과 같은 기본적인 리소스 메트릭을 수집하여, Kubernetes API를 통해 조회할 수 있도록 제공합니다.쿠버네티스 클러스터의 각 Node에는 kubelet이라는 구성 요소가 존재하며, Metrics Server는 이 kubelet으로부터 노드에 실행 중인 Container의 리소스 사용 정보를 주기적으로 수집합니다. 이렇게 수집된 메트릭은 가공 과정을 거쳐 API 형태로 제공되며, 클러스터 내부 컴포넌트나 사용자가 조회할 수 있도록 합니다.특히 Kubernetes의 HPA(Horizontal Pod Autoscaler) Cont..
-
[Flink] SplitFetcher 알아보기Flink 2025. 2. 4. 05:58
- 목차 들어가며.이번 글에서는 Flink Source Level 에서 사용되는 SplitFetcher 에 대해서 알아봅니다.SplitFetcher 는 Split 을 생성하는 SplitEnumerator 와 Split 을 실행하는 SplitReader 사이를 간접적으로 연결하는 역할을 수행합니다. SplitEnumerator 는 JobManager 에 위치하고, SplitReader 는 TaskManager 에 존재하여 이 둘이 Split 을 공유하는 과정은 다소 복잡합니다. SplitEnumerator 가 Split 들을 생성하게 되고, RPC 기반의 통신을 수행하여 JobManager 에서 TaskManager 로 Split 들이 전달됩니다. Split 을 전달받은 TaskManager 는 Sourc..
-
[Flink] KafkaSource 의 KafkaPartitionSplit 알아보기Flink 2025. 2. 4. 05:23
- 목차 들어가며.이번 글에서는 Flink 의 KafkaSource Connector 내부에서 어떠한 방식으로 KafkaPartitionSplit 이 생성되고 소비되는지 자세한 동작과 라이프사이클을 알아봅니다. KafkaPartitionSplit(org.apache.flink.connector.kafka.source.split.KafkaPartitionSplit)KafkaPartitionSplit 은 Flink KafkaSource 에서 사용되는 SourceSplit 입니다. SourceSplit 은 Flink 에서 데이터 조회를 위해서 쓰이는 하나의 단위입니다. Flink 의 병렬 처리를 위해서 각각의 읽어들일 데이터들을 하나의 단위 또는 묶음으로써 표현할 수 있어야하며,KafkaPartitionSp..
-
[Ai-ML] Transformer Multi-Head Attention 알아보기AI-ML 2025. 2. 2. 08:34
- 목차 Multi-head Attention 이란 ? Multi-Head Attention 은 Transformer 의 핵심 구성 요소 중의 하나입니다. Self-Attention 만으로도 시퀀스 내에서 각 Time Step 이 다른 Time Step 사이에 어떠한 영향력이 있는지 계산할 수 있지만, 단일 Self-Attention 은 하나의 고정된 시각에서만 학습을 수행하게 됩니다. 이는 다양한 패턴을 포착하는데에 한계가 있습니다. 그래서 여러 개의 서로 다른 Attention Head 를 구성해서 병렬적으로 사용하는 구조입니다. 각 Attention Head 는 서로 다른 Query, Key, Value 를 생성합니다. 이는 각 Attention head 가 시퀀스 내에서 서로 다른 관점으로 At..
-
[Ai-ML] Attention Query 와 Key Vector 알아보기AI-ML 2025. 2. 1. 09:22
- 목차 들어가며.Attention 은 Input Data 를 3개의 서로 다른 공간으로 투영시키는 과정이 수행됩니다. 기하학적으로 바라본다면 Input Dimension 에서 Query Dim, Key Dim, Value Dim 에 해당하는 다른 공간으로 Projection 되게 됩니다. 이러한 행위를 압축이라고 볼 수도 있을 것 같습니다. 아무튼 Query, Key, Value 라는 이름붙인 새로운 형태로 Input Data 는 새로운 Vector 로 변환되게 됩니다. 이렇게 변환된 Query 와 Key Vector 는 서로 간의 유사도를 계산하는데 사용됩니다. Self-Attention 에서는 각 Query Vector 가 모든 Sequence 의 Key Vector 들과 얼마나 유사한지를 측정하..
-
[Ai-ML] Attention Weight 와 Value vector 알아보기AI-ML 2025. 1. 28. 16:50
- 목차 들어가며.https://westlife0615.tistory.com/1165 [Ai-ML] Transformer 와 Positional Encoding 알아보기- 목차 Positional Encoding 이란 ? Attention 에서 Input Data 는 Query, Key, Value 에 해당하는 3가지 형태로 Projection 됩니다. 일반적으로 Input Data 는 Sequence x Input Size 로 구성된 데이터이며, 이는 Sequence x Attn_Sizewestlife0615.tistory.com https://westlife0615.tistory.com/1168 [Ai-ML] Attention Query 와 Key Vector 알아보기- 목차 들어가며.Attentio..