본문 바로가기
Develop/Spring˙Spring Boot

[Spring Boot] 스프링 부트의 메시징 솔루션

by 독서왕뼝아리 2023. 3. 16.

메시징 솔루션은 JMS(Java Messaging Service), 아파치 카프카, AMOP, 레디스, 젬파이어, 아파치 지오드 등 매우 다양하다. 각 솔루션들은 저마다 다른 관심사에 최적화돼 있다.

 

자바의 복잡도 감소를 위해 스프링 프레임워크의 설계 목표는 무엇보다도 애플리케이션을 만드는 방법을 단순화하는 것이다. 이를 달성하는 가장 강력한 수단 중 하나가 템플릿 패턴이다. 템플릿이란 특정 API의 모든 복잡성을 가장 단순한 연산으로 축약하는 것을 의미한다. 대표적으로 JdbcTemplate을 활용하면 몇 가지 연산만 사용해서 데이터 조회와 수정을 처리할 수있다. 

 


 

강력한 템플릿 패턴은 MailSender, JndiTemplate, HibernateTemplate 등 여러 영역에서 사용되고, 다음과 같은 비동기 메시징에서도 사용된다.

 

  • JMS
    자바 표준 메시지 API. 스프링 프레임워크는 JMS 브로커를 사용한 메시지 송신과 수신을 쉽게 처리할 수 있도록 JmsTemplate과 DefaultMessageListenerContainer를 제공한다.
  • 아파치 카프카
    빠른 속도로 대세로 자리 잡고 있는 브로커. 스프링 아파치 카프카(Spring Apache Kafka)는 메시지 송수신을 쉽게 처리할 수 있도록 KafkaTemplate과 KafkaMessageListenerContainer를 제공한다.
  • RabbitMQ
    높은 처리량과 강한 회복력이 특징인 메시지 브로커이다. 스프링 AMOP는 AmqpTemplateSimpleMessageListenerContainer를 제공한다.
  • 레디스
    빠른 속도를 무기로 가장 널리 사용되는 브로커이다. 스프링 데이터 레디스(Spring Data Redis)는 RedisMessageListenerContainer를 제공한다.