목록 보기
이벤트 드리븐 아키텍처 도입기
아키텍처

이벤트 드리븐 아키텍처 도입기

채널톡
채널톡
2025년 7월 11일

두줄요약

앱스토어의 동기 호출 중심 구조를 인메모리 이벤트 버스로 분리해 결합도를 낮췄습니다. 트랜잭션 훅과 비동기 핸들러를 지원해 확장성과 유연성을 높였습니다.

문제 상황

  • 앱스토어의 기능이 여러 도메인에 걸쳐 동기 호출로 이어지며 결합도와 복잡성이 증가
  • 앱 삭제, 외부 Hook 발행처럼 확장 포인트가 늘수록 기존 방식의 유지보수와 확장성 한계가 드러남

원인 분석

  • 생산자와 소비자를 직접 연결하는 구조로 인해 신규 처리 로직 추가 시 기존 코드 영향 확대
  • 트랜잭션 경계, 비동기 처리, 멀티 캐스트 요구가 커지면서 단순 호출 방식으로는 대응이 어려움

해결 방법

  • 인메모리 이벤트 버스를 직접 구현해 이벤트 발행과 구독을 분리
  • 동기/비동기 핸들러, 트랜잭션 훅, 멀티 캐스트, 에러 핸들러를 지원하도록 설계
  • 트랜잭션 커밋 전후 시점에 Hook을 등록해 원하는 phase에서 이벤트 처리 연결

성능/운영 포인트

  • Go 루틴 풀을 사용해 비동기 처리의 자원 사용량을 제어
  • 비동기 핸들러용 ErrorHandler로 백그라운드 에러 처리와 로깅 보완
  • 내부 모놀리식에서 확장성을 확보한 뒤, 필요 시 외부 메시지 큐로 전환 가능한 여지 확보

댓글 0

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...