• 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. 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)와 연관이 있다는 점을 배우게 되었다. 이번 포스팅에서는 이벤트 기반 아키텍처가 왜 사용되는지와 이벤트를 통해 얻을 수 있는 장점에 대해 서술해보고자 한다.

      WEB 2025. 10. 22

      한국투자증권 웹소켓 구독수 제한 정책 극복기

      모의 주식 투자 서비스 '무주시'를 되돌아보며 이전부터 여러가지 문제가 발생했었던 한국투자증권 웹소켓 관련 부분을 리팩토링하기로 하였다. 기본적으로 한국투자증권에서는 세션 당 웹소켓 호출(구독 수) 유량 제한 정책으로 인하여 하나의 세션 당 41개의 종목에 대한 구독이 가능하다. 따라서, 다중 계좌를 사용하여 운용 가능 웹소켓 세션 수를 늘려 해당 정책에 대응하고자 한다. 또한, 이전부터 발생하였던 웹소켓 세션을 저장하기 위하여 해당 필드를 static 변수로 선언하여야지만 저장이 가능했던 이슈 등에 관한 내용을 다뤄보고자 한다.

      WEB 2025. 09. 03

      C10K 문제 해결을 위한 Non-Blocking I/O 기반 처리 구조

      이전부터 톰캣은 Java NIO 기반의 Non-Blocking I/O 기반으로 동작한다는 말을 듣기는 하였지만 이에 대해 제대로 이해를 하지 못하고 단지 쓰레드풀만 사용한다는 것 정도만 알고 있었다. 최근 스프링부트의 웹 서버 설정 등의 과정을 공부하며 다시 톰캣의 기본적인 동작 원리에 대해 공부해보기로 하였다. 이 과정에서 톰캣과 같은 웹 서버들은 Non-Blocking I/O 방식을 왜 사용하는지, 무엇인지에 대해 공부해본 내용을 정리하고자 한다.

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