본문 바로가기
관리자

Programming-[Backend]/Spring

(76)
[TIL] @NotNull, @NonNull, @NotEmpty, @NotBlank, required=true 컨트롤러 파라미터 필수값 처리 Controller 파라미터 필수값으로 표시하고, 처리하기 Controller에서 파라미터로 받아오는 값을 필수값으로 처리하고, 표시하고 싶다면 @NotNull과 @Schema(required=true, ...)를 사용하면 된다. required = true는 @Schema 어노테이션의 속성이므로 Swagger의 문서상에서 프론트 엔드쪽에 보여질 때 required로 표시를 하는 옵션이고, 실제 @NotNull은 해당 값이 파라미터로 들어오지 않으면 에러를 반환한다. 만약 에러 메시지를 지정하고 싶다면 @NotNull(message = " ... " ) 속성을 사용하면 된다. @NonNull, @NotEmpty, @NotBlank NonNull은 데이터값이 Null이면 안된다. Null이면 에러를 반환한..
[TIL] Controller 필드 중 LocalDate 처리하기, @DateTimeFormat, Swagger Controller의 파라미터의 필드 값 중 LocalDate 타입이 있을 때는, @DateTimeFormat 어노테이션을 추가해주어야 한다. 1 2 3 @Schema(description = "받아올 날짜", type = "LocalDate", example = "2021-04-28") @DateTimeFormat(pattern = "yyyy-MM-dd") private LocalDate parentsDay Colored by Color Scripter cs 그러면 아래와 같이 Swagger에서 지정해준 날짜 포맷으로 입력 시, 정상적으로 동작한다.
[TIL][에러] 스프링 Projections constructor, No constructor found for class 상황 QueryDsl을 이용해서 Entity 에서 전체 필드를 호출하는 것이 아니라, 특정 필드들만 호출하거나, 연관된 다른 Entity의 필드를 동시에 호출하고 싶다면 아래와 같이 Projections.constructor를 사용한다. Repository쪽 코드 1 2 3 4 5 6 7 8 9 10 jpaQueryFactory .select(Projections.constructor(XxxDto.class , Xxx1Entity.id.as("id") , Xxx1Entity.name.as("siteName") , Xxx2Entity.visitor ) ) .from(...) ... Colored by Color Scripter cs XxxDto쪽 코드 1 2 3 4 5 6 7 8 9 @Data @Build..
[TIL][TDD] 스프링 TDD 개발 방법론 개요 필요성 정확한 프로그램을 만들기 위해서 생각할 수 있는 최대한의 경우의 수를 테스트 해보는 것이 당연히 유리하다. 그리고 이러한 테스트를 하나의 기능별로 구분해서 진행해본다면, 개발자가 명확한 논리를 갖게 되고 테스트를 하는 것이 쉬워진다. 또한 새로운 기능이 추가되거나 수정사항이 생기더라도 어떤 테스트에서 문제가 생겼는지 정확히 알 수 있고 유지보수하기가 편함을 상식적으로 알 수 있다. 위 방법대로 수행하는 것이 일반적이다. 그러나 TDD는 Test Driven Development로, 비즈니스 로직 -> 테스트 케이스 -> 메서드(실제 코드) 순으로 작성한다. 즉 메서드를 검증하기 위한 수단으로 테스트 코드를 작성하는 것이 아니라, 테스트 코드를 통과할 수 있는 소스 코드(메서드)를 짜는 방식으로 작..