ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Java] 자주 μ‚¬μš©λ˜λŠ” Lombok μ–΄λ…Έν…Œμ΄μ…˜
    🎸 2024. 6. 22. 19:42

    Lombok

        μžλ°”μ—μ„œ Getter, Setter, toStringκ³Ό 같은 반볡 λ©”μ†Œλ“œ μž‘μ„±μ„ μ΅œμ†Œν™”ν•˜λ„λ‘ λ•λŠ” λΌμ΄λΈŒλŸ¬λ¦¬λ‹€. μ–΄λ…Έν…Œμ΄μ…˜μ„ λΆ€μ—¬ν•˜λŠ” κ²ƒλ§ŒμœΌλ‘œ κ²Œν„°μ„Έν„°, μƒμ„±μž κ΅¬ν˜„ 등이 κ°€λŠ₯ν•˜μ—¬ 데이터 클래슀 μž‘μ„±μ΄ μˆ˜μ›”ν•΄μ§„λ‹€.

     

    자주 μ‚¬μš©ν•˜λŠ” μ–΄λ…Έν…Œμ΄μ…˜

    @Getter, @Setter

    private둜 μ„€μ •λœ 클래슀 ν˜Ήμ€ ν•„λ“œ λ³€μˆ˜λ₯Ό μ™ΈλΆ€μ—μ„œ μ ‘κ·Ό λ˜λŠ” μˆ˜μ • κ°€λŠ₯ν•˜λ„λ‘ getter, setterλ₯Ό μžλ™μœΌλ‘œ κ΅¬ν˜„ν•œλ‹€.

    @NoArgsConstructor

    κΈ°λ³Έ μƒμ„±μžλ₯Ό μžλ™μœΌλ‘œ κ΅¬ν˜„ν•œλ‹€.

    @AllArgsConstructor

    λͺ¨λ“  ν•„λ“œμ— λŒ€ν•΄μ„œ μ΄ˆκΈ°ν™” 값을 인수둜 ν•˜λŠ” μƒμ„±μžλ₯Ό μžλ™μœΌλ‘œ κ΅¬ν˜„ν•œλ‹€.

    @RequiredArgsConstructor

    final ν•„λ“œμ— λŒ€ν•΄μ„œ μ΄ˆκΈ°ν™” 값을 인수둜 ν•˜λŠ” μƒμ„±μžλ₯Ό μžλ™μœΌλ‘œ κ΅¬ν˜„ν•œλ‹€.

    @ToString

    객체가 가지고 μžˆλŠ” 값을 λ¬Έμžμ—΄λ‘œ λ¦¬ν„΄ν•œλ‹€. exclude μ˜΅μ…˜μ„ μ‚¬μš©ν•˜μ—¬ λŒ€μƒ ν•„λ“œλ₯Ό μ œμ™Έν•  수 μžˆλ‹€.

    @EqualsAndHashCode

    equals()λ©”μ†Œλ“œμ™€ hashCode()λ©”μ†Œλ“œλ₯Ό μƒμ„±ν•œλ‹€. 두 λ©”μ†Œλ“œλŠ” ꡬ쑰적으둜 μ—°κ΄€λ˜μ–΄ μžˆμœΌλ―€λ‘œ λͺ¨μˆœλ  수 μ—†μ–΄ ν•¨κ»˜ κ΅¬ν˜„λœλ‹€.
    - equals : 2개의 객체가 λ™μΌν•œμ§€ κ²€μ‚¬ν•˜κΈ° μœ„ν•˜μ—¬ μ‚¬μš©ν•œλ‹€.
    - hashCode : λŸ°νƒ€μž„ 쀑 객체의 μœ μΌν•œ integer 값을 λ°˜ν™˜ν•œλ‹€.

     

     

     

     

    @Value

    λ‹€μŒ μ–΄λ…Έν…Œμ΄μ…˜μ΄ λΆ€μ—¬λœ 것과 λ™μΌν•œ μƒνƒœκ°€ λœλ‹€. 
    @Getter
    @ToString
    @EqualsAndHashCode
    @AllArgsConstructor

    (1) 클래슀 및 각 ν•„λ“œμ— final이 λΆ€μ—¬λœλ‹€. (2) 각 ν•„λ“œμ˜ κ°€μ‹œμ„±μ΄ private μƒνƒœκ°€ λœλ‹€. (3) ν•΄λ‹Ή κ°μ²΄λŠ” λΆˆλ³€ 객체가 λœλ‹€.
        생성 μ‹œ μƒμ„±μžμ— 따라 값이 μ„€μ •λ˜κ³ , μ΄ν›„λ‘œλŠ” 변경이 λΆˆκ°€λŠ₯ν•˜λ‹€. staticConstructor μ˜΅μ…˜μ„ μ„€μ •ν•˜λ©΄, staticν•œ νŒ©ν† λ¦¬ λ©”μ†Œλ“œκ°€ μƒμ„±λœλ‹€. 이 경우 μƒμ„±μžλŠ” private둜 λ³€κ²½λ˜λ―€λ‘œ, νŒ©ν† λ¦¬ λ©”μ†Œλ“œλ₯Ό ν†΅ν•΄μ„œλ§Œ μΈμŠ€ν„΄μŠ€λ₯Ό 생성할 수 μžˆλ‹€.

    @Data

    λ‹€μŒ μ–΄λ…Έν…Œμ΄μ…˜μ„ μ „λΆ€ λΆ€μ—¬ν•œ 것과 λ™μΌν•œ μƒνƒœκ°€ λœλ‹€.
    @Getter / @Setter
    @ToString
    @EqualsAndHashCode
    @RequiredArgsConstructor
    @Value