Home > Archive > Spring & Spring Boots > ๐Ÿƒ[Spring] Gradle๊ณผ Maven

๐Ÿƒ[Spring] Gradle๊ณผ Maven
Spring Framework Build System

Gradle.

  • Gradle์€ ์˜คํ”ˆ ์†Œ์Šค ๋นŒ๋“œ ์ž๋™ํ™” ์‹œ์Šคํ…œ์œผ๋กœ, ๋‹ค์–‘ํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์™€ ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•ด ์œ ์—ฐํ•œ ๋นŒ๋“œ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • Groovy๋‚˜ Kotlin DSL์„ ์‚ฌ์šฉํ•˜์—ฌ ๋นŒ๋“œ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ž‘์„ฑํ•˜๋ฉฐ, ์ด๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ์ฝ๊ธฐ ์‰ฝ๊ณ , ๊ฐ•๋ ฅํ•˜๋ฉฐ, ์‚ฌ์šฉ์ž ์ •์˜๊ฐ€ ๊ฐ€๋Šฅํ•œ ๋นŒ๋“œ๋ฅผ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.
  • Gradle์€ ์˜์กด์„ฑ ๊ด€๋ฆฌ์™€ ๋ฉ€ํ‹ฐ ํ”„๋กœ์ ํŠธ ๋นŒ๋“œ๋ฅผ ์ง€์›ํ•˜๋ฉฐ, ์ด์ „์— ์‹คํ–‰๋œ ์ž‘์—…์˜ ์ถœ๋ ฅ์„ ์บ์‹œํ•˜์—ฌ ๋นŒ๋“œ ์‹œ๊ฐ„์„ ๋‹จ์ถ•์‹œํ‚ค๋Š” ์ฆ๋ถ„ ๋นŒ๋“œ ๊ธฐ๋Šฅ๋„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • Android ๊ฐœ๋ฐœ์„ ์œ„ํ•œ ๊ณต์‹ ๋นŒ๋“œ ์‹œ์Šคํ…œ์œผ๋กœ๋„ ๋„๋ฆฌ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

Maven.

  • Maven์€ Java ํ”„๋กœ์ ํŠธ์˜ ๋นŒ๋“œ, ๋ฌธ์„œํ™”, ๋ณด๊ณ , ์˜์กด์„ฑ ๊ด€๋ฆฌ ๋“ฑ์„ ์ž๋™ํ™”ํ•˜๊ธฐ ์œ„ํ•œ ๋˜ ๋‹ค๋ฅธ ์˜คํ”ˆ ์†Œ์Šค ๋นŒ๋“œ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค.
  • XML ํ˜•์‹์˜ pom.xml ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜์—ฌ ํ”„๋กœ์ ํŠธ ๊ตฌ์„ฑ๊ณผ ์˜์กด์„ฑ์„ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
  • Maven์€ ์ค‘์•™ ์ €์žฅ์†Œ์—์„œ ํ•„์š”ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์ž๋™์œผ๋กœ ๋‹ค์šด๋กœ๋“œํ•˜๊ณ , ํ”„๋กœ์ ํŠธ์˜ ๋ผ์ดํ”„์‚ฌ์ดํด(์ปดํŒŒ์ผ, ํ…Œ์ŠคํŠธ, ํŒจํ‚ค์ง• ๋“ฑ)์„ ๊ด€๋ฆฌํ•˜๋Š” ํ‘œ์ค€ํ™”๋œ ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
    • ์ด๋Š” ํ”„๋กœ์ ํŠธ์˜ ์ผ๊ด€์„ฑ์„ ์œ ์ง€ํ•˜๊ณ , ๋นŒ๋“œ ๊ณผ์ •์„ ๊ฐ„์†Œํ™”ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

