[Tools] Event Catalog 란?

2026. 4. 9. 23:47·Tools

현대적인 마이크로서비스 아키텍처(MSA)나 이벤트 기반 아키텍처(EDA)를 구축하다 보면, 어떤 서비스가 어떤 이벤트를 발행하고 구독하는지 파악하기가 매우 힘들어집니다. 이때 필요한 것이 바로 EventCatalog입니다.

 

https://www.eventcatalog.dev/

 

EventCatalog - Know how your systems connect - EventCatalog

Turn your distributed architecture into a searchable, visual, AI-queryable source of truth. Self-hosted, open source.

www.eventcatalog.dev

 


1. EventCatalog란 무엇인가?

EventCatalog는 오픈소스 도구로, 프로젝트의 이벤트, 스키마, 그리고 서비스 간의 관계를 시각화하고 문서화해 주는 정적 사이트 생성기입니다.

쉽게 말해, "우리 시스템에 어떤 이벤트가 돌아다니는지"를 보여주는 전사적 이벤트 사전이라고 이해하시면 됩니다.

주요 특징

  • Markdown 기반: 개발자에게 친숙한 마도다운 파일로 이벤트 정보를 관리합니다.
  • 시각화: 서비스 간의 흐름(Producer와 Consumer 관계)을 다이어그램으로 보여줍니다.
  • 버전 관리: 이벤트 스키마의 변경 이력을 추적할 수 있습니다.
  • 자동화: 스크립트를 통해 소스 코드나 스키마 레지스트리에서 정보를 자동으로 가져올 수 있습니다.

2. 왜 사용하는가? (해결하는 문제)

  1. 파편화된 정보 통합: 코드 여기저기에 흩어진 이벤트 정의를 한곳에서 볼 수 있습니다.
  2. 커뮤니케이션 비용 감소: 기획자나 새로 합류한 개발자가 "주문이 완료되면 어떤 데이터가 넘어가나요?"라고 물을 때 이 카탈로그 링크 하나로 답변이 가능합니다.
  3. 영향도 분석: 특정 이벤트를 수정했을 때 영향을 받는 서비스가 무엇인지 즉각 파악할 수 있습니다.

3. 어떻게 사용하는가? (기본 흐름)

사용법은 매우 직관적이며, 일반적인 문서화 도구와 유사합니다.

Step 1: 프로젝트 설치

Node.js 환경에서 아래 명령어로 프로젝트를 생성합니다.

npx @eventcatalog/create-eventcatalog@latest my-catalog

Step 2: 이벤트와 서비스 정의

프로젝트 폴더 내의 events 폴더와 services 폴더에 각각 Markdown 파일을 작성합니다.

  • 이벤트 정의 예시 (events/OrderCreated/index.md):
  • --- name: OrderCreated version: 1.0.0 summary: 고객이 주문을 완료했을 때 발생하는 이벤트 producers: - Order Service consumers: - Inventory Service - Shipping Service --- ### 이벤트 페이로드 (Schema) 이곳에 JSON 스키마나 설명을 작성합니다.

Step 3: 시각화 확인

작성된 파일들을 기반으로 EventCatalog가 자동으로 관계도를 생성합니다.

npm run dev

위 명령어를 실행하면 웹 브라우저에서 서비스 간의 화살표 흐름도(Node Graph)를 확인할 수 있습니다.


4. 실무 활용 팁

  • 자동 생성 도구 활용: AsyncAPI 파일이나 AWS EventBridge, SNS/SQS 설정을 기반으로 Markdown 파일을 자동으로 생성해 주는 플러그인을 사용하면 관리가 훨씬 편해집니다.
  • CI/CD 통합: 코드가 메인 브랜치에 머지될 때마다 EventCatalog를 빌드하고 정적 호스팅(GitHub Pages, Vercel 등)에 배포하여 항상 최신 상태를 유지하세요.

https://www.eventcatalog.dev/

 

EventCatalog - Know how your systems connect - EventCatalog

Turn your distributed architecture into a searchable, visual, AI-queryable source of truth. Self-hosted, open source.

www.eventcatalog.dev

 

반응형
저작자표시 비영리 동일조건 (새창열림)

'Tools' 카테고리의 다른 글

