ERROR, DTO, COMMON(Responce) - TIMESTAMP,

{
	"stauts" : "S000",
	"data" : {
		
	},
	"message" : "상품을 성공적으로 조회했습니다."
}
@Getter
@NoArgsConstructor(access = AccessLevel.PROTECTED)
public class ApiResponse<T> implements Serializable {

	private static final String SUCCESS_STATUS = "C000";

	private String status;
	private T data;
	private String message;

	public static <T> ApiResponse<T> createSuccess(T data, String message) {
		return new ApiResponse<>(SUCCESS_STATUS, data, message);
	}

	public static ApiResponse<?> createSuccessWithNoContent(String message) {
		return new ApiResponse<>(SUCCESS_STATUS, null, message);
	}

	// 예외 발생으로 API 호출 실패시 반환
	public static ApiResponse<?> createError(ErrorCode errorCode) {
		return new ApiResponse<>(errorCode.getCode(), null, errorCode.getMessage());
	}

	private ApiResponse(String status, T data, String message) {
		this.status = status;
		this.data = data;
		this.message = message;
	}
}

// JWT
compileOnly 'io.jsonwebtoken:jjwt-api:0.11.5'
runtimeOnly 'io.jsonwebtoken:jjwt-impl:0.11.5'
runtimeOnly 'io.jsonwebtoken:jjwt-jackson:0.11.5'