반응형 spring10 Spring Data JPA - N + 1 문제 ② 해결 방법 안녕하세요, 오늘은 이전에 알아보았던 N + 1 문제의 해결 방법에 대해서 정리하려고 합니다. 이전 글(N + 1 문제에 대한 설명)을 확인하고 싶으시면 아래 글을 참조해주시길 바랍니다. 2021.11.29 - [Spring Data JPA] - Spring Data JPA - N + 1 문제 ① 프로젝트 버전 [①편에서 사용한 프로젝트에 이어서 진행할 예정입니다.] 개발 도구: IntelliJ Ultimate Spring Boot: 2.5.7 Java 11 h2 Database Spring Data JPA 의존성 추가 [build.gradle] JUnit 5 ①편에서 작성한 코드처럼 하나의 쿼리를 위해 부수적인 쿼리가 실행되는 것은 말도 안 되고, 애플리케이션에 불필요한 부하를 일으키게 됩니다. 그래서.. 2021. 12. 2. 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. 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. 이전 1 2 다음 반응형