BaseResponseCode

public enum BaseResponseCode {
    SUCCESS,    // 성공
    ERROR,      // 에러
    DATA_IS_NULL,   // 데이터가 NULL
    ;
}

BaseResponse

public class BaseResponse<T> {
    private BaseResponseCode code;
    private String message;
    private T data;

    // 성공일 경우 응답
    public BaseResponse(T data) {
        this.code = BaseResponseCode.SUCCESS;
        this.data = data;
    }

    // 예외처리할 경우 응답
    public BaseResponse(BaseResponseCode code, String message) {
        this.code = code;
        this.message = message;
    }
}

BaseException

public class BaseException extends AbstractBaseException {

    public BaseException(BaseResponseCode responseCode) {
        this.responseCode = responseCode;
    }
}

Controller 예시

@RestController
@RequestMapping
public class UserController {

    @GetMapping("/test")
    public BaseResponse<String> testController() {
        String res = "응답데이터";

        if (res == null) throw new BaseException(BaseResponseCode.DATA_IS_NULL);

        return new BaseResponse<String>(res);
    }
}

참고영상

https://www.youtube.com/watch?v=kSII5YLTX2o&t=259s

https://www.youtube.com/watch?v=UOUTNs_86o8&t=609s