λͺ©λ‘πŸ“– (25)

DevLog 😢

[μ΄νŒ©ν‹°λΈŒμžλ°”] μ•„μ΄ν…œ 01. μƒμ„±μž λŒ€μ‹  정적 νŒ©ν„°λ¦¬ λ©”μ„œλ“œλ₯Ό κ³ λ €ν•˜λΌ

πŸ’¬ μ΄νŒ©ν‹°λΈŒμžλ°” 챕터 1을 읽고 μ •λ¦¬ν•œ κΈ€μž…λ‹ˆλ‹€. βœ”οΈ 정적 νŒ©ν„°λ¦¬ λ©”μ„œλ“œλž€? μš°ν…Œμ½” λ―Έμ…˜μ„ μ§„ν–‰ν•˜λ©΄μ„œ, 정적 νŒ©ν„°λ¦¬ λ©”μ„œλ“œλ₯Ό 정말 많이 μ‚¬μš©ν•˜μ˜€λ‹€. 정적 νŒ©ν„°λ¦¬ λ©”μ„œλ“œλž€, 클래슀의 μΈμŠ€ν„΄μŠ€λ₯Ό λ°˜ν™˜ν•˜λŠ” 정적 λ©”μ„œλ“œμ΄λ‹€. 즉, μƒμ„±μž 역할을 ν•˜λ©΄μ„œλ„ 객체λ₯Ό μƒμ„±ν•˜κΈ° 전에 1차적으둜 ν†΅κ³Όν•˜λŠ” 'λ¬Έ' 같은 μ‘΄μž¬λΌκ³ λ„ λ³Ό 수 μžˆλ‹€. 정적 νŒ©ν„°λ¦¬ λ©”μ„œλ“œλ₯Ό μ‚¬μš©ν•˜λ©΄ μ–΄λ–€ 점이 μ’‹μ„κΉŒ? πŸ’¬ λ™μΌν•œ μ‹œκ·Έλ‹ˆμ²˜λΌλ„, 이름에 따라 μƒˆλ‘­κ²Œ 생성해쀄 수 μžˆλ‹€. μ–΄λŠ λ‚ , μš°ν…Œμ½”μ— 크루 신청을 ν•˜κΈ° μœ„ν•΄ μ‹ μ²­μ„œλ₯Ό μž‘μ„±ν•˜κ³  μžˆμ—ˆλ‹€. μ΄λ•Œ, λ‹‰λ„€μž„μ„ 아직 μ •ν•˜μ§€ λͺ»ν•œ ν¬λ£¨λŠ” 이름과 λ‚˜μ΄, 그리고 κ³Όμ •λ§Œμ„ κ°€μ§€κ³  크루λ₯Ό μ‹ μ²­ν•˜κ³  μ‹Άμ—ˆλ‹€. public class Crew { private String name; private Strin..

πŸ“–/Effective Java 2023. 2. 28. 00:44
[λͺ¨λ˜μžλ°”μΈμ•‘μ…˜] λžŒλ‹€ ν‘œν˜„μ‹ : 읡λͺ… ν•¨μˆ˜λ₯Ό κ°„κ²°ν•˜κ²Œ λ§Œλ“€κΈ°

πŸ’¬ λͺ¨λ˜ μžλ°” 인 μ•‘μ…˜ 챕터 3을 읽고 μ •λ¦¬ν•œ κΈ€μž…λ‹ˆλ‹€. βœ”οΈ λžŒλ‹€κ°€ λ­”λ°μš”? μ§€λ‚œ μ±•ν„°μ—μ„œλŠ” λ™μž‘ νŒŒλΌλ―Έν„°ν™”λ₯Ό ν†΅ν•΄μ„œ νŒŒλΌλ―Έν„°λ‘œ λ©”μ„œλ“œμ˜ λ™μž‘ 자체λ₯Ό μ „λ‹¬ν•΄μ£ΌλŠ” 것을 λ°°μ› λ‹€. μ΄λ•Œ, λ©”μ„œλ“œμ˜ λ™μž‘μ„ μ „λ‹¬ν•˜κΈ° μœ„ν•΄μ„œ λ³„λ„μ˜ @Override μ–΄λ…Έν…Œμ΄μ…˜μ΄λ‚˜ μƒμ†λœ λ©”μ„œλ“œ 이름 λ“±, λ™μž‘ 외에 λ‹€λ₯Έ μ½”λ“œλ“€μ΄ λ°˜λ³΅λ˜μ–΄ μƒλ‹Ήνžˆ λΆˆνŽΈν–ˆλ‹€. λžŒλ‹€ ν‘œν˜„μ‹μ€ 이λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄μ„œ, λ‹¨μˆœνžˆ 'λ™μž‘μ— λŒ€ν•œ μ½”λ“œλ§Œ' λ©”μ„œλ“œλ‘œ 전달할 수 μžˆλ„λ‘ 읡λͺ… ν•¨μˆ˜λ₯Ό λ‹¨μˆœν™”ν•œ 것이닀. λžŒλ‹€ ν‘œν˜„μ‹μ€ λ‹€μŒκ³Ό 같은 νŠΉμ§•μ„ κ°€μ§„λ‹€. πŸ’¬ λ©”μ„œλ“œμ— 이름이 μ—†μœΌλ‹ˆκΉŒ “읡λͺ…”이닀. (λ©”μ„œλ“œμ— λŒ€ν•œ 넀이밍을 κ³ λ―Όν•  ν•„μš”κ°€ μ—†λ‹€!) - 이름은 μ—†μ§€λ§Œ, νŒŒλΌλ―Έν„° λ¦¬μŠ€νŠΈμ™€ λ°”λ””, λ°˜ν™˜ ν˜•μ‹, λ°œμƒ κ°€λŠ₯ν•œ μ˜ˆμ™Έ λ¦¬μŠ€νŠΈλŠ” κ°€μ§ˆ 수 μžˆλ‹€. πŸ’¬ ν•¨μˆ˜ : νŠΉμ • 클..

πŸ“–/Modern Java in Action 2023. 2. 27. 18:53
[λͺ¨λ˜μžλ°”μΈμ•‘μ…˜] λ™μž‘ νŒŒλΌλ―Έν„°ν™” : λ™μž‘ 자체λ₯Ό μ „λ‹¬ν•΄λ³΄μž!

πŸ’¬ λͺ¨λ˜ μžλ°” 인 μ•‘μ…˜ 챕터 2을 읽고 μ •λ¦¬ν•œ κΈ€μž…λ‹ˆλ‹€. βœ”οΈ λ™μž‘ νŒŒλΌλ―Έν„°ν™” μ‚¬λžŒμ˜ λ§ˆμŒμ€ 정말 κ°ˆλŒ€ κ°™λ‹€. 그리고, μš”κ΅¬μ‚¬ν•­μ€ μ†ŒλΉ„μžμ˜ μž…μž₯μ—μ„œ 늘 μƒκ°ν•˜κ²Œ λœλ‹€. μš°λ¦¬λŠ” μ½”λ“œλ₯Ό μ§œλŠ” ν”„λ‘œκ·Έλž˜λ¨Έμ§€λ§Œ, κ°ˆλŒ€ 같은 μ†ŒλΉ„μžμ˜ λ§ˆμŒμ„ λ§Œμ‘±μ‹œν‚€κΈ° μœ„ν•΄ μ΅œλŒ€ν•œ μœ λ™μ μœΌλ‘œ λŒ€μ‘ν•  ν•„μš”κ°€ μžˆλ‹€. μ–΄λŠ λ‚ , 포비가 μš°ν…Œμ½” 곡지사항에 λ‹€μŒκ³Ό 같은 μš”κ΅¬μ‚¬ν•­μ„ λ˜μ Έμ£Όμ—ˆλ‹€κ³  κ°€μ •ν•˜μž. πŸ’¬ λ°±μ—”λ“œ 크루 쀑에 25μ‚΄ μ΄ν•˜μΈ 크루만 보고 싢은데, λͺ¨μ—¬ μ£Όμ„Έμš”. 그러자 λ„€μ˜€κ°€ μ™€μ„œ λ§ν–ˆλ‹€. πŸ’¬ μ•„λ‹ˆμ—μš”, ν”„λ‘ νŠΈμ—”λ“œ 크루 μ€‘μ—μ„œ 23μ‚΄ 이상인 크루만 μ™€μ£Όμ„Έμš”. μ–΄λ–»κ²Œ ν•˜λ©΄ μš°λ¦¬λŠ” λ³€ν™”ν•˜λŠ” μš”κ΅¬μ‚¬ν•­ μ†μ—μ„œ μœ λ™μ μœΌλ‘œ λŒ€μ‘ν•  수 μžˆμ„κΉŒ? κ°€μž₯ λ¨Όμ €, κ·Έλƒ₯ μš”κ΅¬μ‚¬ν•­μ— λ§žλ„λ‘ κ°€λŠ₯ν•œ λͺ¨λ“  속성에 λŒ€ν•΄μ„œ μ „λΆ€ μ‹œλ„ν•˜λŠ” 방법이 μžˆλ‹€. 1) λ°±..

