[ ๊ฐ๋จํ ๋๊ธ์ฐฝ ๋ง๋ค๊ธฐ (1) ]
Spring - [intelliJ,Thymeleaf] ๊ฐ๋จํ ๋๊ธ์ฐฝ ๋ง๋ค๊ธฐ(1)
[ @PostMapping์ผ๋ก ๋๋คํ ์ซ์ 6๊ฐ ์ ๋ฐ์ดํธํ๊ธฐ ] Spring - [intelliJ,Thymeleaf] @PostMapping์ผ๋ก ๋๋ค ์ซ์ 6๊ฐ ์ ๋ฐ์ดํธํ๊ธฐ[ ๋ก๋, ๋ฒํผ ๋๋ฌ ๋๋คํ ์ซ์ 6๊ฐ ์ถ๋ ฅํ๊ธฐ(2) ] Spring - [intelliJ,Thymeleaf] ๋ก๋,
post-this.tistory.com
H2 ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ด์ฉํ์ฌ
๋๊ธ ๊ด๋ฆฌํ๊ธฐ.
1. H2 ์ค์นํ๊ธฐ.
โก ์๋ ๋งํฌ ๋ค์ด๊ฐ๊ธฐ.
https://h2database.com/html/main.html
H2 Database Engine
H2 Database Engine Welcome to H2, the Java SQL database. The main features of H2 are: Very fast, open source, JDBC API Embedded and server modes; in-memory databases Browser based Console application Small footprint: around 2.5 MB jar file size Supp
h2database.com
โก mac์ All Platforms ๋ค์ด๋ก๋ํ๊ธฐ.
โก ์์ถํ์ด์ฃผ๊ธฐ.
โก ํฐ๋ฏธ๋ ๋ค์ด๊ฐ๊ธฐ.
1. ์์ถ์ ํ์ด์ค ํ์ผ์ ์์น๋ก ๋ค์ด๊ฐ๋ค.
: cd ๊ฒฝ๋ก/bin
2. ๊ถํ ๋ถ์ฌ
: chmod 755 h2.sh
3. ์ฝ์ ์ ์
: ./h2.sh
2. ์์กด์ฑ ์ฃผ์ ํ๊ธฐ.
โก build.gradle์ H2 ์์กด์ฑ ์ฃผ์
runtimeOnly 'com.h2database:h2'
โก build.gradle์ jpa ์์กด์ฑ ์ฃผ์
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
3. application.properties ์์ฑํ๊ธฐ.
โก DataSource ์ค์ ํ๊ธฐ.
spring.application.name=LuckyLotto
spring.datasource.url=jdbc:h2:file:./data/mydb
spring.datasource.driver-class-name=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=
h2๋ ์๋ฐ๋ก ์์ฑ๋ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ ์์คํ ์ด๋ค. ๊ทธ๋ฅ ์ฝ๊ฒ ์๋ฐ์ ์์ฑ๋ง์ถคํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ผ๊ณ ์๊ฐํ๋ฉด ๋๋ค. ์ฃผ๋ก ์ด๋ ๊ฒ ๊ฐ๋จํ ํ๋ก์ ํธํ ๋ ๋ง์ด ์ฌ์ฉํ๋ค. h2๋ ์คํ๋ง ๋ถํธ๊ฐ ์ง์ํ๋ ์ธ๋ฉ๋ชจ๋ฆฌ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก ์ธ๋ฉ๋ชจ๋ฆฌ๋ก ๋์ฐ๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ฌ๊ฐ๋๋ ๋๋ง๋ค ์ด๊ธฐํ๊ฐ ๋๋ค.
url = ์ ์ค์ ํ์ฌ ๋์ค์ h2 ํ๋ก๊ทธ๋จ ์ฐฝ์ ์ ์ด ๋ค์ด๊ฐ ์ ์๋ค. driver ์ฝ๋๋ Spring Boot ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฐ๊ฒฐํ ๋ ์ฌ์ฉํ JDBC ๋๋ผ์ด๋ฒ๋ฅผ ์ง์ ํ๋ ์ค์ ์ด๋ค. sa๋ ๊ธฐ๋ณธ ์ฌ์ฉ์ ์ด๋ฆ์ด๊ณ password๋ ๊ทธ๋ฅ ์ค์ ํ์ง ์์๋ค.
โก DataSource ์ค์ ํ๊ธฐ.
spring.jpa.hibernate.ddl-auto=update
spring.h2.console.enabled=true
spring.h2.console.path=/h2-console
hibernate๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์คํค๋ง๋ฅผ ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ์ง์ ํ๋ฉฐ update๋ ์ ํ๋ฆฌ์ผ์ด์ ์คํ ์ ํ ์ด๋ธ์ด ์์ผ๋ฉด ์์ฑํ๊ณ ๋ณ๊ฒฝ์ฌํญ์ด ์๊ธฐ๋ฉด ์์ ํ๋๋ก ํ๋ค. ํ์ฌ๋ ๊ฐ๋ฐ ์ค์ด๋ update๋ผ๊ณ ์ ์์ง๋ง, ๋ง์ฝ ์ด์์ ํ๊ฒ๋๋ค๋ฉด validate๋ none์ ๊ถ์ฅํ๋ค.
console.enabled๋ก ์ฝ์์ ํ์ฑํํ๋ค. ํ์ฑํํ์ง ์์ผ๋ฉด entity์ ์ ์ด๋ id์ content ์์๋ค์ด ๋ณด์ด์ง ์์ ๊ฒ์ด๋ค. console.path๋ฅผ ํตํด ์ฝ์์ ์ ๊ทผํ URL์ ์ง์ ํ๋ค.
4. h2 ๋ค์ด๊ฐ๊ธฐ.
โก ๋ธ๋ผ์ฐ์ ์ h2 ํ๋ก๊ทธ๋จ ์ ์ํ๊ธฐ.
http://localhost:8080/h2-console
h2-console์ด ์๋๋ผ ๋ค๋ฅธ ๊ฒฝ๋ก ์ด๋ฆ์ผ๋ก ํ์ผ๋ฉด ๊ทธ ์ด๋ฆ์ ๋ฃ์ผ๋ฉด ๋๋ค.
โก ์ค์ ํ ์ ๋ณด ๋ฃ๊ธฐ.
JDBC URL: jdbc:h2:file:./data/mydb
User Name: sa
ํจ์ค์๋๋ ์ค์ ์ํ์ผ๋ ๋์ด๊ฐ๋ฉด ๋๋ค.
5. h2 ์ฌ์ฉํ๊ธฐ.
โก ๋๊ธ์ ๋จ๊ฒผ๋ค.
โก ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ์ธํด๋ณด๊ธฐ.
1. ์ ์ฒด ์กฐํํ๊ธฐ.
SELECT * FROM COMMENT_LIST;
2. id๊ฐ 21๋ฒ์ธ ๋๊ธ ์ญ์ ํด๋ณด๊ธฐ.
DELETE FROM COMMENT_LIST WHERE id = 21;
ํ์ด์ง์์๋ ์ญ์ ๋ ๊ฑธ ํ์ผํ ์ ์๋ค.
๐ชฝ
"ํ๋ฆฐ ๋ด์ฉ์ด ์์ ์ ์์ต๋๋ค."
[ ๋ธ๋ก๊ทธ์ ์ด ๋ด์ฉ๋ค์ ์ถ์ฒ๋ ์๋์ ์ ์ด๋ํ ๋
๋ค์ด๊ฐ์ ์ฝ์ด๋ณด์๋ฉด ๋์ฑ ๋์์ด ๋์ค ๋ฏ ํฉ๋๋ค ]
H2 Database ๋? ๊ทธ๋ฆฌ๊ณ ์ฌ์ฉ๋ฒ?
H2 Database ๋? H2๋ ์๋ฐ๋ก ์์ฑ๋ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ ์์คํ ์ด๋ค. ์ฅ์ ๋ฐ๋ก ์ค์น๊ฐ ํ์์๋ค ์ฉ๋์ด ๋งค์ฐ ๊ฐ๋ณ๋ค ์น์ฉ ์ฝ์(์ฟผ๋ฆฌํด) ์ ๊ณตํ์ฌ ๊ฐ๋ฐ์ฉ ๋ก์ปฌDB๋ก ์ฌ์ฉ ์ฉ์ด ํน์ง JAVA๋ก ์์ฑ
yjkim-dev.tistory.com
h2 ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค์น ๋ฐ ์คํ๋ฐฉ๋ฒ ์ ๋ฆฌ
๊ฝค ๊ฐ๋ฒผ์ด DB์ด๊ธฐ์ ์ค๋ฌด์์ local์ ์ค์นํด์ ๋ง์ด ์ฌ์ฉํ๋ค๋ h2 ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฌ์ฉ๋ฒ ์ ๋ฆฌํฉ๋๋ค.๋จ์ ์ผ๋ก๋ ๋ก์ปฌ์ฉ์ด๊ธฐ ๋๋ฌธ์ ์ปดํจํฐ ๋ค ๋๋ฉด ๋ ์๊ฐ๋๋ค. ๐ํ ์คํธ์ฉ์ผ๋ก๋ง ์ฌ์ฉํ์ธ์.
gray-tree.tistory.com
[Spring Boot] H2 ์ฐ๋ ๋ฐฉ๋ฒ
๐ก build.gradle์ dependency ์ถ๊ฐ ๐ก application.properties ํ์ ๐ก application.yml ํ์
velog.io
Springboot + H2 Console ์ฌ์ฉ ์ค์
H2 Console์ด๋? - ์์ ์ฉ๋(2M)์ ์๊ณ ๋น ๋ฅธ DB - JDBC API ์ง์ - ๋ธ๋ผ์ฐ์ ๊ธฐ๋ฐ Console ์ง์ - ์ธ ๋ฉ๋ชจ๋ฆฌ(In-Memory) ๊ธฐ๋ฐ Server ๋ชจ๋์ Embedded ๋ชจ๋ ์ง์ ์ธ ๋ฉ๋ชจ๋ฆฌ(In-Memory) DB ์์คํ ๋ฉ๋ชจ๋ฆฌ์ ๋ฐ์ดํฐ๋ฅผ ์
jamie95.tistory.com