토리맘의 한글라이즈 프로젝트 logo 토리맘의 한글라이즈 프로젝트

스프링 인티그레이션 공식 레퍼런스를 한글로 번역한 문서입니다.

전체 목차는 여기에 있습니다.


지금까지 논의한 바와 같이, Spring Integration은 애플리케이션을 외부 시스템이나 파일 시스템 등과 이어주는 다양한 엔드포인트를 제공한다.

Spring Integration은 BOMbill-of-materials POM을 제공하으며, 메이븐 설정으로 임포트하기만 하면 알아서 의존성을 관리해준다:

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.integration</groupId>
            <artifactId>spring-integration-bom</artifactId>
            <version>5.5.15</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

다시 정리하자면:

다음은 다양한 엔드포인트들을 전용 링크와 함께 요약해둔 테이블이다.

Module Inbound Adapter Outbound Adapter Inbound Gateway Outbound Gateway
AMQP Inbound Channel Adapter Outbound Channel Adapter Inbound Gateway Outbound Gateway
Events Receiving Spring Application Events Sending Spring Application Events N N
Feed Feed Inbound Channel Adapter N N N
File Reading Files, ‘tail’ing Files Writing files N Writing files
FTP(S) FTP Inbound Channel Adapter FTP Outbound Channel Adapter N FTP Outbound Gateway
Gemfire Inbound Channel Adapter, Continuous Query Inbound Channel Adapter Outbound Channel Adapter N N
HTTP HTTP Namespace Support HTTP Namespace Support Http Inbound Components HTTP Outbound Components
JDBC Inbound Channel Adapter, Stored Procedure Inbound Channel Adapter Outbound Channel Adapter, Stored Procedure Outbound Channel Adapter N Outbound Gateway, Stored Procedure Outbound Gateway
JMS Inbound Channel Adapter, Message-driven Channel Adapter Outbound Channel Adapter Inbound Gateway Outbound Gateway
JMX Notification-listening Channel Adapter, Attribute-polling Channel Adapter, Tree-polling Channel Adapter Notification-publishing Channel Adapter, Operation-invoking Channel Adapter N Operation-invoking Outbound Gateway
JPA Inbound Channel Adapter Outbound Channel Adapter N Updating Outbound Gateway, Retrieving Outbound Gateway
Apache Kafka Message Driven Channel Adapter, Inbound Channel Adapter Outbound Channel Adapter Inbound Gateway Outbound Gateway
Mail Mail-receiving Channel Adapter Mail-sending Channel Adapter N N
MongoDB MongoDB Inbound Channel Adapter MongoDB Outbound Channel Adapter N N
MQTT Inbound (Message-driven) Channel Adapter Outbound Channel Adapter N N
R2DBC R2DBC Inbound Channel Adapter R2DBC Outbound Channel Adapter N N
Redis Redis Inbound Channel Adapter, Redis Queue Inbound Channel Adapter, Redis Store Inbound Channel Adapter, Redis Stream Inbound Channel Adapter Redis Outbound Channel Adapter, Redis Queue Outbound Channel Adapter, RedisStore Outbound Channel Adapter, Redis Stream Outbound Channel Adapter Redis Queue Inbound Gateway Redis Outbound Command Gateway, Redis Queue Outbound Gateway
Resource Resource Inbound Channel Adapter N N N
RMI N N Inbound RMI Outbound RMI
RSocket N N RSocket Inbound Gateway RSocket Outbound Gateway
SFTP SFTP Inbound Channel Adapter SFTP Outbound Channel Adapter N SFTP Outbound Gateway
STOMP STOMP Inbound Channel Adapter STOMP Outbound Channel Adapter N N
Stream Reading from Streams Writing to Streams N N
Syslog Syslog Inbound Channel Adapter N N N
TCP TCP Adapters TCP Adapters TCP Gateways TCP Gateways
UDP UDP Adapters UDP Adapters N N
WebFlux WebFlux Inbound Channel Adapter WebFlux Outbound Channel Adapter Inbound WebFlux Gateway Outbound WebFlux Gateway
Web Services N N Inbound Web Service Gateways Outbound Web Service Gateways
Web Sockets WebSocket Inbound Channel Adapter WebSocket Outbound Channel Adapter N N
XMPP XMPP Messages, XMPP Presence XMPP Messages, XMPP Presence N N
ZeroMQ ZeroMQ Inbound Channel Adapter ZeroMQ outbound Channel Adapter N N

그 외에도 Spring Integration은 Core Messaging에서 설명한 것처럼 POJOPlain Old Java Objects를 통해 실행할 수 있는 엔드포인트들을 제공한다. 채널 어댑터에서 설명했듯이, <int:inbound-channel-adapter> 요소를 사용하면 자바 메소드로 데이터를 폴링할 수 있다. <int:outbound-channel-adapter> 요소로는 void 메소드로 데이터를 전송할 수 있다. Messaging Gateways에서 논의한 것처럼, <int:gateway> 요소는 어떤 자바 프로그램이든지 메시지 처리 플로우를 실행할 수 있게 해준다. 이 요소들은 모두 소스 단에서 Spring Integration 의존성을 요구하지 않는다. 아웃바운드 게이트웨이에 해당하는 엔드포인트는 서비스 액티베이터로, 일종의 Object를 반환하는 메소드를 호출할 수 있다 (서비스 액티베이터 참고).

5.2.2 버전부터, 모든 인바운드 게이트웨이는 boolean 플래그 errorOnTimeout을 설정해서, 다운스트림 플로우가 제한 시간 안에 응답을 반환하지 않으면 MessageTimeoutException을 발생시킬 수 있다. 이땐 게이트웨이로 스레드 제어가 넘어올 때까지 타이머를 시작하지 않으므로, 이 플래그는 보통 다운스트림 플로우가 비동기로 동작하거나 특정 핸들러에서 (ex. 필터) null을 반환해 플로우가 중단되는 상황에서만 유용하다. 이때 발생하는 예외는 errorChannel 플로우에서 요청한 클라이언트에 보상 응답을 전송하는 식으로 처리할 수 있다.


Next :
Spring ApplicationEvent Support
ApplicationEvents를 받아 메시지를 전달하고, 메시지를 받아 ApplicationEvents를 전송하는 방법

전체 목차는 여기에 있습니다.

<< >>

TOP