전체 글
-
[Spring] 프로젝트에서 MyBatis ResultMap을 사용하게된 이유Server/Spring 2021. 11. 18. 22:05
MyBatis ResultMap 사용하게 된 이유 이번 글에서는 프로젝트에서 MyBatis를 사용하면서 ResultMap을 사용한 것에 대해서 정리해보겠습니다.(ResultMap이 어떤 것인지?를 정리한 것이라기 보다 프로젝트에서 왜 ResultMap을 썼고 어떻게 적용했는지 정도만 정리해두려 작성하는 글입니다!) MyBatis 사용하는 법이 궁금하다면 여기 에서 확인할 수 있습니다. 제가 프로젝트에서 사용하고 있는 Layer를 간단하게 그리면 위와 같습니다. 즉, 클라이언트에게 받아온 DTO를 Service Layer에서 DTO -> Entity 과정을 거친 후에 DB Layer에 영속화 시키는 작업을 하고 있습니다. 그리고 DB Layer에서 조회한 결과들도 Service Layer에서 Entity ..
-
[Spring] Spring Data JPA에서 Auditing 사용하는 법Server/JPA 2021. 11. 9. 12:05
JPA AuditingEntityListener 알아보기 위의 코드는 제가 작성했던 코드인데요. 누군가 저에게 아래와 같이 물었습니다. LocalDateTime.now() 코드는 왜 작성한거야? 위의 질문을 듣고 아.. BaseEntity를 통해서 생성시간, 수정시간을 저장하기 위해서 만들었는데 now() 코드는 없어도 되려나? 라는 생각이 들었습니다. 지금 생각하면 당연히 없어도 될 코드인데 왜 저렇게 작성했나 싶지만.. 어쨋든 AuditingEntityListener가 어떻게 동작하는지 잘 모르고 사용하고 있는 거 같아서 이번 글에서는 JPA AuditingEntityListener를 어떻게 사용하고 어떤 원리로 동작하는 것인지 알아보겠습니다. JPA Auditing 이란? 언제 만들어졌는지, 언제 ..
-
[Spring] Spring Data JPA에서 Paging 간단하게 구현하는 법Server/JPA 2021. 11. 8. 20:44
Spring Data JPA에서 페이징 구현하는 법 이번 글에서는 Spring Data JPA에서 Paging을 구현하는 법에 대해서 알아보겠습니다. 저는 JPA에 대해서 이제 공부하는 단계라 페이징을 처음 구현해보는데요. 공부하기 전에도 JPA로 페이징을 구현하는게 어렵다 라는 말은 많이 듣기만 해봤는데 이번 기회에 한번 공부해보면서 정리를 해보겠습니다. (이번 글의 코드를 보고 싶다면 Github 에서 확인하실 수 있습니다.) 페이징은 위의 보이는 것처럼 한 화면에 다 보여줄 수 없기 때문에, 페이지를 나눠서 게시글을 보여주는 것을 말하는데요. 페이징을 구현하는 방법, 성능을 개선하는 방법 등등 정말 다양하고 복잡하지만 초급자의 마음으로 정리해보겠습니다. 이번 글에서 사용할 기술 Java 11 Spr..
-
[Spring] Primitive boolean Type is Remove Jackson 직렬화 문제 해결하기Server/Spring 2021. 11. 7. 17:25
Primitive boolean Type에서 isXX에서 is가 사라지는 Jackson 직렬화 문제 해결하기 이번 글에서는 Spring Boot에서 DTO를 클라이언트에 JSON 으로 Response 할 때 isXXX 네이밍에서 is가 사라지는 문제를 해결하는 아주 간단한 과정을 공유해보려 합니다. 프로젝트를 진행하면서 위와 같은 DTO를 클라이언트에게 반환하고 있었습니다. 보면 Primitive Type boolean의 isFailedGroupQuiz 라는 필드가 존재하는 것도 볼 수 있습니다. 그래서 이제 해당 DTO가 사용되는 API를 Postman으로 호출해보겠습니다. 응답 값을 보면 DTO에 분명 isFailedGroupQuiz 라고 적었지만, FailedGroupQuiz라고 오는 것을 볼 수 ..