With AI

Gradle์ด๋ž€?

  • -
๋ฐ˜์‘ํ˜•

๐Ÿ“Œ Gradle์ด๋ž€?

Gradle์€ ๋นŒ๋“œ ์ž๋™ํ™” ๋„๊ตฌ๋กœ, ์˜์กด์„ฑ ๊ด€๋ฆฌ์™€ ํ”„๋กœ์ ํŠธ ๋นŒ๋“œ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ค๋‹ˆ๋‹ค.
์ž๋ฐ”(Java), ์ฝ”ํ‹€๋ฆฐ(Kotlin), ์•ˆ๋“œ๋กœ์ด๋“œ(Android), ์Šคํ”„๋ง ๋ถ€ํŠธ(Spring Boot) ๋“ฑ ๋‹ค์–‘ํ•œ ํ”„๋กœ์ ํŠธ์—์„œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.


1. Gradle์˜ ํŠน์ง•

1-1. ์˜์กด์„ฑ(Dependency) ๊ด€๋ฆฌ

  • build.gradle ํŒŒ์ผ์—์„œ ํ•„์š”ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์„ ์–ธํ•˜๋ฉด, ์ž๋™์œผ๋กœ ๋‹ค์šด๋กœ๋“œํ•˜๊ณ  ํ”„๋กœ์ ํŠธ์— ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • ์˜ˆ์‹œ (Spring Boot)
dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-web'
}

 

1-2. DSL(Domain Specific Language) ์‚ฌ์šฉ

Gradle์€ Groovy ๋˜๋Š” Kotlin DSL์„ ์‚ฌ์šฉํ•˜์—ฌ ์„ค์ •์„ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • Groovy ๊ธฐ๋ฐ˜ (๊ธฐ๋ณธ)
plugins {
    id 'java'
}

repositories {
    mavenCentral()
}

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-web'
}
  • Kotlin DSL ์‚ฌ์šฉ (build.gradle.kts)
plugins {
    kotlin("jvm") version "1.6.21"
}

repositories {
    mavenCentral()
}

dependencies {
    implementation("org.springframework.boot:spring-boot-starter-web")
}

1-3. ๋ฉ€ํ‹ฐ ๋ชจ๋“ˆ ๋นŒ๋“œ ์ง€์›

  • ํ•˜๋‚˜์˜ ํ”„๋กœ์ ํŠธ์—์„œ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์„œ๋ธŒ ๋ชจ๋“ˆ(Submodule) ์„ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์˜ˆ์‹œ
rootProject
โ”œโ”€โ”€ app
โ”œโ”€โ”€ core
โ”œโ”€โ”€ data
  • settings.gradle
rootProject.name = 'MyProject'
include 'app', 'core', 'data'
  • ๊ฐ๊ฐ์˜ ๋ชจ๋“ˆ(app, core, data)์„ ๋…๋ฆฝ์ ์œผ๋กœ ๊ฐœ๋ฐœํ•˜๋ฉด์„œ๋„ ํ•˜๋‚˜์˜ ํ”„๋กœ์ ํŠธ๋กœ ๋นŒ๋“œ ๊ฐ€๋Šฅ.

1-4. ๋ณ‘๋ ฌ ๋นŒ๋“œ ๋ฐ ์บ์‹ฑ (์†๋„ ์ตœ์ ํ™”)

  • ์ด์ „ ๋นŒ๋“œ ๊ฒฐ๊ณผ๋ฅผ ์บ์‹ฑํ•˜์—ฌ ์žฌ์‚ฌ์šฉํ•˜๊ณ , ๋ณ‘๋ ฌ ๋นŒ๋“œ๋ฅผ ์ง€์›ํ•˜์—ฌ ์†๋„๋ฅผ ์ตœ์ ํ™”ํ•ฉ๋‹ˆ๋‹ค.
  • ๋ช…๋ น์–ด ์˜ˆ์‹œ:
gradle build --parallel --build-cache

 

2. Gradle ์ฃผ์š” ๋ช…๋ น์–ด

๋ช…๋ น์–ด ์„ค๋ช…
gradle build ํ”„๋กœ์ ํŠธ ๋นŒ๋“œ
gradle clean ๋นŒ๋“œ ์บ์‹œ ์‚ญ์ œ
gradle test ํ…Œ์ŠคํŠธ ์‹คํ–‰
gradle dependencies ์˜์กด์„ฑ ํ™•์ธ
gradle tasks ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ž‘์—… ๋ชฉ๋ก ํ™•์ธ

 

3. Gradle๊ณผ Maven ๋น„๊ต

๋น„๊ต ํ•ญ๋ชฉ Gradle Maven
์„ค์ • ๋ฐฉ์‹ Groovy/Kotlin DSL XML(POM)
๋นŒ๋“œ ์†๋„ ๋น ๋ฆ„ (์บ์‹ฑ ๋ฐ ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ ์ง€์›) ๋Š๋ฆผ
์œ ์—ฐ์„ฑ ๋†’์Œ (์ปค์Šคํ…€ ๊ฐ€๋Šฅ) ๋‚ฎ์Œ (์ •ํ˜•ํ™”๋œ ๊ตฌ์กฐ)
์˜์กด์„ฑ ๊ด€๋ฆฌ ๊ฐ•๋ ฅํ•œ DSL ์ œ๊ณต XML ๊ธฐ๋ฐ˜

๐Ÿ‘‰ Gradle์€ ์œ ์—ฐํ•˜๊ณ  ๋น ๋ฅธ ๋นŒ๋“œ๊ฐ€ ํ•„์š”ํ•  ๋•Œ ์œ ์šฉํ•˜๋ฉฐ, Maven์€ ๊ตฌ์กฐ๊ฐ€ ์ •ํ˜•ํ™”๋œ ํ”„๋กœ์ ํŠธ์— ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.

 

4. Gradle์ด ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ๊ณณ

โœ… Spring Boot → gradle.build๋กœ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฐ ์˜์กด์„ฑ ๊ด€๋ฆฌ
โœ… Android ๊ฐœ๋ฐœ → Gradle์ด ๊ณต์‹ ๋นŒ๋“œ ๋„๊ตฌ
โœ… ๋ฉ€ํ‹ฐ ๋ชจ๋“ˆ ํ”„๋กœ์ ํŠธ → ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ชจ๋“ˆ์„ ํฌํ•จํ•˜๋Š” ํ”„๋กœ์ ํŠธ์—์„œ ๊ฐ•๋ ฅํ•œ ์„ฑ๋Šฅ ์ œ๊ณต


๐Ÿ“Œ ์ •๋ฆฌ

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

'With AI' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

MySQL๊ณผ MariaDB์˜ ๊ด€๊ณ„  (0) 2025.02.25
Maven์ด๋ž€?  (0) 2025.02.24
MyBatis์™€ JPA์˜ ๊ด€๊ณ„  (1) 2025.02.21
Flutter์—์„œ ์‚ฌ์šฉ๋˜๋Š” Riverpod  (0) 2025.02.20
Java/Kotlin๊ณผ Spring ๊ด€๊ณ„  (0) 2025.02.19
Contents

ํฌ์ŠคํŒ… ์ฃผ์†Œ๋ฅผ ๋ณต์‚ฌํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด ๊ธ€์ด ๋„์›€์ด ๋˜์—ˆ๋‹ค๋ฉด ๊ณต๊ฐ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค.