Spring Microservice/Microservices Patterns(9)
-
SAGA patterns
📌 SAGA 패턴이란?SAGA 패턴은 마이크로서비스 아키텍처에서 분산된 트랜잭션을 관리하는 패턴입니다.단일 데이터베이스 트랜잭션을 사용하기 어려운 마이크로서비스 환경에서, 데이터 일관성을 유지하기 위한 방법으로 활용됩니다.🔹 1. 왜 SAGA 패턴이 필요한가?마이크로서비스 환경에서는 각 서비스가 개별 데이터베이스를 관리하는 경우가 많습니다.이때, 하나의 비즈니스 로직이 여러 마이크로서비스에 걸쳐 수행되는 경우가 발생할 수 있습니다.✅ 전통적인 데이터베이스 트랜잭션(ACID) 문제단일 모놀리식 시스템에서는 ACID(Atomicity, Consistency, Isolation, Durability) 트랜잭션을 활용하여 데이터 일관성을 유지할 수 있음.하지만 마이크로서비스 환경에서는 서로 다른 DB에 걸친..
2025.02.28 -
Microservice build/deployment patterns
📌 마이크로서비스 빌드/배포 패턴(Microservice Build/Deployment Patterns)마이크로서비스 아키텍처에서는 각 인스턴스가 동일해야 하며, 배포 후 서버 구성(Configuration)이 변하지 않아야 합니다.📌 아래 그림에서는 이러한 원칙을 실현하기 위한 빌드 및 배포 패턴을 설명합니다.🔹 1. 빌드 및 배포 파이프라인(Build and Deployment Pipelines)일관된 빌드 및 배포 프로세스를 구축하여, 원클릭 배포(One-Button Deployment) 가능하도록 설계.지속적 통합/배포(CI/CD) 파이프라인을 활용하여 코드가 변경될 때마다 자동으로 테스트 및 배포 진행.Jenkins, GitHub Actions, GitLab CI/CD, ArgoCD 등을 ..
2025.02.28 -
Application metrics pattern
📌 애플리케이션 메트릭 패턴(Application Metrics Pattern)마이크로서비스 환경에서는 애플리케이션의 상태를 모니터링하고 성능 문제를 사전에 감지하는 것이 중요합니다.📌 아래 그림에서는 마이크로서비스의 메트릭을 수집하고 시각화하는 애플리케이션 메트릭 패턴을 설명합니다.🔹 1. 애플리케이션 메트릭(Metrics)애플리케이션 상태 및 성능을 측정하는 다양한 지표를 생성하고 노출하는 과정.예제:CPU 사용량, 메모리 사용량, 응답 속도, 에러율, 요청 수량 등.Spring Boot Actuator를 활용하면 기본적인 메트릭을 쉽게 노출할 수 있음.✅ 장점✔ 서비스 장애 및 성능 문제를 조기에 감지 가능✔ 실시간 데이터 분석을 통해 최적화 가능🔹 2. 메트릭 서비스(Metrics Serv..
2025.02.28 -
Microservice logging and tracing patterns
📌 마이크로서비스 로깅 및 트레이싱 패턴(Microservice Logging and Tracing Patterns)마이크로서비스 아키텍처에서는 단일 요청이 여러 개의 서비스 호출을 유발하기 때문에, 디버깅, 추적(Tracing), 모니터링이 어렵다는 단점이 있습니다.📌 아래 그림에서는 이러한 문제를 해결하기 위한 3가지 핵심 로깅 및 트레이싱 패턴을 설명합니다.🔹 1. 로그 상관관계(Log Correlation)마이크로서비스 환경에서는 각 서비스가 개별적인 로그를 남기기 때문에, 하나의 요청이 여러 서비스에서 어떻게 처리되었는지 추적하기 어려움.Correlation ID(상관관계 ID)를 활용하면 각 서비스에서 생성된 로그를 하나의 트랜잭션 흐름으로 묶을 수 있음.Spring Cloud Sleut..
2025.02.28 -
Microservice security patterns
📌 마이크로서비스 보안 패턴(Microservice Security Patterns)마이크로서비스는 공개된 상태로 운영될 경우 보안 위협에 노출될 가능성이 크므로, 인증(Authentication)과 인가(Authorization)를 적절히 적용해야 합니다.📌 아래 그림에서는 마이크로서비스 보안을 강화하기 위한 3가지 핵심 패턴을 설명합니다.🔹 1. 인증(Authentication)사용자가 요청을 보낼 때, 해당 사용자가 신뢰할 수 있는 사용자임을 확인하는 과정.사용자는 인증 서비스(Authentication Service)를 통해 로그인하고 액세스 토큰(Access Token)을 발급받아야 함.마이크로서비스는 API Gateway를 통해 들어오는 요청이 유효한지 확인해야 함.✅ 대표적인 인증 방식..
2025.02.28 -
Microservice client resiliency
📌 마이크로서비스 클라이언트 회복 탄력성 패턴(Microservice Client Resiliency Patterns)마이크로서비스 아키텍처는 분산된 환경에서 운영되므로, 특정 서비스가 장애를 일으켰을 때 전체 시스템에 영향을 주지 않도록 설계해야 합니다.이를 위해 클라이언트 측에서 장애를 감지하고 대응하는 회복 탄력성(Resiliency) 패턴을 적용할 수 있습니다.📌 아래 그림에서는 다음 4가지 클라이언트 회복 탄력성 패턴을 소개합니다.🔹 1. 클라이언트 측 부하 분산(Client-Side Load Balancing)마이크로서비스는 다수의 인스턴스를 실행하여 확장성과 가용성을 높일 수 있음.클라이언트는 서비스 디스커버리에서 가져온 엔드포인트 정보를 캐싱하고, 요청을 여러 인스턴스에 균등하게 분산..
2025.02.28