Spring Integration 과 함께 - 개념편

Spring Integration

Spring Integration Cafe Example
Spring Integration 카페 예제

 EAI(Enterprise Application Integration) 에 대한 소개 자료를 접하면서, Spring Integration과 Apache Camel을 많이 들었다. 어떤 Framework을 살펴볼까...생각 중에 Spring을 공부 중이라 Spring Integration 문서를 읽었다. 나름 매력적으로 느껴져 정리 및 예제를 기록한다.

정의

  Spring Integration 은 Spring 의 IoC와 EIP(Enterprise Integration Pattern)을 합쳐 만든 Framework 다. 그래서 Spring은 EIP의 구성 요소들을 구현했다. 비동기와 메세지(Message) 방식을 지원하며, 여러 통신 방식(FTP, Web, TCP...)을 구현한다.

 여러 글과 개발하며 느낀 점을 기준으로 생각해봤다. 내가 생각한 이 장난감(?)은...

각 시스템이 데이터를 주고 받기 위한 표준 가이드 프로그램이다.

 기업 내에는 여러 시스템들이 존재한다. 이들이 가진 데이터들은 서로 소통하지 않으면 가치가 없다. 반대로, 여러 시스템의 데이터를 합치면 업무 자동화나 새로운 비즈니스 기회를 찾을 수 있는 기회가 생긴다. 그래서 언제나 IT 현업들은 시스템 통합(System Integration)을 시도한다. 하지만 통합은 힘들다. 시스템들은 도입 혹은 구축 이유가 저마다 사정이 있어, 구축 언어와 통신 방법이 다르다. 

각 시스템 별 다른 구축과 통신 방식

 이런 문제를 개선하기 위해, 각 시스템의 중심에서 데이터들의 중재자 역할을 하는 시스템을 구상한다. 바로 Spring Integration같은 Framework이다.

중계를 통한 시스템 연결.

  Spring Integration은 통신 방식과 데이터 표준화를 위해 가이드를 제안한다.

 통신 방식의 경우, Spring Integration 은 타 시스템과 통신을 위한 여러 방법을 지원한다. Spring Integration Reference Doc. 의 Integration Endpoints를 보면 알 수 있다. 

 데이터의 경우, Spring Integration 은 데이터 표준 형식인 메시지(Message)가 있다. 메시지는 Header(메타 정보) 와 Payload(데이터)를 가진 Java 객체다. 외부 시스템들이 Spring Integration 에 어떤 형식의 데이터로 보내도 메시지가 된다. 또한 Spring Integration가 외부 시스템에 데이터를 보내 줄 때도 메시지 혹은 메세지의 Payload 를 보내 줄 수 있다.

마치며...

 이번 글에서는 Spring Integration을 나름 정의를 그려봤다. 아직 공부가 모자라, 편협한 의견일 수 있다. 하지만, Spring Integration 공식 문서를 냅다 읽으면 압도적인 양(900 p.)에 지칠 수 있다. 먼저 EIP 가 생긴 배경을 알고 보면, 짜임새 있게 정리할 수 있다.

Reference

댓글

댓글 쓰기

이 블로그의 인기 게시물

JPA 와 함께 - 느낀점

Scott 과 함께 - Recursive Query 구현하기