데일리 작(Job) 지식

백만 λ‹¬λŸ¬μ§œλ¦¬ μ‹€μˆ˜, Null return이 μ•ˆμ’‹μ€ 이유

κ°œλ°œν•˜λŠ” 주디씨 2023. 11. 22. 13:35

 

κ°œλ°œμ„ ν•˜λ‹€λ³΄λ©΄ 무심결에 null을 return ν•˜λ„λ‘ ν–ˆλ˜ 적이 μ’…μ’…μžˆλ‹€.
그런데, 이런 μŠ΅κ΄€(?)이 백만 λ‹¬λŸ¬μ§œλ¦¬ μ‹€μˆ˜μž„μ„ μ•Œκ³ μžˆλŠ”κ°€?

 

 

 

였늘 κ³΅μœ ν•  λ‚΄μš©μ€ null을 λ¦¬ν„΄ν•˜λŠ” μ½”λ“œκ°€ μ™œ λ‚˜μœ μ½”λ“œμΈμ§€, μ½”λ“œλ₯Ό μ½λŠ” μ‚¬λžŒμ˜ μž…μž₯κ³Ό μ½”λ“œ λ³΅μž‘μ„± κ΄€μ μœΌλ‘œ μ„€λͺ…ν•œ κΈ€μž…λ‹ˆλ‹€.
ν† μŠ€ tech(https://toss.tech/article/engineering-note-2?utm_source=oneoneone)에 κ²Œμ‹œλœ 원문을 λ°”νƒ•μœΌλ‘œ μ΄ν•΄ν•œ λ‚΄μš©μ„ ν¬μŠ€νŒ…ν•©λ‹ˆλ‹€.

 

 

Null 이 μ™œ λ‚˜μœκ°€μš”?

문제: 의미λ₯Ό μΆ•μ•½ν•œ μ½”λ“œ ν‘œν˜„

  • null κ°’
    • λ°μ΄ν„°λ² μ΄μŠ€μ— ν•΄λ‹Ή 이름을 가진 μ‚¬λžŒμ΄ μ—†λŠ” 것은 μ•„λ‹κΉŒ?
    • λ°μ΄ν„°λ² μ΄μŠ€μ™€ λ„€νŠΈμ›Œν¬ 연결이 λΆˆμ•ˆμ •ν–ˆλ˜ 것이 μ•„λ‹κΉŒ?
    • “κΉ€μ£Όλ”””λŠ” νƒˆν‡΄ν•œ νšŒμ›μΈ 것이 μ•„λ‹κΉŒ?
    • “κΉ€μ£Όλ”””λŠ” μš΄μ˜ν™˜κ²½μ—μ„œλ§Œ μ‘΄μž¬ν•˜λŠ” μ‚¬μš©μžμΈ 것 μ•„λ‹κΉŒ?

λ“± κ°œλ°œμžκ°€ μΆ”λ‘ ν•˜κ²Œ λœλ‹€. Null ν•˜λ‚˜λ‘œ,, 벌써 μ—¬κΈ°μ„œλΆ€ν„° 생산성이 떨어진닀.

Null이 μ•„λ‹ˆλ”λΌλ„ μ—¬λŸ¬ 원인을 ν•˜λ‚˜μ˜ ν‘œν˜„μœΌλ‘œ κ°€λ €λ²„λ¦¬λŠ” 방식은 ❌

  • “ ” λΉˆλ¬Έμžμ—΄
    • μ‚¬μš©μžκ°€ μž…λ ₯을 μ‹œλ„ν•˜μ§€ μ•Šμ•˜λ‚˜..?
    • 무언가 μž…λ ₯ν–ˆμ§€λ§Œ 잘λͺ»λœ μž…λ ₯μ΄μ—ˆλ‚˜?
    • μ‹€μ œλ‘œ 빈 λ¬Έμžμ—΄μ„ μž…λ ₯ν–ˆλ‚˜?

λ‹€μ–‘ν•œ μ „μž¬λ₯Ό ν•˜κ²Œ 되고 ν•˜λ‚˜μ˜ ν‘œν˜„μœΌλ‘œ μ—¬λŸ¬ 원인을 μΆ”μΈ‘ν•˜κ²Œ λ§Œλ“ λ‹€..

 

κ·Έλ ‡λ‹€κ³ , null을 μ‚¬μš©ν•˜μ§€λ§λΌλŠ” 것이 μ•„λ‹ˆλ‹ˆ 잘λͺ» μ΄ν•΄ν•˜λ©΄ ν°μΌλ‚œλ‹€..! 
μ—¬κΈ°μ„œ ν•˜κ³ μžν•˜λŠ” 말은 null을 μ‹ μ€‘ν•˜κ²Œ μ‚¬μš©ν•˜μžλŠ” κ²ƒμ΄λ‹€πŸ™‚

 

 

πŸ“Œ λ‘œκ·Έμ— λ§₯락을 남기기

주석을 λ‚¨κΈ°λŠ”κ²ƒλ„ λ°©λ²•μ΄μ§€λ§Œ, 주석은 μ‹€μ œ μ½”λ“œκ°€ μ•„λ‹ˆκΈ° λ•Œλ¬Έμ— 변경이 λ°œμƒν• λ•Œ 같이 κ΄€λ¦¬λ˜μ§€ μ•Šμ„ 수 μžˆμŠ΅λ‹ˆλ‹€. λ”°λΌμ„œ null 이 리턴 λ˜μ—ˆμ„ 경우 λ‘œκ·Έλ‚˜ Exception 메세지에 μ™œ null 이 λ°œμƒν•  수 μžˆλŠ”μ§€λ₯Ό λͺ…ν™•ν•˜κ²Œ μ •λ¦¬ν•¨μœΌλ‘œμ¨ μ½”λ“œλ₯Ό μ½λŠ” κ°œλ°œμžκ°€ 이λ₯Ό μ‰½κ²Œ νŒŒμ•…ν•  수 μžˆλ„λ‘ ν•©λ‹ˆλ‹€.

 

πŸ“Œ λ§₯락 처리λ₯Ό μœ„ν•œ κΈ°λŠ₯ λ§Œλ“€κΈ°(단, ν•„μš”ν• λ•Œλ§Œ)

null 이 λ¦¬ν„΄λ˜μ—ˆμ„ 경우 이λ₯Ό μˆ˜μ •ν•˜κΈ° μœ„ν•œ 좔가적인 둜직 ν˜Ήμ€ μž¬μ‹œλ„ 처리 등을 톡해 Null 이 λ¦¬ν„΄λ˜λŠ” 상황을 μ–΄λŠμ •λ„ μœ μΆ”ν•˜κ³  λ°©μ–΄ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 단, λ¬΄λΆ„λ³„ν•œ μž¬μ‹œλ„ 처리 등은 μ„±λŠ₯ μ €ν•˜ 및 생산성을 λ–¨μ–΄λœ¨λ¦΄ 수 있기 λ•Œλ¬Έμ— λ°˜λ“œμ‹œ ν•„μš”ν•œ κ²½μš°μ—λ§Œ λ§Œλ“œλŠ”κ²Œ μ’‹μŠ΅λ‹ˆλ‹€.

 

 

 

πŸ“š 원문 https://toss.tech/article/engineering-note-2?utm_source=oneoneone

πŸ“š ν•¨κ»˜ 보면 쒋은 κΈ€ πŸ›  Java Optional 은 μ–Έμ œ μ‚¬μš©ν•΄μ•Όν• κΉŒ?: https://careerly.co.kr/comments/87740?from=search-result&fromArea=tab-comment