📌 ESB는 왜 사용하는가? (Enterprise Service Bus 개념 정리)
1. ESB란?
ESB(Enterprise Service Bus)는 기업 내부의 여러 시스템을 하나의 통합된 버스(Bus)로 연결해주는 미들웨어 아키텍처입니다.
각 시스템이 서로 직접 연결되는 방식이 아니라, ESB를 중심으로 메시지를 주고받는 구조로 동작합니다.
즉, 시스템 간 통신을 직접 하지 않고, ESB를 통해 간접적으로 처리하는 방식입니다.
2. ESB를 사용하지 않으면? (Point-to-Point)
ESB가 없는 환경에서는 시스템들이 서로 직접 연결됩니다. 이를 Point-to-Point 방식이라고 합니다.
이 구조의 문제점은 다음과 같습니다.
- 시스템 수가 늘어날수록 연결 경로가 기하급수적으로 증가 (N*(N-1)/2)
- 한 시스템 변경 시 연결된 모든 시스템의 수정이 필요할 수 있음
- 장애 발생 시 영향 범위 파악이 어려움
- 전체적인 유지보수 난이도 상승
3. ESB를 사용하면? (Hub & Spoke / Bus)
ESB를 도입하면 모든 시스템은 ESB하고만 통신하며, 시스템 간 결합도가 낮아집니다.
이 구조의 장점은 다음과 같습니다.
- 시스템 간 의존성 감소 (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가 활용하는 여러 통신 수단 중 하나입니다.
6. ESB를 사용하는 이유 요약
| 이유 | 설명 |
|---|---|
| 시스템 통합 | 복잡한 다대다 연결을 단순화된 통합 구조로 변경 |
| 유지보수 | 중앙 집중 관리를 통해 변경 및 장애 대응 효율화 |
| 확장성 | 표준화된 인터페이스로 신규 시스템의 유연한 추가 지원 |
| 안정성 | 메시지 보존 및 재처리를 통한 신뢰성 있는 전송 |
| 표준화 | 기업 내 통신 방식과 데이터 모델의 표준화 유도 |
7. 실무 도입 사례
- 금융권 및 공공기관의 차세대 시스템 연계 프로젝트
- 기존 레거시(Legacy) 시스템과 최신 클라우드 시스템의 혼용 환경
- 대규모 트래픽 발생 시 트랜잭션의 순서 보장과 안정적 처리가 필요한 경우
8. 결론
ESB는 시스템 간의 복잡한 연결(Spaghetti Architecture)을 단순화하고, 데이터 변환과 보안을 중앙에서 제어함으로써 안정적이고 확장 가능한 엔터프라이즈 통합 환경을 구축하는 데 필수적입니다.
'이론' 카테고리의 다른 글
| 인공지능의 진화 단계: ANI, AGI 그리고 ASI의 이해 (0) | 2026.03.25 |
|---|---|
| 공공기관 내부 연계 인터페이스 설계서 정리 (개발자 관점) (0) | 2025.12.18 |
| API gateway (0) | 2025.12.15 |