λͺ©λ‘πŸ“–/Modern Java in Action (6)

DevLog 😢

[λͺ¨λ˜μžλ°”μΈμ•‘μ…˜] μŠ€νŠΈλ¦Όμ΄λž€ λ¬΄μ—‡μΌκΉŒ?

πŸ’¬ λͺ¨λ˜ μžλ°” 인 μ•‘μ…˜ 챕터 4을 읽고 μ •λ¦¬ν•œ κΈ€μž…λ‹ˆλ‹€. βœ”οΈ μŠ€νŠΈλ¦Όμ΄λž€? μžλ°” 8에 μƒˆλ‘­κ²Œ λ“€μ–΄μ˜¨ κΈ°λŠ₯ 쀑, κ°€μž₯ 핡심적인 κΈ°λŠ₯이라고 말해도 λ¬΄λ°©ν•˜λ‹€. μ»¬λ ‰μ…˜ λ°μ΄ν„°μ˜ λ°˜λ³΅μ„ 도와주고, λ©€ν‹° μŠ€λ ˆλ“œ μ½”λ“œ 없이 병렬성을 κ΅¬ν˜„ν•  수 μžˆλŠ” μ•„μ£Ό μœ μš©ν•œ μΉœκ΅¬μ΄λ‹€. λ˜ν•œ, filterλ‚˜ sorted, map, collect 같은 연산은 ‘high-level building block’이라고 ν•˜λŠ”λ°, μŠ€νŠΈλ¦Όμ„ 마치 λΈ”λ‘μ²˜λŸΌ μŒ“κ³ , 쑰립할 수 μžˆλ‹€λŠ” 점이 큰 νŠΉμ§•μ΄λ‹€. βœ”οΈ stream λ©”μ„œλ“œ 🌱 μŠ€νŠΈλ¦Όμ΄λž€, 데이터 처리 연산을 μœ„ν•΄ μ†ŒμŠ€μ—μ„œ μΆ”μΆœλœ μ—°μ†λœ μš”μ†Œμ΄λ‹€. 1) μ—°μ†λœ μš”μ†Œ μ»¬λ ‰μ…˜μ€ 데이터에 λŒ€ν•œ μžλ£Œκ΅¬μ‘°μ˜€λ‹€λ©΄, μŠ€νŠΈλ¦Όμ€ 이λ₯Ό μ–΄λ–€ μ‹μœΌλ‘œ 계산할지에 λŒ€ν•΄ 닀룬닀. 두 가지 λͺ¨λ‘, μ—°μ†λœ κ°’ μ§‘ν•©μ˜ μΈν„°νŽ˜..

πŸ“–/Modern Java in Action 2023. 4. 7. 11:49
[λͺ¨λ˜μžλ°”μΈμ•‘μ…˜] λžŒλ‹€ ν‘œν˜„μ‹ : 읡λͺ… ν•¨μˆ˜λ₯Ό κ°„κ²°ν•˜κ²Œ λ§Œλ“€κΈ°

πŸ’¬ λͺ¨λ˜ μžλ°” 인 μ•‘μ…˜ 챕터 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