Gradle์˜ ์ข…์†์„ฑ ๊ด€๋ฆฌ

2023. 2. 26. 18:39ยทTool/Gradle

Dependency management in Gradle

 

What is dependency management?

์†Œํ”„ํŠธ์›จ์–ด ํ”„๋กœ์ ํŠธ๋Š” ๊ฑฐ์˜ ๋‹จ๋…์œผ๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ ํ”„๋กœ์ ํŠธ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ˜•ํƒœ์˜ ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๊ธฐ๋Šฅ์— ์˜์กดํ•˜๊ฑฐ๋‚˜ ๋ชจ๋“ˆํ™” ๋œ ์‹œ์Šคํ…œ์„ ๊ตฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ๊ฐœ๋ณ„ ๊ตฌ์„ฑ ์š”์†Œ๋กœ ๋‚˜๋‰ฉ๋‹ˆ๋‹ค. ์ข…์†์„ฑ ๊ด€๋ฆฌ๋Š” ์ž๋™ํ™”๋œ ๋ฐฉ์‹์œผ๋กœ ํ”„๋กœ์ ํŠธ์— ํ•„์š”ํ•œ ์ข…์†์„ฑ์„ ์„ ์–ธ, ํ•ด๊ฒฐ ๋ฐ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ์ˆ ์ž…๋‹ˆ๋‹ค.

 

Dependency management in Gradle

Gradle์€ ์ข…์†์„ฑ ๊ด€๋ฆฌ์— ๋Œ€ํ•œ ์ง€์› ๊ธฐ๋Šฅ์ด ๋‚ด์žฅ๋˜์–ด ์žˆ์œผ๋ฉฐ ์ตœ์‹  ์†Œํ”„ํŠธ์›จ์–ด ํ”„๋กœ์ ํŠธ์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์ผ๋ฐ˜์ ์ธ ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ์ œ ํ”„๋กœ์ ํŠธ์˜ ๋„์›€์œผ๋กœ ์ฃผ์š” ๊ฐœ๋…์„ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜ ๊ทธ๋ฆผ์€ ๋ชจ๋“  ์›€์ง์ด๋Š” ๋ถ€ํ’ˆ์— ๋Œ€ํ•œ ๋Œ€๋žต์ ์ธ ๊ฐœ์š”๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

Figure 1. Dependency management big picture

์˜ˆ์ œ ํ”„๋กœ์ ํŠธ๋Š” Java ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๋นŒ๋“œํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ถ€ Java ์†Œ์Šค ํŒŒ์ผ์€ ํ’๋ถ€ํ•œ ์œ ํ‹ธ๋ฆฌํ‹ฐ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ์˜คํ”ˆ ์†Œ์Šค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ธ Google Guava์—์„œ ํด๋ž˜์Šค๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค. Guava ์™ธ์—๋„ ํ”„๋กœ์ ํŠธ์—๋Š” ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์ปดํŒŒ์ผํ•˜๊ณ  ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•œ JUnit ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

๊ตฌ์•„๋ฐ”์™€ JUnit์€์ด ํ”„๋กœ์ ํŠธ์˜ ์ข…์†์„ฑ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ๋นŒ๋“œ ์Šคํฌ๋ฆฝํŠธ ๊ฐœ๋ฐœ์ž๋Š” ์˜ˆ๋ฅผ ๋“ค์–ด ์†Œ์Šค ์ฝ”๋“œ ์ปดํŒŒ์ผ ๋˜๋Š” ํ…Œ์ŠคํŠธ ์‹คํ–‰๊ณผ ๊ฐ™์€ ๋‹ค์–‘ํ•œ ๋ฒ”์œ„์— ๋Œ€ํ•œ ์ข…์†์„ฑ์„ ์„ ์–ธ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Gradle ์—์„œ๋Š” ์ข…์†์„ฑ์˜ ๋ฒ”์œ„๋ฅผ ๊ตฌ์„ฑ์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ „์ฒด ๊ฐœ์š”๋Š” ์ข…์†์„ฑ ํ˜•์‹์— ๋Œ€ํ•œ ์ฐธ์กฐ ์ž๋ฃŒ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

