[๋ณดํ] ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉด์ ์คํ๋ง ๋ฉํฐ ๋ชจ๋ ํ๋ก์ ํธ๋ฅผ ์ ์ฉํ๊ฒ ๋ ์ด์ ์ ๊ณผ์ ์ ๊ธฐ๋กํ๋ ค๊ณ ํฉ๋๋ค.
๋ฉํฐ ๋ชจ๋ ํ๋ก์ ํธ๋ฅผ ๊ตฌ์ฑํ๋ ๋ฐฉ๋ฒ์ ๋ํด์๋ ์์ธํ ์ค๋ช ํ์ง ์๊ฒ ์ต๋๋ค.
๋จ์ผ ํ๋ก์ ํธ
์ฐ์ ๋ ๊ทธ๋์๋ฏ์ด ๋จ์ผ ํ๋ก์ ํธ๋ก ์์ํ์ต๋๋ค.
ํฐ ๊ท๋ชจ์ ํ๋ก์ ํธ๊ฐ ์๋๊ณ , ์์ง์ ํ๋์ ์๋ฒ๋ก ์ด์ํ๊ธฐ ๋๋ฌธ์ ๋จ์ผ ํ๋ก์ ํธ๋ก ๊ตฌ์ฑํด๋ ํฐ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
ํ์ง๋ง ์ค ์๋น์ค ์ด์์ ์๊ฐํ์ ๋๋, ์๋ฒ ์ธ์คํด์ค ์ฌ์์ ์ ๊ทธ๋ ์ด๋๋ฅผ ํ๋์ง (aws ํ๋ฆฌํฐ์ด ์ฌ์ฉ ์ค..) ๋จ์ผ ์๋ฒ๊ฐ ์๋ ์ฌ๋ฌ ์๋ฒ๋ก ๋ถ๋ฆฌํ๋ ๊ฒ์ด ํ์ํ๋ค๊ณ ์๊ฐํ์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋ณดํ์ ์๊ฐํ ์๋น์ค๋ก, ์ผ์ ์๊ฐ์ ์ ์ ๋ค์ ๋งค์นญํด ์ฃผ๋ ํต์ฌ ๊ธฐ๋ฅ์ด ์์ต๋๋ค.
์ด ์์ ์ ์ค์ผ์ค๋ฌ์ ์ํด ๋์ํฉ๋๋ค. ์ด๊ธฐ์๋ ์ ์ ์ ์๋ ์ ๊ณ ๋งค์นญํ๋ ์๊ฐ ๊ฐ๊ฒฉ๋ ๊ธธ๊ฒ ์ก์ ํ๋์ ์๋ฒ์์ ๋์ํด๋ ๋ฌธ์ ๊ฐ ์์ ๊ฒ์ผ๋ก ์๊ฐ๋ฉ๋๋ค.
ํ์ง๋ง ์ ์ ์ ์๊ฐ ์กฐ๊ธ๋ง ๋ง์์ ธ๋ ์ค์ผ์ค๋ฌ ์์ ์ ๋ง์ ์๊ฐ์ด ์์๋๊ธฐ ๋๋ฌธ์ ๋ค๋ฅธ ์์ฒญ์ ์ํฅ์ ๋ฏธ์น ์ ์์ต๋๋ค.
๊ทธ๋์ ๋ง์ฐฌ๊ฐ์ง๋ก ์ถํ์ ์๋ฒ๋ฅผ ๋ถ๋ฆฌํ์ฌ ์ด์ํ๋ ๊ฒ์ด ๋ถ๊ฐํผํ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ต๋๋ค.
์ ๋ฌธ์ ์ ๋ณ๊ฐ๋ก, ์ค์ผ์ค๋ฌ ์์ ์ ๋ฐ๋ก ๋ถ๋ฆฌํ๋ค๋ฉด ๋์ค์ ์๋น์ค๊ฐ ๋ง์ด ์ปค์ก์ ๋๋ ์คํ๋ง ๋ฐฐ์น๋ฅผ ๋ถ์ฌ์ ํด๊ฒฐํ ์๋ ์์ต๋๋ค.
๊ฒฐ๋ก ์ ๊ด์ฌ์ฌ์ ๋ถ๋ฆฌ(์ค์ผ์ค๋ฌ ์์ ๊ณผ API ์์ ์ ๋ถ๋ฆฌ) + ํ์ฅ์ฑ์ ์ํด ๋ฉํฐ ๋ชจ๋์ ์ ์ฉํ๊ธฐ๋ก ํ์ต๋๋ค.
๋ชจ๋ ๋ถ๋ฆฌ ๊ณผ์
๋ชจ๋์ ์ด๋ป๊ฒ ๋ถ๋ฆฌ๋ฅผ ํ ์ง ๊ณ ๋ฏผ์ ํ์ต๋๋ค.
๋ชจ๋์ ๋ถ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ์ ๋ง ์ ํ๊ธฐ ๋๋ฆ์ด์์ต๋๋ค.
๋๋ฉ์ธ ๋ณ๋ก ๋ถ๋ฆฌํ ์๋ ์๊ณ , ๋ ์ด์ด ๋ณ๋ก ๋ถ๋ฆฌํ ์๋ ์์ต๋๋ค.
ํ์ง๋ง ์ง๊ธ ๋น์ฅ์ API ์์ ๊ณผ ์ค์ผ์ค๋ฌ ์์ ์ ๋ถ๋ฆฌํ๋ ๊ฒ์ด ๋ชฉ์ ์ด๋ฏ๋ก, api ๋ชจ๋ / batch ๋ชจ๋๋ก ๋ถ๋ฆฌํ์ต๋๋ค.
๋ถ๋ฆฌํ๊ณ ๋๋ ๋ค์๊ณผ ๊ฐ์ด ๊ตฌ์ฑ๋์์ต๋๋ค.
- api ๋ชจ๋ - controller, service, domain, repository
- batch ๋ชจ๋ - scheduler
๊ทธ๋ฆฌ๊ณ batch ๋ชจ๋์ด api ๋ชจ๋์ ์์กดํ๋๋ก ํ์ต๋๋ค. (batch -> api)
์ง๊ธ ๊ตฌ์กฐ๊ฐ ๋ฌธ์ ๋ ์์ง๋ง, batch ๋ชจ๋์ด api ๋ชจ๋์ ์์กดํ๋ ๊ฒ ์ด์ง ์ ๊ฒฝ ์ฐ์ ๋๋ค.
api ๋ชจ๋์ ์ฌ์ค application ๊ทธ ์์ฒด์ด๊ธฐ ๋๋ฌธ์, ๋์ค์ ์๋น์ค๊ฐ ์ปค์ ธ์ ๋ค๋ฅธ ๋ชจ๋์ ๋ถ์ด๊ฒ ๋ ๋ ๋ชจ๋ api ๋ชจ๋์ ์์กดํ๊ฒ ๋ ๊ฒ ๊ฐ์์ต๋๋ค.
๋ฐ๋ผ์ api ๋ชจ๋์์ ํต์ฌ ๋ก์ง์ ๋ถ๋ฆฌํ๊ณ , api ๋ชจ๋์ ๋ง ๊ทธ๋๋ก http ํต์ ์ ์ํ ๋ชจ๋๋ก ๊ตฌ์กฐ๋ฅผ ๋ณ๊ฒฝํ๊ฒ ๋์์ต๋๋ค.
์ต์ข ์ ์ผ๋ก ๋ค์๊ณผ ๊ฐ์ด ๋ชจ๋์ ๋ถ๋ฆฌํ์ต๋๋ค.
- api ๋ชจ๋ - ํต์ ์ ์ํ ๋ชจ๋ (controller ๊ณ์ธต)
- app ๋ชจ๋ - ๋๋ฉ์ธ ๋ฐ ๋๋ฉ์ธ ๋ก์ง์ ์ํ ๋ชจ๋ (service, domain, repository)
- batch ๋ชจ๋ - ๋ฐฐ์น ์์ ์ ์ํ ๋ชจ๋
๊ทธ๋ฆฌ๊ณ ์์กด์ฑ์ ๋ค์๊ณผ ๊ฐ์ด ํ๋ฅด๋๋ก ํ์ต๋๋ค.
- api -> app
- batch -> app
์ถํ์ ๋ชจ๋์ ๋ถ์ธ๋ค๋ฉด ํต์ฌ ๋ก์ง์ ๊ฐ์ง๊ณ ์๋ app์ ๋ฐ๋ผ๋ณด๋๋ก ํ ์ ์๊ฒ ๋์์ต๋๋ค.