[intellij] python 프로젝트 생성 시 AttributeError: module 'virtualenv.create.via_global_ref.builtin.cpython.mac_os' has no attribute 'CPython2macOsArmFramework' 오류  (0) 2024.02.07
[intellij] python 모듈에 패스(PYTHONPATH) 추가 하는 방법  (0) 2023.06.03
[intellij] maven 으로 빌드시 JAVA_HOME 설정 하는 방법  (0) 2023.03.04
[기타] JD-GUI에서 No suitable Java version found on your system! 오류가 발생할 때  (1) 2021.03.11
[intellij] Gradle 사용시 No candidates found for method call plugins. 오류 해결방법  (0) 2020.09.14
'Tools' 카테고리의 다른 글
  • [intellij] python 프로젝트 생성 시 AttributeError: module 'virtualenv.create.via_global_ref.builtin.cpython.mac_os' has no attribute 'CPython2macOsArmFramework' 오류
  • [intellij] python 모듈에 패스(PYTHONPATH) 추가 하는 방법
  • [intellij] maven 으로 빌드시 JAVA_HOME 설정 하는 방법
  • [기타] JD-GUI에서 No suitable Java version found on your system! 오류가 발생할 때
hs_seo
hs_seo
Hello World!
    반응형
  • hs_seo
    개발자로 살아남기
    hs_seo
  • 전체
    오늘
    어제
    • 전체 (1142)
      • 개발자 (21)
        • 개발에 유의할 점 (0)
        • 면접 (5)
      • IT 소식 (5)
        • 업계 (1)
      • java (51)
        • 디자인패턴 (3)
        • apache-common (1)
      • 개념 (47)
        • 자료구조 (4)
        • 함수형사고 (8)
        • 디자인패턴 (1)
      • 데이터분석 (1)
      • python (67)
        • 코드조각 (12)
        • 라이브러리 (2)
      • 빅데이터 (418)
        • zookeeper (5)
        • hadoop (78)
        • hdfs (12)
        • hive (127)
        • hbase (16)
        • spark (40)
        • scala (4)
        • trino (3)
        • oozie (41)
        • Hue (9)
        • R (5)
        • sqoop (6)
        • flume (3)
        • elasticsearch (2)
        • airflow (16)
        • kafka (3)
        • kubernetes (10)
        • openstack (3)
        • flink (2)
        • redis (2)
      • 빅데이터 강좌 (2)
      • 알고리즘 (131)
        • 알고리즘 (1)
        • 백준 (61)
        • 정올 (41)
        • 더블릿 (5)
        • 프로그래머스 (1)
      • 프로그래밍 언어 (30)
        • go (4)
        • js (9)
        • .Net (6)
        • Jsp (1)
        • ansible (3)
        • terraform (6)
      • Tools (45)
        • docker (2)
        • macbook (6)
        • maven (3)
        • sublime (1)
      • 프레임워크 (25)
        • [JS] angularjs (2)
        • [JS] node.js (19)
        • [Java] spring (2)
        • Android (2)
      • 데이타베이스 (43)
        • SQLD (5)
        • Oracle (1)
        • MySQL (8)
        • ADsP (2)
      • 리눅스 (25)
        • Bash (61)
      • GCP (5)
      • AWS (34)
        • EC2 (2)
        • EMR (14)
      • 정보보안기사 (4)
        • 네트워크 (1)
      • 개인 (80)
        • 업무실수 (0)
        • 책 (9)
        • 교육 (3)
        • 여행 (17)
        • 영화 (12)
        • 음악 (2)
        • 피규어 (4)
        • 게임 (3)
        • 생각 (7)
        • 기타 (10)
        • 좋은글 (5)
        • 좋은 사이트 (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 미디어로그
    • 위치로그
    • 방명록
  • 링크

    • 빅데이터-하둡,하이브로 시작하기
    • 빅데이터-스칼라, 스파크로 시작하기
    • Kaggle에서 파이썬으로 데이터 분석 시작하기
    • 쉘스크립트 개발 시작하기
    • 개발자가 데이터 분석 준전문가 되기
    • 데브쿠마
  • 공지사항

  • 인기 글

  • 태그

    Tez
    HIVE
    mysql
    airflow
    파이썬
    oozie
    emr
    ubuntu
    Python
    bash
    error
    오류
    알고리즘
    HDFS
    hbase
    정올
    SPARK
    Linux
    백준
    다이나믹
    nodejs
    build
    S3
    Hadoop
    하이브
    java
    AWS
    k8s
    yarn
    하둡
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
hs_seo
[Tools] Event Catalog 란?
상단으로

티스토리툴바