본문 바로가기
이론

ESB란?

by 류딩이2025. 12. 17.

📌 ESB는 왜 사용하는가? (Enterprise Service Bus 개념 정리)

1. ESB란?

ESB(Enterprise Service Bus)는 기업 내부의 여러 시스템을 하나의 통합된 버스(Bus)로 연결해주는 미들웨어 아키텍처입니다.

각 시스템이 서로 직접 연결되는 방식이 아니라, ESB를 중심으로 메시지를 주고받는 구조로 동작합니다.

즉, 시스템 간 통신을 직접 하지 않고, ESB를 통해 간접적으로 처리하는 방식입니다.


2. ESB를 사용하지 않으면? (Point-to-Point)

ESB가 없는 환경에서는 시스템들이 서로 직접 연결됩니다. 이를 Point-to-Point 방식이라고 합니다.

A 시스템 ↔ B 시스템 A 시스템 ↔ C 시스템 B 시스템 ↔ C 시스템

이 구조의 문제점은 다음과 같습니다.

  • 시스템 수가 늘어날수록 연결 경로가 기하급수적으로 증가 (N*(N-1)/2)
  • 한 시스템 변경 시 연결된 모든 시스템의 수정이 필요할 수 있음
  • 장애 발생 시 영향 범위 파악이 어려움
  • 전체적인 유지보수 난이도 상승

3. ESB를 사용하면? (Hub & Spoke / Bus)

ESB를 도입하면 모든 시스템은 ESB하고만 통신하며, 시스템 간 결합도가 낮아집니다.

A 시스템 → ESB → B 시스템 C 시스템 → ESB → D 시스템

이 구조의 장점은 다음과 같습니다.

  • 시스템 간 의존성 감소 (Loose Coupling)
  • 신규 시스템 추가 시 기존 시스템 수정 없이 ESB만 연동
  • 변경 영향 최소화
  • 통합 관리 및 중앙 집중식 모니터링 가능

4. ESB의 핵심 역할

1) 메시지 라우팅 (Routing)

요청 메시지의 내용이나 헤더를 분석하여 적절한 대상 시스템으로 전달합니다.

2) 프로토콜 변환 (Transformation)

HTTP, JMS, FTP, TCP 등 서로 다른 통신 방식을 ESB에서 변환하여 상이한 기술 스택 간 연계를 지원합니다.

3) 메시지 포맷 변환

XML ↔ JSON ↔ CSV 등 각 시스템이 요구하는 데이터 포맷으로 실시간 변환을 수행합니다.

4) 트랜잭션 및 오류 처리

메시지 전달 실패 시 재시도(Retry), 롤백, 혹은 보상 트랜잭션을 통해 데이터 정합성을 보장합니다.

5) 보안 처리

인증, 인가, 암호화 등 보안 정책을 중앙 ESB 지점에서 일괄 적용합니다.


5. ESB와 JMS의 관계

ESB는 아키텍처(구조)적 개념이고, JMS는 메시지 전달 방식(기술 표준)입니다.

  • ESB 내부에서 비동기 통신을 위해 JMS를 엔진으로 사용하는 경우가 많습니다.
  • JMS는 ESB가 활용하는 여러 통신 수단 중 하나입니다.
시스템 → ESB (Message Processing) → JMS Queue/Topic → 대상 시스템

6. ESB를 사용하는 이유 요약

이유 설명
시스템 통합 복잡한 다대다 연결을 단순화된 통합 구조로 변경
유지보수 중앙 집중 관리를 통해 변경 및 장애 대응 효율화
확장성 표준화된 인터페이스로 신규 시스템의 유연한 추가 지원
안정성 메시지 보존 및 재처리를 통한 신뢰성 있는 전송
표준화 기업 내 통신 방식과 데이터 모델의 표준화 유도

7. 실무 도입 사례

  • 금융권 및 공공기관의 차세대 시스템 연계 프로젝트
  • 기존 레거시(Legacy) 시스템과 최신 클라우드 시스템의 혼용 환경
  • 대규모 트래픽 발생 시 트랜잭션의 순서 보장과 안정적 처리가 필요한 경우

8. 결론

ESB는 시스템 간의 복잡한 연결(Spaghetti Architecture)을 단순화하고, 데이터 변환과 보안을 중앙에서 제어함으로써 안정적이고 확장 가능한 엔터프라이즈 통합 환경을 구축하는 데 필수적입니다.