๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Spring Boot

[Spring Boot] ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์œ„ํ•œ ์Šคํ”„๋ง ๋ถ€ํŠธ ์„ค์ •ํ•˜๊ธฐ

by ์ฝ”๋”ฉํ•˜๋Š” ๋ถ•์–ด 2021. 2. 12.
๋ฐ˜์‘ํ˜•

โ–ถ Spring Data JPA๋ฅผ ์ด์šฉํ•˜๋Š” ํ”„๋กœ์ ํŠธ์˜ ์ƒ์„ฑ

MariaDB ์„ค์ •์ด ์™„๋ฃŒ๋˜์—ˆ๋‹ค๋ฉด ์Šคํ”„๋ง ๋ถ€ํŠธ ํ”„๋กœ์ ํŠธ์—์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‚ฌ์šฉํ•ด ๋ณด์ž.

โ€‹

โ€‹

1. Spring Initializr๋ฅผ ์ด์šฉํ•ด์„œ ์Šคํ”„๋ง ๋ถ€ํŠธ ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.

โ€‹

โ€‹

2. ex2 ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•ด์ค€๋‹ค. (์ €๋ ‡๊ฒŒ ์„ค์ • ํ•  ๊ฒƒ)

โ€‹

โ€‹

3. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ํ™œ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ˜๋“œ์‹œ 'Spring Data JPA' ํ•ญ๋ชฉ์„ ์ฒดํฌํ•ด์ค€๋‹ค.

์˜์กด์„ฑ ์„ค์ •

 

โ€‹

4. ํ”„๋กœ์ ํŠธ ์ €์žฅ ๊ฒฝ๋กœ๋ฅผ ์„ค์ •ํ•ด์ฃผ๋ฉด ์™„๋ฃŒ!

โ€‹

โ€‹

โ€‹โ€‹

โ–ถ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์œ„ํ•œ ์Šคํ”„๋ง ๋ถ€ํŠธ ์„ค์ •

์Šคํ”„๋ง ๋ถ€ํŠธ๋Š” 'Auto Configuration'์ด๋ผ๊ณ  ๋ถˆ๋ฆฌ๋Š” ์ž๋™ ์„ค์ • ๊ธฐ๋Šฅ์ด ์žˆ๋‹ค. ์ž๋™ ์„ค์ • ๊ธฐ๋Šฅ์ด๋ž€ ๊ฐ„๋‹จํžˆ ๋งํ•ด ํŠน์ • ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์žˆ๋‹ค๋ฉด ์ด์— ๊ด€๋ จ๋œ ์„ค์ •์„ ์ž๋™์œผ๋กœ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์ข€ ๋” ํ˜„์‹ค์ ์œผ๋กœ๋Š” ํ˜„์žฌ ํ”„๋กœ์ ํŠธ์˜ ๊ฒฝ์šฐ 'Spring Data JPA'๋ผ๋Š” ์˜์กด์„ฑ์„ ์ถ”๊ฐ€ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด์™€ ๊ด€๋ จ๋œ ์„ค์ •์ด ์ž๋™์œผ๋กœ ์ถ”๊ฐ€๋˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค.

โ€‹

โ€‹

1. Ex2Application์„ ์‹คํ–‰ํ•œ๋‹ค.

โ€‹

โ€‹

2. Ex2Application์„ ์‹คํ–‰ํ•˜๋ฉด ์—๋Ÿฌ ๋ฉ”์„ธ์ง€๊ฐ€ ์ถœ๋ ฅ๋œ๋‹ค. ํ”„๋กœ์ ํŠธ๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์‹คํ–‰๋˜์ง€ ์•Š๋Š” ์›์ธ์€ ์ค‘๊ฐ„์— ๊ธฐ๋ก๋˜๋Š” ์•„๋ž˜์˜ ๋กœ๊ทธ๋ฅผ ํ†ตํ•ด์„œ ์›์ธ์„ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ๋‹ค.

ํ”„๋กœ์ ํŠธ ์‹คํ–‰ ์‹œ ์—๋Ÿฌ

 

โ€‹

