본문 바로가기
반응형

분류 전체보기46

Spring Data JPA - N + 1 문제 ① Java/Spring, Kotlin/Spring을 사용하는 백엔드 개발자에게 JPA는 선택이 아닌 필수로 가져가야 할 기술이 되었습니다. JPA는 C언어의 꽃인 포인터처럼 Spring의 꽃이라고 생각합니다. 그래서 JPA를 사용하면서 얻는 장점의 이면에 있는, JPA의 동작 원리를 정확히 알고 넘어가지 않으면 마주칠 수밖에 없는 N + 1 문제에 대해서 정리하려고 합니다. 해결 방법은 다음장에 준비하도록 하겠습니다. 프로젝트 버전 개발 도구: IntelliJ Ultimate Spring Boot: 2.5.7 Java 11 h2 Database Spring Data JPA 의존성 추가 [build.gradle] JUnit 5 예시로 사용될 Entity는 Member, Team 이렇게 둘입니다. Member.. 2021. 11. 29.
Spring Data JPA - Auditing 오늘은 Spring Data JPA에서 제공하는 유용한 기능인 Auditing에 대해서 정리해보려고 합니다. 백엔드 그리고 DB 쪽 개발을 하다 보면 테이블에 공통적으로 들어가는 Column이 있습니다. 등록한 날짜 마지막으로 수정한 날짜 등록한 사람 마지막으로 수정한 사람 그래서 Spring Data JPA에서는 테이블에 들어가야 하는 위와 같은 필수적인 Column을 쉽게 사용할 수 있도록 Auditing이라는 기능을 제공합니다. [순수한 JPA를 사용했을 때의 방법]과 [Spring Data JPA에서 제공하는 방법] 2가지로 나누어서 정리하겠습니다. 프로젝트 버전 개발 도구: IntelliJ Ultimate Spring Boot: 2.5.7 Java 11 h2 Database Spring Data.. 2021. 11. 28.
API 문서 자동화 - Spring REST Docs Document RESTful services by combining hand-written documentation with auto-generated snippets produced with Spring MVC Test. The aim of Spring REST Docs is to help you produce accurate and readable documentation for your RESTful services. 출처: https://docs.spring.io/spring-restdocs/docs/current/reference/html5/ 위 글은 Spring REST Docs의 공식 문서에 있는 글입니다. Spring REST Docs를 사용하면 저희가 만든 API에 읽기 쉬운 문서를 자.. 2021. 11. 27.
Spring Data JPA - Save Method 동작 방식 Spring Data JPA에서 제공하는 JpaRepository.save(T); [T는 Entity]의 내부 동작 방식에 대해서 정리하려고 합니다. JPA에서의 save 메서드 구현체 코드는 다음과 같습니다. // SimpleJpaRepository.java [JPA 구현체] @Transactional @Override public S save(S entity) { Assert.notNull(entity, "Entity must not be null."); if (entityInformation.isNew(entity)) { // 1 em.persist(entity); // 2 return entity; // 3 } else { // 4 return em.merge(entity); // 5 } } JP.. 2021. 11. 26.
반응형