1. 프로젝트 생성
•
◦
groupId: jpabook
◦
artifactId: jpashop
◦
사용 기능: web, thymeleaf, jpa, h2, lombok, validation
◦
자바 버전: 11
◦
스프링 부트 버전: 2.7.5
•
Junit 4 적용
build.gradle
•
lombok 적용 및 확인
◦
Settings → plugin → lombok 검색해 설치
이미 설치되어 있었음
◦
Settings → Annotation Processors 검색 → Enable annotation processing 체크 (재시작)
◦
임의의 테스트 클래스를 만들고 @Getter, @Setter 확인
•
IntelliJ Gradle 대신에 자바 직접 실행
◦
최근 IntelliJ 버전은 Gradle로 실행을 하는 것이 기본 설정이다. 이렇게 하면 실행속도가 느리다. 다음과 같이 변경하면 자바로 바로 실행해서 실행속도가 더 빠름
Settings → Gradle 검색
◦
Build and run using: Gradle → IntelliJ IDEA
◦
Run tests using: Gradle → IntelliJ IDEA
•
동작 확인
◦
src/main/java/jpabook.jpashop/JpashopApplication의 main 실행
2. 라이브러리
•
gradle 의존관계 보기
◦
터미널로 jpashop 폴더에 들어가서 아래 코드 입력
▪
./gradlew dependencies
▪
혹은 ./gradlew dependencies —configuration compileClasspath
◦
혹은 intelliJ에서 우측 상단 Gradle 클릭
▪
jpashop/Source Sets/main/Dependencies
•
스프링 부트 라이브러리
◦
spring-boot-starter-web
▪
spring-boot-starter-tomcat: 톰캣 (웹서버)
▪
spring-webmvc: 스프링 웹 MVC
◦
spring-boot-starter-thymeleaf: 타임리프 템플릿 엔진(View)
◦
spring-boot-starter-data-jpa
▪
spring-boot-starter-aop
▪
spring-boot-starter-jdbc
•
HikariCP 커넥션 풀 (부트 2.0 기본)
▪
hibernate + JPA: 하이버네이트 + JPA
▪
spring-data-jpa: 스프링 데이터 JPA
◦
spring-boot-starter(공통): 스프링 부트 + 스프링 코어 + 로깅
▪
spring-boot
•
spring-core
▪
spring-boot-starter-logging
•
logback, slf4j
◦
spring-boot-starter-test
▪
junit: 테스트 프레임워크
▪
mockito: 목 라이브러리
▪
assertj: 테스트 코드를 좀 더 편하게 작성하게 도와주는 라이브러리
▪
spring-test: 스프링 통합 테스트 지원
3. View 환경 설정
•
thymeleaf
◦
장점)
▪
Natural templates: 마크업 깨지 않고 그대로 씀
▪
spring과 통합
◦
단점)
▪
닫는 태그 정확히 매칭 안하면 에러 발생
•
단, 3.0부턴 에러 발생 안 함
•
thymeleaf 템플릿엔진 동작 확인(hello.html)
src/main/java/jpabook.jpashop/HelloController
src/main/resources/templates/hello.html
•
렌더링 없는 정적 페이지 만들기(index.html)
src/main/resources/static/index.html
•
서버 재시작 없이 View 파일 변경
◦
build.gradle에 아래 코드 추가
▪
implementation 'org.springframework.boot:spring-boot-devtools'
◦
View 파일 수정 후 [메뉴: build → Recompile] 후 페이지 새로고침
4. H2 데이터베이스 설치
1) H2 설치
•
1.4.200 버전으로 설치
2) H2 실행
1.
앱 실행
•
H2 Console 아이콘 클릭해 실행
•
혹은 cmd로 실행
cd C:\Program Files (x86)\H2\bin
h2.bat
2.
JDBC URL이 jdbc:h2:~/jpashop인 상태로 연결 버튼 누르기(최초 한 번)
•
DB 파일 생성할 경로 지정하는 것임
스프링 입문에서 났던 바보 같은,, 에러
이번엔 에러 발생 안 함 → 저장한 설정을 Embedded가 아니라 Server로 바꿔줬음
•
C:\Users\choo0에 ~/jpashop.mv.db 파일 생성 확인
3.
이후부턴 JDBC URL을 jdbc:h2:tcp://localhost/~/jpashop로 해서 연결 버튼 누르기
•
네트워크 모드로 접근
5. JPA와 DB 설정, 동작 확인
•
설정 파일로 properties와 yml 둘 중 하나 선택
◦
src/main/resources/application.properties 삭제
◦
src/main/resources/application.yml 생성
•
회원 엔티티
main/java/jpabook/jpashop/Member.java
•
회원 리포지토리
main/java/jpabook/jpashop/MemberRepository.javaㅇ
•
회원 리포지토리 테스트
테스트 파일 생성
test/java/jpabook/jpashop/MemberRepositoryTest.java