๊ด€๋ฆฌ ๋ฉ”๋‰ด

DOing

๋นŒ๋“œ ๋„๊ตฌ, Gradle vs Maven ๋ณธ๋ฌธ

WEB

๋นŒ๋“œ ๋„๊ตฌ, Gradle vs Maven

mangdo 2021. 5. 8. 13:50

๐Ÿ’ก ๋นŒ๋“œ?

 Build๋Š” ์ž‘์„ฑ๋œ ์ฝ”๋“œ๋ฅผ ์‹ค์ œ ๊ธฐ๊ธฐ์—์„œ ์‹คํ–‰ ๋  ์ˆ˜ ์žˆ๋Š” ์†Œํ”„ํŠธ์›จ์–ด๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ ์œ„ํ•œ ๊ณผ์ •์„ ๋งํ•œ๋‹ค.

๋ณดํ†ต ์ปดํŒŒ์ผ์„ ํฌํ•จํ•œ ๋ฐฐํฌํ•˜๊ธฐ ์ง์ „๊นŒ์ง€์˜ ๋ชจ๋“  ๊ณผ์ •์„ ‘๋นŒ๋“œ ํ•œ๋‹ค’ ๋ผ๊ณ  ํ‘œํ˜„ํ•œ๋‹ค.

์‹ค์ œ๋กœ ํšŒ์‚ฌ๋‚˜ ํ”„๋กœ์ ํŠธ ํŒ€๋งˆ๋‹ค ์šฉ์–ด๋ฅผ ์กฐ๊ธˆ์”ฉ ๋‹ค๋ฅด๊ฒŒ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์œผ๋‹ˆ ์ฐธ๊ณ ํ•ด๋‘๋Š” ๊ฒƒ์ด ์ข‹๋‹ค๊ณ  ํ•œ๋‹ค. ์‹ฌ์ง€์–ด๋Š” ์ฝ”๋“œ๊ฐ€ ์™„์„ฑ๋œ ์งํ›„, ์ปดํŒŒ์ผ๋ถ€ํ„ฐ ๋ฐฐํฌํ•˜๋Š” ๋ชจ๋“  ๊ณผ์ •์„ ‘๋นŒ๋“œ ํ•œ๋‹ค’๊ณ  ํ‘œํ˜„ํ•˜๋Š” ๊ฒฝ์šฐ๋„ ์žˆ๋‹ค๊ณ  ํ•œ๋‹ค.

 

๐Ÿ’ก ๋นŒ๋“œ ๋„๊ตฌ?

 ์ž‘์€ ํ”„๋กœ์ ํŠธ๋ผ๋ฉด ๊ฐœ๋ฐœ์ž๊ฐ€ ์ˆ˜๋™์œผ๋กœ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์˜์กด์„ฑ์„ ์ถ”๊ฐ€ํ•ด์ฃผ๊ณ  ๋นŒ๋“œ ํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค. ํ•˜์ง€๋งŒ ํ”„๋กœ์ ํŠธ๊ฐ€ ์ปค์ง„๋‹ค๋ฉด ๋งŽ์•„์ง„ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ง์ ‘ ์ถ”๊ฐ€ํ•˜์—ฌ ๋นŒ๋“œํ•˜๋Š” ์ผ์€ ๋ฒˆ๊ฑฐ๋กœ์›€์ด ๋”ฐ๋ฅธ๋‹ค. ์‹ฌ์ง€์–ด ์ฝ”๋“œ ์ˆ˜์ •์„ ํ• ๋•Œ๋งˆ๋‹ค ์ด์™€ ๊ฐ™์€ ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•˜๊ฒŒ๋œ๋‹ค๋ฉด ๊ต‰์žฅํžˆ ๋น„ํšจ์œจ์ ์ด๋ฉฐ ์‹ค์ˆ˜๋ฅผ ์œ ๋ฐœํ•˜๊ธฐ ์‰ฝ๋‹ค.

์ด ๋•Œ๋ฌธ์— ๋ฐœ์ƒํ•œ ๊ฒƒ์ด ๋ฐ”๋กœ ๋นŒ๋“œ ์ž๋™ํ™”์ด๋ฉฐ ๋นŒ๋“œ ๋„๊ตฌ๋Š” ๋นŒ๋“œ ์ž๋™ํ™” ์‹œ์ผœ์ฃผ๋Š” ๋„๊ตฌ(์†Œํ”„ํŠธ์›จ์–ด)์ด๋‹ค.

๋นŒ๋“œ ๋„๊ตฌ ์ข…๋ฅ˜์—๋Š” Ant, Maven, Gradle์ด ์žˆ๋‹ค.

 

