
μ€λ νμ΅ν μν€ν μ² κ΅¬μ‘°(Controller-Service-Repository)κ° μννκ² λμκ°λλ‘ λ€μμ μ§μν΄μ£Όλ λΉλ μμ€ν μ ν΅μ¬μΈ Gradleμ λν΄ μ 리ν©λλ€.
λΉλ(Build): μμ€μ½λλ₯Ό μ»΄νμΌ, ν
μ€νΈ, μ μ λΆμ λ±μ κ±°μ³ μ€ν κ°λ₯ν μ ν리μΌμ΄μ
(.jar, .war)μΌλ‘ λ§λλ μ 체 κ³Όμ μ λ§ν©λλ€.
λΉλ λꡬμ νμμ±: νλ‘μ νΈκ° 컀μ§λ©΄ μλ§μ μΈλΆ λΌμ΄λΈλ¬λ¦¬κ° νμν©λλ€. μ΄λ₯Ό κ°λ°μκ° μΌμΌμ΄ λ€μ΄λ‘λνκ³ λ²μ μ λ§μΆλ κ²μ λΆκ°λ₯μ κ°κΉκΈ°μ, μ΄λ₯Ό μλνν΄μ£Όλ λκ΅¬κ° νμμ μ
λλ€.
2012λ
μ μΆμλ Groovy/Kotlin κΈ°λ°μ μ€νμμ€ λΉλ μλν μμ€ν
μ
λλ€.
μ μ°ν μ€ν¬λ¦½νΈ: μλ°μ μ μ¬ν λ¬Έλ²μ μ¬μ©νμ¬ μ€μ νμΌ μμ²΄κ° νλμ νλ‘κ·Έλ¨μ²λΌ μ½κΈ° μ½κ³ κ°λ ₯ν κΈ°λ₯μ κ°μ§λλ€.
λμ νμ₯μ±: νλ‘μ νΈ μ€μ μ£Όμ
λ°©μμ μ¬μ©νμ¬ μ½λ μ¬μ¬μ©μ±κ³Ό μ€λ³΅ μ κ±°μ λ§€μ° μ 리ν©λλ€.
곡μ λ¬Έμμ λ°λ₯΄λ©΄ νΉμ μν©μμ Mavenλ³΄λ€ μ΅λ 100λ°°κΉμ§ λΉ λ¦
λλ€. κ·Έ λΉκ²°μ λ€μκ³Ό κ°μ΅λλ€.
μ μ§μ λΉλ(Incremental Build): λ§μ§λ§ λΉλ μ΄ν λ³κ²½λ νμΌλ§ 골λΌμ λΉλν©λλ€.
λΉλ μΊμ(Build Cache): μ΄μ λΉλ κ²°κ³Όλ¬Όμ μ μ₯ν΄λμλ€κ° νμν λ μ¬μ¬μ©ν©λλ€.
λ°λͺ¬ νλ‘μΈμ€(Daemon Process): λΉλ νλ‘μΈμ€λ₯Ό λ©λͺ¨λ¦¬μ μμ£ΌμμΌ μ΄κΈ°ν μκ°μ λ¨μΆν©λλ€.
νλμ λΆλͺ¨ νλ‘μ νΈ μλμ μ¬λ¬ κ°μ μλΈ νλ‘μ νΈ(μ: κ³΅ν΅ λͺ¨λ, API λͺ¨λ, κ΄λ¦¬μ λͺ¨λ)λ₯Ό λμ΄ κ΄λ¦¬νκΈ°κ° λ§€μ° μμν©λλ€.
build.gradleμμ λΌμ΄λΈλ¬λ¦¬λ₯Ό μΆκ°ν λ μ¬μ©νλ ν€μλλ€μ μ°¨μ΄μ μ μ΄ν΄νλ κ²μ΄ μ€μν©λλ€.
| ν€μλ | μ€λͺ λ° νΉμ§ |
|---|---|
| implementation | κ°μ₯ κΆμ₯λλ λ°©μ. μ»΄νμΌ μμλ ν΄λΉ μμ‘΄μ±μ μ¨κΈ°κ³ μ€ν μμλ§ λ ΈμΆνμ¬ λΉλ μλλ₯Ό λμ΄κ³ μμ‘΄μ± μ€μΌμ λ°©μ§ |
| api | ν΄λΉ μμ‘΄μ±μ κ°μ Έμ¨ λ€λ₯Έ λͺ¨λμμλ μ¬μ©ν μ μκ² λ ΈμΆ (μμ‘΄μ± μ ν) |
| compileOnly | μ»΄νμΌ μμλ§ νμνκ³ κ²°κ³Όλ¬Ό(.jar)μλ ν¬ν¨λμ§ μμ (μ: Lombok) |
| runtimeOnly | μ€ν μμλ§ νμ (μ: JDBC λλΌμ΄λ²) |
| testImplementation | ν μ€νΈ μ½λ μ€ν μμλ§ μ¬μ©λ¨ (μ: JUnit, AssertJ) |
μ°λ¦¬κ° Rq ν΄λμ€λ₯Ό ν
μ€νΈνκΈ° μν΄ build.gradle.ktsμ AssertJ λΌμ΄λΈλ¬λ¦¬λ₯Ό μΆκ°νλ κ³Όμ μ΄ λ°λ‘ Gradleμ μμ‘΄μ± κ΄λ¦¬ κΈ°λ₯μ μ¬μ©ν μ€λ‘μ
λλ€.
λ¨μν λΌμ΄λΈλ¬λ¦¬λ₯Ό κ°μ Έμ€λ κ²μ κ·ΈμΉμ§ μκ³ , λ μ΄μ΄λ μν€ν
μ²λ‘ μ€κ³λ μ°λ¦¬ νλ‘μ νΈκ° μμ μ μΌλ‘ λΉλλκ³ ν
μ€νΈλ μ μλλ‘ λ λ ν κΈ°λ°μ λ§λ ¨ν΄μ£Όλ κ²μ΄ λ°λ‘ Gradleμ μν μ
λλ€.
μ°Έκ³ μλ£: μ°μνν ν¬ - [10λΆ ν μ½ν‘] 루λμ Gradle
λ°±μλμ λν΄ κΉκ² μ΄ν΄ν΄λ³΄κ³ μΆμ΄ κΈ°μ΄λΆν° λ€μ μ‘κ³ μμλλ° λ± λμμ΄ λλ κΈμ΄μμ΅λλ€.
μ’μ κΈ κ°μ¬ν©λλ€! πββοΈ