@Getter
@Setter
@AllArgsConstructor
public class RsData<T> {
private String resultCode;
private String msg;
private T data;
public static <T> RsData<T> of(String resultCode, String msg, T data) {
return new RsData<>(resultCode, msg, data);
}
public static <T> RsData<T> of(String resultCode, String msg) {
return of(resultCode, msg, null);
}
@JsonIgnore
public boolean isSuccess() {
return resultCode.startsWith("S-");
}
@JsonIgnore
public boolean isFail() {
return !isSuccess();
}
resultCode: 응답 결과를 나타내는 문자열입니다. 일반적으로 성공 여부를 나타내는 코드가 포함됩니다. 예를 들어 "S-"로 시작하는 코드는 성공을 나타내고, "F-"로 시작하는 코드는 실패를 나타냅니다.
msg: 결과에 대한 설명이나 메시지를 포함하는 문자열입니다. 실패한 경우 추가 정보를 제공할 수 있습니다.
data: 응답 데이터를 포함하는 제네릭 타입입니다. 주로 성공한 경우 데이터를 담을 수 있습니다.
of() 메서드: 결과 및 메시지와 함께 RsData 객체를 생성하는 정적 메서드입니다. 데이터가 포함된 경우와 포함되지 않은 경우 두 가지 버전이 있습니다.
isSuccess() 및 isFail() 메서드: 응답 결과를 확인하기 위한 메서드로, 결과 코드가 성공 또는 실패를 나타내는지 확인
T는 임시적인 것 같음, 다른 이름으로 설정해도 상관 없는것 같음
RsData은 문자열을 데이터로 포함하는 RsData 객체를 생성하고, RsData는 정수를 데이터로 포함하는 RsData 객체를 생성할 수 있습니다. T를 사용하면 RsData 클래스를 여러 타입에 대해 재사용할 수 있으며, 유연성과 확장성을 제공
startsWith:
문자열이 특정 문자열 또는 문자로 시작하는지 여부를 확인하는 메서드입니다. 주어진 문자열이 특정 접두사로 시작하는지를 판별할 때 사용됩니다.
예를 들어, "Hello World".startsWith("Hello")는 문자열 "Hello World"가 "Hello"로 시작하는지를 확인하고, 그 결과로 true를 반환합니다. 또한, "Apple".startsWith("Banana")은 문자열 "Apple"이 "Banana"로 시작하지 않으므로 false를 반환
사용이유: 정적 생성으로 보여줄 파일을 미리 만들고 데이터 프리페칭으로 사용자가 원하기 전에 미리 가져오고 서버 사이드 렌더링으로 사용자에게 화면에 결과를 보여주
RsData는 주로 API 요청에 대한 결과를 나타내는데 사용됩니다. 성공 또는 실패 여부와 그에 따른 메시지를 클라이언트에게 전달하여 화면에 알립니다.