Ant

์ž๋ฐ” ์†Œํ”„ํŠธ์›จ์–ด ๋นŒ๋“œ๋„๊ตฌ
  • Apache์—์„œ ๊ฐœ๋ฐœํ•˜์˜€์œผ๋ฉฐ ์ž๋ฐ”์–ธ์–ด๋กœ ๊ตฌํ˜„๋˜์–ด์žˆ๋‹ค.
  • XML ๊ธฐ๋ฐ˜ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉ
  • ๊ทœ์น™, ํ‘œ์ค€์ด ์—†์–ด ๋†’์€ ์ž์œ ๋„ → ์ง์ ‘ ์ •์˜ํ•ด์•ผํ•  ๊ฒƒ์ด ๋งŽ์•„์ ธ ์˜คํžˆ๋ ค ์‚ฌ์šฉ์ด ์–ด๋ ค์›Œ์งˆ ์ˆ˜ ์žˆ๋‹ค.

 

 

 

Maven

์ž๋ฐ”์šฉ ํ”„๋กœ์ ํŠธ ๊ด€๋ฆฌ ๋„๊ตฌ
  • Apache์—์„œ Ant์˜ ๋Œ€์•ˆ์œผ๋กœ ๊ฐœ๋ฐœํ•˜์˜€๋‹ค.
  • ์ •ํ•ด์ง„ ๋ผ์ดํ”„์‚ฌ์ดํด์— ์˜ํ•˜์—ฌ ์ž‘์—… ์ˆ˜ํ–‰ํ•˜๋ฉฐ, ์ „๋ฐ˜์ ์ธ ํ”„๋กœ์ ํŠธ ๊ด€๋ฆฌ ๊ธฐ๋Šฅ๊นŒ์ง€ ํฌํ•จํ•œ๋‹ค.
  • ์˜์กด์„ฑ์„ ์„ค์ •ํ•˜์—ฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ž๋™ ๊ด€๋ฆฌ
    • pom.xml์— ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ •์˜ํ•ด๋†“์œผ๋ฉด ์ž๋™ ๊ด€๋ฆฌํ•ด์ค€๋‹ค.

 

 

Gradle

Gradle์€ Groovy๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ ์˜คํ”ˆ์†Œ์Šค ๋นŒ๋“œ ๋„๊ตฌ
  • ์•ˆ๋“œ๋กœ์ด๋“œ ์ŠคํŠœ๋””์˜ค์˜ ๊ณต์‹ ๋นŒ๋“œ ์‹œ์Šคํ…œ
  • Java, C/C++, ํŒŒ์ด์ฌ ๋“ฑ๊ณผ ๊ฐ™์€ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์–ธ์–ด๋ฅผ ์ง€์›
  • Ant์˜ ์œ ์—ฐํ•œ ๊ตฌ์กฐ์  ์žฅ์  + Maven์˜ ํŽธ๋ฆฌํ•œ ์˜์กด์„ฑ ๊ด€๋ฆฌ ๊ธฐ๋Šฅ
  • XML์ด ์•„๋‹Œ ๋ณ„๋„์˜ ๋นŒ๋“œ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋“ฑ ๊ด€๋ฆฌ
    • ์Šคํฌ๋ฆฝํŠธ ์–ธ์–ด๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๊ธฐ๋•Œ๋ฌธ์—, XML๊ณผ ๋‹ฌ๋ฆฌ ๋ณ€์ˆ˜์„ ์–ธ, if, else, for๋“ฑ์˜ ๋กœ์ง์ด ๊ตฌํ˜„๊ฐ€๋Šฅํ•˜์—ฌ ๊ฐ„๊ฒฐํ•˜๊ฒŒ ๊ตฌ์„ฑ ๊ฐ€๋Šฅ
  • Maven๋ณด๋‹ค ๋น ๋ฅธ ๋นŒ๋“œ ํƒ€์ž„
  • gradlew๋ผ๋Š” wrapperํŒŒ์ผ์„ ์‚ฌ์šฉ
    • gradlew์œผ๋กœ Gradle์ด ์„ค์น˜๋˜์ง€ ์•Š์€ ํ™˜๊ฒฝ์—์„œ๋„ ํ•ด๋‹น ํ”„๋กœ์ ํŠธ์— ํ•œํ•ด์„œ Gradle๋“ค์„ ์‚ฌ์šฉ๊ฐ€๋Šฅ

Groovy?

๋”๋ณด๊ธฐ

