01. 프로젝트 세팅
다 따라해보기
#
프로젝트 생성과정- start.spring.io 에서 프로젝트 생성 가능
- 추가할 Dependencies
- spring web
- spring data jpa
- h2 database
- lombok
- thymeleaf
#
gradle 구성- plugins: spring 관련 플러그인 들이 dependencies의 버전을 알아서 관리해줌
- dependencies: 라이브러리 들
- 관련 있는 의존 관계 라이브러리를 다같이 불러 옴
#
lombok + intellij 세팅- intellij에서
- Preferences > Plugins > lombok 검색 후 설치
- 요즘은 기본적으로 번들되어 있음
- Preferecnes > Annotation Proccessors 검색 > Enable annotation processing 활성화
#
라이브러리 살펴보기build.gradle
에서 확인 가능- 핵심
- spring web
- mvc, tomcat
- core
- spring data jpa
- db connection pool: HikariCP (spring-boot-start-jdbc default)
- JPA, hibernate (JPA 구현체)
- 로깅: slf4j (인터페이스) & logback (구현체)
- WEB (thymeleaf)
- 테스트: junit, mockito, assertj
- spring web
./gradlew dependencies
로 의존관계를 커맨드 라인에서 확인가능
#
View 환경설정- thymeleaf 템플릿 엔진을 사용
- 장점
- Natural templates: 마크업을 깨지 않고 그대로 씀 (웹 브라우저에서 그냥 열림)
- 단점
- 성능 이슈도 조금 있음
- 매뉴얼을 조금 봐야함..
- 장점
- 세팅은 dependencies 에 있기만 하면 세팅 완료
- 문제: 서버 리스타트를 계속 반복적으로 하면 짜증날 수 있음
- 해결:
spring-boot-devtools
디펜던시를 추가하면 좋은 개발 도구들을 제공해줌- 대표적으로 리스타트
- log 에
[ restartedMain]
가 보이면 성공 - html 수정 후
- Build > Recompile '*.html' 를 누르면 spring이 devtools 기능을 이용하여 리로드함
#
H2 데이터베이스 설치- h2?
- 테스트용 인 메모리 관계형 디비
- 혹시 오류나면 gradle h2 패키지 버전과 설치 버전이 동일한지 확인
- 처음
./bin/h2.sh
을 실행하면 디비가 실행되고, 웹 콘솔이 뜸 - 웹 콘솔에서 jdbc url 을
jdbc:h2:~/jpashop
로 설정하여 jpashop db 파일 생성 - 그 다음 부턴 tcp 커넥션
jdbc:h2:tcp://localhost/~/jpashop
으로 연결
#
JPA와 DB 설정, 동작확인- 설정파일은
resources/application.yml
파일로 설정
resources/application.yml
- h2 연결 url 작성 시,
MVCC
세팅은 최신 버전에서 사라짐 - TC 에 붙은 어노테이션
@Transactional
: TC에 붙으면 실행 이후 rollback 함@Rollback(false)
: 롤백 무시는 이렇게 가능
jar 로 실행 해보기
- spring boot는 설정이 자동화되어 있음
- 패키지를 추가할 땐 성능 테스트 꼭 해보기