본문 바로가기

jpa11

JPA - save() & saveAll() 성능 비교 분석 JPA를 사용하면 데이터를 저장할 때 save와 saveAll 함수를 사용하여 데이터를 저장할 수 있다. 두가지 함수의 차이는 데이터를 한번에 한 개를 저장하느냐 N개를 저장하느냐의 차이다. 만약 10개를 데이터를 저장해야 될 때 save()를 통해 데이터를 10번 저장하는 것과 saveAll()을 통해 한번에 데이터를 저장하는 것이 성능적으로 어떻게 차이가 있을지에 대한 궁금점을 해결하기 위한 글이다. save() vs saveAll() 성능 비교 분석 save() vs saveAll() 성능 테스트 거두절미하고 바로 N개의 데이터에 대하여 save()와 saveAll()에 두가지 함수에 대해서 성능을 측정해본다. 성능 테스트 코드는 아래 코드를 참고하자. @Test @Transactional fun .. 2023. 5. 27.
@WebMvcTest를 이용한 REST API 테스트 중 맞이한 에러 해결기 (2) 이 글은 @WebMvcTest를 이용한 테스트 과정 중 두번째로 맞히한 에러 상황과 해결 방법에 대해 정리한 글이다. 첫번째 에러 상황이 궁금하다면 아래 글에 정리를 해놓았다. 첫번째 에러 상황 @WebMvcTest를 이용한 REST API 테스트 중 맞이한 에러 해결기 (1) @WebMvcTest를 사용하면 Controller만 단위 테스트가 가능하다. @SpringBootTest를 사용하면 통합테스트가 되기 때문에 Controller만 단위 테스트를 하기 위해서는 @WebMvcTest를 이용하면 된다. @SpringBootTest를 사 sjparkk-dev1og.tistory.com @WebMvcTest를 이용한 REST API 테스트 중 맞이한 에러 해결기 (2) 에러 상황 에러 로그의 일부분은 복.. 2022. 12. 7.
@WebMvcTest를 이용한 REST API 테스트 중 맞이한 에러 해결기 (1) @WebMvcTest를 사용하면 Controller만 단위 테스트가 가능하다. @SpringBootTest를 사용하면 통합테스트가 되기 때문에 Controller만 단위 테스트를 하기 위해서는 @WebMvcTest를 이용하면 된다. @SpringBootTest를 사용해도 테스트에 문제는 없지만 통합테스트가 목적이 아닌 단위테스트가 목적이기 때문에 목적에 맞게 @WebMvcTest를 사용하는 것을 추천한다. 이 글은 @WebMvcTest를 이용한 테스트 과정 중 첫번째로 맞히한 에러 상황과 해결 방법에 대해 정리한 글이다. @WebMvcTest를 이용한 REST API 테스트 중 맞이한 에러 해결기 (1) 에러 상황 @WebMvcTest를 이용하여 테스트 코드를 작성 중 다음과 같은 오류를 맞이했다. No.. 2022. 12. 2.
자바 ORM 표준 JPA 프로그래밍 - JPA 정리하기 (12) 스프링 데이터 JPA 자바 ORM 표준 JPA 프로그래밍 - JPA 정리하기 (12) 스프링 데이터 JPA 12.1 스프링 데이터 JPA 소개 스프링 데이터 JPA는 스프링 프레임워크에서 JPA를 편리하게 사용할 수 있도록 지원하는 프로젝트 데이터 접근 계층을 개발할 때 구현 클래스 없이 인터페이스만 작성해도 기본적인 CRUD 개발 완료할 수 있음 리포지토리 인터페이스의 구현체는 애플리케이션 실행 시점에 스프링 데이터 JPA가 생성해서 주입해준다. 12.1.1 스프링 데이터 프로젝트 스프링 데이터 프로젝트는 JPA, 몽고 디비, 레디스, 하둡 등과 같은 다양한 데이터 저장소에 대한 접근을 추상화해서 개발자 편의를 제공하고 지루하게 반복하는 데이터 접근 코드를 줄여준다. 스프링 데이터 JPA 프로젝트는 JPA에 특화된 기능을 .. 2022. 11. 6.
자바 ORM 표준 JPA 프로그래밍 - JPA 정리하기 (10-2) 객체 지향 쿼리 언어 JPQL / Criteria / QueryDSL / 네이티브 SQL / JDBC 직접 사용 / SQL 매퍼에 대한 개념을 정리한다. 10강의 나머지 2편을 정리한다. 자바 ORM 표준 JPA 프로그래밍 - JPA 정리하기 (10-2) 객체 지향 쿼리 언어 10.3 Criteria JPQL을 자바 코드로 작성하도록 도와주는 빌뎌 클래스 API 문자가 아닌 코드로 작성하므로 문법 오류를 컴파일 단계에서 잡을 수 있고 문자 기반의 JPQL보다 동적 쿼리를 안전하게 생성 가능 하다는 장점 하지만 코드가 복잡하고 장황해서 직관적 이해가 떨어지는 단점 10.3.1 Criteria 기초 검색 조건부터 정렬까지 Criteria 빌더를 사용해서 코드를 완성함 쿼리 루트를 만들고 쿼리 루트는 조회의 시작점 10.3.2 C.. 2022. 10. 30.
자바 ORM 표준 JPA 프로그래밍 - JPA 정리하기 (10-1) 객체 지향 쿼리 언어 JPQL / Criteria / QueryDSL / 네이티브 SQL / JDBC 직접 사용 / SQL 매퍼에 대한 개념을 정리한다. 10강은 내용이 많아 1편과 2편으로 나눠서 정리한다. 자바 ORM 표준 JPA 프로그래밍 - JPA 정리하기 (10-1) 객체 지향 쿼리 언어 10.1 객체지향 쿼리 소개 ORM을 사용하면 데이터베이스 테이블이 아닌 엔티티 객체를 대상으로 개발하므로 검색도 테이블이 아닌 엔티티 객체를 대상으로 하는 방법이 필요하여 만들어진 것이 JPQL JPQL 특징 테이블이 아닌 객체를 대상으로 검색하는 객체지향 쿼리 SQL을 추상화해서 특정 데이터베이스 SQL에 의존하지 않는다. JPA는 JPQL 뿐만 아니라 다양한 검색 방법 제공 JPA가 공식 지원하는 기능 JPQL (Java Pe.. 2022. 10. 5.