Spring Cloud Function을 활용한 비동기 통신 구현

날아올라돼지야·2024년 8월 31일
0

이번 강의에서는 RabbitMQ를 활용하여 비동기 통신을 구현하기 위한 첫 번째 단계로 메시지 마이크로서비스(Message Microservice)를 생성하는 방법을 설명하겠습니다. 이 메시지 마이크로서비스는 메시지 브로커로부터 메시지를 수신하고, SMS나 이메일을 통해 사용자에게 알림을 보내는 역할을 합니다.

1. 전통적인 접근 방식을 넘어서: Spring Cloud Function의 도입

기존의 마이크로서비스와 달리, 이 메시지 마이크로서비스에서는 전통적인 RESTController, GetMapping, PostMapping 등의 어노테이션을 사용하는 대신, Spring Cloud Function을 활용할 것입니다. Spring Cloud Function은 비즈니스 로직을 함수로 구현할 수 있게 하여, 개발자는 함수에만 집중하고 나머지 인프라 스트럭처적인 문제는 Spring Cloud Function이 처리해 줍니다.

2. Spring Cloud Function의 주요 개념

  • Supplier: 입력 없이 출력만 생성하는 함수형 인터페이스입니다. 주로 이벤트를 생성하거나 출력을 생성하는 역할을 합니다.
  • Function: 입력을 받아 처리한 후 출력을 생성하는 함수형 인터페이스입니다. 주로 데이터를 처리하고 결과를 반환하는 역할을 합니다.
  • Consumer: 출력 없이 입력만 소비하는 함수형 인터페이스입니다. 데이터를 받아서 처리만 하고 결과를 반환하지 않습니다.

3. Spring Cloud Function의 장점

  • 다양한 접근 방식 지원: 함수형 인터페이스를 활용하여 비즈니스 로직을 작성할 때, 반응형(Reactive), 명령형(Imperative), 하이브리드(Hybrid) 접근 방식 중 하나를 선택할 수 있습니다.
  • 유연한 배포: 작성된 비즈니스 로직은 기본적으로 HTTP 엔드포인트로 노출되며, RabbitMQ나 Apache Kafka와 같은 이벤트 브로커와 통합하여 스트리밍 데이터를 처리할 수도 있습니다. 또한 AWS Lambda와 같은 서버리스 환경에서도 배포할 수 있습니다.
  • 이벤트 드리븐 아키텍처에 적합: Spring Cloud Function은 이벤트 기반 마이크로서비스 아키텍처에 최적화되어 있어, 다양한 기술 스택으로 쉽게 전환할 수 있습니다.

4. Spring Cloud Function 공식 문서 탐색

Spring Cloud Function에 대한 자세한 정보를 원한다면, Spring Cloud Function 공식 문서를 참조할 수 있습니다. 이 문서에는 다양한 사용 사례와 함께, AWS Lambda, Microsoft Azure, Google Cloud Functions와 같은 서버리스 플랫폼과의 통합 방법이 설명되어 있습니다.

5. 다음 단계: 메시지 마이크로서비스 구축

이제 메시지 마이크로서비스를 Spring Cloud Function을 활용하여 구축할 차례입니다. 이 마이크로서비스는 이벤트 드리븐 모델을 사용하여 비동기적으로 메시지를 처리하고, RabbitMQ와의 통합을 통해 이벤트를 수신하고 처리할 것입니다.

다음 강의에서는 실제로 Spring Cloud Function을 활용하여 메시지 마이크로서비스를 구축하는 과정을 다루겠습니다.

감사합니다. 다음 강의에서 뵙겠습니다.

profile
무슨 생각하며 사니

0개의 댓글