## `Spring Boot`๋?
๊ฐ๋ฅํ ๋น ๋ฅด๊ฒ ์ ํ๋ฆฌ์ผ์ด์
์ ๊ฐ๋ฐํ๊ณ ์๋น์คํ๋ ๊ฑธ ๋ชฉ์ ์ผ๋ก ํ๋ [[5. Spring๊ณผ ํน์ง ๐ฟ|Spring]] ๊ธฐ๋ฐ ํ๋ ์์ํฌ. ๊ธฐ์กด ์คํ๋ง์์ ๊ฐ๋ฐ์๊ฐ ์ง์ ์ค์ ํด์ผ ํ๋ ์์๋ค์ด ๋ฏธ๋ฆฌ ์ค์ ๋์ด ์์ผ๋ฉฐ, ํฌํจ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ ๊ฐ๋ฐ์ ์ ์ ํ๊ฒ ์ค์ ๋์ด ์๊ณ ํ
์คํธ๋ ์๋ฃ๋์ด ์์ด ๋น ๋ฅธ ๊ฐ๋ฐ์ด ๊ฐ๋ฅํ๋ค.
## [[5. Spring๊ณผ ํน์ง ๐ฟ|Spring]]๊ณผ ๊ตฌ๋ถ๋๋ Spring Boot ๋ง์ ํน์ง
### ์ค์ ๋ณด๋ค ๊ด๋ก (Convention over Configuration)
์คํ๋ง ๋ถํธ์ ๊ฐ์ฅ ํฐ ์ฅ์ ์ ์ค์ ์์ด ๋ฐ๋ก ์ ํ๋ฆฌ์ผ์ด์
์ ๊ฐ๋ฐํ ์ ์๋ค๋ ์ ์ด๋ค. ๊ธฐ์กด ์คํ๋ง ํ๋ ์์ํฌ๋ ๊ฐ๋ฐ์๊ฐ ์ง์ ์ฌ๋ฌ๊ฐ์ง ์ค์ ์ ํด์ผ ํ๋ค. ์๋ฅผ ๋ค์ด ์คํ๋ง ํ๋ ์์ํฌ์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฟผ๋ฆฌ๋ฅผ ์คํํ๋ ๊ธฐ๋ฅ์ ์ถ๊ฐํ๋ ค๋ฉด,
>0. `javax.sql.DataSource` ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ ์ ํ๋ค.[^1]
>1. property ํ์ผ์์ jdbc url๊ณผ username, password, ๊ทธ๋ฆฌ๊ณ connection pool ์ค์ ๊ฐ ์ค์
>2. ํธ๋์ญ์
์ ์ํ `javax.sql.DataSourceTransactionManager` ๊ตฌํ์ฒด๋ฅผ ์ค์
>3. `o.s.jdbc.core.JdbcTemplate` ์คํ๋ง ๋น ์ค์
>4. ๊ฐ ๊ธฐ๋ฅ์ด ์ ๊ธฐ์ ์ผ๋ก ๋์ํ๋์ง ํ
์คํธ
์์ ๊ฐ์ ์์
์ ํด์ผ ํ๋ค.
์คํ๋ง ๋ถํธ๋ ์์ ์์
๋ค์ ๋ฏธ๋ฆฌ ๋์ ํด์ฃผ๋ฉฐ, ๊ฐ๋ฐ์๋ ๊ด๋ก์ ๋ฐ๋ผ ๊ฐ๋จํ ๋ช ๊ฐ์ง๋ง ์ค์ ํ๋ฉด ๋ฐ๋ก ์ ํ๋ฆฌ์ผ์ด์
๊ฐ๋ฐ์ด ๊ฐ๋ฅํ๋ค.
### ๋จ๋
์คํ ๊ฐ๋ฅํ ์คํ๋ง ์ ํ๋ฆฌ์ผ์ด์
์คํ๋ง ๋ถํธ๋ Tomcat WAS๋ฅผ ๋ด์ฅํ๊ณ ์๊ธฐ ๋๋ฌธ์ ํธ์คํธ์ WAS ์ค์น ์์ด JAR ํ์ผ ๋ง์ผ๋ก ์คํํ ์ ์๋ค. WAS ์ค์น ํ ์ค์ ๊น์ง ํด์ผ ํ๋ ์ ํต์ ์ธ ๋ฐฐํฌ ๋ฐฉ๋ฒ์ ๋นํด ๋งค์ฐ ๋น ๋ฅด๊ฒ ๋ฐฐํฌํ ์ ์์ด [[IT ์ฉ์ด ์ ๋ฆฌ ๐#`์ค์ผ์ผ์์`|์ค์ผ์ผ์์]] ๋ฐฉ์์ผ๋ก ๊ณ ๊ฐ์ฉ์ฑ์ ์ฝ๊ฒ ํ๋ณดํ ์ ์๋ค.
### [[B. Spring Boot ์คํํฐ์ ์์กด์ฑ ์ง์ฅ|๊ฐํธํ ์ค์ ์ ์ํ '์คํํฐ' ์์กด์ฑ ์ ๊ณต]]
์คํ๋ง ๋ถํธ๋ ๊ธฐ๋ฅ๋ณ๋ก ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์์กด์ฑ์ ํฌํจํ ์คํํฐ๋ฅผ ์ ๊ณตํ๋ค. ์ด ์คํํฐ์ Gradle ๊ฐ์ ์์กด์ฑ ๊ด๋ฆฌ ํด์ ํตํด ํด๋น ๊ธฐ๋ฅ์ ํ์ํ ๋ชจ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํ ๋ฒ์ ์ถ๊ฐํ ์ ์๋ค. ๊ฐ๋ฐ์๊ฐ ์ง์ ์คํํฐ๋ฅผ ์ค์ ํ ์๋ ์์ด, ๋ชจ๋ ํ์ด ์ฌ์ฉํ๋ ๊ณตํต ๋ชจ๋์ ์คํํฐ๋ก ์ค์ ํ ์๋ ์๋ค.[^2]
### ์คํ๋ง ๊ธฐ๋ฅ์ ์๋ ์ค์ ํ๋ '์๋ ๊ตฌ์ฑ' ์ ๊ณต
์คํ๋ง ๋ถํธ์๋ ๋ฏธ๋ฆฌ ์กฐ๊ฑด์ ์ค์ ํ๊ณ ์กฐ๊ฑด ์ถฉ์กฑ์ ์๋ฐ ์ค์ ํด๋์ค๋ฅผ ๋์ํ๋๋ก ํ ์ ์๋ค. ์กฐ๊ฑด์ ํน์ ์คํ๋ง ๋น์ด ์๊ฑฐ๋, ํด๋์ค ํจ์ค์ ํน์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์๊ฑฐ๋, ํน์ ํ๊ฒฝ ์ค์ ๊ฐ์ด ์๋ ๊ฒฝ์ฐ ๋ฑ ๋ค์ํ๊ฒ ์ค์ ํ ์ ์๋ค.
[^1]:Hikari, Apache Commons DBCP2, Tomcat DataSource ๋ฑ
[^2]:์ด๊ฒ ์ค์ํ ํน์ง์ธ ์ด์ ๋ [[B. Spring Boot ์คํํฐ์ ์์กด์ฑ ์ง์ฅ|์ฌ๊ธฐ]]์ ์ ๋ฆฌํด๋์๋ค.