N° 01 — 목록

'repository' (2)

  1. Software Architecture/DDD & Patterns

    DDD Patterns - 04. 앤터프라이즈 패턴

    도서관 사서에게 책을 빌리는 법 — Repository, Unit of Work, Specification도서관에서 책을 빌린다고 하자. 서가에 직접 들어가 책을 찾지 않는다. 사서에게 "이 책 찾아주세요" 하면 사서가 가져다 준다 — 책이 어디 칸에 있는지, 분류 체계가 어떻게 되어 있는지 빌리는 사람은 모른다. 여러 권을 한 번에 빌리면 사서가 대출 목록에 한꺼번에 기록한다. 찾을 때는 "파란 표지에 2020년 이후 출간된 소설"이라고 조건을 말한다.엔터프라이즈 패턴은 도메인 객체의 영속(persistence)을 이렇게 사서처럼 다룬다. Fowler의 (PoEAA)가 정리한 세 가지 핵심 패턴 — Repository, Unit of Work, Specification — 은 도메인이 데이터 접근 기술..

    · 댓글
  2. Backend Development/Spring Boot

    SpringBoot - 05. spring-data-jpa

    findById가 100번의 SELECT를 발생시킬 때 — Spring Data JPA와 N+1 문제JPA로 User 엔티티를 조회했다. 쿼리 로그를 보니 SELECT가 101번 실행됐다 — User 1번 + User의 Order 목록 100번. 이것이 N+1 문제다: 1번의 메인 쿼리 + N번의 연관 엔티티 조회. Hibernate는 지연 로딩(lazy loading)을 기본으로 하므로, 연관 컬렉션에 접근할 때마다 개별 쿼리가 실행된다.이 글은 Spring Data JPA의 핵심 — 엔티티 매핑, 리포지토리 메서드, N+1 해결(fetch join, @EntityGraph), 그리고 Hibernate 7.x(JPA 3.2) 기반을 풀어간다. (Spring Data JPA Reference)엔티티 매핑..

    · 댓글