3. ์œ„์˜ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋‘ ๊ฐ€์ง€ ์„ค์ •์ด ํ•„์š”ํ•˜๋‹ค.

-MariaDB๋ฅผ ์œ„ํ•œ JDBC ๋“œ๋ผ์ด๋ฒ„

-์Šคํ”„๋ง ๋ถ€ํŠธ ํ”„๋กœ์ ํŠธ ๋‚ด MariaDB ์„ค์ •

๋จผ์ € MariaDB์šฉ JDBC ๋“œ๋ผ์ด๋ฒ„๋ฅผ ๊ฒ€์ƒ‰ํ•ด์„œ ์ถ”๊ฐ€ํ•œ๋‹ค.

โ€‹

โ€‹

4. ๋ฒ„์ „์„ ์„ ํƒํ•œ๋‹ค.

โ€‹

โ€‹

5. ๋ฉ”์ด๋ธ ์ €์žฅ์†Œ์—์„œ MariaDB ๊ด€๋ จ ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์„ ํƒํ•˜๊ณ  Gradle ๊ด€๋ จ ์„ค์ •์„ ๋ณต์‚ฌํ•œ๋‹ค.

โ€‹

โ€‹

6. ๋ณต์‚ฌํ•œ ๋‚ด์šฉ์„ ํ˜„์žฌ ํ”„๋กœ์ ํŠธ์˜ build.gradle ํŒŒ์ผ์˜ dependencies ํ•ญ๋ชฉ์— ์ถ”๊ฐ€ํ•œ๋‹ค.

build.gradle ์ˆ˜์ •

 

โ€‹

7. [src → main → resource → application.properties] ํŒŒ์ผ ๋‚ด์— ๋‹ค์Œ์˜ ๋‚ด์šฉ์„ ์ถ”๊ฐ€ํ•œ๋‹ค.

์—ฌ๊ธฐ๋ถ€ํ„ฐ ์ข€ ํ—ท๊ฐˆ๋ฆผ. ์Šคํ”„๋ง ๋ถ€ํŠธ ๋ ˆํผ๋Ÿฐ์Šค ๋ฌธ์„œ๋ฅผ ๊ฒ€์ƒ‰ํ•ด์„œ ์ฐธ๊ณ ํ•˜๋ผ๋Š”๋ฐ ๋ฐฉ๋ฒ•์ด ์ž์„ธํžˆ ์•ˆ๋‚˜์™€์žˆ์Œ.

โ€‹โ€‹

โ€‹

8. ์ดํ›„ ํ”„๋กœ์ ํŠธ๋ฅผ ๋‹ค์‹œ ์‹คํ–‰ํ–ˆ์„ ๋•Œ ์ •์ƒ์ ์œผ๋กœ ์‹คํ–‰๋œ๋‹ค.

DB ์„ค์ •์ด ์ ์šฉ๋œ ํ›„์˜ ์ •์ƒ์ ์ธ ํ”„๋กœ์ ํŠธ ์‹คํ–‰

์‹คํ–‰๋˜๋Š” ๋กœ๊ทธ์—๋Š” 'HikariPool…'๋กœ ์‹œ์ž‘ํ•˜๋Š” ๋ถ€๋ถ„์ด ๊ธฐ๋ก๋˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋Š”๋ฐ, ์ด๋Š” ์Šคํ”„๋ง ๋ถ€ํŠธ๊ฐ€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ด์šฉํ•˜๋Š” ์ปค๋„ฅ์…˜ ํ’€์ด HikariCP ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ด์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๊ธฐ์กด์˜ ์Šคํ”„๋ง์œผ๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ–ˆ๋‹ค๋ฉด ์ง์ ‘ ์ถ”๊ฐ€ํ•˜๊ณ  ์„ค์ •ํ•ด ์ฃผ์–ด์•ผ ํ•˜๋Š” ๋ถ€๋ถ„์ด์ง€๋งŒ ์Šคํ”„๋ง ๋ถ€ํŠธ๋ฅผ ์ด์šฉํ•˜๋ฉด ์œ„์™€ ๊ฐ™์ด ์ž๋™์œผ๋กœ ์„ค์ •๋œ๋‹ค.

๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€