ESB는 서로 다른 서비스들을 통합하여 서로 공유할 수 있도록 지원하는 아키텍처이다.
즉 A 라는 결제기관과 B라는 금융기관이 있을때
A로 결제를 하면 B에 금융기관을 통해서 나의 계좌에 돈이 빠져나가는것을 볼 수 있다.
이때 A와 B는 서로 시스템 내부구조가 다를텐데 어떻게 연동이 되어서 하나의 서비스가 이루어질까?
의문이 드는데 이런것을 가능하게 하도록 중간에서 변환작업을 처리해주는 것이 ESB이다.
굳이 ESB를 사용해야할까?
ESB는 표준화된 인터페이스 설계와 보안정책을 준수하며 설계를 한다.
따라서 지켜야할 규칙등이 많기 때문에 초기 설계와 구축이 시간이 많이 들어간다.
또 이쯤에서 드는 의문은 굳이 ESB를 사용하여 연결을 해야할까?
라는 생각이 들 수 있다.
사실 A가 B의 내부구조를 알고 있다면
그에 맞도록 변환하는 로직만 짜면 동일하게 연결이 가능하다.
이렇게만 된다면 굳이 ESB에 대해서 알아보지않아도
원하는 서비스와 다이렉트로 연결이 가능하다.
하지만 왜 ESB를 사용하느냐는 지금부터 사용 전 후를 비교해보며 알아보겠다.
ESB를 사용하지 않고 연결한 경우

위에서 말한대로 ESB를 사용하지 않고 연결하기 위해서 A가 B의 내부구조를 이해하고
직접 변환하는 로직을 짜서 연결을 한다.
아마 처음에는 문제없이 잘 연결되고 동작할 것 이다.

그러나 B의 내부구조가 바뀐다면?
A도 그에 따라서 변환 로직을 바꿔주어야한다.
어느 시스템이나 한번 만들어지고나서 이후로 변하지 않는 시스템은 없다.
유지보수나 확장을 하게되면서 끊임 없이 변할 것이고
이때마다 A는 변화하는 B에 맞추어 똑같이 변환작업을 해주어야한다.
이런식의 방식은 매우 비효율적이고 유지보수면에도 불리하다.
더군다나 시스템이 늘어나면 늘어날수록 그 복잡도는 배로 증가할 것이다.
따라서 ESB가 없을 때의 문제점
- 서비스간의 결합성이 높아진다.
- 시스템이 증가할수록 복잡도가 크게 증가한다.
ESB를 사용하여 연결한 경우

A 는 B의 내부 구조를 모른다.
그러나 ESB를 통해서 연결을 요청 하여 연결이 이루어진다.
즉 B의 내부구조가 바뀌어도 A와는 아무 관련이 없으며 A가 수정해주어야할 필요가 없어진다.
따라서 시스템과의 결합성이 낮아지고
시스템이 많아진다하더라고 ESB만 연계하면 되기 때문에 훨씬 더 단순한 구조의 아키텍처가 유지될 수 있게된다.
결론
ESB는 초기 설계와 구축에 대한 단점이 있긴하나
유지보수나 단순화를 고려한다면 ESB 를 활용하는것이 훨씬 효율적이다.
'ESB' 카테고리의 다른 글
| [ESB] ESB 란 (9) | 2025.08.14 |
|---|