πŸ§‘β€πŸ’» μŠ€ν”„λ§λΆ€νŠΈ 둬볡 μ μš©ν•˜κΈ° πŸ“–

J_m2nΒ·2023λ…„ 10μ›” 6일
0
post-custom-banner

μŠ€ν”„λ§λΆ€νŠΈ 둬볡 μ μš©ν•˜κΈ°


둬볡은 사싀 κ΅­λΉ„κ΅μœ‘ κ³Όμ •μ—μ„œλ„ κ°•μ‚¬λ‹˜μ΄ νŽΈν•œκ±°λΌκ³  μ†Œκ°œν•΄μ£Όμ…¨λ˜ 적이 μžˆμ—ˆλŠ”λ°, κ·Έλ•ŒλŠ” μ†”μ§νžˆ νŽΈν•œ 것 λ³΄λ‹€λŠ” 정석을 λ°°μ›Œλ³΄κ³  μ‹Άμ–΄μ„œ μ‚¬μš©ν•˜μ§€ μ•Šμ•˜λŠ”λ° 였늘 κ³΅λΆ€ν•˜λ©΄μ„œ μ‚¬μš©ν•΄λ³΄λ‹ˆ λ„ˆλ¬΄ νŽΈν•œ 것 κ°™μ•„μ„œ μ•žμœΌλ‘œ μ“Έ 일이 λ§Žμ„ λ“― ν•˜μ—¬ 이 글을 μž‘μ„±ν•©λ‹ˆλ‹€.


Lombok(둬볡) μ΄λž€?

  • getter, setter, μƒμ„±μž, toString 같은 자주 μ‚¬μš©λ˜λŠ” ν•¨μˆ˜λ“€μ„ 직접 μž‘μ„±ν•˜μ§€ μ•Šκ³  μžλ™μœΌλ‘œ μž‘μ„±ν•΄μ£Όμ–΄ μ½”λ“œλ₯Ό κ°„μ†Œν™”ν•΄ μ£ΌλŠ” 라이브러리
  • λ‘œκΉ… κΈ°λŠ₯을 톡해 println()문의 λΆˆνŽΈν•¨μ„ κ°œμ„ ν•  수 있음

    λ‘œκΉ…(logging) : println은 기둝에 남지 μ•Šμ•„ 데이터λ₯Ό λ°”λ‘œ 좜λ ₯ν•΄λ³Ό 순 μžˆμ§€λ§Œ λ‚˜μ€‘μ— λ”°λ‘œ μ°Ύμ•„λ³Ό μˆ˜λŠ” μ—†μœΌλ©° μ„œλ²„μ˜ μ„±λŠ₯에도 μ•…μ˜ν–₯을 λΌμΉ˜λŠ” 것과 달리, λ‘œκΉ…μ€ λ‚˜μ€‘μ—λ„ κ·Έλ™μ•ˆ 찍힌 기둝을 λ³Ό 수 μžˆλ‹€



Lombok μ„€μΉ˜ν•˜κΈ°


ν”„λ‘œμ νŠΈμ˜ src > build.gradle νŒŒμΌμ— μ•„λž˜ μ½”λ“œλ₯Ό μž…λ ₯ν•œ ν›„ gradle μƒˆλ‘œκ³ μΉ¨μ„ 눌러주면 ν”„λ‘œμ νŠΈκ°€ μžλ™μœΌλ‘œ 둬볡을 μ„€μΉ˜ν•œλ‹€.
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'


μœ„μ™€ 같이 뜨면 성곡!



μ½”λ“œ κ°„μ†Œν™” ν•˜κΈ°

둬볡을 μ„€μΉ˜ν–ˆμœΌλ©΄ 이제 κ°„μ†Œν™” μž‘μ—…μ„ ν•΄λ³΄μž.

1. μƒμ„±μž λ©”μ„œλ“œ κ°„μ†Œν™” ν•˜κΈ°

μž‘μ„±λ˜μ–΄ μžˆλŠ” μƒμ„±μž μ½”λ“œλ₯Ό μ§€μš΄ ν›„ ν•΄λ‹Ή 클래슀 μœ„μ— μ•„λž˜μ˜ μ–΄λ…Έν…Œμ΄μ…˜μ„ μΆ”κ°€ν•œλ‹€.

@AllArgsConstructor 

그러면 import lombok.AllArgsConstructorκ°€ μžλ™μœΌλ‘œ μž„ν¬νŠΈ λœλ‹€.

2. toString λ©”μ„œλ“œ κ°„μ†Œν™” ν•˜κΈ°

μž‘μ„±λ˜μ–΄ μžˆλŠ” toString μ½”λ“œλ₯Ό μ§€μš΄ ν›„ ν•΄λ‹Ή 클래슀 μœ„μ— μ•„λž˜μ˜ μ–΄λ…Έν…Œμ΄μ…˜μ„ μΆ”κ°€ν•΄μ€€λ‹€.

@ToString 

그러면 import lombok.ToString이 μžλ™μœΌλ‘œ μž„ν¬νŠΈ λœλ‹€.



μ»¨νŠΈλ‘€λŸ¬μ— 둜그 남기기

μ»¨νŠΈλ‘€λŸ¬μ—μ„œ 데이터λ₯Ό ν™•μΈν•˜κ³  싢을 λ•Œ μ‚¬μš©ν•΄λ³΄μž.

  1. 클래슀 μœ„μ— μ•„λž˜μ˜ μ–΄λ…Έν…Œμ΄μ…˜μ„ μΆ”κ°€ν•œλ‹€.
@Slf4j
  1. μ•„λž˜μ˜ ν•¨μˆ˜λ‘œ 둜그λ₯Ό 남기고 싢은 데이터λ₯Ό ν™•μΈν•œλ‹€.
log.info(λ³€μˆ˜λͺ…);

println()으둜 데이터λ₯Ό ν™•μΈν•˜λŠ” 것 보닀 둜그둜 ν™•μΈν•˜λŠ” 것이 μ„±λŠ₯μ μœΌλ‘œλ„ 더 μ’‹λ‹€κ³  ν•œλ‹€.


κ΅­λΉ„ ꡐ윑 ν”„λ‘œμ νŠΈ λ™μ•ˆμ— 날씨 apiλ₯Ό μ‚¬μš©ν•΄μ•Ό ν•΄μ„œ apiμ—μ„œ μ œλŒ€λ‘œ 값을 κ°€μ Έμ˜€λŠ”μ§€ ν™•μΈν•˜κΈ° μœ„ν•΄ println()을 μ‚¬μš©ν–ˆμ—ˆλŠ”λ°, 데이터 양이 λ„ˆλ¬΄ λ§Žμ•„μ„œ 가끔 였래 걸리기도 ν•˜κ³ , μ‹¬μ§€μ–΄λŠ” ν†°μΊ£ μ„œλ²„μ— κ³ΌλΆ€ν•˜κ°€ κ±Έλ € 연결이 λŠμ–΄μ§€κΈ°λ„ ν–ˆμ—ˆλ‹€.

더 일찍 둬볡의 λ‘œκΉ… κΈ°λŠ₯을 μ•Œμ•˜λ‹€λ©΄ μ’€ 더 μ„±λŠ₯이 μ’‹κ²Œ ν”„λ‘œμ νŠΈλ₯Ό 끝마칠 수 μžˆμ§€ μ•Šμ•˜μ„κΉŒ ν•˜λŠ” 아쉬움이 λ“ λ‹€.
profile
μ½”λ”© μ΄ˆμ§œμž…λ‹ˆλ‹€
post-custom-banner

0개의 λŒ“κΈ€