์ข…์ข… ์ข…์†์„ฑ์€ ๋ชจ๋“ˆ ํ˜•ํƒœ๋กœ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. ๋นŒ๋“œ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด๋‹น ๋ชจ๋“ˆ์„ ์ฐพ์„ ์œ„์น˜๋ฅผ Gradle์— ์•Œ๋ ค์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“ˆ์„ ์ €์žฅํ•˜๋Š” ์œ„์น˜๋ฅผ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋นŒ๋“œ ์— ๋Œ€ํ•œ ์ €์žฅ์†Œ๋ฅผ ์„ ์–ธํ•จ์œผ๋กœ์จ Gradle์€ ๋ชจ๋“ˆ์„ ์ฐพ๊ณ  ๊ฒ€์ƒ‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ๊ฒŒ๋ฉ๋‹ˆ๋‹ค. ์ €์žฅ์†Œ๋Š” ๋‹ค์–‘ํ•œ ํ˜•ํƒœ๋กœ ์ œ๊ณต ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค : ๋กœ์ปฌ ๋””๋ ‰ํ† ๋ฆฌ ๋˜๋Š” ์›๊ฒฉ ์ €์žฅ์†Œ. ์ €์žฅ์†Œ ์œ ํ˜•์— ๋Œ€ํ•œ ์ฐธ์กฐ๋Š” ์ด ์ฃผ์ œ์— ๋Œ€ํ•œ ๊ด‘๋ฒ”์œ„ํ•œ ๋ฒ”์œ„๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

๋Ÿฐํƒ€์ž„์— Gradle์€ ํŠน์ • ์ž‘์—…์„ ์šด์˜ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์„ ์–ธ๋œ ์ข…์† ํ•ญ๋ชฉ์„ ์ฐพ์Šต๋‹ˆ๋‹ค. ์ข…์†์„ฑ์€ ์›๊ฒฉ ์ €์žฅ์†Œ์—์„œ ๋‹ค์šด๋กœ๋“œํ•˜๊ฑฐ๋‚˜, ๋กœ์ปฌ ๋””๋ ‰ํ„ฐ๋ฆฌ์—์„œ ๊ฒ€์ƒ‰ํ•˜๊ฑฐ๋‚˜, ๋‹ค์ค‘ ํ”„๋กœ์ ํŠธ ์„ค์ •์—์„œ ๋‹ค๋ฅธ ํ”„๋กœ์ ํŠธ๋ฅผ ๋นŒ๋“œํ•ด์•ผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ํ”„๋กœ์„ธ์Šค๋ฅผ ์ข…์†์„ฑ ํ•ด๊ฒฐ์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ Gradle์ด ์ข…์† ํ•ญ๋ชฉ์„ ๋‹ค์šด๋กœ๋“œํ•˜๋Š” ๋ฐฉ๋ฒ•์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ™•์ธ๋˜๋ฉด ํ™•์ธ ๋ฉ”์ปค๋‹ˆ์ฆ˜ ์€ ์ข…์†์„ฑ์˜ ๊ธฐ๋ณธ ํŒŒ์ผ์„ ์ข…์†์„ฑ ์บ์‹œ๋ผ๊ณ ๋„ ํ•˜๋Š” ๋กœ์ปฌ ์บ์‹œ์— ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ์ดํ›„ ๋นŒ๋“œ๋Š” ๋ถˆํ•„์š”ํ•œ ๋„คํŠธ์›Œํฌ ํ˜ธ์ถœ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์บ์‹œ์— ์ €์žฅ๋œ ํŒŒ์ผ์„ ๋‹ค์‹œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๋ชจ๋“ˆ์€ ์ถ”๊ฐ€ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋Š” ๋ชจ๋“ˆ์„ ๋” ์ž์„ธํžˆ ์„ค๋ช…ํ•˜๋Š” ๋ฐ์ดํ„ฐ์ž…๋‹ˆ๋‹ค(์˜ˆ: ์ €์žฅ์†Œ์—์„œ ๋ชจ๋“ˆ์„ ์ฐพ๊ธฐ ์œ„ํ•œ ์ขŒํ‘œ, ํ”„๋กœ์ ํŠธ ๋˜๋Š” ์ž‘์„ฑ์ž์— ๋Œ€ํ•œ ์ •๋ณด). ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ์˜ ์ผ๋ถ€๋กœ ๋ชจ๋“ˆ์€ ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜๋Š” ๋ฐ ๋‹ค๋ฅธ ๋ชจ๋“ˆ์ด ํ•„์š”ํ•˜๋‹ค๊ณ  ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, JUnit 5 ํ”Œ๋žซํผ ๋ชจ๋“ˆ์—๋Š” ํ”Œ๋žซํผ ์ปค๋จผ์ฆˆ ๋ชจ๋“ˆ๋„ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. Gradle์€ ์ด๋Ÿฌํ•œ ์ถ”๊ฐ€ ๋ชจ๋“ˆ, ์ฆ‰ ์ „์ด์  ์ข…์†์„ฑ์„ ์ž๋™์œผ๋กœ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค. ํ•„์š”ํ•œ ๊ฒฝ์šฐ ํ”„๋กœ์ ํŠธ์˜ ์š”๊ตฌ ์‚ฌํ•ญ์— ๋Œ€ํ•œ ์ „์ด์  ์ข…์†์„ฑ ์ฒ˜๋ฆฌ ๋™์ž‘์„ ์‚ฌ์šฉ์ž ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