Groovy๋Š” Java ๊ฐ€์ƒ ๋จธ์‹ ์—์„œ ์‹คํ–‰๋˜๋Š” ์Šคํฌ๋ฆฝํŠธ ์–ธ์–ด์ด๋‹ค. Java์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  Java ๊ฐ€์ƒ ๋จธ์‹ ์—์„œ ๋™์ž‘ํ•˜์ง€๋งŒ, Java์™€ ๋‹ฌ๋ฆฌ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ์ปดํŒŒ์ผ์„ ํ•  ํ•„์š”๋Š” ์—†๋‹ค. Groovy๋Š” ์Šคํฌ๋ฆฝํŠธ ์–ธ์–ด์ด๋ฉฐ, ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๊ทธ๋Œ€๋กœ ์‹คํ–‰ํ•œ๋‹ค. ๋˜ํ•œ Java์™€ ํ˜ธํ™˜๋˜๊ณ , Java ํด๋ž˜์Šค ํŒŒ์ผ์„ ๊ทธ๋Œ€๋กœ Groovy ํด๋ž˜์Šค๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ฌธ๋ฒ•๋„ Java์— ์•„์ฃผ ๊ฐ€๊นŒ์›Œ, Java๋ฅผ ๋ณด๋‹ค ์‚ฌ์šฉํ•˜๊ธฐ ์‰ฝ๊ฒŒ ํ•œ ๊ฒƒ์œผ๋กœ ๋Š๋‚„ ์ˆ˜ ์žˆ๋‹ค.

"๊ฐ„ํŽธํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜๋Š” JAVA"๋ผ๊ณ  ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ๋‹ค.

์ถœ์ฒ˜: https://araikuma.tistory.com/460 [ํ”„๋กœ๊ทธ๋žจ ๊ฐœ๋ฐœ ์ง€์‹ ๊ณต์œ ]

 

 

๋” ์ž์„ธํ•œ ๋‚ด์šฉ์€ Gradle ๊ณต์‹๋ฌธ์„œ ์ค‘ Maven๊ณผ Gradle์„ ๋น„๊ตํ•œ ๋ฌธ์„œ์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ ์žˆ๋‹ค. ์•„์ง๊นŒ์ง€๋Š” Maven์„ ๋งŽ์ด ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์ง€๋งŒ ์ ์ฐจ Gradle์„ ์‚ฌ์šฉํ•˜๋Š” ์ถ”์„ธ์ด๋‹ค. ๊ทธ๋ž˜๋„ ์•„์ง๊นŒ์ง€๋Š” Maven์„ ๋” ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๊ณ  ๋‚ด๊ฐ€ ์ง์ ‘ ์ง„ํ–‰ํ–ˆ๋˜ Spring ํ”„๋กœ์ ํŠธ์—์„œ๋„ Maven์„ ์‚ฌ์šฉํ–ˆ๊ธฐ๋•Œ๋ฌธ์— Maven์— ๋Œ€ํ•ด์„œ๋Š” ๋”ฐ๋กœ ์ž์„ธํ•œ ํฌ์ŠคํŒ…์„ ํ•ด๋ณด์•˜๋‹ค.

 

๋‹ค์Œ ํฌ์ŠคํŒ… :

2021.05.08 - [spring] - [Maven] Maven์— ๋Œ€ํ•ด ์•Œ๊ณ  ์‚ฌ์šฉํ•ด๋ณด์ž

 

[Maven] Maven์— ๋Œ€ํ•ด ์•Œ๊ณ  ์‚ฌ์šฉํ•ด๋ณด์ž

์ด์ „ ํฌ์ŠคํŒ…์—์„œ๋Š” ๋Œ€ํ‘œ์ ์ธ ๋นŒ๋“œ ๋„๊ตฌ๋กœ ๊ผฝํžˆ๋Š” Ant, Maven, Gradle์„ ๋น„๊ตํ•ด๋ณด์•˜๋‹ค. ์˜ค๋Š˜์€ ์ด ์ค‘์—์„œ Maven์— ๋Œ€ํ•˜์—ฌ ๋” ์ž์„ธํžˆ ๋‹ค๋ค„๋ณด๊ฒ ๋‹ค. Spring ํ”„๋กœ์ ํŠธ๋ฅผ ํ•˜๋ฉด์„œ ๋‹น์—ฐํ•˜๊ฒŒ ์ƒ๊ฐํ•˜๊ณ  ์žˆ์—ˆ๋Š”๋ฐ

doing7.tistory.com

 

์ฐธ๊ณ  ์ถœ์ฒ˜ :

https://goddaehee.tistory.com/199

https://itholic.github.io/qa-compile-build-deploy/