본문 바로가기

전체 글308

RabbitMQ 개념 - EDA 환경에서 이벤트 순서 역전 해결법 (Delayed Message Exchange) 대용량 분산 환경에서 이벤트 기반 아키텍처(EDA)를 구축할 때 가장 흔하게 겪는 걸림돌 중 하나가 바로 "이벤트 메시지 순서 역전 현상"임.예를 들어 1번 이벤트(주문 생성 - buy)가 처리된 후 2번 이벤트(재고 확인/차감 - stock_check)가 실행되어야 하는데, 네트워크 지연이나 분산 스레드 환경 특성상 2번 이벤트가 1번보다 먼저 도착해 버리는 문제가 발생하는 것.이번 글에서는 EDA 환경에서 이러한 순서 역전 문제를 어떻게 해결하는지, 그리고 RabbitMQ의 지연 큐(Delayed Message Exchange)를 활용해 자바(Spring Boot)로 구현하는 방법에 대해 정리해 봄.💡 대용량 이벤트 순서 보장 전략 (2단계)대용량 환경에서 이벤트 순서를 잡는 기본 전략은 크게 2단.. 2026. 8. 18.
RabbitMQ 개념 - Exchange RabbitMQ에서 Exchange는 Publisher(생성자)가 보낸 메시지를 어떤 큐(Queue)로 전달할지 결정하는 라우팅(Routing) 우체국 역할을 한다.라우팅 알고리즘과 메시지 전달 방식에 따라 대표적인 4가지 종류(Direct, Fanout, Topic, Headers)가 존재.1. Direct Exchange (1:1 정확한 매칭)메시지의 Routing Key(라우팅 키)가 Binding Key와 정확히 일치하는 큐로만 메시지를 보냅니다. 가장 기본적이고 직관적인 방식동작 방식: Exchange에 log라는 키로 큐가 연결되어 있다면, Routing Key가 log인 메시지만 해당 큐로 들어가게 됨.사용 예시: 일반적으로 메일, 문자, 로그 등 특정 노드에 정확히 일치하는 Key 정보로 .. 2026. 8. 18.
RabbitMQ 개념 - 인프라 측면 1. RabbitMQ 노드 : 독립된 CPU·RAM·디스크 자원를 갖고 접속 포트와 외부 모니터링이 연결되어 있는 실행 단위이며, 이를 도커 컨테이너로 감싸서 배포,확장,관리를 편하게 사용한다. 2. 그렇다면 쿠버네티스와 AWS, 도커를 어떻게 연관되는가?[ AWS 전용 네트워크 (VPC 1개) ] ├── EC2 서버 1번 (쿠버네티스 일꾼 1) ├── EC2 서버 2번 (쿠버네티스 일꾼 2) └── EC2 서버 3번 (쿠버네티스 일꾼 3) └── 이 3대의 EC2를 묶어서 하나의 쿠버네티스 클러스터로 연결EC2 1번 서버가 장애로 인해 정지되었을 때.[1. 장애 발생] 1번 EC2 다운 ➔ 1번의 메인(Leader) 역할을 2번(또는 3번) EC2가 즉시 이어받아 서비스 지속 (0.1초 내)[.. 2026. 8. 18.
PostgreSQL LIKE 검색 CREATE EXTENSION IF NOT EXISTS pg_trgm;* Trigram기반 검색:
pg_trgm은 텍스트를 3글자 단위로 분해하여 인덱스를 생성하고, 이를 기반으로 검색합니다. 예를 들어 "hello"라는 단어는 "hel", "ell", "llo"의 trigram으로 분해됩니다.


* LIKE 검색 최적화:
LIKE 연산자를 사용하여 텍스트 검색을 할 때, 특히 와일드카드(*, %)를 사용한 부분 일치 검색에서 pg_trgm을 사용하면 성능을 크게 향상시킬 수 있습니다.


* FULL TEXT SEARCH와의 차이:
FULL TEXT SEARCH는 단어 단위로 인덱스를 생성하고, 형태소 분석 등을 통해 검색어를 처리하여 더 정확하고 복잡한 검색을 지원합니다. pg_trgm은 단순한 t.. 2025. 8. 20.