• Skip to primary navigation
  • Skip to content
  • Skip to footer
I am hky035
      허기영

      허기영

      • Daegu, Korea
      • GitHub
      • hky035@gmail.com
      • About
      • Web
      • DevOps
      • ETC
      • Essay

      Recent posts

      WEB 2026. 04. 11

      도메인 이벤트 재발행 구조 도입기 2 - 커밋 직후 발행과 RabbitMQ Publish Confirm

        여행 기록 관리 플랫폼 '여기가' 프로젝트를 진행하며 이메일 인증·비밀번호 초기화 이메일 전송 기능 개발을 담당하게 되었다. 이메일 전송은 외부 메일 서버를 거쳐 실행되는 작업으로 Network I/O 등 시간이 오래 걸리는 작업이다. 따라서, 핵심 비즈니스 로직과 이메일 발송 로직을 분리하여 결합도를 낮추고, 향후 메일 서버 분리의 확장성을 염두에 두고 이메일 발송 로직을 이벤트 기반 아키텍처(EDA)로 분리하였다. EDA 도입 후 메시지 브로커로 이벤트가 발행되지 않아 이벤트가 유실되는 문제를 겪고 이에 대한 해결 방법을 모색하던 중 'Transactional Outbox Pattern'을 알게 되었다. 이번 포스팅에서는 각 도메인 이벤트를 일관된 EventOutbox로 변환하여 저장하는 과정을 구현한 경험을 공유하고자 한다.

      WEB 2026. 03. 29

      도메인 이벤트 재발행 구조 도입기 1 - Event Outbox의 저장

        여행 기록 관리 플랫폼 '여기가' 프로젝트를 진행하며 이메일 인증·비밀번호 초기화 이메일 전송 기능 개발을 담당하게 되었다. 이메일 전송은 외부 메일 서버를 거쳐 실행되는 작업으로 Network I/O 등 시간이 오래 걸리는 작업이다. 따라서, 핵심 비즈니스 로직과 이메일 발송 로직을 분리하여 결합도를 낮추고, 향후 메일 서버 분리의 확장성을 염두에 두고 이메일 발송 로직을 이벤트 기반 아키텍처(EDA)로 분리하였다. EDA 도입 후 메시지 브로커로 이벤트가 발행되지 않아 이벤트가 유실되는 문제를 겪고 이에 대한 해결 방법을 모색하던 중 'Transactional Outbox Pattern'을 알게 되었다. 이번 포스팅에서는 각 도메인 이벤트를 일관된 EventOutbox로 변환하여 저장하는 과정을 구현한 경험을 공유하고자 한다.

      WEB 2026. 03. 18

      Event Driven Architecture와 Transactional Outbox Pattern의 연관성

        여행 기록 관리 플랫폼 '여기가' 프로젝트를 진행하며 이메일 인증·비밀번호 초기화 이메일 전송 기능 개발을 담당하게 되었다. 이메일 전송은 외부 메일 서버를 거쳐 실행되는 작업으로 Network I/O 등 시간이 오래 걸리는 작업이다. 따라서, 핵심 비즈니스 로직과 이메일 발송 로직을 분리하여 결합도를 낮추고, 향후 메일 서버 분리의 확장성을 염두해 이메일 발송 로직을 이벤트 기반 아키텍처(EDA)로 분리하였다. EDA 도입 후 메시지 브로커로 이벤트가 발행되지 않아 이벤트가 유실되는 문제를 겪고 이에 대한 해결 방법을 모색하던 중 'Transactional Outbox Pattern'을 알게 되었다. 이번 포스팅에서는 Transactional Outbox Pattern이 EDA에서 왜 사용이 되는지에 대해 알아본 경험을 공유해보고자 한다.

      ETC 2026. 01. 01

      UUID vs ULID, 인덱스로 사용하는 값에 따른 성능 비교

      최근 이메일 발송 기능의 실행을 보장하기 위하여 Transactional Outbox Pattern을 적용하기 위해, 프로젝트 일부에 Event 기반 구조를 도입하게 되었다. 이벤트를 아웃박스로 변환하여 저장할 때, 이벤트를 식별하기 위한 식별자가 필요하였다. Spring Event를 통한 이벤트, 아웃박스 제어를 위해 식별자를 애플리케이션 레벨에서 생성하고 저장하며 Non-Sequential 식별자를 사용하게 되었다. 이 과정에서 UUID보다는 ULID로 값을 저장하였을 때 성능적으로 발생할 수 있는 이점에 대해 알아본 경험을 공유하고자 한다.

      WEB 2025. 12. 06

      이벤트를 통한 시스템 결합도 낮추기

      여행 기록 관리 플랫폼 '여기가' 프로젝트를 진행하며, 비밀번호 초기화 이메일 전송 기능 개발을 담당하게 되었다. 기능 개발을 완료한 뒤 이메일 전송을 보장하기 위한 의문이 들었다. 여러 방법들을 모색하던 중 '트랙잭션 아웃박스 패턴'에 대해 알게되었고, 이는 이벤트 기반 아키텍처(Event Driven Architecture)와 연관이 있다는 점을 배우게 되었다. 이번 포스팅에서는 이벤트 기반 아키텍처가 왜 사용되는지와 이벤트를 통해 얻을 수 있는 장점에 대해 서술해보고자 한다.

      • Previous
      • 1
      • 2
      • 3
      • 4
      • …
      • 7
      • Next
      © 2026 I am hky035. Powered by Jekyll & Minimal Mistakes.