DataSource
DataSoure
- JdbcTemplate๋ฅผ ์ฌ์ฉํ๊ธฐ ์ด์ ์๋, ๊ฐ๋ฐ์๊ฐ ์ง์ DriverManager๋ฅผ ์ฌ์ฉํด์ Connection๋ฅผ ๋งบ์ด์ผ ํ๋ค.
- ํ์ง๋ง, JdbcTemplate๋ฅผ ์ฌ์ฉํ๊ฒ ๋๋ฉด Connection๋ฅผ ๋งบ๋ ์ฝ๋๋ฅผ ๊ฐ๋ฐ์๊ฐ ์์ฑํ์ง ์์๋ ๋๋ค.
- JdbcTemplate์ DataSource๋ฅผ ์ฌ์ฉํ๊ณ ์๋ค.
- DataSource
- DriverManager์ ๋์์ผ๋ก ์ฌ์ฉ๋๋ฉฐ, Connection๋ฅผ ํ๋ํ๊ธฐ ์ํด ์ ํธ๋๋ ๋ฐฉ์์ด๋ค.
- ํด๋น ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ ๊ฐ์ฒด๋ JNDI๋ฅผ ํตํด ์ ํ๋ฆฌ์ผ์ด์ ์๋ฒ์ JNDI ๋ค์์คํ์ด์ค์ ๋ฑ๋ก๋๋ค.
- DataSource๋ Driver vendor์ ์ํด ๊ตฌํ๋๋ค.
- ์ปค๋ฅ์ ์ ๋งบ์ด์ค๋ค.
- ์ปค๋ฅ์ ํ๋ง์ ์ง์ํ๋ค.
- ํธ๋์ญ์ ์์ ์ฌ์ฉ๋ ์ ์๋ ์ปค๋ฅ์ ์ ์์ฑํ๋ค.
- JNDI
- ๋ค์ด๋ฐ ๋ฐ ๋๋ ํ ๋ฆฌ์์ ์ ๊ณตํ๋ ๋ฐ์ดํฐ ๋ฐ ๊ฐ์ฒด๋ฅผ ๋ฐ๊ฒฌํ๊ณ ์ฐธ๊ณ ํ๊ธฐ ์ํ ์๋ฐ API์ด๋ค.
- ์ด๋ฆ๊ณผ ๋๋ ํ ๋ฆฌ๋ฅผ ํตํด ๊ฐ์ฒด๋ฅผ ๋ฐ์ธ๋ฉํ๋ฉฐ, ๊ฐ ๊ฐ์ฒด๋ ๊ณ ์ ํ๊ณ ์ฌ์ฉ์์๊ฒ ์น์ํ ์ด๋ฆ์ผ๋ก ์๋ณ๋๋ค.
- ์ ํ๋ฆฌ์ผ์ด์ ์ ํด๋น API์ ํตํด ๋ฑ๋ก๋ ์์์ ์ ๊ทผํ ์ ์๋ค.
- DataSource๋ JNDI๋ฅผ ํตํด ๋ฑ๋ก์ด ๋๋ฉฐ, ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฑ๋ก๋ DataSource๋ฅผ ์กฐํํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ์ ์์ฒญํ ์ ์๋ค.
- AutoConfiguration
- ์ ํ๋ฆฌ์ผ์ด์ ๊ตฌ๋๊ณผ์ ์์ Configuration ํ์ผ์ ๋น์ผ๋ก ๋ฑ๋ก๋๋ ๊ณผ์ ์ ์๋ค.
- ์ด ๊ณผ์ ์์ DataSource๊ฐ ๋น์ผ๋ก ๋ฑ๋ก์ด ๋๋ค.
- DataSource

- DataSourceConfiguration ์ถ์ ํด๋์ค ๋ด๋ถ์๋ Hikari ํด๋์ค๊ฐ ์ ์ธ๋์๋ค.
- ํด๋น ํด๋์ค๋ Configuration ์ด๋
ธํ
์ด์
์ ๊ฐ์ง๊ณ ์์ด, ์ปดํฌ๋ํธ ์ค์บ ๊ณผ์ ์์ ๋น์ผ๋ก ๋ฑ๋ก์ด ๋๋ค.
- ๋ด๋ถ์๋ dataSource์ด๋ผ๋ ๋ฉ์๋๊ฐ ์กด์ฌํ๋ฉฐ, ๋ฐํ๊ฐ์ผ๋ก HikariDataSource๋ฅผ ๋ฐํํ๋ค.
- ํ๋ผ๋ฏธํฐ๋ฅผ ๋ณด๋ฉด DataSourceProperties ํด๋์ค๊ฐ ์กด์ฌํ๊ณ , ๋ด๋ถ๋ ๋ค์๊ณผ ๊ฐ๋ค.

- ConfigurationProperties ์ด๋
ธํ
์ด์
์ .properties ํน์ .yml ํ์ผ์ ์๋ ์ค์ ์ ๊ฐ์ฒด์ ๋ฐ์ธ๋ฉํ ์ ์๊ฒ ํด์ฃผ๋ ์ด๋
ธํ
์ด์
์ด๋ค.
- prefix ์ค์ ์ ํตํด ํ์ผ์ ์ค์ ์ ๊ณตํต ์ ๋์ฌ๋ฅผ ์ค์ ํ ์ ์๋ค.
- ํด๋์ค ํ๋๋ฅผ ํตํด ์ค์ ํ์ผ์ ๊ฐ์ ๊ฐ์ ธ์ฌ ์ ์๋ค.
- ์ด๋ฅผ ํตํด application.yml์ ์์ฑํ ์ค์ ์ ์๋ฐ ๊ฐ์ฒด๋ก ๋ฐ์ธ๋ฉํ๊ณ , DataSource๋ฅผ ๊ตฌ์ฑํ๋๋ฐ ์ฌ์ฉํ๋ค.
- HikariCP
- ์ปค๋ฅ์
ํ์ ๊ตฌํ์ฒด ์ค ํ๋์ด๋ค.
- ๊ณ ์ฑ๋ฅ๊ณผ ๊ฒฝ๋ํ๋ ์ปค๋ฅ์
ํ์ด๋ฉฐ, Spring Boot๋ ๊ธฐ๋ณธ์ ์ผ๋ก HikariCP๋ฅผ ์ฌ์ฉํ๋ค.