๊ฐ๋ฐ ํ๊ฒฝ
Java
17.0.8.1
Spring Boot
2.7.14
MySQL
8.0.33
IDE Intellij
Gradle
: IntelliJ ์ฌ์ฉ
๐๐ป IntelliJ download & setting
spring initializr๋ฅผ ํ์ฉํด์ ์๋ ์์กด์ฑ๋ค์ ํฌํจ์์ผ์ ํ๋ก์ ํธ๋ฅผ ์์ฑ
๐๐ป Spring Initializr
๊ณผ๊ฑฐ์๋ Maven์ ๋ง์ด ์ฌ์ฉํ์ง๋ง ์ต๊ทผ์๋ Gradle์ ์ฌ์ฉํ์ฌ ํ๋ก์ ํธ๋ฅผ ์์ฑํ๋ ์ถ์ธ์ด๋ค.
์ฌ์ฉํ๊ณ ์ ํ๋ ์ธ์ด ์ ํ
๋ฒ์ ์ ์ ํํด์ค๋ค.
๋ฒ์ ์์ (SNAPSHOT)์ด๋ผ๊ณ ์ ํ ์๋ ๊ฒ์ ์์ง ๋ง๋ค๊ณ ์๋ ๋ฒ์ ์ด๋ฉฐ, ๊ฐํน (M1)์ด๋ผ๊ณ ์ ํ์๋ ๊ฒ์ ์ ์์ผ๋ก ๋ฆด๋ฆฌ์ฆ๋์ง ์์ ๋ฒ์ ์ด๋ค.
โ ๏ธย Spring Boot ๋ฒ์ ์ 3.X.X๋ก ์ค์ ์ ์ฃผ์
Jar๋ก ์ ํํ๋ฉด tomcat์ด ์๋์ผ๋ก ์ธํ ๋์ด ๋จ๋ ์ผ๋ก ์คํ ๊ฐ๋ฅ
์๋ฐ ๋ฒ์ ์ ํ
*Thymeleaf : HTML์ ๋ง๋ค์ด์ฃผ๋ ํ ํ๋ฆฟ ์์ง
๐ก ์คํํ๋ฉด ๋ฐ๋ก ํ๋ก์ ํธ ์คํ์ํค๊ธฐ!
1. main/java ํด๋ ์๋์ ์๋ ๋ฉ์ธ.java ํ์ผ์ ์คํ ํ ์คํ(Ctrl+Shift+F10 ๋ ๊ฐ๋ฅ)
click !
Gradle (Ctrl + Alt + S)
ํ๋ก์ ํธ ๊ตฌ์กฐ (Ctrl + Alt + Shift + S)
๋ก์ปฌ connection์ ์ถ๊ฐํด์ ์๋์ผ๋ก ๋ง๋ค์ด์ง sys ๋ฐ์ดํฐ๋ฅผ ํ์ธ
DROP DATABASE database_name;
ALTER DATABASE database_name CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ORM(Object-Relational Mapping) ์ด๋?
์ฐ๋ฆฌ๊ฐ ์ผ๋ฐ ์ ์ผ๋ก ์๊ณ ์๋ ์ ํ๋ฆฌ์ผ์ด์ Class์ RDB(Relational DataBase)์ ํ ์ด๋ธ์ย ๋งคํ(์ฐ๊ฒฐ)ํ๋ค๋ ๋ป์ด๋ฉฐ, ๊ธฐ์ ์ ์ผ๋ก๋ ์ดํ๋ฆฌ์ผ์ด์ ์ ๊ฐ์ฒด๋ฅผ RDB ํ ์ด๋ธ์ ์๋์ผ๋ก ์์ํ ํด์ฃผ๋ ๊ฒ์ด๋ผ๊ณ ๋ณด๋ฉด๋๋ค.
๐ก ์๋ฐ ํด๋์ค์ ์ค์ mysql ํ ์ด๋ธ์ ์ฐ๊ฒฐํด์ฃผ๋ ๊ธฐ๋ฅ, JPA๋ java ์ดํ๋ฆฌ์ผ์ด์ ์์ ORM ํ์ค์ผ๋ก ์ฌ์ฉ
โ ์ง์ ์์กด์ฑ ์ถ๊ฐํ๊ธฐ - build.gradle์ ์์กด์ฑ์ ์๋์ ๊ฐ์ด ์ถ๊ฐํฉ๋๋ค.
dependencies {
implementation 'mysql:mysql-connector-java'
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
}
# MySQL ์ค์
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://<IP>:<Port>/<DB>?useSSL=false&useUnicode=true&serverTimezone=Asia/Seoul
username: <username>
password: <password>
# true ์ค์ ์ JPA ์ฟผ๋ฆฌ๋ฌธ ํ์ธ ๊ฐ๋ฅ
jpa:
show-sql: true
# DDL(create, alter, drop) ์ ์์ DB์ ๊ณ ์ ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์๋ค.
hibernate:
ddl-auto: update
# JPA์ ๊ตฌํ์ฒด์ธ Hibernate๊ฐ ๋์ํ๋ฉด์ ๋ฐ์ํ SQL์ ๊ฐ๋
์ฑ์ ๋์ฌ์ค๋ค.
properties:
hibernate.format_sql: true
# JPA ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ๋ซํผ ์ง์ (ํ์ฌ MYSQL InnoDB๋ฅผ ์ฌ์ฉ์ค)
spring.jpa.database-platform=org.hibernate.dialect.MySQL5InnoDBDialect