[๐Ÿ“˜์Šคํ”„๋ง5] 1. ๋“ค์–ด๊ฐ€๋ฉฐ / 2. ์Šคํ”„๋ง ์‹œ์ž‘ํ•˜๊ธฐ

์‘ค๋ฐยท2023๋…„ 3์›” 20์ผ

๊ธฐ๋ก

๋ชฉ๋ก ๋ณด๊ธฐ
3/10

Chapter 1 ๋“ค์–ด๊ฐ€๋ฉฐ

์ฒซ ์žฅ์ธ Chapter 1์—์„œ๋Š” ๊ธฐ๋ณธ์ ์ธ Spring์— ๋Œ€ํ•œ ์„ค๋ช…๊ณผ ๊ฐœ๋ฐœํ™˜๊ฒฝ ์„ธํŒ…์— ๋Œ€ํ•œ ๋‚ด์šฉ์ด ๋‹ด๊ฒจ์žˆ์—ˆ๋‹ค. ๋‹ค๋งŒ, ๋‚˜๋Š” Mac์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๊ณ , ์ด ์ฑ…์—์„œ๋Š” ์œˆ๋„์šฐ ๊ธฐ์ค€์œผ๋กœ ์„ค๋ช…ํ•˜๊ณ  ์žˆ์–ด ์ฑ…์˜ ๋‚ด์šฉ๋Œ€๋กœ ์ง„ํ–‰ํ•˜๊ธด ์–ด๋ ค์› ๋‹ค. JDK๋‚˜ ๊ธฐํƒ€ ํ•„์š”ํ•œ ํŒจํ‚ค์ง€๋“ค์€ Homebrew๋กœ ์„ค์น˜ํ–ˆ๋‹ค. ๋˜, ์ด ์ฑ…์—์„œ๋Š” ์ดํด๋ฆฝ์Šค๋ฅผ ์‚ฌ์šฉํ–ˆ์ง€๋งŒ, ๋‚˜๋Š” Visual Studio Code๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค.

Chapter 2 ์Šคํ”„๋ง ์‹œ์ž‘ํ•˜๊ธฐ

๋‘ ๋ฒˆ์งธ ์žฅ์ธ Chapter 2์—์„œ๋Š” ์Šคํ”„๋ง์„ ์ด์šฉํ•œ ์ž๋ฐ” ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋Š” ๊ณผ์ •์„ ์†Œ๊ฐœํ•˜๊ณ  ์žˆ๋‹ค. Maven(or Gradle) ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ -> ์ดํด๋ฆฝ์Šค์—์„œ ํ”„๋กœ์ ํŠธ ์ž„ํฌํŠธ -> ์Šคํ”„๋ง์— ๋งž๋Š” ์ž๋ฐ” ์ฝ”๋“œ์™€ ์„ค์ • ํŒŒ์ผ ์ž‘์„ฑ -> ์‹คํ–‰ ์ˆœ์œผ๋กœ ๊ณผ์ •๋ณ„ ์„ค๋ช…์„ ๋‹ด๊ณ  ์žˆ๋‹ค. ์ ์ ˆํ•œ ๊ทธ๋ž˜ํ”„์™€ ์บก์ณ ํ™”๋ฉด์„ ์ฒจ๋ถ€ํ•ด ์‰ฝ๊ฒŒ ๋”ฐ๋ผ ํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

์—ฌ๊ธฐ์„œ ๋ฌธ์ œ๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ๋‚˜? ์‹ถ์—ˆ์ง€๋งŒ ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๋‹ค. ์ง€๊ธˆ์€ ํ•ด๊ฒฐํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์–ด๋–ค ์˜ค๋ฅ˜์˜€๋Š”์ง€ ์˜ค๋ฅ˜ ํ™”๋ฉด์„ ์บก์ฒ˜ํ•˜์ง„ ๋ชปํ–ˆ์ง€๋งŒ ๊ฒฐ๊ตญ ์„ค์ • ๋ฌธ์ œ์˜€๋‹ค. ํ•˜๋ผ๋Š” ๋Œ€๋กœ ํ–ˆ๋Š”๋ฐ ์™œ ์•ˆ ๋ ๊นŒ ํ•ด์„œ ์ฐพ์•„๋ดค๋‹ค.

1. Gradle dependencies ์„ค์ •

์ด ์ฑ…์—์„œ๋Š” 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 ๋ฒ„์ „์„ ์ƒ์œ„ ๋ฒ„์ „์œผ๋กœ ๋ฐ”๊ฟ”๋ดค๋‹ค. ๊ทธ๋ž˜๋„ ์•ˆ ๋๋‹ค.. ์™ค๊นŒ...?ใ…œ ๊ฒฐ์ •์ ์ธ ๋ฌธ์ œ๋Š” ์ด๊ฒŒ ์•„๋‹ˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์ด์—ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ฑ…์˜ ๋‚ด์šฉ์ด ์—…๋ฐ์ดํŠธ๊ฐ€ ํ•„์š”ํ•œ ๋ถ€๋ถ„์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ™์ด ์ ์–ด๋ดค๋‹ค.

2. ๋ฒ„์ „ ๋ฌธ์ œ

๊ฒฐ์ •์ ์ธ ๋ฌธ์ œ๋Š” ๋ฒ„์ „ ๋ฌธ์ œ์˜€๋‹ค. ์ด ์ฑ…์ด ์ž‘์„ฑ๋œ ์‹œ๊ธฐ๊ฐ€ 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 ๋ฒ„์ „๋ณด๋‹ค ๋‚ฎ์€ ๋ฒ„์ „์„ ์“ฐ๊ณ  ์žˆ์–ด์„œ ๋™์ž‘ํ•˜์ง€ ์•Š์•˜๋˜ ๊ฒƒ์ด์—ˆ๋‹ค. ์ด๊ฑธ ๋ชฐ๋ผ์„œ.. ์ดํ‹€์„ ์‚ฝ์งˆํ–ˆ๋‹ค...๐Ÿ˜ญ

Chapter 1, 2๋ฅผ ๋งˆ๋ฌด๋ฆฌ ํ•˜๋ฉฐ..(+์ถœ์ฒ˜ ํ‘œ๊ธฐ)

์‹œ์ž‘ํ•˜์ž๋งˆ์ž ์‚ฝ์งˆ์ด์—ˆ๋‹ค. ์ง€๊ธˆ ์ƒ๊ฐํ•ด๋ณด๋ฉด ๋ณ„๊ฑฐ ์•„๋‹Œ ๊ฒƒ ๊ฐ™์ง€๋งŒ ์‹œ์ž‘ํ•˜์ž๋งˆ์ž ๊ฐ€๋‚˜๋‹ค ์“ฐ๊ธฐ ์ˆ˜์ค€์˜ ์˜ˆ์ œ๊ฐ€ ๋™์ž‘ํ•˜์ง€ ์•Š์•„ ์ž๊ดด๊ฐ์ด ๋“ค์—ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋‚ด๊ฐ€ ํ•ด๋ƒ„..! ์—ฌ๊ธฐ์„œ๋ถ€ํ„ฐ ์‚ฝ์งˆ ์ผ๊ธฐ๋ฅผ ์จ์•ผ๊ฒ ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค.

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

profile
๊ฐœ๋ฐœ์ž์ง€๋ง์ƒ

0๊ฐœ์˜ ๋Œ“๊ธ€