✔️ [참고한 책] 백견불여일타 스프링 부트 쇼핑몰 프로젝트 with JPA
구훈님께서 쓰신 책을 공부해보려한다 ㅎㅎ
1. 내장 서버를 이용해 별도의 설정 없이 독립 실행이 가능한 스프링 애플리케이션
2. 톰캣, 제티 또는 언더토우와 같은 웹 애플리케이션서버(WAS) 자체 내장
3. 빌드 구성을 단순화하기 위한 'Spring Boot Starter'의존성 제공
4. XML 설정 없이 단순 자바 수준의 설정 방식 제공
5. JAR를 이용해 자바 옵션만으로 배포 가능
6. 애플리케이션의 모니터링과 관리를 위한 스프링 액추에이터 제공
Spring Initializer 사이트에서 다운
빌드 툴 : 메이븐
언어 : java 11
패키징 : Jar
의존성 : Spring Web, Thymeleaf, Spring Data JPA, MySQL Driver, H2 Database
롬복 라이브러리는 반복적인 Getter/Setter,ToString과 같은 반복적인 자바 코드를 컴파일할 때 자동으로 생성해주는 라이브러리입니다. Lombok 라이브러리를 사용하면 반복적인 소스코드를 제거할 수 있으므로 코드를 좀 더 깔끔하게 짤 수 있습니다.
create database shop default character set utf8 collate utf8_general_ci;
show databases;
프로젝트 생성 후 application.properties 설정하기
#애플리케이션 포트 설정
server.port = 80
#MySQL 연결 설정
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/shop?serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=비번
#실행되는 쿼리 콘솔 출력
spring.jpa.properties.hibernate.show_sql=true
#콘솔창에 출력되는 쿼리를 가독성 좋게 포맷팅
spring.jpa.properties.hibernate.format_sql=true
#쿼리에 물음표로 출력되는 바인드 파라미터 출력
logging.level.org.hibernate.type.descriptor.sql=trace
spring.jpa.hibernate.ddl-auto=create
spring.jpa.database-platform=org.hibernate.dialect.MySQL8Dialect
- none: 사용하지 않음
- create: 기존 테이블 삭제 후 테이블 생성
- create-drop: 기존 테이블 삭제 후 테이블 생성, 종료 시점에 테이블 삭제
- update: 변경된 스키마 적용
- validate: 엔티티와 테이블 정상 매핑 확인
개발 초기에는 create 또는 update 옵션을 이용하고 추후에 validate 옵션을 설정해주는 것이 좋습니다.
실제 운영환경에선 none이나 validate를 이용해야합니다.
JPA에 대한 내용과 엔티티설계를 바로 공부해보겠습니당.