본문 바로가기
Backend/이커머스 api

order api - client (user(ChangeBalanceForm, CustomerDto), RedisClient, UserClient) (1)

by 큌 2025. 2. 10.
반응형

user(ChangeBalanceForm, CustomerDto)

package com.zerobase.cms.order.client.user;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;

@Builder
@NoArgsConstructor
@AllArgsConstructor
@Getter
public class ChangeBalanceForm {
    private String from;
    private String message;
    private Integer money;
}

잔액 변경 요청 폼 (ChangeBalanceForm)

이 코드는 사용자 잔액 변경 요청 시 필요한 정보를 담는 데이터 전송 객체 (DTO, Data Transfer Object) 또는 폼 객체입니다. 주로 다른 서비스 (예: 주문 서비스)가 사용자 잔액을 관리하는 서비스 (예: 사용자 서비스)에 잔액 변경 요청을 보낼 때 사용됩니다.

1. 클래스 구조 및 어노테이션

  • package com.zerobase.cms.order.client.user;: 이 클래스가 com.zerobase.cms.order.client.user 패키지에 속해 있음을 나타냅니다. 패키지는 관련 있는 클래스들을 묶어 관리하는 데 사용됩니다.
  • import lombok.AllArgsConstructor;: Lombok 라이브러리의 어노테이션으로, 모든 필드를 인수로 받는 생성자를 자동으로 생성해줍니다.
  • import lombok.Builder;: Lombok 라이브러리의 어노테이션으로, 빌더 패턴을 자동으로 생성해줍니다. 빌더 패턴은 객체 생성을 더 유연하고 가독성 좋게 만들어줍니다.
  • import lombok.Getter;: Lombok 라이브러리의 어노테이션으로, 모든 필드에 대한 getter 메서드를 자동으로 생성해줍니다.
  • import lombok.NoArgsConstructor;: Lombok 라이브러리의 어노테이션으로, 인수가 없는 기본 생성자를 자동으로 생성해줍니다.
  • @Builder: Lombok 라이브러리의 어노테이션으로, 빌더 패턴을 자동으로 생성해줍니다. 빌더 패턴을 사용하면 객체 생성 시 필요한 필드만 선택적으로 설정할 수 있으며, 코드 가독성을 높일 수 있습니다.
  • @NoArgsConstructor: Lombok 라이브러리의 어노테이션으로, 인수가 없는 기본 생성자를 자동으로 생성해줍니다. Spring Framework와 같은 프레임워크에서 객체를 생성할 때 기본 생성자가 필요한 경우가 많습니다.
  • @AllArgsConstructor: Lombok 라이브러리의 어노테이션으로, 모든 필드를 인수로 받는 생성자를 자동으로 생성해줍니다.
  • @Getter: Lombok 라이브러리의 어노테이션으로, 모든 필드에 대한 getter 메서드를 자동으로 생성해줍니다. getter 메서드는 객체의 필드 값을 외부에서 읽을 수 있도록 해줍니다.
  • public class ChangeBalanceForm { ... }: ChangeBalanceForm 클래스를 정의합니다. public은 이 클래스가 모든 패키지에서 접근 가능하다는 것을 의미합니다.

2. 클래스 필드

  • private String from;: 잔액 변경 요청을 보낸 주체를 나타내는 문자열입니다. 예를 들어, "USER", "ORDER" 등이 될 수 있습니다. private은 이 필드가 ChangeBalanceForm 클래스 내에서만 접근 가능하다는 것을 의미합니다.
  • private String message;: 잔액 변경 이유를 설명하는 문자열입니다. 예를 들어, "Order", "Refund" 등이 될 수 있습니다.
  • private Integer money;: 변경할 금액을 나타내는 정수입니다. 양수이면 잔액을 증가시키고, 음수이면 잔액을 감소시킵니다. Integer는 int 타입의 래퍼 클래스이며, null 값을 가질 수 있습니다.
    -> ChangeBalanceForm 객체에 잔액 변경에 필요한 정보를 담아 요청을 보내면, 사용자 서비스는 해당 정보를 바탕으로 사용자 잔액을 변경합니다.
package com.zerobase.cms.order.client.user;

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class CustomerDto {
    private Long id;
    private String email;
    private Integer balance;
}

고객 정보 전송 객체 (CustomerDto)

이 코드는 고객 정보를 담는 데이터 전송 객체 (DTO, Data Transfer Object)입니다. DTO는 주로 서비스 간에 데이터를 주고받을 때 사용되며, 데이터베이스의 엔티티와 유사하지만, 영속성을 가지지 않고 단순히 데이터를 담는 역할만 합니다.

1. 클래스 구조 및 어노테이션

  • package com.zerobase.cms.order.client.user;: 이 클래스가 com.zerobase.cms.order.client.user 패키지에 속해 있음을 나타냅니다. 패키지는 관련 있는 클래스들을 묶어 관리하는 데 사용됩니다.
  • import lombok.AllArgsConstructor;: Lombok 라이브러리의 어노테이션으로, 모든 필드를 인수로 받는 생성자를 자동으로 생성해줍니다.
  • import lombok.Getter;: Lombok 라이브러리의 어노테이션으로, 모든 필드에 대한 getter 메서드를 자동으로 생성해줍니다.
  • import lombok.NoArgsConstructor;: Lombok 라이브러리의 어노테이션으로, 인수가 없는 기본 생성자를 자동으로 생성해줍니다.
  • import lombok.Setter;: Lombok 라이브러리의 어노테이션으로, 모든 필드에 대한 setter 메서드를 자동으로 생성해줍니다.
  • @Getter: Lombok 라이브러리의 어노테이션으로, 모든 필드에 대한 getter 메서드를 자동으로 생성해줍니다. getter 메서드는 객체의 필드 값을 외부에서 읽을 수 있도록 해줍니다.
  • @Setter: Lombok 라이브러리의 어노테이션으로, 모든 필드에 대한 setter 메서드를 자동으로 생성해줍니다. setter 메서드는 객체의 필드 값을 외부에서 설정할 수 있도록 해줍니다.
  • @AllArgsConstructor: Lombok 라이브러리의 어노테이션으로, 모든 필드를 인수로 받는 생성자를 자동으로 생성해줍니다.
  • @NoArgsConstructor: Lombok 라이브러리의 어노테이션으로, 인수가 없는 기본 생성자를 자동으로 생성해줍니다. Spring Framework와 같은 프레임워크에서 객체를 생성할 때 기본 생성자가 필요한 경우가 많습니다.
  • public class CustomerDto { ... }: CustomerDto 클래스를 정의합니다. public은 이 클래스가 모든 패키지에서 접근 가능하다는 것을 의미합니다.

2. 클래스 필드

  • private Long id;: 고객 ID를 나타내는 정수입니다. Long은 long 타입의 래퍼 클래스이며, null 값을 가질 수 있습니다. private은 이 필드가 CustomerDto 클래스 내에서만 접근 가능하다는 것을 의미합니다.
  • private String email;: 고객 이메일 주소를 나타내는 문자열입니다.
  • private Integer balance;: 고객 잔액을 나타내는 정수입니다. Integer는 int 타입의 래퍼 클래스이며, null 값을 가질 수 있습니다.
반응형