일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 낙관적락
- 비관적락
- 지연로딩
- eager
- 연결리스트
- exclusive lock
- PS
- 연관관계
- JPQL
- CHECK OPTION
- 힙
- 스토어드 프로시저
- shared lock
- SQL프로그래밍
- 일대다
- 이진탐색
- BOJ
- 다대일
- 다대다
- 데코레이터
- execute
- querydsl
- 백트래킹
- 즉시로딩
- 유니크제약조건
- fetch
- FetchType
- 스프링 폼
- 동적sql
- dfs
- Today
- Total
흰 스타렉스에서 내가 내리지
[스프링부트와JPA활용]섹션1. 프로젝트 환경설정 본문
강의 1. 프로젝트 생성
* 요즘은 템플릿 엔진으로 jsp를 잘 쓰지 않는다. 대신 thymeleaf 사용.
* h2는 개발하거나 테스트할 때 좋다.
IntelliJ에서 다운로드 받은 폴더 open
build.gradle 파일을 통해 라이브러리를 다운받는데, 시간이 굉장히 오래걸릴것이다.
롬복 적용
1. Prefrences plugin lombok 검색 실행 (재시작)
2. Prefrences Annotation Processors 검색 Enable annotation processing 체크 (재시작)
3. 임의의 테스트 클래스를 만들고 @Getter, @Setter 확인
++
IntelliJ Gradle 대신에 자바 직접 실행 > 참고: 강의에 이후에 추가된 내용입니다.
최근 IntelliJ 버전은 Gradle로 실행을 하는 것이 기본 설정이다. 이렇게 하면 실행속도가 느리다.
다음과 같이 변경하면 자바로 바로 실행해서 실행속도가 더 빠르다
Preferences > Build, Execution, Deployment > Build Tools > Gradle
Build and run using: Gradle > IntelliJ IDEA
Run tests using: Gradle > IntelliJ IDEA
강의2. 라이브러리 살펴보기
gradle 의존관계 보기
./gradlew dependencies —configuration compileClasspath
강의3. View 환경설정
thymeleaf 템플릿 엔진
thymeleaf 공식 사이트: https://www.thymeleaf.org/
스프링 공식 튜토리얼: https://spring.io/guides/gs/serving-web-content/
스프링부트 메뉴얼: https://docs.spring.io/spring-boot/docs/2.1.6.RELEASE/reference/html/boot-features-developing-web-applications.html#boot-features-spring-mvc-template-engines
스프링 부트 thymeleaf viewName 매핑
>> resources:templates/ + {ViewName} + .html
8번줄 : 순수하게 html 렌더링을 하면 "안녕하세요. 손님"이 뜨지만, 서버사이드렌더링을 하게 되면 p태그 안에 저 data 변수와 함께 문장이 렌더링된다.
이것이 thymeleaf의 장점이다. 다른 템플릿 엔진이었으면 if 분기처리를 해줬어야 했을 것이다.
nodeJS에서 nodemon 이랑 같은거 설정하기
강의4. H2 데이터베이스 설치
h2 다운로드 > 터미널에서 h2 폴더 내 bin 폴더 들어가기
실행하면 웹 브라우저에 h2 콘솔이 뜨는데, 여기서 주소창을 localhost 로 변경
연결 후, 홈에 jpashop.mv.db 파일 생성 확인 후, 다시 나와서, 다음 경로로 다시 들어감
강의 4. JPA와 DB설정, 동작확인
application.properties 대신 application.yml 사용할 것. 강사님이 본인은 그게 더 편하단다. 맘대로하면됨
spring.jpa.hibernate.ddl-auto: create
> 이 옵션은 애플리케이션 실행 시점에 테이블을 drop 하고, 다시 생성한다.
참고: 모든 로그 출력은 가급적 로거를 통해 남겨야 한다.
> show_sql : 옵션은 System.out 에 하이버네이트 실행 SQL을 남긴다.
> org.hibernate.SQL : 옵션은 logger를 통해 하이버네이트 실행 SQL을 남긴다.
테스트 단축키 : Command + Shift + T
하지만 이렇게 실행하면 error가 난다.
EntityManager를 통한 모든 데이터 변경은 Transaction 안에서 이루어져야 한다.
나는 아직 transaction을 설정해주지 않았다.
쿼리 파라미터 로그 남기기
로그에 다음을 추가하기 org.hibernate.type : SQL 실행 파라미터를 로그로 남긴다.
외부 라이브러리 사용 https://github.com/gavlyukovskiy/spring-boot-data-source-decorator
스프링 부트를 사용하면 이 라이브러리만 추가하면 된다.
implementation 'com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.5.6'
> 참고: 쿼리 파라미터를 로그로 남기는 외부 라이브러리는 시스템 자원을 사용하므로, 개발 단계에서는 편하 게 사용해도 된다. 하지만 운영시스템에 적용하려면 꼭 성능테스트를 하고 사용하는 것이 좋다
'Spring' 카테고리의 다른 글
[스프링부트와JPA활용]섹션4. 회원 도메인 개발 (0) | 2022.08.02 |
---|---|
[스프링부트와JPA활용]섹션2. 도메인 분석 설계 (0) | 2022.08.02 |
[인프런 스프링 입문] 섹션7. AOP (0) | 2022.07.24 |
[인프런 스프링 입문] 섹션6. 스프링 DB 접근 기술 - 2 (0) | 2022.07.21 |
[인프런 스프링 입문] 섹션6. 스프링 DB 접근 기술 - 1 (0) | 2022.07.21 |