JPA1/Section.0,Section.1(인프런,김영한) 리뷰

김민석·2023년 5월 9일
0

JPA

목록 보기
1/4

1.스프링 부트의 장점


스프링 부트 - 복잡하고 어려운 스프링 기술을 간결하고 쉽게 사용할 수 있도록 도와 주는 기술

JPA - 강력한 자바 ORM 표준 기술

ORM이란? ORM은 Object Relational Mapping(객체 관계 매핑)의 줄임말이다. Object(객체)는 말 그대로 OOP에서 사용되는 객체 그 자체를 의미하고 Relational(관계)는 흔히 사용하는 관계형 데이터베이스를 의미한다.
즉, 객체와 관계형DB를 매핑해주는 개념이라고 생각하면 된다.

스프링 부트 + JPA => 높은 개발 생산성, 빠르게 개발 가능

2.기본 세팅


Spring Web : Restful api, Spring mvc, Spring MVC, Tomcat을 기본적으로 내장하고있다.
(웹 어플리케이션 개발할 때 꼭 필요!!!)

Thymeleaf : HTML의 마크업을 깨지 않고 그대로 사용한다는 장점이 있다.
(프리마커, jsp와 달리 웹 브라우저에서도 열림)
기존 버전 2.X에는 ex) br태그 사용시 /br 꼭 붙였어야 했지만
3.X버전에는 개선되었다.(성능 이슈도 개선됨)

Spring Data JPA : Spring Data 와 Hibernate를 가지고 JPA를 사용한다.

H2 Database : 개발 및 테스트 시 유용 가볍고 편리한 DB 웹 화면 제공

Lombok : 반복하는 코드를 줄여준다.

H2 DB세팅

https://www.h2database.com/html/main.html <<다운로드 링크

다운로드 후 (윈도우 유저 기준) cmd창을 열어 H2 DB가 세팅된 파일에 들어가 h2.bat으로 실행을 해주면 localhost:8082가 켜지면서 DB와 연결을 할 수 있게 된다.

처음 DB접속시 JDBC URL :jdbc:h2:~/jpashop
~/jpashop.mv.db로 파일 생성 확인 후 생성이 되었다면
그 이후에는 jdbc:h2:tcp://localhost/~/jpashop 접속


만일 사진과 같은 오류가 생겼다면
cmd -> netstat -ano 해서 port 번호 찾아서
taskkill /f /pid 프로세스 아이디

application.yml세팅

main/resources 파일에 application.yml파일을 생성해준다.
application.yml로 기본적인 설정을 해준후 기본적인 table 세팅까지도 한다.
github코드 참고
H2에 접속시 application.yml datasource 에 있는 url 주소와 일치하게 들어가야 함

Query parameter log 남기기

sql 무브먼트(DB에다 select or insert )나 DB와의 커넥션의 흐름을 볼 수 있음
1.application.yml안 logging/level에 org.hibernate.orm.jdbc.bind: trace를 남겨준다.(spring boot 3.X기준)

우린 p6spy를 쓴다.
build.gradle에 가서 dependencies에
implementation 'com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.5.6'(spring boot가 미리 세팅해준 라이브러리가 아니므로 버전도 써줘야 한다....)

springboot 3.X 사용자라면
src/resources/META-INF/spring/에
파일명:org.springframework.boot.autoconfigure.AutoConfiguration.imports

내용:com.github.gavlyukovskiy.boot.jdbc.decorator.DataSourceDecoratorAutoConfiguration

src/resources에 spy.properties 파일 추가 후
appender=com.p6spy.engine.spy.appender.Slf4JLogger 라고 입력을 하면 아주 잘 된다!!

의존 관계 알아보기

command 창에서 cd ~~\jpashop\jpashop gradlew dependencies 의존관계가 prompt창에 쭈우욱 출력이 된다.


prompt 창은 난잡한 감이 없지 않으므로 intellij에 gradle을 눌러 확인해 본다면(runtimeClasspath)
tomcat 및 mvc는 물론 data jpa, thymeleaf까지 의존관계에 있다는 것을 확인할 수 있다.
이 외에도 h2라이브러리 hikariCP등 기타 라이브러리도 확인할 수 있다
(SLF4J에 LogBack을 꽂아서 사용한다.)

0개의 댓글