스프링 데이터 JPA 4
강의 : 실전! 스프링 데이터 JPA 5. 스프링 데이터 JPA 분석 5-1. 스프링 데이터 JPA 구현체 분석 org.springframework.data.jpa.repository.support.SimpleJpaRepository가 스프링 데이터 JPA의 구현체이다. @Repository @Transactional(readOnly = tru...
강의 : 실전! 스프링 데이터 JPA 5. 스프링 데이터 JPA 분석 5-1. 스프링 데이터 JPA 구현체 분석 org.springframework.data.jpa.repository.support.SimpleJpaRepository가 스프링 데이터 JPA의 구현체이다. @Repository @Transactional(readOnly = tru...
강의 : 실전! 스프링 데이터 JPA 4. 확장 기능 4-1. 사용자 정의 레포지토리 구현 스프링 데이터 JPA 레포지토리는 JpaRepository 인터페이스만 정의하고 구현체는 스프링이 자동 생성한다. JpaRepository 인터페이스를 직접 구현하려면 구현할 기능이 너무 많다. 주로 JPA 직접 사용(EntityManager), JDB...
강의 : 실전! 스프링 데이터 JPA 3. 쿼리 메소드 기능 3-1. 메소드 이름으로 쿼리 생성 스프링 데이터 JPA는 메소드 이름을 분석해서 JPQL을 생성하고 실행한다. @Repository public class MemberJpaRepository { @PersistenceContext private EntityManage...
강의 : 실전! 스프링 데이터 JPA 1. 순수 JPA 기반 Repository MemberJpaRepository와 TeamJpaRepository는 @PersistenceContext 애노테이션을 사용해 EntityManager를 명시적으로 주입받아 사용하는 JPA 기반 Repository 이다. @Repository public class ...
강의 : 실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화 4. 영속성 컨텍스트와 트랜잭션 4-1. 영속성 컨텍스트와 트랜잭션 유무에 따른 CRUD 동작 JPA에서 조회는 영속성 컨텍스트가 살아 있으면 트랜잭션이 없어도 조회가 가능하다. 그러나 삽입, 수정, 삭제는 영속성 컨텍스트와 트랜잭션이 살아있어야 한다. 영속성 컨텍스...
강의 : 실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화 4. 컬렉션 조회 최적화 주문내역에서 추가로 주문한 상품 정보를 추가로 조회한다. Order에서 컬렉션으로 참조하는 OrderItem과 Item이 필요하다. 이전 문서의 “3. 지연 로딩과 조회 성능 최적화”에선 OneToOne, ManyToOne 관계만 있었다. 이번에...
강의 : 실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화 1. Rest API 요청을 받기 위한 별도의 DTO를 만든다. 실무에서는 API 파라미터로 엔티티를 사용하거나 외부에 노출하면 안된다. 엔티티에 @NotEmpty 같은 API 검증을 위한 로직이 들어가면, 엔티티에 프레젠테이션 계층을 위한 로직이 추가된다. 실무에서...
강의 : 실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발 질문 11. DAO를 사용할 때 장점을 트랜잭션 스크립트 구조 개발했을 때와 비교해서 설명해 줘 DAO 패턴과 트랜잭션 스크립트 패턴은 둘 다 실제 서비스 로직을 구성할 때 쓰이지만, 관심사의 분리 수준, 코드 조직 방식, 유지보수성 등에서 차이가 있어요. ✅ 비교 대상 ...
강의 : 실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발 질문 1. JPA 연관관계 매핑 분석에서 연관관계의 주인을 정해야 하는 이유가 뭐야? JPA 연관관계 매핑에서 연관관계의 주인을 정하는 이유는 데이터베이스에 저장될 외래 키(Foreign Key)를 어느 엔티티가 관리할지를 명확히 하기 위해서입니다. 이는 일대다, 다대일, 일...
책 : 컨테이너 인프라 환경 구축을 위한 쿠버네티스/도커 질문 1. 쿠버네티스에서 호스트 전용 네트워크는 뭐야? 쿠버네티스에서 “호스트 전용 네트워크”는 파드(Pod)가 노드의 네트워크 네임스페이스를 공유하는 네트워크 모드를 의미합니다. 이는 파드가 노드의 IP 주소를 사용하고, 노드의 네트워크 인터페이스를 통해 직접 통신할 수 있음을 의미합니...