πŸ“‹ 머리에 λ°•μ œν• λΌκ³  μ§„μ§œ κ°„λ‹¨νžˆ μ •λ¦¬ν•œ 일급 μ»¬λ ‰μ…˜


일급 μ»¬λ ‰μ…˜

일급 μ»¬λ ‰μ…˜μ˜ κ°œλ…μ„ μ’€ 더 μ •ν™•νžˆ 짚고 λ„˜μ–΄κ°€μ•Ό ν•  것 κ°™μ•˜λ‹€.
1μ°¨ λ¦¬λ·°μ–΄λ‹˜κ»˜μ„œ 첨뢀해 μ£Όμ‹  글을 μ €λ²ˆμ—λ„ μ½μ–΄λ³΄μ•˜μœΌλ‚˜
κ·Έ λ•ŒκΉŒμ§€λŠ” 이 κΈ€μ˜ λͺ¨λ“  κ°œλ…μ„ νŒŒμ•…ν•˜κΈ° μ–΄λ €μ› λ‹€.
λ•Œλ¬Έμ— ν›ŒλΌλ‹Ή 읽고 λ„˜μ–΄κ°”μ§€λ§Œ πŸ₯²
μ΄λ²ˆμ— μ •λ…ν•΄λ³΄λ‹ˆ λ¨Έλ¦Ώ 속에 κ°œλ…κ³Ό λͺ©μ μ΄ μ’€ 더 λͺ…ν™•ν•˜κ²Œ μž‘ν˜”λ‹€.

λ‚΄ λ¨Έλ¦Ώ 속에 박을라고 λ‚΄κ°€ μ΄ν•΄ν•œλŒ€λ‘œ μ§„μ§œ κ°„λ‹¨ν•˜κ²Œ μ •λ¦¬ν•˜λŠ” κΈ€ ✍️

참고 자료

일급 μ»¬λ ‰μ…˜ (First Class Collection)의 μ†Œκ°œμ™€ 써야할 이유

일급 μ»¬λ ‰μ…˜?

λ‹€λ₯Έ 멀버 λ³€μˆ˜κ°€ 없이 μ˜€λ‘œμ§€ μ½œλ ‰μ…˜λ§Œ ν¬ν•¨ν•œ 객체.
ν•œλ§ˆλ””λ‘œ Collection을 클래슀둜 Wrapping ν•œ 것이닀.

λΉ„μ¦ˆλ‹ˆμŠ€μ— 쒅속적인 자료ꡬ쑰

collection의 값을 λΉ„μ¦ˆλ‹ˆμŠ€ 둜직이 μ„œλΉ„μŠ€ λ©”μ†Œλ“œμ— λ“€μ–΄κ°€ μžˆμ„ λ•Œ
값을 κ²€μ¦ν•˜λŠ” λ©”μ†Œλ“œλ„ 이 μ„œλΉ„μŠ€ λ©”μ†Œλ“œμ— λ“€μ–΄κ°€κ²Œ 될 것이닀.
λ§Œμ•½ 변경이 μΌμ–΄λ‚œλ‹€λ©΄ λͺ¨λ“  μ½”λ“œμ™€ 도메인을 μ•Œκ³  μžˆμ–΄μ•Όν•˜λ―€λ‘œ μ–Έμ œλ“ μ§€
문제의 λ°œμƒ 여지가 μžˆλŠ” 둜직이 λ˜μ–΄λ²„λ¦°λ‹€.
μ΄λŠ” 객체지ν–₯ 섀계에 μ–΄κΈ‹λ‚œλ‹€.
ν•΄λ‹Ή 쑰건으둜만 생성 ν•  수 μžˆλŠ” 자료ꡬ쑰인 일급 μ»¬λ ‰μ…˜μ„ μ‚¬μš©ν•œλ‹€.

λΆˆλ³€ 보μž₯

final μ˜ˆμ•½μ–΄λ₯Ό μ‚¬μš©ν•˜λΌ.
μ΄λŠ” λΆˆλ³€μ„ κΈˆμ§€ν•˜λŠ” 것이 μ•„λ‹Œ μž¬ν• λ‹Ήμ„ κΈˆμ§€ν•œλ‹€.

μƒνƒœμ™€ ν–‰μœ„λ₯Ό ν•œκ³³μ—μ„œ 관리

μ»¬λ ‰μ…˜ λ‚΄μ˜ μ–΄λ–€ μƒνƒœλ³„λ‘œ λ©”μ†Œλ“œλ₯Ό μ‹€ν–‰ν•˜κ³  μ‹Άλ‹€ κ°€μ •ν•  λ•Œ
둜직이 λ°–μœΌλ‘œ λΆ„λ¦¬λ˜μ–΄ μžˆλ‹€λ©΄ μƒνƒœμ— 따라 μ§€μ •λœ λ©”μ†Œλ“œ 싀행이 μ–΄λ ΅λ‹€.

이름이 μžˆλŠ” μ»¬λ ‰μ…˜

μ»¬λ ‰μ…˜μ— 이름을 뢙일 수 μžˆμ–΄ 검색이 μ–΄λ ΅κ³  λͺ…ν™•ν•œ ν‘œν˜„μ΄ λΆˆκ°€λŠ₯ν•œ 문제λ₯Ό ν•΄κ²°ν•œλ‹€.