Go + gRPC-Gateway(V2) 마이크로서비스实战,小程序 로그인 인증 서비스(5): 인증 gRPC-Interceptor 구현

인터셉터(gRPC-Interceptor) 소개 gRPC-Interceptor는 Gin 미들웨어(Middleware)와 유사한 개념입니다. 이를 통해 실제 RPC 서비스 호출 전에 인증, 파라미터 검증, Rate Limiting 등의 공통 작업을 수행할 수 있습니다. UnaryInterceptor 이해하기 gRPC 소스 코드를 분석해보면 다음과 같은 정의를 확인할 수 있습니다: // UnaryInterceptor는 gRPC 서버에 UnaryServe ...

7월 22일 06:57에 게시됨

Go 언어 Circuit Breaker 구현 가이드

서론 Circuit Breaker는 일종의 안전장치로 작동합니다. 의존하는 외부 서비스에서 문제가 발생했을 때 적시에 오류를 처리할 수 있습니다. 이를 통해 두 가지 주요 효과를 얻을 수 있습니다: 상위 서비스가 자사 서비스에 대한 접근 의존도를 줄여 캐스케이드 실패 방지 요청 빈도를 낮춰 상위 서비스의 복구 시간 단축 이 패턴은 매우 광범위하게 활용됩니다. 일반 ...

7월 21일 06:20에 게시됨

Nest.js 애플리케이션에 Dapr 통합하기

Dapr(Distributed Application Runtime)는 분산 환경에서 탄력적이고 확장 가능한 마이크로서비스를 구축할 수 있도록 돕는 이벤트 기반 런타임입니다. Nest.js 프레임워크와 Dapr JS SDK를 결합하면 서비스 간 통신, 상태 관리, 바인딩 등 Dapr의 강력한 기능들을 Nest.js의 의존성 주입(DI) 시스템 내에서 효과적으로 활용할 수 있습니다. 프로젝트 구조 설계 ...

7월 19일 04:06에 게시됨

NanoFabric와 Consul을 활용한 마이크로서비스 서비스 注册 및 발견 구현

NanoFabric과 Consul 연동으로実現する 마이크로서비스 아키텍처 NanoFabric 프레임워크 개요 NanoFabric은 .NET Core 기반의 마이크로서비스 개발 프레임워크로, Consul, Polly, Ocelot 등 다양한 오픈소스를 통합하여 제공합니다. 이 프레임워크는 서비스 등록 및 발견, 로드 밸런싱, 서킷 브레이커, API 게이트웨이 등의 핵심 기능을 포함하고 있어 개발자가 비즈니스 ...

7월 16일 04:59에 게시됨

Spring Kafka 통합 시 Brave Instrumentation 제거 후 발생하는 오류 해결 방법

문제 상황 마이크로서비스 프로젝트에서 spring-kafka를 추가하고 brave-instrumentation-kafka-clients를 제거한 후 애플리케이션 시작 시 다음과 같은 오류가 발생했습니다: Error processing condition on org.springframework.cloud.sleuth.instrument.messaging.TraceMessagingAutoConfiguration$SleuthKafkaConfiguration.kafkaTracing at org.springframework.b ...

7월 13일 03:00에 게시됨

스프링 부트: 핵심 개념부터 실전 활용까지

스프링 부트는 자바 기반의 현대적인 애플리케이션 개발을 위한 강력한 프레임워크입니다. 기존 스프링 프레임워크의 복잡성을 줄이고, 빠르고 손쉬운 개발 경험을 제공하는 데 중점을 둡니다. '설정보다 관례' 원칙과 풍부한 자동 구성을 통해, 개발자가 비즈니스 로직에 집중할 수 있도록 돕습니다. 특히 마이크로서비스 아키텍처 구축에 필수적인 기술로 자리매김했습니 ...

7월 7일 03:47에 게시됨

Spring Kafka를 활용한 동적 토픽 관리 및 격리된 컨슈머 컨테이너 구현

배경 및 요구사항 마이크로서비스 환경에서 각 비즈니스 모듈은 독립적인 Kafka 토픽을 소비해야 하는 경우가 많습니다. 모듈이 동적으로 추가되거나 모니터링 대상 토픽이 실시간으로 변경될 수 있으므로, 정적인 @KafkaListener 어노테이션만으로는 유연한 대응과 모듈 간 소비 격리를 달성하기 어렵습니다. 특히 토픽 패턴 매칭만으로는 명확한 모듈별 분리 소비가 불가 ...

7월 2일 04:03에 게시됨

마이크로서비스 RabbitMQ 분석: 배포부터 사용까지 전체 가이드

목차 RabbitMQ란? MQ의 개념 RabbitMQ 주요 기능과 사용 이유 Docker를 활용한 설치 핵심 구성 요소 SpringBoot 통합 구현 1. RabbitMQ란? 1.1 MQ의 정의 MQ(Message Queue)는 메시지 전송 과정에서 메시지를 보관하는 컨테이너입니다. 메시지 큐는 비동기 통신을 가능하게 하여 시스템 간 결합도를 낮추고 처리 효율성을 향상시킵니다. 1.2 RabbitMQ 특징 RabbitMQ는 ...

7월 1일 18:22에 게시됨

Docker Compose 기초 가이드

Docker를 사용할 때 Dockerfile을 정의하고 docker build, docker run 등의 명령어로 컨테이너를 관리합니다. 그러나 마이크로서비스 아키텍처에서는 여러 서비스가 각각 여러 인스턴스로 배포되므로 수동으로 시작/중지하는 것은 비효율적입니다. Docker Compose는 멀티 컨테이너 애플리케이션을 쉽게 관리하는 도구로, 서비스 정의와 실행을 위한 YAML 파일을 통해 자동 ...

6월 29일 23:05에 게시됨

스프링 클라우드 게이트웨이 내장 필터의 다양한 활용 패턴

1. FallbackHeaders 를 활용한 에러 컨텍스트 전달 Circuit Breaker 기능으로 인해 특정 서비스 요청이 실패하여 폴백 (Fallback) 로직이 수행될 때, 해당 오류에 대한 상세 정보를 다음 처리 단계로 전달할 필요가 있는 경우가 많습니다. FallbackHeaders 필터는 이러한 시나리오에 적합합니다. 이 필터를 적용하면 서킷 브레이커가 활성화되어 외부 URI 로 포워딩되는 ...

6월 29일 20:53에 게시됨