01
스프링 부트와 JPA로 만드는 API 기본
회원 등록·수정·조회 API를 예제로, 엔티티를 요청·응답에 그대로 쓰지 않고 별도의 DTO로 API 스펙과 엔티티를 분리하는 방법과 수정 API에서 커맨드와 쿼리를 나누는 방법을 정리합니다.
2022.04.26 — 2022.04.28 · Spring JPA · 다 읽는 데 약 40분
회원 등록·수정·조회 API를 예제로, 엔티티를 요청·응답에 그대로 쓰지 않고 별도의 DTO로 API 스펙과 엔티티를 분리하는 방법과 수정 API에서 커맨드와 쿼리를 나누는 방법을 정리합니다.
주문과 회원·배송처럼 xToOne 관계를 조회하는 API를 엔티티 직접 노출, DTO 변환, 페치 조인, DTO 직접 조회 순서로 바꿔 가며 지연 로딩이 만드는 N+1 문제와 쿼리 수 변화를 정리합니다.
일대다 컬렉션을 포함한 주문 조회 API를 엔티티 노출부터 페치 조인, 배치 사이즈, DTO 직접 조회, 플랫 데이터까지 단계별로 최적화하는 방법을 정리합니다.
OSIV를 켰을 때와 껐을 때 영속성 컨텍스트와 데이터베이스 커넥션이 유지되는 범위와 트레이드오프를 살펴보고, Command와 Query를 분리해 복잡성을 관리하는 방법을 정리합니다.