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은 각각의 μž₯단점을 κ°€μ§€κ³  있으며, ν”„λ‘œμ νŠΈμ˜ μš”κ΅¬μ‚¬ν•­κ³Ό 개발 νŒ€μ˜ μ„ ν˜Έλ„μ— 따라 μ ν•©ν•œ 도ꡬλ₯Ό μ„ νƒν•˜λŠ” 것이 μ€‘μš”ν•©λ‹ˆλ‹€.