[JPA] spring data jpa configuration 이해하기

su_y2on·2022년 6월 20일
0

JPA

목록 보기
17/17
post-thumbnail

spring data jpa configuration 이해하기

spring data jpa와 mysql을 함께 사용하면서 spring boot에서 해줘야할 설정들을 살펴보면서 데이터베이스에 어떻게 접근하는지에 대해서도 살펴보려고합니다. (항상 설정이 제일 귀찮고 어려운 것 같아요..🥲)




설정은 여러가지 방법들로 할 수 있습니다. xml이나 java로 작성할 수도 있지만 저는 조금 편하게 작성하기 위해 application.yaml에 작성하도록 하겠습니다.

먼저 완성본은 아래와 같습니다. 더 화려하게 작성할 수도 있지만 나중에 필요하면 추가하려고 필요하다고 생각하는 것들만 넣어줬습니다.

spring:
  jpa:
    show-sql: true
    hibernate:
      ddl-auto: create-drop
    properties:
      dialect: org.hibernate.dialect.MySQL8Dialect
  datasource:
    url: jdbc:mysql://localhost:3306/test
    username: root
    password: 1234
    hikari:
      maximum-pool-size: 20




사실 그냥 spring data jpa설정으로만 검색하면 이런 내용은 쉽게 찾을 수 있습니다. 중요한 것은 이렇게 적어주는 이유! 따라서 코드를 뜯어보며 java가 어떻게 데이터베이스에 연결하고 접근하는지를 이해해보기로 했습니다~



1. JPA

먼저 가장 상위에 있는 JPA는 (사실 순서는 상관없지만요ㅎㅎ) 이에 대해서는 자세히 설명한 이전 게시글이 있어서 참고해주시면 좋을 것같습니다. 한마디로 Java가 Database를 쉽게 다룰 수 있도록 도와주는 ORM이라고 보시면 됩니다.

show-sql : jpa를 사용해서 만들어진 sql문들을 콘솔창에 보여줄지 여부

hibernate

jpa의 구현체인 hibernate에 대한 설정입니다
ddl-auto : Hibernate를 통해서 데이터베이스를 초기화할 수 있는 옵션입니다. 조심해서 사용해야하며 프로젝트성이라 create-drop을 해줬습니다

dialect : 방언 설정부분입니다. hibernate가 동적으로 쿼리를 작성할 때 따를 문법을 알려주는 것입니다. 이부분은 그대로 긁어서 하시지 마시고 본인이 사용하는 DBMS의 종류와 버전을 참고하셔서 구글링 해보시길 바랍니다! Mysql의 경우에도 5.5를 기준으로 InnoDB를 사용하기 때문에 이런점을 주의해줘야합니다. 저는 8버전을 사용하기 때문에 구글링해서 stackoverflow에서 추천수 높을 것으로 설정해줬습니다~






2. Datasource

이제 datasource를 설정해줘야합니다.

아래 설정을 통해 DB에 접근해서 connection을 맺을 수 있습니다.

url : 데이터베이스 접근 url
username : 접근시 필요한 username
password : 접근시 필요한 password



datasource는 connection pool을 관리하기 위해 사용하는 객체입니다. driver manager의 대안이기 때문에 위치가 비슷합니다 아래 그림에서 pool을 감싸고 있을 것입니다.

여기서 connection pool이란 바로 WAS와 DB사이에 요청마다 connection을 맺고 끊고 하는 것이 아니라 미리 일정 수준의 connection을 연결해놓고 요청이 오면 connection을 주고 다시 connection pool에 반납하고 하는 시스템입니다. 이렇게 하면 성능을 개선할 수 있다고 합니다. 줄여서 CP라고도 하죠

connection pool의 종류는 DBCP, tomcat jdbc 등 다양하지만 spring-boot-starter-data-jpa가 있다면 HikariCP는 같이 따라옵니다. 굳이 의존성을 설정해주지 않아도 됩니다.


hikari

저는 그래서 그냥 hikariCP로 connection pool을 설정해주기로 했습니다.
hikari : hikari connection pool에 대한 설정들 여기서는 최대 connection 수를 20으로 정해주는 옵션만 넣어봤습니다.

0개의 댓글