Figure 2. Build scan dependencies report

 

 

 

728x90
'Tool/Gradle' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • Gradle์„ ์‚ฌ์šฉํ•˜์—ฌ ์†Œํ”„ํŠธ์›จ์–ด ๊ตฌ์„ฑ์š”์†Œ ๊ตฌ์„ฑ ์š”์†Œ ๊ตฌ์„ฑ ๋ฐ ๋นŒ๋“œํ•˜๊ธฐ
  • [Gradle] ๋นŒ๋“œ ์ˆ˜๋ช… ์ฃผ๊ธฐ
  • Gradle 8.0.1 Release Notes(๋ณ€๊ฒฝ๋œ ์ )
  • Gradle ์ด๋ž€?(What is Gradle?)
์ง€๋‹ˆ๐Ÿงž‍โ™‚๏ธ๐Ÿฅญ
์ง€๋‹ˆ๐Ÿงž‍โ™‚๏ธ๐Ÿฅญ
์ผ์ƒ, ๊ฒŒ์ž„, ๋ง›์ง‘, ์—ฌํ–‰, ๊ฐœ๋ฐœ, IT ๋ธ”๋กœ๊ทธ๐Ÿงž
  • ์ง€๋‹ˆ๐Ÿงž‍โ™‚๏ธ๐Ÿฅญ
    ์š”์ˆ  ๋žจํ”„๐Ÿซ–
    ์ง€๋‹ˆ๐Ÿงž‍โ™‚๏ธ๐Ÿฅญ
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • All (549)
      • Languages (57)
        • JAVA (13)
        • JSP (1)
        • C_C++ (4)
        • Html (3)
        • CSS (1)
        • JavaScript (18)
        • Python (3)
        • Kotlin (13)
        • TypeScript (1)
      • Framework (14)
        • spring (11)
        • jstl (1)
        • angular (2)
      • Tool (28)
        • Eclipse (5)
        • vsCode (3)
        • scrcpy (2)
        • Git (1)
        • IntelliJ (6)
        • Visual-studio (1)
        • UML (1)
        • Gradle (8)
      • DB (6)
        • Oracle (1)
        • MySql (3)
        • Mongo (2)
      • OS (14)
        • Linux (2)
        • Windows (12)
      • Server (8)
        • Tomcat (1)
        • Apache (1)
        • Node.js (6)
      • Programmings (25)
        • Design Pattern (2)
        • Funny (20)
        • Algorithms (3)
      • Cloud (8)
        • Docker (1)
        • Kubernetes (4)
        • Istio (1)
        • ArgoCD (2)
      • IT (5)
        • gRPC (3)
        • RESTful (3)
        • Web UI (5)
        • AI (4)
      • Book (6)
      • TIP (187)
      • Life (53)
      • Game (83)
      • Storage (22)
      • ์‹๋‹น (15)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
    • ์‚ฌ์ดํŠธ๋งต
    • RSS
    • ๊ธฐํƒ€ ์†Œ๋“
  • ๋งํฌ

    • ๊ตฌ๊ธ€
    • ๋„ค์ด๋ฒ„
    • ์ •๋ถ€24
    • Spring Framework ๋ฆด๋ฆฌ์ฆˆ ๋…ธํŠธ
    • Kotlin ๋ฆด๋ฆฌ์ฆˆ ๋…ธํŠธ
    • ์นด์นด์˜ค ์• ๋“œํ•
    • ๋ธ”๋กœ๊ทธ ์‚ฌ์ดํŠธ๋งต
    • ๋ธ”๋กœ๊ทธ RSS
  • ๊ณต์ง€์‚ฌํ•ญ

    • ์•ˆ๋…•ํ•˜์„ธ์š”
  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    ์˜ค๋Š˜์˜๋‰ด์Šค
    ๋ฐ์ผ๋ฆฌ ๋‰ด์Šค
    ๋ธŒ๋ฆฌํ•‘
    ํ•œ๋ˆˆ์— ๋ณด๋Š” ์˜ค๋Š˜์˜ ๋‰ด์Šค
    ๋ชฌ์Šคํ„ฐํ—Œํ„ฐ์™€์ผ์ฆˆ
    ๋ชฌ์Šคํ„ฐํ—Œํ„ฐ๋‚˜์šฐ
    ํƒœ๊ตญ
    ๋‰ด์Šค ๋ธŒ๋ฆฌํ•‘
    ํ€˜์ŠคํŠธ
    ๋‰ด์Šค
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
์ง€๋‹ˆ๐Ÿงž‍โ™‚๏ธ๐Ÿฅญ
Gradle์˜ ์ข…์†์„ฑ ๊ด€๋ฆฌ
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”