user

user

EKS – Kubernetes Secret과 Spring Deployment

Kubernetes Secret 관리 Secret은 민감한 정보 (데이터베이스 암호, API 키 등)를 코드와 분리하여 Kubernetes 자원으로 안전하게 저장하는 메커니즘이다 저장 → 주입 흐름 Secret 생성 실제 예시 Secret 조회 출력 예시 참고: Secret의 데이터는 Base64로 인코딩 되어 있다(암호화가 아니다). Base64 디코더로…

EKS – Spring 프로젝트 ECR 업로드

Spring 프로파일 설정 이해 프로파일 구조 Spring 프로젝트에는 환경별로 다른 설정을 사용하기 위한 프로파일 시스템이 있다 프로파일 활성화 메커니즘 application.yml 이 설정을 prod로 변경하면 application-local.yml application-prod.yml 핵심: application.yml의 default 값과 각 프로파일 파일의 on-profile 값이 일치하면 해당 파일이 적용된다 Kubernetes…

EKS – Spring 배포를 위한 인프라 구성

배포 절차 개요 전체 배포 단계 사전 준비 상태 확인 다음 자원들이 이미 구성되어 있다고 가정한다 만약 클러스터가 완전히 새로운 상태라면, Route53 호스팅 영역 생성과 Ingress Controller 설치를 먼저 진행해야 한다 Amazon RDS 생성 및 설정 RDS 생성 AWS Console…

트리와 이진트리

트리(Tree) 개념 트리는 비선형 자료구조로, 계층적 관계를 표현하는데 최적화된 구조이다. 마치 나무가 뿌리에서 시작해 가지를 뻗어나가는 모습과 유사하여 ‘트리’라는 이름이 붙었다. 실생활에서는 회사의 조직도, 운영체제의 파일 시스템 등에서 트리 구조를 쉽게 찾아볼 수 있다 트리의 기본 용어 트리의 레벨과 높이…

EKS – Spring 백엔드 서버 배포 아키텍처

Spring 백엔드 서버 배포는 두 단계로 진행한다 MSA와 Kubernetes를 같이 사용하는 이유 MSA 아키텍처는 Kubernetes와 궁합이 매우 잘 맞는다 따라서 MSA 아키텍처를 사용하는 기업에서는 Kubernetes(특히 EKS)로 배포 환경을 구성하는 경우가 많다. MSA 서버 배포까지 경험해야 Kubernetes 배포를 제대로 이해했다고 할…

EKS – Kubernetes Ingress

Ingress가 필요한 이유 Pod 접근의 한계 Kubernetes 클러스터가 구성되어 있다고 가정해보자. 컨트롤 플레인이 하나 있고, 워커 노드가 2대 실행되고 있다. 각 워커 노드에 Pod가 하나씩 배포되어 있는 상황이다 사용자가 Pod 안에서 실행 중인 애플리케이션의 데이터를 받으러면 어떻게 해야 할까? Pod로…

P-NP 문제

알고리즘의 성능을 평가할 때 우리는 Big-O 표기법을 사용한다. 어떤 문제를 해결하는 방법, 즉 알고리즘은 여러 가지가 있을 수 있으며, 이 알고리즘의 성능을 비교하고 평가할 때 Big-O 표기법이 쓰인다. 반면 P-NP 문제는 조금 다른 관점에서 문제를 바라본다. 어떤 문제가 주어졌을 때…

Kafka를 활용한 MSA 이벤트 기반 아키텍처 구축

Kafka를 활용하여 마이크로서비스 아키텍처(MSA) 기반의 회원 가입 및 이메일 발송 시스템을 구축하는 방법을 알아보자. Kafka의 메시지 브로커 역할을 통해 서비스 간 비동기 통신을 구현하며, 이벤트 기반 아키텍처의 핵심 개념을 실습한다 프로젝트 목표 시스템 아키텍처 전체 구조 서비스 구성 서비스 역할…

Kafka 고가용성 (High Availability) 구축

Apache Kafka(이하 Kafka)의 고가용성(High Availability)이란 시스템이 장애 상황에서도 중단 없이 정상적으로 서비스를 제공할 수 있는 능력을 의미한다 핵심 개념 이해 Kafka의 고가용성을 이해하기 위해서는 다음 다섯 가지 핵심 개념을 먼저 숙지해야 한다 노드 (Node) 노드란 Kafka가 설치되어 있는 실행되는 서버…

Kafka 파티션 이해

우리는 흔히 MSA(Microservices Architecture) 환경에서 비동기 메시징 처리를 위해 Kafka를 사용한다. 특히 이메일 발송과 같이 시간이 오래 걸리는 작업을 비동기로 처리할 때 Kafka는 매우 유용하다. 이를 활용하여 Spring Boot 기반의 컨슈머 애플리케이션에서 메시지 처리 성능을 극대화하는 방법에 대해 알아보자. 비효율적인…