Gradle๊ณผ Maven์˜ ์ฐจ์ด์ .

  • ๋นŒ๋“œ ์Šคํฌ๋ฆฝํŠธ ๊ตฌ๋ฌธ : Gradle์€ Groovy๋‚˜ Kotlin์œผ๋กœ ์ž‘์„ฑ๋œ ๋นŒ๋“œ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ˜๋ฉด, Maven์€ XML ๊ธฐ๋ฐ˜์˜ pom.xml ํŒŒ์ผ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. Gradle์˜ DSL์€ Maven์˜ XML๋ณด๋‹ค ๊ฐ„๊ฒฐํ•˜๊ณ , ์ฝ๊ธฐ ์‰ฝ์Šต๋‹ˆ๋‹ค.
  • ์„ฑ๋Šฅ : Gradle์€ ์ฆ๋ถ„ ๋นŒ๋“œ์™€ ๋นŒ๋“œ ์บ์‹œ ๊ธฐ๋Šฅ์„ ํ†ตํ•ด Maven๋ณด๋‹ค ๋นŒ๋“œ ์‹œ๊ฐ„์„ ๋‹จ์ถ•์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Maven์€ Gradle์— ๋น„ํ•ด ์ด๋Ÿฌํ•œ ์ตœ์ ํ™” ๊ธฐ๋Šฅ์ด ๋ถ€์กฑํ•ฉ๋‹ˆ๋‹ค.
  • ์œ ์—ฐ์„ฑ : Gradle์€ ๋นŒ๋“œ ์Šคํฌ๋ฆฝํŠธ์— ๋กœ์ง์„ ์ถ”๊ฐ€ํ•˜์—ฌ ๋นŒ๋“œ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋งค์šฐ ์„ธ๋ฐ€ํ•˜๊ฒŒ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Maven์€ ๋” ์—„๊ฒฉํ•œ ๋ผ์ดํ”„์‚ฌ์ดํด๊ณผ ๊ตฌ์กฐ๋ฅผ ๋”ฐ๋ฅด๋ฉฐ, ์ปค์Šคํ„ฐ๋งˆ์ด์ง•์ด ์ œํ•œ์ ์ž…๋‹ˆ๋‹ค.
  • ํ”Œ๋Ÿฌ๊ทธ์ธ ์ƒํƒœ๊ณ„ : Maven์€ ์˜ค๋žœ ๊ธฐ๊ฐ„ ๋™์•ˆ ์‚ฌ์šฉ๋˜์–ด ์™”๊ธฐ ๋•Œ๋ฌธ์— ๋ฐฉ๋Œ€ํ•œ ์–‘์˜ ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ์žˆ์ง€๋งŒ, Gradle๋„ ํ™œ๋ฐœํžˆ ์„ฑ์žฅํ•˜๊ณ  ์žˆ๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ ์ƒํƒœ๊ณ„๋ฅผ ๊ฐ–์ถ”๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ : Maven์€ ๊ทœ์•ฝ์„ ์ค‘์‹œํ•˜๋Š” ๊ตฌ์กฐ๋กœ, ํ”„๋กœ์ ํŠธ์˜ ๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์กฐ๊ฐ€ ์ผ์ •ํ•ฉ๋‹ˆ๋‹ค. Gradle์€ ๋” ๋งŽ์€ ๊ตฌ์„ฑ ๊ฐ€๋Šฅ์„ฑ์„ ์ œ๊ณตํ•˜์ง€๋งŒ, ์ด๋Š” ๋™์‹œ์— ํ”„๋กœ์ ํŠธ ์„ค์ •์ด ๋ณต์žกํ•ด์งˆ ์ˆ˜ ์žˆ์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

๊ฒฐ๋ก ์ ์œผ๋กœ, Gradler๊ณผ Maven์€ ๊ฐ๊ฐ์˜ ์žฅ๋‹จ์ ์„ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ, ํ”„๋กœ์ ํŠธ์˜ ์š”๊ตฌ์‚ฌํ•ญ๊ณผ ๊ฐœ๋ฐœ ํŒ€์˜ ์„ ํ˜ธ๋„์— ๋”ฐ๋ผ ์ ํ•ฉํ•œ ๋„๊ตฌ๋ฅผ ์„ ํƒํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.