Spring Cloud Function을 활용한 메시지 마이크로서비스 기본 프로젝트 생성

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

이번 강의에서는 Spring Cloud Function을 활용하여 메시지 마이크로서비스(Message Microservice)의 기본 프로젝트를 생성하는 과정을 다루겠습니다. 이 마이크로서비스는 메시지 브로커로부터 메시지를 수신하고, 사용자에게 SMS나 이메일을 통해 알림을 보내는 역할을 합니다.

1. Spring Initializr를 통한 기본 프로젝트 생성

먼저, Spring Initializr 웹사이트를 사용하여 메시지 마이크로서비스의 기본 프로젝트를 생성합니다.

  • Project: Maven Project
  • Language: Java
  • Spring Boot Version: 3.1.2 (현재의 안정된 버전)
  • Group: com.easybytes
  • Artifact: message
  • Name: message
  • Description: Microservice to support messaging in EazyBank
  • Package Name: 자동 생성됨 (com.easybytes.message)
  • Packaging: jar
  • Java Version: 17

2. 필수 의존성 추가

  • Function: 비즈니스 로직을 함수로 구현하여 다양한 서버리스 환경 및 독립 실행형 애플리케이션에서 실행 가능하도록 지원합니다.

Spring Initializr에서 function 의존성을 추가하고 프로젝트를 다운로드합니다. 이 프로젝트에는 spring-boot-starterspring-cloud-function-context가 포함됩니다. spring-cloud-function-context는 Spring Cloud Function의 핵심 의존성입니다.

3. 프로젝트 구조 설정

다운로드한 Maven 프로젝트를 작업 공간에 추가하고, 이전 섹션에서 작업한 프로젝트 폴더를 복사하여 새 섹션으로 변경합니다.

  1. 섹션 폴더 복사: 이전 섹션(section12)의 폴더를 복사하여 section13으로 이름을 변경합니다.
  2. 프로젝트 추가: 새로 다운로드한 메시지 프로젝트를 section13 폴더에 추가합니다.
  3. IntelliJ IDEA에서 프로젝트 열기: section13 폴더를 IntelliJ IDEA에서 열고 모든 Maven 프로젝트를 로드합니다.

4. DTO 패키지 및 클래스 생성

메시지 마이크로서비스에서 사용할 데이터 전송 객체(Data Transfer Object, DTO)를 생성합니다.

  1. 패키지 생성: com.eazybytes.message.dto 패키지를 생성합니다.
  2. DTO 클래스 생성: AccountsMessageDto라는 이름의 Record 클래스를 생성합니다. 이 클래스는 계좌 생성 시 필요한 정보를 포함합니다.
    • 필드: accountNumber, customerName, email, mobileNumber
    • Record 사용 이유: Record를 사용하면 불변 객체를 쉽게 만들 수 있으며, getter 메서드가 자동으로 생성됩니다.

5. 비즈니스 로직을 위한 함수 패키지 생성

메시지 마이크로서비스에서 비즈니스 로직을 함수로 구현하기 위해 필요한 패키지와 클래스를 생성합니다.

  1. 패키지 생성: com.eazybytes.message.functions 패키지를 생성합니다.
  2. 클래스 생성: MessageFunctions라는 클래스를 생성하고, 이 클래스에 @Configuration 어노테이션을 추가하여 스프링 설정 클래스로 만듭니다.
  3. 비즈니스 로직 구현: 다음 강의에서 이 클래스에 실제 비즈니스 로직을 함수형 인터페이스(Supplier, Function, Consumer)를 사용하여 구현할 것입니다.

결론

이번 강의에서는 Spring Cloud Function을 활용한 메시지 마이크로서비스의 기본 프로젝트를 생성하고, DTO 및 비즈니스 로직을 위한 기본 구조를 설정했습니다. 다음 강의에서는 함수형 프로그래밍을 통해 비즈니스 로직을 구현하는 방법을 다루겠습니다.

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

profile
무슨 생각하며 사니

0개의 댓글