본문 바로가기

프로그래밍/JPA

(3)
N+1 (블로그글 요약함) https://jojoldu.tistory.com/165 JPA N+1 문제 및 해결방안 안녕하세요? 이번 시간엔 JPA의 N+1 문제에 대해 이야기 해보려고 합니다. 모든 코드는 Github에 있기 때문에 함께 보시면 더 이해하기 쉬우실 것 같습니다. (공부한 내용을 정리하는 Github와 세미나+ jojoldu.tistory.com 하위 엔티티들을 첫 쿼리 실행시 한번에 가져오지 않고, Lazy Loading으로 필요한 곳에서 사용되어 쿼리가 실행될때 발생하는 문제가 N+1 쿼리 문제 join fetch를 사용하는 것 @Query("select a from Academy a join fetch a.subjects") 이 방법은 불필요한 쿼리문이 추가되는 단점이 있습니다. 2번째 방법은 @EntityG..
[Tutorial] JPA With Postgres and SpringBoot * 해당 내용들은 백기선님의 JPA 강의를 정리하면서 작성되었습니다. 1. Postgres 셋팅 # postgres docker docker run -d -p 5432:5432 --name postgres_boot -e POSTGRES_USER=kkwonsy -e POSTGRES_PASSWORD=pass postgres # into bashdocker exec -i -t postgres_boot bash -i : interactive -t : target # access# psql -U kkwonsy # database 생성postgres=# CREATE DATABASE springdata; # 확인 \list\l # database 선택\c springdata; 2. ORM # JDBC 대신 도메인 모..
SpringBoot JPA (feat. h2 db) 이번 포스팅은 SpringBoot와 JPA를 다루는 방법에 대해 아주 간략하게 작성했다. 로컬에서 개발환경을 구축하면 H2 DB를 많이들 사용하곤 한다.H2 DB는 설치형이 아닌 SpringBoot에 Embedded 되어 있기 때문인 듯 하다.즉, 로컬에 MySQL 등의 설치가 안되어 있어도 프로젝트를 로컬환경에서 실행할 수 있어 외부 미들웨어에 대한 디펜던시를 없애는 장점이 있다. 디펜던시 걸기implementation 'org.springframework.boot:spring-boot-starter-data-jpa' runtimeOnly 'com.h2database:h2' 여기서 H2 DB는 일반적으로 웹형태의 콘솔을 사용하기 때문에 불편한 점이 많다. IntelliJ에서 Database Client..