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๊ฐ€ ๋นˆ์œผ๋กœ ๋“ฑ๋ก์ด ๋œ๋‹ค.

    -   DataSourceConfiguration ์ถ”์ƒ ํด๋ž˜์Šค ๋‚ด๋ถ€์—๋Š” Hikari ํด๋ž˜์Šค๊ฐ€ ์„ ์–ธ๋˜์žˆ๋‹ค.
    -   ํ•ด๋‹น ํด๋ž˜์Šค๋Š” Configuration ์–ด๋…ธํ…Œ์ด์…˜์„ ๊ฐ€์ง€๊ณ  ์žˆ์–ด, ์ปดํฌ๋„ŒํŠธ ์Šค์บ” ๊ณผ์ •์—์„œ ๋นˆ์œผ๋กœ ๋“ฑ๋ก์ด ๋œ๋‹ค.
    -   ๋‚ด๋ถ€์—๋Š” dataSource์ด๋ผ๋Š” ๋ฉ”์†Œ๋“œ๊ฐ€ ์กด์žฌํ•˜๋ฉฐ, ๋ฐ˜ํ™˜๊ฐ’์œผ๋กœ HikariDataSource๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
    -   ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๋ณด๋ฉด DataSourceProperties ํด๋ž˜์Šค๊ฐ€ ์กด์žฌํ•˜๊ณ , ๋‚ด๋ถ€๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

    -   ConfigurationProperties ์–ด๋…ธํ…Œ์ด์…˜์€ .properties ํ˜น์€ .yml ํŒŒ์ผ์— ์žˆ๋Š” ์„ค์ •์„ ๊ฐ์ฒด์— ๋ฐ”์ธ๋”ฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ์–ด๋…ธํ…Œ์ด์…˜์ด๋‹ค.
    -   prefix ์„ค์ •์„ ํ†ตํ•ด ํŒŒ์ผ์˜ ์„ค์ •์˜ ๊ณตํ†ต ์ ‘๋‘์‚ฌ๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.
    -   ํด๋ž˜์Šค ํ•„๋“œ๋ฅผ ํ†ตํ•ด ์„ค์ • ํŒŒ์ผ์˜ ๊ฐ’์„ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋‹ค.
    -   ์ด๋ฅผ ํ†ตํ•ด application.yml์— ์ž‘์„ฑํ•œ ์„ค์ •์„ ์ž๋ฐ” ๊ฐ์ฒด๋กœ ๋ฐ”์ธ๋”ฉํ•˜๊ณ , DataSource๋ฅผ ๊ตฌ์„ฑํ•˜๋Š”๋ฐ ์‚ฌ์šฉํ•œ๋‹ค.
-   HikariCP
    -   ์ปค๋„ฅ์…˜ ํ’€์˜ ๊ตฌํ˜„์ฒด ์ค‘ ํ•˜๋‚˜์ด๋‹ค.
    -   ๊ณ ์„ฑ๋Šฅ๊ณผ ๊ฒฝ๋Ÿ‰ํ™”๋œ ์ปค๋„ฅ์…˜ ํ’€์ด๋ฉฐ, Spring Boot๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ HikariCP๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.