์ฒซ ์ฅ์ธ Chapter 1์์๋ ๊ธฐ๋ณธ์ ์ธ Spring์ ๋ํ ์ค๋ช ๊ณผ ๊ฐ๋ฐํ๊ฒฝ ์ธํ ์ ๋ํ ๋ด์ฉ์ด ๋ด๊ฒจ์์๋ค. ๋ค๋ง, ๋๋ Mac์ ์ฌ์ฉํ๊ณ ์๊ณ , ์ด ์ฑ ์์๋ ์๋์ฐ ๊ธฐ์ค์ผ๋ก ์ค๋ช ํ๊ณ ์์ด ์ฑ ์ ๋ด์ฉ๋๋ก ์งํํ๊ธด ์ด๋ ค์ ๋ค. JDK๋ ๊ธฐํ ํ์ํ ํจํค์ง๋ค์ Homebrew๋ก ์ค์นํ๋ค. ๋, ์ด ์ฑ ์์๋ ์ดํด๋ฆฝ์ค๋ฅผ ์ฌ์ฉํ์ง๋ง, ๋๋ Visual Studio Code๋ฅผ ์ฌ์ฉํ๋ค.
๋ ๋ฒ์งธ ์ฅ์ธ Chapter 2์์๋ ์คํ๋ง์ ์ด์ฉํ ์๋ฐ ํ๋ก์ ํธ๋ฅผ ์งํํ๋ ๊ณผ์ ์ ์๊ฐํ๊ณ ์๋ค. Maven(or Gradle) ํ๋ก์ ํธ ์์ฑ -> ์ดํด๋ฆฝ์ค์์ ํ๋ก์ ํธ ์ํฌํธ -> ์คํ๋ง์ ๋ง๋ ์๋ฐ ์ฝ๋์ ์ค์ ํ์ผ ์์ฑ -> ์คํ ์์ผ๋ก ๊ณผ์ ๋ณ ์ค๋ช ์ ๋ด๊ณ ์๋ค. ์ ์ ํ ๊ทธ๋ํ์ ์บก์ณ ํ๋ฉด์ ์ฒจ๋ถํด ์ฝ๊ฒ ๋ฐ๋ผ ํ ์ ์์๋ค.
์ฌ๊ธฐ์ ๋ฌธ์ ๊ฐ ์์ ์ ์๋? ์ถ์์ง๋ง ๋ฌธ์ ๊ฐ ์์๋ค. ์ง๊ธ์ ํด๊ฒฐํ๊ธฐ ๋๋ฌธ์ ์ด๋ค ์ค๋ฅ์๋์ง ์ค๋ฅ ํ๋ฉด์ ์บก์ฒํ์ง ๋ชปํ์ง๋ง ๊ฒฐ๊ตญ ์ค์ ๋ฌธ์ ์๋ค. ํ๋ผ๋ ๋๋ก ํ๋๋ฐ ์ ์ ๋ ๊น ํด์ ์ฐพ์๋ดค๋ค.
์ด ์ฑ ์์๋ build.gradle ํ์ผ์์ dependencies ์ถ๊ฐ ๋ถ๋ถ์ ๋ค์๊ณผ ๊ฐ์ด ์์ฑํ๋ค.
dependencies {
compile 'org.springframework:spring-context:5.2.0.RELEASE'
}
ํ์ง๋ง ๋์ํ์ง ์์๋ค. ๋ญ๊ฐ ๋ฌธ์ ์ผ๊น ์ฐพ์๋ดค๋ค. ๋ฌธ๋ฒ์ด compile ๋์ implementation์ ์ฌ์ฉํ๋ ๊ฑฐ๋ก ๋ฐ๋์๋ค๊ณ ํ๋ค. ๊ฒฐ๊ตญ ์์ ์ฝ๋๋
dependencies {
implementation 'org.springframework:spring-context:5.2.0.RELEASE'
}
์ด๋ฐ ์์ผ๋ก ์จ์ผ ํ๋ค.
Gradle 3.0 ์ดํ๋ถํฐ๋ compile ๋์ api ์ฌ์ฉ์ผ๋ก ๋ฐ๋์์ง๋ง, ๋ณด์์ ์ธ ์ธก๋ฉด์์ api ์ฌ์ฉ๋ ์ง์๋๋ ๊ฒ ๊ฐ๋ค. ์ด์ ๋ฅผ ์ฐพ์๋ณด๋ ๋ชจ๋ ์์ ์ rebuild ์๊ฐ(compile or api: ์์ ํ ๋ชจ๋์ด ์ง์ ํน์ ๊ฐ์ ์ผ๋ก ์์กดํ๊ณ ์๋ ๋ชจ๋์ ๋ชจ๋ rebuild / implementation: ์ง์ ์ ์ผ๋ก ์์กดํ๊ณ ์๋ ๋ชจ๋๋ง์ rebuild ์๊ฐ์ implementation์ด ํจ์จ์ ์)๊ณผ ๋ชจ๋์ API ๋ ธ์ถ ๋ฐฉ์ง(compile: ์ฐ๊ฒฐ๋ ๋ชจ๋ ๋ชจ๋์ api๊ฐ ๋ ธ์ถ๋จ, ๋ณด์์ ์ข์ ๋ฐฉ๋ฒ์ด ์๋)๋ฅผ ์ด์ ๋ก implementation๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๊ถ์ฅํ๋ค๊ณ ํ๋ค.
implementation ํค์๋๋ฅผ ์ฌ์ฉํ๋ ๊ฑฐ๋ก ๋ฐ๊ฟ์ ๋ ์ค ์์๋๋ฐ ์ ๋๊ธธ๋ spring-context ๋ฒ์ ์ ์์ ๋ฒ์ ์ผ๋ก ๋ฐ๊ฟ๋ดค๋ค. ๊ทธ๋๋ ์ ๋๋ค.. ์ค๊น...?ใ ๊ฒฐ์ ์ ์ธ ๋ฌธ์ ๋ ์ด๊ฒ ์๋์๊ธฐ ๋๋ฌธ์ด์๋ค. ํ์ง๋ง ์ฑ ์ ๋ด์ฉ์ด ์ ๋ฐ์ดํธ๊ฐ ํ์ํ ๋ถ๋ถ์ด๊ธฐ ๋๋ฌธ์ ๊ฐ์ด ์ ์ด๋ดค๋ค.
๊ฒฐ์ ์ ์ธ ๋ฌธ์ ๋ ๋ฒ์ ๋ฌธ์ ์๋ค. ์ด ์ฑ ์ด ์์ฑ๋ ์๊ธฐ๊ฐ 2017๋ ์ด๊ณ ์ง๊ธ์ 2023๋ ์ด๋ค. ์ฑ ์ด ์ถ๊ฐ๋ ์๊ธฐ์ ์ต์ ์๋ฐ ๋ฒ์ ์ Java SE 8์ด์๊ณ ์ง๊ธ์ Java SE 20์ด๋ค. ์ด์ ๋ง ๋์จ ๋ฒ์ ์ด๋ผ ์ด ๋ฒ์ ๋ณด๋ค ๋ฎ์ ๋ฒ์ ์ ์ฌ์ฉํ๋ค ํด๋ 19 ์ดํ์ผ ๊ฒ์ด๋ค. ๊ทธ๋ฆฌ๊ณ ๋ด Mac์ ์ค์น๋ ๋ฒ์ ์ด 14์๋ค. (์ฝ๋ฉํ ์คํธ ํ๊ฒฝ ์ปดํ์ผ๋ฌ๊ฐ 14์ฌ์ ์ค์นํ๊ฑฐ๋ก ๊ธฐ์ตํ๋ค) ๋, ์ด ์ฑ ์์๋ Gradle 4.4๋ฒ์ ์ ์ฐ๊ณ ์์๋ค. ๋๋ ๋ฒ์ ์ ๊ฒฝ์ฐ์ง ์๊ณ ๊ทธ๋ฅ Homebrew๋ก ์ค์นํด์ 7.3 ๋ฒ์ ์ ์ฐ๊ณ ์์๋ค.
์ฑ ์ ์ ํ๋๋ก ์ค์ ํ๊ณ ์ฑ ์ ์ ํ๋๋ก ์ฝ์์ ๊ฐ๋จํ ๋ฉ์์ง๋ฅผ ์ถ๋ ฅํ๋ ์์ฃผ์์ฃผ ๊ฐ๋จํ ์์ ์๋๋ฐ ์คํ์ด ์ ๋๋ค. ๋ญ์ผ ์ ์๋ผ..? ๋ญ๊ฐ ๋ฌธ์ ์ง...? ํ๊ณ ์ฝ์งํ ๊ฒฐ๊ณผ ์์ฑํ Java ํ์ผ์ import๊ฐ ์ ๋๋ก ์ ๋๋ค. ์ฅ ์์ง? ํ๊ณ ๋ค์ ๋ณด๋ build.gradle์์ implementation ํ ์์กด์ฑ ๊ด๋ จ ๋ชจ๋๋ค์ด Project and External Dependencies ํด๋์ ์ถ๊ฐ๋์ง ์์๋ค. ํ๋ก์ ํธ๋ฅผ ์ญ์ ํ๊ณ ๋ค์ ํ๊ณ ๋ฅผ ๋ฐ๋ณตํ๋ค๊ฐ ์ค๋ฅ์์ JDK 17 ๋ฒ์ ์ ์ฌ์ฉํ๋ผ๋ ๋ฌธ์ฅ์ ์ธ๋ป ๋ณธ ๊ฒ ๊ฐ์ JDK 17 ๋ฒ์ ์ ์ค์นํ๊ณ ํ๋ก์ ํธ๋ฅผ ์ญ์ ํ๊ณ ๋ค์ ๋ง๋ค์๋๋ ์ ์์ ์ผ๋ก ๋์ํ๋ค. ๊ฐ๋์ ๋๋ฌผ์ ํ๋ฆด ๋ปํ๋ค.
Gradle 7.3 Release Notes๋ฅผ ํ์ธํด๋ณด๋ ์ด๋ฐ ๋ฌธ๊ตฌ๊ฐ ์์๋ค.
This release introduces a declarative test suite API for JVM projects, adds support for building projects with Java 17, and updates the Scala plugin to support Scala 3.
Gradle ๋ฒ์ ์ด ํ์๋ก ํ๋ JDK ๋ฒ์ ๋ณด๋ค ๋ฎ์ ๋ฒ์ ์ ์ฐ๊ณ ์์ด์ ๋์ํ์ง ์์๋ ๊ฒ์ด์๋ค. ์ด๊ฑธ ๋ชฐ๋ผ์.. ์ดํ์ ์ฝ์งํ๋ค...๐ญ
์์ํ์๋ง์ ์ฝ์ง์ด์๋ค. ์ง๊ธ ์๊ฐํด๋ณด๋ฉด ๋ณ๊ฑฐ ์๋ ๊ฒ ๊ฐ์ง๋ง ์์ํ์๋ง์ ๊ฐ๋๋ค ์ฐ๊ธฐ ์์ค์ ์์ ๊ฐ ๋์ํ์ง ์์ ์๊ดด๊ฐ์ด ๋ค์๋ค. ํ์ง๋ง ๋ด๊ฐ ํด๋..! ์ฌ๊ธฐ์๋ถํฐ ์ฝ์ง ์ผ๊ธฐ๋ฅผ ์จ์ผ๊ฒ ๋ค๊ณ ์๊ฐํ๋ค.
Gradle compile/implementation ๊ด๋ จ ์ค๋ช
์ถ์ฒ -
(์ฌ๋ฌ ๊ธ์ ๋ดค์ง๋ง, ์ด ๋ธ๋ก๊ทธ ๊ธ์ด ๊ฐ์ฅ ์ง๊ด์ ์ด๊ณ ์ฝ๊ฒ ์ค๋ช
์ด ๋ผ ์๋ ๊ฒ ๊ฐ์ ์ฐธ๊ณ ํ๋ค. ์์กด์ฑ ์ต์
๋ค๋ ์ค๋ช
๋์ด ์์ด ์ฐธ๊ณ ํ๊ธฐ ์ข์๋ค.)
https://cantcoding.tistory.com/59
Gradle 7.3 Release Note -
(์ง๊ธ ์ฌ์ฉํ๊ณ ์๋ Gradle ๋ฒ์ ์ Release Note์ด๋ค. ํน์๋ ๋ค์์ ๋ ๋ณด๊ฒ ๋ ์ผ์ด ์๊ฒผ์ ๋๋ฅผ ๋๋นํด ํจ๊ป ์ ์ด๋๋ค.)
https://docs.gradle.org/7.3/release-notes.html