EEALL@ONCE

🌱@Builder μ–΄λ…Έν…Œμ΄μ…˜ λ³Έλ¬Έ

Spring🌱

🌱@Builder μ–΄λ…Έν…Œμ΄μ…˜

μ˜¬μ—£μ›μŠ€ 2023. 11. 7. 19:16
728x90

@Builder μ–΄λ…Έν…Œμ΄μ…˜μ€ Lombok λΌμ΄λΈŒλŸ¬λ¦¬μ—μ„œ μ œκ³΅λ˜λŠ” μ–΄λ…Έν…Œμ΄μ…˜ μ€‘ ν•˜λ‚˜μž…λ‹ˆλ‹€. 

이 μ–΄λ…Έν…Œμ΄μ…˜μ€ μ£Όλ‘œ Java ν΄λž˜μŠ€μ˜ λΉŒλ” νŒ¨ν„΄μ„ μƒμ„±ν•˜λŠ” λ° μ‚¬μš©λ©λ‹ˆλ‹€.

λΉŒλ” νŒ¨ν„΄μ€ κ°μ²΄λ₯Ό μƒμ„±ν•  λ•Œ ν•„λ“œλ₯Ό μ„€μ •ν•˜λŠ” λ° λ„움을 μ£ΌλŠ” νŒ¨ν„΄ μ€‘ ν•˜λ‚˜μž…λ‹ˆλ‹€. 

@Builder μ–΄λ…Έν…Œμ΄μ…˜μ„ μ‚¬μš©ν•˜λ©΄ ν•΄λ‹Ή ν΄λž˜μŠ€μ— λŒ€ν•œ λΉŒλ” ν΄λž˜μŠ€κ°€ μžλ™μœΌλ‘œ μƒμ„±λ˜λ©°, 

이λ₯Ό μ‚¬μš©ν•˜μ—¬ κ°μ²΄λ₯Ό μƒμ„±ν•˜κ³  ν•„λ“œ κ°’을 μ„€μ •ν•  μˆ˜ μžˆμŠ΅λ‹ˆλ‹€. 

이것은 μ£Όλ‘œ λΆˆλ³€(immutable) κ°μ²΄λ₯Ό μƒμ„±ν•˜κ±°λ‚˜, κ°μ²΄ μƒμ„± κ³Όμ •μ„ λ” λͺ…ν™•ν•˜κ²Œ λ§Œλ“€κΈ° μœ„ν•΄ μ‚¬μš©λ©λ‹ˆλ‹€.

κ°„λ‹¨ν•œ μ˜ˆμ œλ‘œ μ„€λͺ…ν•˜κ² μŠ΅λ‹ˆλ‹€. μ•„λž˜λŠ” @Builder μ–΄λ…Έν…Œμ΄μ…˜μ„ μ‚¬μš©ν•œ ν΄λž˜μŠ€μ˜ μ˜ˆμ œμž…λ‹ˆλ‹€.


import lombok.Builder;
import lombok.Getter;

@Getter
@Builder
public class Person {
    private String name;
    private int age;
}



이 ν΄λž˜μŠ€λ₯Ό μ‚¬μš©ν•˜μ—¬ κ°μ²΄λ₯Ό μƒμ„±ν•  λ•Œ λΉŒλ” νŒ¨ν„΄μ„ ν™œμš©ν•  μˆ˜ μžˆμŠ΅λ‹ˆλ‹€.


Person person = Person.builder()
    .name("John")
    .age(30)
    .build();




μ΄λ ‡κ²Œ @Builder μ–΄λ…Έν…Œμ΄μ…˜μ„ μ‚¬μš©ν•˜λ©΄ κ°μ²΄ μƒμ„± κ³Όμ •μ΄ λͺ…확해지며, ν•„λ“œλ₯Ό μ„€μ •ν•˜κΈ°κ°€ κ°„λ‹¨ν•΄μ§‘λ‹ˆλ‹€. λ˜ν•œ, λΆˆν•„μš”ν•œ μƒμ„±μž λ©”μ„œλ“œλ₯Ό μž‘μ„±ν•˜μ§€ μ•Šμ•„도 λ˜λ―€λ‘œ μ½”λ“œκ°€ λ” κ°„κ²°ν•΄μ§‘λ‹ˆλ‹€.


728x90