응답 통일과 예외 처리를 위한 코드를 작성하면서 예외 처리에 대한 내용을 정리하고 있었습니다.

위와 같이 코드를 작성하였고 저는 isSuccess, code, message, result와 같은 순서로 출력이 되기를 원했습니다.

하지만 다음과 같이 code, message, result, success의 순서로 지정되어 나타나는 것을 확인할 수 있었습니다.
이를 통해 가독성이 낮아지며 이는 다른 실수가 생길 확률을 높여 별로 좋은 모습은 아니라고 생각합니다.
package practice.project.todo_list.global.response;
import lombok.Getter;
//@Getter
public class SuccessResponseDto<T> extends BaseResponseDto {
private final T result;
private SuccessResponseDto(T result) {
super(true, "200", "Success!!");
this.result = result;
}
private SuccessResponseDto() {
super(true, "200", "Success!!");
this.result = null;
}
public boolean getSuccess() {
return this.success;
}
public String getCode() {
return this.code;
}
public String getMessage() {
return this.message;
}
public T getResult() {
return result;
}
}
다음과 같이 getter를 순서에 맞게 적어주면 놀랍게도 해결이 가능하다.
package practice.project.todo_list.global.response;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import lombok.Getter;
@Getter
@JsonPropertyOrder({"success", "code", "message", "result"})
public class SuccessResponseDto<T> extends BaseResponseDto {
private final T result;
private SuccessResponseDto(T result) {
super(true, "200", "Success!!");
this.result = result;
}
private SuccessResponseDto() {
super(true, "200", "Success!!");
this.result = null;
}
public static <T> SuccessResponseDto<T> success(T result) {
return new SuccessResponseDto<>(result);
}
public static <T> SuccessResponseDto<T> success() {
return new SuccessResponseDto<>();
}
}
JsonPropertyOrder어노테이션을 사용하여 간단하게 순서를 정해보았습니다. 결과는 아주 잘 나왔습니다.
