둬볡 μ΄λ Έν μ΄μ νλ‘μΈμ
μλ νμΈμ Mambo μ λλ€.
μ€λμ μΈν 리μ μ΄μμ 둬볡 λΌμ΄λΈλ¬λ¦¬λ₯Ό μ μ©νλ λ°©λ²μ μμκ°κΈ° μν λ΄μ©μ 곡μ νκ³ μ ν©λλ€.
Lombok
둬볡 λΌμ΄λΈλ¬λ¦¬λ μλ° νλ‘μ νΈμμ νμμ μΌλ‘ μ¬μ©λ λ§νΌ νΈλ¦¬νκ³ μ μ©ν κΈ°λ₯μ μ 곡ν©λλ€. 둬볡 λΌμ΄λΈλ¬λ¦¬λ APT(Annotation Processing Tool)λ₯Ό ν΅ν΄ μ΄λ Έν μ΄μ νλ‘μΈμ(Annotation Processor)λ‘ μ»΄νμΌ λ¨κ³μμ μννκ² λ©λλ€. λ°λΌμ, 둬볡 λΌμ΄λΈλ¬λ¦¬λ₯Ό μ¬μ©νκΈ° μν΄μλ νλ‘μ νΈμμ μ΄λ Έν μ΄μ νλ‘μΈμλ₯Ό λμμν€κΈ° μν μ€μ μ ν΄μΌν©λλ€.
μΈν 리μ μ΄ μ΄λ Έν μ΄μ νλ‘μΈμ
μΈν 리μ μ΄μμλ ν΄λμ€ν¨μ€μ μλ μ΄λ Έν μ΄μ νλ‘μΈμλ₯Ό ꡬμ±νκΈ° μν μ΄λ Έν μ΄μ νλ‘μΈμ± κΈ°λ₯μ μ§μν©λλ€. μ΄ μ΄λ Έν μ΄μ νλ‘μΈμ± κΈ°λ₯μ΄ νμ±νλλ©΄ ν΄λμ€ν¨μ€μ μλ μ΄λ Έν μ΄μ νλ‘μΈμλ₯Ό μλμΌλ‘ λ±λ‘νκ² λ©λλ€.
κ·Έλλ€ νλ‘μ νΈ
μΈν 리μ μ΄λ κ·Έλλ€ νλ‘μ νΈμ μλ κΈ°λ³Έ κ·Έλλ€ λνΌλ₯Ό μ¬μ©νμ¬ νλ‘μ νΈλ₯Ό λΉλνκ³ μ€ννλλ‘ μ€μ λμ΄μμ΅λλ€. Build Tools > Gradle λ©λ΄μμ κΈ°λ³Έ κ·Έλλ€ λνΌκ° μλ μΈν 리μ μ΄ μμ²΄λ‘ λΉλνκ³ μ€νλλλ‘ λ³κ²½ν μ μμ΅λλ€. μΈν 리μ μ΄ μ체μ μΌλ‘λ 둬볡 νλ¬κ·ΈμΈμ λ²λ€μ ν¬ν¨νκ³ μμΌλ―λ‘ λ‘¬λ³΅ μ΄λ Έν μ΄μ νλ‘μΈμκ° ν΄λμ€ν¨μ€μ μμΉνκΈ° λλ¬Έμ μ΄λ Έν μ΄μ νλ‘μΈμ± κΈ°λ₯μ΄ νμ±νλμ΄μλ€λ©΄ 둬볡μ λν μ΄λ Έν μ΄μ νλ‘μΈμκ° μλμΌλ‘ λ±λ‘λκ² λ©λλ€.
dependencies {
compileOnly 'org.projectlombok:lombok'
}
μΈν 리μ μ΄λ μΉμ νκ²λ 둬볡 λΌμ΄λΈλ¬λ¦¬κ° ν΄λμ€ν¨μ€μ μμ§λ§ μ΄λ Έν μ΄μ νλ‘μΈμ± κΈ°λ₯μ΄ λΉνμ±νλμ΄μμΌλ©΄ μ΄λ²€νΈ λ‘κ·Έμ κΈ°λ₯ νμ±νλ₯Ό 묻λ μλ¦Όμ μ 곡ν©λλ€.
λν, μΈν 리μ μ΄λ₯Ό μ¬μ©νλλ‘ μ νν νκ²½μμλ λ³λ€λ₯Έ μ€μ μμ΄λ ν΄λμ€ν¨μ€μ 둬볡 λΌμ΄λΈλ¬λ¦¬κ° μμΌλ©΄ μ΄λ Έν μ΄μ νλ‘μΈμκ° λμν¨μ νμΈν μ μμ΅λλ€.
κ·Έλλ€ μ΄λ Έν μ΄μ νλ‘μΈμ ꡬμ±
νλ‘μ νΈμ κΈ°λ³Έ μ€μ μ νλ‘μ νΈμ κ·Έλλ€ λνΌλ‘ μ€ννλ νκ²½μ΄λΌκ³ νμμ΅λλ€. μ΄ κ²½μ°μλ 둬볡 λΌμ΄λΈλ¬λ¦¬μ λν μ΄λ Έν μ΄μ νλ‘μΈμλ₯Ό κ·Έλλ€ κ΅¬μ± νμΌμ μ μν΄μΌν©λλ€.
dependencies {
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
}
κ·Έλλ€μ annotationProcessorλ₯Ό ν΅ν΄ 둬볡 λΌμ΄λΈλ¬λ¦¬μ μ΄λ Έν μ΄μ νλ‘μΈμκ° μ΄λ Έν μ΄μ νλ‘μΈμκ° μμΉνλ ν΄λμ€ν¨μ€μ λ±λ‘λ¨μ λ°λΌ μΈν 리μ μ΄λ μ΄λ Έν μ΄μ νλ‘μΈμ± κΈ°λ₯ νμ±ν μ¬λΆλ₯Ό νμΈνκ³ νμ±νμ λν μλ¦Όμ μ 곡ν©λλ€.
configurations {
compileOnly {
extendsFrom annotationProcessor
}
}
κ·Έλλ€ κΈ°λ°μ μ€νλ§ λΆνΈ νλ‘μ νΈλ₯Ό μμν λ 둬볡μ μΆκ°νλ©΄ μ κ΅¬λ¬Έμ΄ ν¬ν¨λλ κ²μ νμΈνμ€ μ μμ΅λλ€. μ΄ κ΅¬λ¬Έμ μν μ΄ λ¬΄μμΈμ§ κΆκΈνμ§ μμΌμ κ°μ? μΈν
리μ μ΄λ κ·Έλλ€ μ€μ ν‘리μ μ κ΅¬λ¬Έμ΄ ν¬ν¨λλ κ²½μ° Gradle Imported
λΌλ μ΄λ¦μ νλ‘νμΌλ‘μ¨ λ‘¬λ³΅ λΌμ΄λΈλ¬λ¦¬λ₯Ό μ΄λ
Έν
μ΄μ
νλ‘μΈμλ‘ λ±λ‘νκΈ° μν μ΄λ
Έν
μ΄μ
νλ‘μΈμ± κΈ°λ₯μ νμ±ννλ κ²μ μλμΌλ‘ ꡬμ±νκ² λ©λλ€.
μΈν 리μ μ΄λ κΈ°λ³Έ νλ‘νμΌμ λν΄ μ΄λ Έν μ΄μ νλ‘μΈμ± κΈ°λ₯μ΄ νμ±νλμ΄μμ§ μμΌλ©΄ μ΄λ²€νΈ λ‘κ·Έλ₯Ό ν΅ν΄ 둬볡μ μν μ΄λ Έν μ΄μ νλ‘μΈμ± κΈ°λ₯ νμ±νλ₯Ό μλ΄νλ κ² κ°μ΅λλ€.
둬볡 μ΄λ Έν μ΄μ νλ‘μΈμ
λ€μ λ΄μ©μ μ 리ν΄λ³΄μλ©΄, 둬볡 λΌμ΄λΈλ¬λ¦¬λ₯Ό μ μ©νκΈ° μν΄μλ 둬볡 λΌμ΄λΈλ¬λ¦¬μ μ΄λ Έν μ΄μ νλ‘μΈμλ₯Ό λ±λ‘νκΈ° μν μ€μ μ μνν΄μΌν©λλ€.
- μΈν 리μ μ΄ μ΄λ Έν μ΄μ νλ‘μΈμ± νμ±ν(Enable annotation processing)
- κ·Έλλ€ μ΄λ Έν μ΄μ νλ‘μΈμ ꡬμ±
κ·Έλλ€ μ΄λ Έν μ΄μ νλ‘μΈμ ꡬμ±
μΈν 리μ μ΄λ₯Ό μ¬μ©νλ κ°λ° νκ²½μμλ μΈν 리μ μ΄ μ΄λ Έν μ΄μ νλ‘μΈμ± νμ±ν κΈ°λ₯μ ν΅ν΄ ν΄λμ€ν¨μ€μ μλ μ΄λ Έν μ΄μ νλ‘μΈμλ₯Ό μλμΌλ‘ λ±λ‘ν μ μμ΅λλ€λ§, μ ν¨μ€μ κ°μ λΉλ νκ²½μμ κ·Έλλ€λ‘ μ΄λ Έν μ΄μ νλ‘μΈμλ₯Ό λ±λ‘νκΈ° μν΄μλ μ΄λ₯Ό μν ꡬμ±μ ν΄μΌν©λλ€.
configurations {
compileOnly {
extendsFrom annotationProcessor
}
}
dependencies {
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
testCompileOnly 'org.projectlombok:lombok'
testAnnotationProcessor 'org.projectlombok:lombok'
}
κ·Έλ¦¬κ³ μ ꡬμ±μ κ°λ¨νκ² κ·Έλλ€ λ‘¬λ³΅ νλ¬κ·ΈμΈ μΌλ‘ λ체ν μ μλλ° λΉλ λꡬμ νλ¬κ·ΈμΈμ μ¬μ©νλ κ²μ 곡μ ννμ΄μ§μμλ μΆμ²νλ λ°©μμ λλ€.
plugins {
id "io.freefair.lombok" version "6.3.0"
}
κ°μ¬ν©λλ€.