๋ฉํฐ ๋ชจ๋ ์ ์ฉ ์ ์๋ฉด ์ข์ ๊ฒ๋ค
Component Scan ์ง์
๋ชจ๋์ ๋ถ๋ฆฌํ๊ฒ ๋๋ฉด ๊ฐ ๋ชจ๋์์ ๋ค๋ฅธ ๋ชจ๋์ Bean์ ๋ฑ๋กํ์ง ๋ชปํ๊ฒ ๋ฉ๋๋ค.
์๋ํ๋ฉด component scan์ Application ํ์ผ์ด ์์นํ ํจํค์ง๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ฑ๋กํ Bean์ ์ฐพ๊ธฐ ๋๋ฌธ์ ๋๋ค. ๋ฐ๋ผ์ component scan ํ ํจํค์ง๋ฅผ ์ง์ ์ง์ ํด์ค์ผ ํฉ๋๋ค.
์๋๋ api ๋ชจ๋์ Application ํ์ผ์ ํจํค์ง๋ฅผ ์ง์ ํด ์ฃผ๋ ์ฝ๋์ ๋๋ค.
@ConfigurationPropertiesScan
@SpringBootApplication(
scanBasePackages = [
"com.nexters.bottles.api",
"com.nexters.bottles.app",
]
)
class BottlesApiApplication
fun main(args: Array<String>) {
runApplication<BottlesApiApplication>(*args)
}
gradle์ implementation๊ณผ api
๋ณดํต ์์กด์ฑ์ ์ถ๊ฐํ ๋, implementation("xxxx")์ ๊ฐ์ ๋ฐฉ์์ผ๋ก ์ถ๊ฐํฉ๋๋ค.
๊ทธ๋ฌ๋ implementation ํค์๋๋ ํด๋น ์์กด์ฑ์ ํ์ฌ ํ๋ก์ ํธ์์๋ง ์ฌ์ฉํ ์ ์๊ฒ ํ๋ฉฐ, ์ด ์์กด์ฑ์ ๋ค๋ฅธ ํ๋ก์ ํธ์ ๋ ธ์ถํ์ง ์์ต๋๋ค. ์ฆ, ์์กด์ฑ ์ ์ด๊ฐ ์ผ์ด๋์ง ์๋๋ค๋ ์๋ฏธ์ ๋๋ค.
๊ทธ๋ผ ๋ค๋ฅธ ํ๋ก์ ํธ์์๋ ํจ๊ป ์ฌ์ฉํ๊ธฐ ์ํด์๋ api๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค. api๋ implementation๊ณผ ๋ฌ๋ฆฌ ์์กด์ฑ ์ ์ด๊ฐ ์ผ์ด๋์, ํด๋น ํ๋ก์ ํธ๋ฅผ ์ฌ์ฉํ๋ ๋ค๋ฅธ ํ๋ก์ ํธ์์๋ ๊ทธ ์์กด์ฑ์ ํจ๊ป ์ฌ์ฉํ ์ ์๊ฒ ๋ฉ๋๋ค.
์ ๋ฆฌํ๋ฉด,
- implementation - ๋ค๋ฅธ ํ๋ก์ ํธ์ ์์กด์ฑ ์ ์ด๊ฐ ์ผ์ด๋์ง ์์
- api - ๋ค๋ฅธ ํ๋ก์ ํธ์ ์์กด์ฑ ์ ์ด๊ฐ ์ผ์ด๋จ
dependencies {
api("org.springframework.boot:spring-boot-starter-web")
api("org.springframework.boot:spring-boot-starter-data-jpa")
api("org.springframework.boot:spring-boot-starter-data-jdbc")
}
๋ฉํฐ ๋ชจ๋์ ์ด๋ป๊ฒ ๊ตฌ์ฑํ๊ณ ์ ์ฉํ๋์ง์๋ ์ ๋ต์ด ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
ํ์ฌ ๊ตฌ์กฐ๋ก ์งํํ๋ค๊ฐ ์ด๋๊ฐ ๋ฌธ์ ๊ฐ ์๊ธฐ๊ฑฐ๋ ์กฐ๊ธ ๋ ํจ์จ์ ์ธ ๊ตฌ์กฐ๊ฐ ๋ ์ค๋ฅด๋ฉด ๊ทธ๋ ๋ณ๊ฒฝํ ์๋ ์์ต๋๋ค. ๊ณ์ ๊ณ ๋ฏผํ๋ฉฐ ์ข์ ๊ตฌ์กฐ๋ฅผ ์ฐพ์๊ฐ๋ ๊ฒ์ด ์ข์ ๊ฒ ๊ฐ์ต๋๋ค.
[๋ณดํ] ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉด์ ์คํ๋ง ๋ฉํฐ ๋ชจ๋ ํ๋ก์ ํธ๋ฅผ ์ ์ฉํ๊ฒ ๋ ์ด์ ์ ๊ณผ์ ์ ๊ธฐ๋กํ๋ ค๊ณ ํฉ๋๋ค.
๋ฉํฐ ๋ชจ๋ ํ๋ก์ ํธ๋ฅผ ๊ตฌ์ฑํ๋ ๋ฐฉ๋ฒ์ ๋ํด์๋ ์์ธํ ์ค๋ช ํ์ง ์๊ฒ ์ต๋๋ค.
๋จ์ผ ํ๋ก์ ํธ
์ฐ์ ๋ ๊ทธ๋์๋ฏ์ด ๋จ์ผ ํ๋ก์ ํธ๋ก ์์ํ์ต๋๋ค.
ํฐ ๊ท๋ชจ์ ํ๋ก์ ํธ๊ฐ ์๋๊ณ , ์์ง์ ํ๋์ ์๋ฒ๋ก ์ด์ํ๊ธฐ ๋๋ฌธ์ ๋จ์ผ ํ๋ก์ ํธ๋ก ๊ตฌ์ฑํด๋ ํฐ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
ํ์ง๋ง ์ค ์๋น์ค ์ด์์ ์๊ฐํ์ ๋๋, ์๋ฒ ์ธ์คํด์ค ์ฌ์์ ์ ๊ทธ๋ ์ด๋๋ฅผ ํ๋์ง (aws ํ๋ฆฌํฐ์ด ์ฌ์ฉ ์ค..) ๋จ์ผ ์๋ฒ๊ฐ ์๋ ์ฌ๋ฌ ์๋ฒ๋ก ๋ถ๋ฆฌํ๋ ๊ฒ์ด ํ์ํ๋ค๊ณ ์๊ฐํ์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋ณดํ์ ์๊ฐํ ์๋น์ค๋ก, ์ผ์ ์๊ฐ์ ์ ์ ๋ค์ ๋งค์นญํด ์ฃผ๋ ํต์ฌ ๊ธฐ๋ฅ์ด ์์ต๋๋ค.
์ด ์์ ์ ์ค์ผ์ค๋ฌ์ ์ํด ๋์ํฉ๋๋ค. ์ด๊ธฐ์๋ ์ ์ ์ ์๋ ์ ๊ณ ๋งค์นญํ๋ ์๊ฐ ๊ฐ๊ฒฉ๋ ๊ธธ๊ฒ ์ก์ ํ๋์ ์๋ฒ์์ ๋์ํด๋ ๋ฌธ์ ๊ฐ ์์ ๊ฒ์ผ๋ก ์๊ฐ๋ฉ๋๋ค.
ํ์ง๋ง ์ ์ ์ ์๊ฐ ์กฐ๊ธ๋ง ๋ง์์ ธ๋ ์ค์ผ์ค๋ฌ ์์ ์ ๋ง์ ์๊ฐ์ด ์์๋๊ธฐ ๋๋ฌธ์ ๋ค๋ฅธ ์์ฒญ์ ์ํฅ์ ๋ฏธ์น ์ ์์ต๋๋ค.
๊ทธ๋์ ๋ง์ฐฌ๊ฐ์ง๋ก ์ถํ์ ์๋ฒ๋ฅผ ๋ถ๋ฆฌํ์ฌ ์ด์ํ๋ ๊ฒ์ด ๋ถ๊ฐํผํ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ต๋๋ค.
์ ๋ฌธ์ ์ ๋ณ๊ฐ๋ก, ์ค์ผ์ค๋ฌ ์์ ์ ๋ฐ๋ก ๋ถ๋ฆฌํ๋ค๋ฉด ๋์ค์ ์๋น์ค๊ฐ ๋ง์ด ์ปค์ก์ ๋๋ ์คํ๋ง ๋ฐฐ์น๋ฅผ ๋ถ์ฌ์ ํด๊ฒฐํ ์๋ ์์ต๋๋ค.
๊ฒฐ๋ก ์ ๊ด์ฌ์ฌ์ ๋ถ๋ฆฌ(์ค์ผ์ค๋ฌ ์์ ๊ณผ API ์์ ์ ๋ถ๋ฆฌ) + ํ์ฅ์ฑ์ ์ํด ๋ฉํฐ ๋ชจ๋์ ์ ์ฉํ๊ธฐ๋ก ํ์ต๋๋ค.
๋ชจ๋ ๋ถ๋ฆฌ ๊ณผ์
๋ชจ๋์ ์ด๋ป๊ฒ ๋ถ๋ฆฌ๋ฅผ ํ ์ง ๊ณ ๋ฏผ์ ํ์ต๋๋ค.
๋ชจ๋์ ๋ถ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ์ ๋ง ์ ํ๊ธฐ ๋๋ฆ์ด์์ต๋๋ค.
๋๋ฉ์ธ ๋ณ๋ก ๋ถ๋ฆฌํ ์๋ ์๊ณ , ๋ ์ด์ด ๋ณ๋ก ๋ถ๋ฆฌํ ์๋ ์์ต๋๋ค.
ํ์ง๋ง ์ง๊ธ ๋น์ฅ์ API ์์ ๊ณผ ์ค์ผ์ค๋ฌ ์์ ์ ๋ถ๋ฆฌํ๋ ๊ฒ์ด ๋ชฉ์ ์ด๋ฏ๋ก, api ๋ชจ๋ / batch ๋ชจ๋๋ก ๋ถ๋ฆฌํ์ต๋๋ค.
๋ถ๋ฆฌํ๊ณ ๋๋ ๋ค์๊ณผ ๊ฐ์ด ๊ตฌ์ฑ๋์์ต๋๋ค.
- api ๋ชจ๋ - controller, service, domain, repository
- batch ๋ชจ๋ - scheduler
๊ทธ๋ฆฌ๊ณ batch ๋ชจ๋์ด api ๋ชจ๋์ ์์กดํ๋๋ก ํ์ต๋๋ค. (batch -> api)
์ง๊ธ ๊ตฌ์กฐ๊ฐ ๋ฌธ์ ๋ ์์ง๋ง, batch ๋ชจ๋์ด api ๋ชจ๋์ ์์กดํ๋ ๊ฒ ์ด์ง ์ ๊ฒฝ ์ฐ์ ๋๋ค.
api ๋ชจ๋์ ์ฌ์ค application ๊ทธ ์์ฒด์ด๊ธฐ ๋๋ฌธ์, ๋์ค์ ์๋น์ค๊ฐ ์ปค์ ธ์ ๋ค๋ฅธ ๋ชจ๋์ ๋ถ์ด๊ฒ ๋ ๋ ๋ชจ๋ api ๋ชจ๋์ ์์กดํ๊ฒ ๋ ๊ฒ ๊ฐ์์ต๋๋ค.
๋ฐ๋ผ์ api ๋ชจ๋์์ ํต์ฌ ๋ก์ง์ ๋ถ๋ฆฌํ๊ณ , api ๋ชจ๋์ ๋ง ๊ทธ๋๋ก http ํต์ ์ ์ํ ๋ชจ๋๋ก ๊ตฌ์กฐ๋ฅผ ๋ณ๊ฒฝํ๊ฒ ๋์์ต๋๋ค.
์ต์ข ์ ์ผ๋ก ๋ค์๊ณผ ๊ฐ์ด ๋ชจ๋์ ๋ถ๋ฆฌํ์ต๋๋ค.
- api ๋ชจ๋ - ํต์ ์ ์ํ ๋ชจ๋ (controller ๊ณ์ธต)
- app ๋ชจ๋ - ๋๋ฉ์ธ ๋ฐ ๋๋ฉ์ธ ๋ก์ง์ ์ํ ๋ชจ๋ (service, domain, repository)
- batch ๋ชจ๋ - ๋ฐฐ์น ์์ ์ ์ํ ๋ชจ๋
๊ทธ๋ฆฌ๊ณ ์์กด์ฑ์ ๋ค์๊ณผ ๊ฐ์ด ํ๋ฅด๋๋ก ํ์ต๋๋ค.
- api -> app
- batch -> app
์ถํ์ ๋ชจ๋์ ๋ถ์ธ๋ค๋ฉด ํต์ฌ ๋ก์ง์ ๊ฐ์ง๊ณ ์๋ app์ ๋ฐ๋ผ๋ณด๋๋ก ํ ์ ์๊ฒ ๋์์ต๋๋ค.

