최근 포스트

JPA Criteria로 관계 설정 없이 조인하기

JPA Criteria에서 Entity 관계를 설정한 경우에는 조인 쿼리를 통해서 Entity를 조회할 수 있습니다. Order와 Member가 N:1로 설정되어 있을 때 JPA Criteria로 조회하는 방법을 확인해보겠습니다. @Entity @Table(name = "memb...

@ManyToOne의 N+1 문제 원인 및 해결

Hibernate에서 @ManyToOne의 FetchType을 LAZY로 설정해도 추가 쿼리가 실행되는 이유와 N+1 현상이 발생하는 과정을 확인해보겠습니다.

Spring Boot Actuator Graceful Shutdown

Spring Boot 환경에서 application을 shutdown 하는 방법 중 대표적인 것이 actuator의 shutdown endpoint 기능을 이용하는 것입니다. 이 endpoint는 예상과 달리 처리 중인 요청이 있더라도 그냥 shutdown 처리를 합니다. 정말로 ...

Spring Boot Bean Validation 제대로 알고 쓰자

지난번에 작성한 Java Bean Validation 제대로 알고 쓰자에 이어서 Spring Boot 환경에서 Validation을 어떻게 사용할 수 있는지 확인해보겠습니다. Spring에서도 Hibernate Validator를 사용합니다. Java Bean Validation에...

Java Bean Validation 제대로 알고 쓰자

개발하면서 제일 중요하게 생각하는 것 중에 하나가 validation입니다. 개발하고 운영하다 보면 클라이언트로부터 입력받은 값의 오류로 발생하는 장애가 꽤 많습니다. 잘못된 값을 전달받아 즉시 오류가 발생하면 그나마 다행입니다. 오류 없이 그대로 데이터가 저장이나 수정되고 그 데...

Enum and Jackson in Spring

지난번에 작성한 Enum and @RequestParam in Spring에 이어서 이번에는 JSON으로 전달된 Request Body에서 Enum 타입을 처리하려면 어떻게 해야 하는지 확인해보겠습니다.