Software Engineering 11

[Spring Boot] 일관적인 API 응답 RestResult, RestError

목차개요HttpStatus 간략 설명RestResult, RestError 코드컨트롤러 구현개요Spring Boot에서 클라이언트에게 어떻게 일관적인 응답을 줄 것인가?Spring Boot로 개발을 했던 사람이라면 INTERNAL_SERVER_ERROR 라는 에러를 만나봤을 것이다.BAD_REQUSET 인 경우에도 개발자가 예외처리를 하지 않으면 INTERNAL_SERVER_ERROR 로 나오기도 한다.HttpStatus 간략 설명HttpStatus 코드는 성공과 실패 케이스로 나뉜다.자주 볼 수 있는 실패 케이스는 다음과 같다.HttpStatusCode설명OK200성공BAD_REQUEST400클라이언트가 요청 인자를 잘못 보냈을 때UNAUTHORIZED401인증 실패FORBIDDEN403인가 실패NOT..

[Spring Boot] API 응답에 null 값 포함 안 시키는 어노테이션

@Getter@AllArgsConstructor@NoArgsConstructorpublic class UserDto { @NotNull private Long id; @JsonInclude(JsonInclude.Include.NON_NULL) private String username; @JsonInclude(JsonInclude.Include.NON_NULL) private String email;}@JsonInclude(JsonInclude.Include.NON_NULL) 어노테이션을 사용하면 해당 값이 null일 경우에 json 응답으로 전달하지 않는다.

[Spring Boot] H2GIS와 QueryDSL을 사용한 단위 테스트

목차운영/개발 환경 vs 단위 테스트 환경설정 코드샘플 코드[운영/개발 환경 vs 단위 테스트 환경]실제 개발 환경에서는 postgresql에 postgis를 확장해서 사용했는데 Spring Boot에서 테스트 할 때는 실제 운영/개발 서버 DB를 사용하지 않고 인 메모리(in-memory) DB를 사용한다. 주로 사용하는 인 메모리 DB는 H2, HSQLDB(HyperSQL Database), Apache Derby가 있다. 그 중에서 나는 H2 Database를 사용했다. 실제 운영/개발 서버 환경에서 postgresql에 postgis를 확장해서 사용한 것 처럼 테스트 환경에서도 gis 함수를 사용하려면 H2 Database에 H2GIS를 추가해야한다. (예를들면 ST_AsGeojson 함수 사용가..