Category Spring

spring framework에 대한 내용입니다.

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 백엔드 서버 배포 아키텍처

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

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

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

Kafka 고가용성 (High Availability) 구축

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

Kafka 파티션 이해

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

Kafka 재시도 및 DLT

Spring Boot와 Kafka를 연동할 때 필수적으로 고려해야 할 메시지 처리 실패 시 재시도(Retry) 전략과 데드 레터 토픽(Dead Letter Topic, DLT) 활용 방안에 대해 심층적으로 알아보자. 이는 비동기 메시지 처리 시스템의 견고성과 안정성을 확보하는 데 매우 중요하다 메시지 처리 실패 상황…

Spring Boot와 Kafka 연동

Spring Boot 애플리케이션에서 Kafka를 사용하려면 의존성을 추가하고 설정 파일을 구성해야 한다 Spring Boot로 Kafka에 메시지 넣기 (Producer) application.yaml 설정 Kafka 서버 연결 및 Producer/Consumer의 직렬화/역직렬화 방식을 설정한다 application.yaml (Producer) 주의사항 Kafka 서버를 백그라운드로 실행하고 email.send 토픽을 미리 생성해 두어야 한다…

내장 톰캣 – 빌드와 배포

내장 톰캣(Embedded Tomcat)은 애플리케이션에 톰캣 서버를 라이브러리 형태로 포함하여 빌드하고 배포하는 방식이다. 이를 통해 애플리케이션 단독으로 실행 가능한 패키지를 만들 수 있다 Jar 파일 빌드의 기본 원칙 이 buildJar 태스크를 실행하면 build/libs 디렉토리에 embed-0.0.1-SNAPSHOT.jar와 같은 형태로 JAR 파일이 생성된다 jar…

내장 톰켓(Embedded Tomcat)을 활용한 웹 애플리케이션 구동

내장 톰캣을 라이브러리 형태로 애플리케이션에 포함하여, main() 메서드 실행만으로 웹 서버를 직접 구동할 수 있게 해주는 기능이다. 이를 통해 개발자는 별도의 WAS 설치나 복잡한 설정 없이 순수 자바 코드로 서블릿 및 스프링 MVC 애플리케이션을 편리하게 실행할 수 있다. 스프링 부트가…