๋ฉํฐ ๋ชจ๋ ์ ์ฉ ์ ์๋ฉด ์ข์ ๊ฒ๋ค
Component Scan ์ง์
๋ชจ๋์ ๋ถ๋ฆฌํ๊ฒ ๋๋ฉด ๊ฐ ๋ชจ๋์์ ๋ค๋ฅธ ๋ชจ๋์ Bean์ ๋ฑ๋กํ์ง ๋ชปํ๊ฒ ๋ฉ๋๋ค.
์๋ํ๋ฉด component scan์ Application ํ์ผ์ด ์์นํ ํจํค์ง๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ฑ๋กํ Bean์ ์ฐพ๊ธฐ ๋๋ฌธ์ ๋๋ค. ๋ฐ๋ผ์ component scan ํ ํจํค์ง๋ฅผ ์ง์ ์ง์ ํด์ค์ผ ํฉ๋๋ค.
์๋๋ api ๋ชจ๋์ Application ํ์ผ์ ํจํค์ง๋ฅผ ์ง์ ํด ์ฃผ๋ ์ฝ๋์ ๋๋ค.
@ConfigurationPropertiesScan
@SpringBootApplication(
scanBasePackages = [
"com.nexters.bottles.api",
"com.nexters.bottles.app",
]
)
class BottlesApiApplication
fun main(args: Array<String>) {
runApplication<BottlesApiApplication>(*args)
}
gradle์ implementation๊ณผ api
๋ณดํต ์์กด์ฑ์ ์ถ๊ฐํ ๋, implementation("xxxx")์ ๊ฐ์ ๋ฐฉ์์ผ๋ก ์ถ๊ฐํฉ๋๋ค.
๊ทธ๋ฌ๋ implementation ํค์๋๋ ํด๋น ์์กด์ฑ์ ํ์ฌ ํ๋ก์ ํธ์์๋ง ์ฌ์ฉํ ์ ์๊ฒ ํ๋ฉฐ, ์ด ์์กด์ฑ์ ๋ค๋ฅธ ํ๋ก์ ํธ์ ๋ ธ์ถํ์ง ์์ต๋๋ค. ์ฆ, ์์กด์ฑ ์ ์ด๊ฐ ์ผ์ด๋์ง ์๋๋ค๋ ์๋ฏธ์ ๋๋ค.
๊ทธ๋ผ ๋ค๋ฅธ ํ๋ก์ ํธ์์๋ ํจ๊ป ์ฌ์ฉํ๊ธฐ ์ํด์๋ api๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค. api๋ implementation๊ณผ ๋ฌ๋ฆฌ ์์กด์ฑ ์ ์ด๊ฐ ์ผ์ด๋์, ํด๋น ํ๋ก์ ํธ๋ฅผ ์ฌ์ฉํ๋ ๋ค๋ฅธ ํ๋ก์ ํธ์์๋ ๊ทธ ์์กด์ฑ์ ํจ๊ป ์ฌ์ฉํ ์ ์๊ฒ ๋ฉ๋๋ค.
์ ๋ฆฌํ๋ฉด,
- implementation - ๋ค๋ฅธ ํ๋ก์ ํธ์ ์์กด์ฑ ์ ์ด๊ฐ ์ผ์ด๋์ง ์์
- api - ๋ค๋ฅธ ํ๋ก์ ํธ์ ์์กด์ฑ ์ ์ด๊ฐ ์ผ์ด๋จ
dependencies {
api("org.springframework.boot:spring-boot-starter-web")
api("org.springframework.boot:spring-boot-starter-data-jpa")
api("org.springframework.boot:spring-boot-starter-data-jdbc")
}
๋ฉํฐ ๋ชจ๋์ ์ด๋ป๊ฒ ๊ตฌ์ฑํ๊ณ ์ ์ฉํ๋์ง์๋ ์ ๋ต์ด ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
ํ์ฌ ๊ตฌ์กฐ๋ก ์งํํ๋ค๊ฐ ์ด๋๊ฐ ๋ฌธ์ ๊ฐ ์๊ธฐ๊ฑฐ๋ ์กฐ๊ธ ๋ ํจ์จ์ ์ธ ๊ตฌ์กฐ๊ฐ ๋ ์ค๋ฅด๋ฉด ๊ทธ๋ ๋ณ๊ฒฝํ ์๋ ์์ต๋๋ค. ๊ณ์ ๊ณ ๋ฏผํ๋ฉฐ ์ข์ ๊ตฌ์กฐ๋ฅผ ์ฐพ์๊ฐ๋ ๊ฒ์ด ์ข์ ๊ฒ ๊ฐ์ต๋๋ค.