πŸ“–/Modern Java in Action 2023. 2. 27. 01:13
[λͺ¨λ˜μžλ°”μΈμ•‘μ…˜] μžλ°” 8둜 μ˜€λ©΄μ„œ 생긴 일

πŸ’¬ λͺ¨λ˜ μžλ°” 인 μ•‘μ…˜ 챕터 1을 읽고 μ •λ¦¬ν•œ κΈ€μž…λ‹ˆλ‹€. βœ”οΈ μžλ°” ν•¨μˆ˜ μžλ°”μ—μ„œ ν”νžˆ 'ν•¨μˆ˜', 그리고 'λ©”μ„œλ“œ'λΌλŠ” 이름을 많이 듀을 수 μžˆλ‹€. μŠ€ν„°λ””μ—μ„œ 크루뢄이 ν•¨μˆ˜μ™€ λ©”μ„œλ“œμ— λŒ€ν•΄μ„œ μ •μ˜λ₯Ό ν•΄μ£Όμ…¨λŠ”λ°, 크게 λ‹€μŒκ³Ό 같이 생각할 수 μžˆλ‹€. λ‹¨μˆœν•œ ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄μ—μ„œ 'ν•¨μˆ˜'λŠ” 'λ©”μ„œλ“œ'와 λ™μΌν•œ 의미둜 쓰일 수 있으며, 특히 static method에 λŒ€ν•΄μ„œ 같은 의미둜 μ‚¬μš©λœλ‹€. κ·ΈλŸ¬λ‚˜, μžλ°”μ—μ„œ ν•¨μˆ˜λŠ” 'μˆ˜ν•™μ μΈ ν•¨μˆ˜'둜, λΆ€μž‘μš©μ„ μΌμœΌν‚€μ§€ μ•ŠλŠ” ν•¨μˆ˜λ₯Ό 말할 수 μžˆλ‹€. κ·Έ 외에 ν•¨μˆ˜λŠ” 'λ…λ¦½μ μœΌλ‘œ μ‘΄μž¬ν•˜λ©°, ν•˜λ‚˜μ˜ κΈ°λŠ₯을 κ΅¬ν˜„ν•˜λ„λ‘ κ΅¬μ„±ν•œ 것'이며, λ©”μ„œλ“œλŠ” '클래슀 내뢀에 μ •μ˜λ˜μ–΄, 객체의 속성을 닀루기 μœ„ν•œ ν–‰μœ„'라고도 ν•˜λŠ”λ° 독립적인지, 쒅속적인지에 λ”°λ₯Έλ‹€κ³  λ³Ό 수 μžˆλ‹€. βœ”οΈ 일급 객체..

πŸ“–/Modern Java in Action 2023. 2. 23. 22:31