Lombok λΌμ΄λΈλ¬λ¦¬λ μλ° κ°λ°μ λ ν¨μ¨μ μ΄κ³ κ°κ²°νκ² λ§λλ λ° λμμ μ£Όλ λꡬμ΄λ€. μ΄ λΌμ΄λΈλ¬λ¦¬μ μ£Όμ λͺ©μ μ μλ° μμ€μ½λμμ λ°λ³΅λλ 보μΌλ¬νλ μ΄νΈ μ½λλ₯Ό μ€μ΄λ κ²μ΄λ€. μλ₯Ό λ€μ΄, getter, setter, toString, equals, hashCodeμ κ°μ λ©μλλ₯Ό μ΄λ Έν μ΄μ μ μ¬μ©νμ¬ μλμΌλ‘ μμ±ν μ μλ€.
Lombokμ μ»΄νμΌ μκ°μ μλνμ¬ μμ€ μ½λμ μ£Όμ λλ€. μ΄λ λ°νμμ μΆκ°μ μΈ μ€λ²ν€λκ° λ°μνμ§ μμμ μλ―Ένλ€. μ£Όλ‘ μ¬μ©λλ μ΄λ Έν μ΄μ μ @Data, @Getter, @Setter, @NoArgsConstructor, @AllArgsConstructor, @Builder λ±μ΄ μλ€. μ΄λ€μ κ°κ° ν΄λμ€μ νμν κΈ°λ³Έμ μΈ λ©μλλ€μ μλμΌλ‘ μμ±ν΄μ€λ€.
Lombokμ Maven, Gradle λ±μ λΉλ λꡬμ ν΅ν©νμ¬ μ¬μ©ν μ μμΌλ©°, μ΄λ₯Ό ν΅ν΄ μλ° νλ‘μ νΈμ κ°λ° κ³Όμ μ κ°μνν μ μλ€.
Lombok λΌμ΄λΈλ¬λ¦¬μ @Data μ΄λ Έν μ΄μ μ Java ν΄λμ€μ λν΄ νν μ¬μ©λλ λ©μλλ€μ μλμΌλ‘ μμ±ν΄μ£Όλ κΈ°λ₯μ μ 곡νλ€. μ΄ μ΄λ Έν μ΄μ μ ν΄λμ€μ μ μ©νλ©΄, Lombokμ λ€μκ³Ό κ°μ μμ μ μννλ€:
- Getter λ©μλ μμ±: ν΄λμ€μ λͺ¨λ νλμ λν΄ getter λ©μλλ₯Ό μμ±νλ€. μ΄λ₯Ό ν΅ν΄ νλμ κ°μ μΈλΆμμ μ½μ μ μκ² λλ€.
- Setter λ©μλ μμ±: ν΄λμ€μ λͺ¨λ νλμ λν΄ setter λ©μλλ₯Ό μμ±νλ€. μ΄λ₯Ό ν΅ν΄ νλμ κ°μ μΈλΆμμ λ³κ²½ν μ μκ² λλ€.
- equals()μ hashCode() λ©μλ μμ±: κ°μ²΄μ λλ±μ± λΉκ΅μ ν΄μ μ½λ μμ±μ μν equals()μ hashCode() λ©μλλ₯Ό μμ±νλ€. μ΄λ κ°μ²΄κ° μλ°μ 컬λ μ νλ μμν¬ λ΄μμ μ¬λ°λ₯΄κ² μλνκ² νλ©°, κ°μ²΄ λΉκ΅λ₯Ό μ©μ΄νκ² νλ€.
- toString() λ©μλ μμ±: κ°μ²΄μ λ¬Έμμ΄ ννμ λ°ννλ toString() λ©μλλ₯Ό μμ±νλ€. μ΄ λ©μλλ κ°μ²΄μ μνλ₯Ό λ¬Έμμ΄λ‘ μ½κ² νμΈν μ μκ² ν΄μ€λ€.
@Data μ΄λ Έν μ΄μ μ μ£Όλ‘ λ°μ΄ν°λ₯Ό λ΄λ κ°μ²΄μΈ DTO(Data Transfer Object)λ POJO(Plain Old Java Object)μ μ¬μ©λλ€. μ΄ μ΄λ Έν μ΄μ μ μ¬μ©νλ©΄, λ°λ³΅μ μ΄κ³ νμ€μ μΈ λ©μλλ₯Ό λ§€λ² μλμΌλ‘ μμ±νμ§ μμλ λκΈ° λλ¬Έμ, μ½λλ₯Ό κ°κ²°νκ² μ μ§νκ³ , κ°λ°μμ μμ°μ±μ ν₯μμν¬ μ μλ€.
λ¨, @Data μ΄λ Έν μ΄μ μ ν΄λμ€μ λͺ¨λ νλμ λν΄ getterμ setterλ₯Ό μμ±νκΈ° λλ¬Έμ, λΆλ³ κ°μ²΄λ₯Ό λ§λ€κ³ μ ν λλ μ£Όμν΄μΌ νλ€. λΆλ³ κ°μ²΄λ₯Ό μ€κ³ν λλ @Getter, @Setter, @NoArgsConstructor, @AllArgsConstructor λ± Lombokμ΄ μ 곡νλ λ€λ₯Έ μ΄λ Έν μ΄μ λ€μ μ‘°ν©νμ¬ μ¬μ©νλ κ²μ΄ μ μ ν μ μλ€.
import lombok.Data;
@Data
public class User {
private String name;
private int age;
}
μ μμμμ User ν΄λμ€λ nameκ³Ό ageλΌλ λ κ°μ νλλ₯Ό κ°μ§κ³ μλ€. @Data μ΄λ Έν μ΄μ μ ν΄λμ€μ μΆκ°ν¨μΌλ‘μ¨, Lombokμ μλμΌλ‘ λ€μκ³Ό κ°μ λ©μλλ€μ μμ±νλ€:
- getName() λ° setName(String name) - name νλμ λν getterμ setter
- getAge() λ° setAge(int age) - age νλμ λν getterμ setter
- toString() - ν΄λμ€μ λ¬Έμμ΄ ννμ λ°ννλ λ©μλ
- equals(Object other) λ° hashCode() - κ°μ²΄μ λλ±μ± λΉκ΅μ ν΄μ μ½λ μμ±μ μν λ©μλ
μ΄λ κ² Lombokμ μ¬μ©νλ©΄ ν΄λμ€μ νλλ₯Ό μ½κ² μΆκ°νκ±°λ λ³κ²½ν μ μμΌλ©°, νμν 보μΌλ¬νλ μ΄νΈ μ½λλ₯Ό μμ±νμ§ μμλ λλ€.
https://projectlombok.org/features/Data