전체 글
-
Amazon EKS Auto ModeKubernetes 2025. 4. 1. 22:42
AWS EKS(EKS: Elastic Kubernetes Service)에서 Auto Mode는 2023년 11월에 새롭게 출시된 EKS Pod 기반의 서버리스 실행 환경입니다. 공식 명칭은 EKS Pod Identity + EKS Fargate Auto Mode입니다. 이 모드는 Kubernetes 클러스터 운영을 더욱 단순화하고 자동화하기 위해 고안되었습니다. EKS Auto Mode란?EKS Auto Mode는 컨트롤 플레인과 워커 노드를 직접 관리하지 않고도 Kubernetes 클러스터를 실행할 수 있도록 해주는 완전 관리형 서버리스 실행 방식입니다. 전통적인 EKS(Managed Node Group, Self-managed Node Group, Fargate 등)보다 설정이 간단하고 운영이 편리..
-
Graph 문제 풀이시 인접 행렬(Adjacency Matrix) 과 인접 리스트(Adjacency List) 사용 장단점Coding Interview 2025. 3. 29. 21:08
1. 인접 행렬 (Adjacency Matrix)정의:정점의 수가 V일 때, V×V 크기의 2차원 배열을 사용하여 간선의 존재 유무 또는 가중치를 표시합니다.장점간선 존재 여부 확인이 빠름: O(1) 시간 복잡도로 graph[u][v]를 통해 즉시 확인 가능.구현이 간단하고 직관적: 특히 가중치가 있는 그래프에서 직관적으로 표현 가능.무방향 그래프에서는 대칭 행렬로 표현할 수 있어 깔끔함.단점공간 복잡도가 높음: 간선 수가 적은 희소 그래프(sparse graph)에서는 메모리 낭비가 큼. 공간 복잡도는 O(V^2).모든 인접 노드를 탐색할 때 비효율적: 연결 여부가 0이더라도 모든 노드를 순회해야 해서 O(V) 시간 소요.활용 사례정점 수가 작고 간선 수가 많은 조밀한 그래프(Dense Graph).간..
-
NLB의 Proxy ProtocolDevOps 2025. 3. 27. 22:41
NLB(Network Load Balancer)에서 Proxy Protocol은 클라이언트의 원래 IP 주소와 포트 정보를 백엔드 서버에 전달하기 위한 기능입니다. 기본적으로 NLB는 트래픽을 전달하면서 클라이언트의 IP 정보를 숨기기 때문에, 백엔드 서버에서는 요청이 어디서 왔는지 알 수 없어요. 이때 Proxy Protocol을 사용하면, 클라이언트의 원래 IP 주소를 포함한 메타 정보를 NLB가 백엔드에 넘겨줄 수 있습니다. 왜 필요한가요?보안 로깅: 누가 접속했는지 백엔드 서버에서 로깅하려면 원래 IP가 필요함.IP 기반 액세스 제어: 방화벽이나 애플리케이션에서 클라이언트 IP로 접근 제어하려면 반드시 원래 IP가 필요함.세션 추적/분석: 분석 도구나 세션 관리에서 클라이언트 IP가 필요할 수 ..
-
robots.txt 개념DevOps 2025. 3. 26. 21:23
robots.txt는 웹사이트의 루트 디렉토리에 위치하는 텍스트 파일로, 검색 엔진 크롤러(로봇)에게 웹사이트의 어떤 부분을 크롤링(수집)해도 되는지, 또는 하면 안 되는지 알려주는 역할을 합니다. robots.txt란?위치: 반드시 https://example.com/robots.txt에 있어야 함목적: 검색 엔진 크롤러(예: Googlebot, Bingbot 등)의 접근 제어표준: Robots Exclusion Protocol The Web Robots PagesThe Web Robots Pages Web Robots (also known as Web Wanderers, Crawlers, or Spiders), are programs that traverse the Web automatically. ..
-
Operator의 spec과 status 필드 역할Kubernetes 2025. 3. 26. 20:40
spec은 사용자가 의도한 목표 상태이고, status는 현재 실제 시스템의 상태입니다.Operator는 이 둘을 비교해 Reconciliation을 수행하고, 이를 통해 시스템이 항상 원하는 상태를 유지하도록 합니다. 정리: spec과 status의 용도필드용도작성 주체spec사용자가 원하는 목표 상태 (Desired State)를 정의사용자 / Controller 외부 입력status실제 시스템의 현재 상태 (Observed State)를 반영Operator / Controller (자동 갱신)자세한 설명spec – "사용자가 원하는 상태"사용자가 어떻게 동작하길 원하는지를 정의합니다.예를 들어, 파드 개수, 이미지 버전, 리소스 제한, 설정 값 등이 여기에 들어갑니다.Controller는 이 spe..
-
Operator에서 idempotency(멱등성)를 보장하는 방법Kubernetes 2025. 3. 26. 20:36
“Operator는 Kubernetes의 Reconciliation Loop 기반으로 동작하기 때문에, 같은 이벤트가 반복적으로 들어오더라도 결과가 동일해야 하는 멱등성(idempotency) 이 매우 중요합니다.이를 보장하기 위해 저는 다음과 같은 전략을 사용합니다:현재 상태와 Desired 상태를 비교한 후 필요한 작업만 수행합니다. 예를 들어, 리소스를 항상 다시 생성하는 것이 아니라, 이미 존재하고 원하는 상태와 같다면 아무 작업도 하지 않습니다.Status 필드를 적극 활용합니다. 작업이 완료된 경우 해당 상태를 기록하고, 이후 동일한 작업이 재요청되더라도 다시 실행하지 않도록 합니다.생성 시에는 항상 CreateOrUpdate 패턴을 사용하고, 삭제나 업데이트 시에도 리소스가 실제 존재하고 변..
-
실시간 채팅 서비스를 설계Interview 2025. 3. 26. 20:18
시스템 설계 면접에서 자주 나오는 고급 질문으로 면접관은 이 질문을 통해서 다음을 보고 싶어 합니다.실시간성에 대한 이해메시징 시스템 설계 경험대규모 트래픽 처리 능력장애 처리 및 확장성 고려사용자/채팅방/메시지 데이터 모델링 능력질문: 실시간 채팅 서비스를 설계해보세요1. 요구사항 정리 (Clarifying Questions)기능적 요구사항1:1 채팅, 그룹 채팅메시지 전송, 수신메시지 읽음 여부 표시메시지 히스토리 저장/조회온라인 상태 표시비기능적 요구사항실시간 메시징 (Low Latency)확장성 (수백만 유저)장애 복구, 내결함성보안 (인증/암호화)“혹시 메시지는 1주일 동안만 저장되면 될까요, 아니면 영구 저장인가요?”“서비스 지역이 글로벌인가요? 한국 중심인가요?” 2. 아키텍처 개요[Clie..
-
CRD를 생성하면 벌어지는 일들Kubernetes 2025. 3. 25. 10:19
kubectl로 CRD(CustomResourceDefinition)를 생성하면 Kubernetes API 서버에 새로운 “Custom API”가 등록됩니다.즉, kubectl create -f mycrd.yaml 같은 명령어로 CRD를 적용하면, Kubernetes는 해당 리소스를 공식 리소스처럼 인식하게 돼요. CRD를 생성하면 무슨 일이 벌어질까? 1. apiextensions.k8s.io/v1의 CRD 오브젝트가 etcd에 저장됨 2. Kubernetes API 서버가 동적으로 해당 CRD를 감지 3. 지정된 group, version, kind에 따라 새로운 RESTful API endpoint가 자동으로 생성됨 • 예: myresources.mygroup.example.com/v1 4. kub..