Search

AI3 - 11일차 μ˜€ν›„

λΉ λ₯Έ μš”μ•½

이 νšŒμ˜λŠ” ν”„λ‘œκ·Έλž˜λ°μ—μ„œ μ œλ„€λ¦­ κ°œλ…μ— μ΄ˆμ μ„ λ§žμΆ”κ³ , 객체 μœ ν˜• μ‚¬μš©μ— λΉ„ν•΄ κ·Έ μž₯점과 객체λ₯Ό 생성할 λ•Œ μœ ν˜•μ„ μ§€μ •ν•˜λŠ” 방법에 λŒ€ν•΄ λ…Όμ˜ν–ˆμŠ΅λ‹ˆλ‹€. 토둠은 λ˜ν•œ 객체 지ν–₯ ν”„λ‘œκ·Έλž˜λ°μ—μ„œ λ‹€μš΄μΊμŠ€νŒ…μ˜ ν•œκ³„μ™€ 객체λ₯Ό 생성할 λ•Œ μ˜¬λ°”λ₯Έ μœ ν˜•μ„ μ§€μ •ν•˜λŠ” μ€‘μš”μ„±μ— λŒ€ν•΄ λ‹€λ£¨μ—ˆμŠ΅λ‹ˆλ‹€. λ˜ν•œ νšŒμ˜μ—μ„œλŠ” μ—¬λŸ¬ μš”μ†Œλ₯Ό 포함할 수 μžˆλŠ” 동적 데이터 ꡬ쑰인 Collection Framework와 이 ν”„λ ˆμž„μ›Œν¬λ₯Ό κ΅¬μ„±ν•˜λŠ” λ‹€μ–‘ν•œ μΈν„°νŽ˜μ΄μŠ€ 및 ν΄λž˜μŠ€μ— λŒ€ν•΄ λ‹€λ£¨μ—ˆμŠ΅λ‹ˆλ‹€.

λ‹€μŒ 단계

β€’ 뢄석할 수 μžˆλŠ” λ―ΈνŒ… κΈ°λ‘μ΄λ‚˜ λ‹€μŒ 단계가 μ œκ³΅λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ―ΈνŒ… 기둝과 μΆ”μΆœλœ λ‹€μŒ 단계λ₯Ό κ³΅μœ ν•΄ μ£Όμ‹œλ©΄, ν•„μš”μ— 따라 μ •λ¦¬ν•˜κ³  μˆœμœ„λ₯Ό λ§€κΈ°λŠ” 데 도움을 λ“œλ¦¬κ² μŠ΅λ‹ˆλ‹€. μš”μ•½ ν”„λ‘œκ·Έλž˜λ°μ—μ„œ 'Generics'λ₯Ό μ„€λͺ…ν•©λ‹ˆλ‹€. νšŒμ˜μ—μ„œ ALOHAλŠ” ν”„λ‘œκ·Έλž˜λ°μ—μ„œ μ œλ„€λ¦­ κ°œλ…μ„ λ…Όμ˜ν–ˆμŠ΅λ‹ˆλ‹€. κ·ΈλŠ” μ œλ„€λ¦­μ΄ 기본적으둜 λͺ¨λ“  클래슀 μœ ν˜•μ„ μ²˜λ¦¬ν•  수 μžˆλŠ” ν΄λž˜μŠ€μ™€ λ©”μ„œλ“œλ₯Ό μ •μ˜ν•˜λŠ” 기술이라고 μ„€λͺ…ν–ˆμŠ΅λ‹ˆλ‹€. ALOHAλŠ” λ‹€μ–‘ν•œ μœ ν˜•μ˜ λ³€μˆ˜λ₯Ό 가진 "bloodline"μ΄λΌλŠ” 클래슀λ₯Ό μƒμ„±ν•˜μ—¬ μ œλ„€λ¦­μ„ μ‚¬μš©ν•˜λŠ” 방법을 λ³΄μ—¬μ£Όμ—ˆμŠ΅λ‹ˆλ‹€. λ˜ν•œ, μ œλ„€λ¦­ 클래슀λ₯Ό λ§Œλ“€κ³  λ‹€λ₯Έ μœ ν˜•μ˜ 객체λ₯Ό μ²˜λ¦¬ν•˜λŠ” 데 μ‚¬μš©ν•˜λŠ” 방법을 보여 μ£Όμ—ˆμŠ΅λ‹ˆλ‹€. ALOHAλŠ” "box" 클래슀의 μ˜ˆμ‹œλ₯Ό μ‚¬μš©ν•˜μ—¬ μ œλ„€λ¦­μŠ€μ˜ κ°œλ…μ„ μ„€λͺ…ν–ˆμŠ΅λ‹ˆλ‹€. λ˜ν•œ 객체λ₯Ό λ§Œλ“€ λ•Œ μœ ν˜•μ„ μ§€μ •ν•˜λŠ” 것이 μ€‘μš”ν•˜λ©°, μ œλ„€λ¦­μŠ€κ°€ λ‹€μ–‘ν•œ μœ ν˜•μ˜ 객체λ₯Ό μ²˜λ¦¬ν•˜λŠ” 데 μ–΄λ–»κ²Œ μ‚¬μš©λ  수 μžˆλŠ”μ§€μ— λŒ€ν•΄ λ…Όμ˜ν–ˆμŠ΅λ‹ˆλ‹€.

Generic Programming Techniques의 μž₯점

이 토둠은 ν”„λ‘œκ·Έλž˜λ°μ—μ„œ 일반 기술, 특히 객체 μœ ν˜• μ‚¬μš©μ— λΉ„ν•΄ κ·Έ μž₯점에 μ΄ˆμ μ„ 맞μΆ₯λ‹ˆλ‹€. λ°œν‘œμžλŠ” μ œλ„€λ¦­μ΄ λ‹€μš΄μΊμŠ€νŒ… 없이도 μœ ν˜•λ³„ μž‘μ—…μ„ κ°€λŠ₯ν•˜κ²Œ ν•˜μ—¬ λŸ°νƒ€μž„ 였λ₯˜κ°€ λ°œμƒν•  수 μžˆλ‹€κ³  μ„€λͺ…ν•©λ‹ˆλ‹€. 이듀은 μ—¬λŸ¬ μœ ν˜• λ§€κ°œλ³€μˆ˜λ₯Ό 가진 일반 클래슀λ₯Ό λ§Œλ“€κ³ , λ‹€λ₯Έ 데이터 μœ ν˜•κ³Ό ν•¨κ»˜ μ–΄λ–»κ²Œ μ‚¬μš©ν•  수 μžˆλŠ”μ§€ λ³΄μ—¬μ€λ‹ˆλ‹€. μ—°μ‚¬λŠ” λ˜ν•œ μ œλ„€λ¦­μ΄ 미래 ν† λ‘ μ—μ„œ λ‹€λ£° 수 μžˆλŠ” 방법에 적용될 수 μžˆλ‹€κ³  μ–ΈκΈ‰ν•©λ‹ˆλ‹€.
μ£Όμš” μ΄ˆμ μ€ μ—¬μ „νžˆ μ œλ„€λ¦­μ„ λ°©λ²•μœΌλ‘œ μ μš©ν•˜λŠ” 방법을 κ°€λ₯΄μΉ˜λŠ” 데 μžˆμŠ΅λ‹ˆλ‹€.

ν”„λ‘œκ·Έλž˜λ°μ˜ μΌλ°˜ν™”: μœ ν˜• λ²”μœ„ μ œν•œ

νšŒμ˜μ—μ„œ AlohaλŠ” ν”„λ‘œκ·Έλž˜λ°μ—μ„œ μ œλ„€λ¦­μ˜ κ°œλ…μ„ λ…Όμ˜ν–ˆμœΌλ©°, 특히 μœ ν˜• λ²”μœ„ μ œν•œμ— μ΄ˆμ μ„ λ§žμ·„μŠ΅λ‹ˆλ‹€. κ·ΈλŠ” μ œλ„€λ¦­μ€ λͺ¨λ“  클래슀 μœ ν˜•μ„ μ‚¬μš©ν•  수 μžˆμ§€λ§Œ, μœ ν˜•μ˜ λ²”μœ„λ₯Ό μ œν•œν•˜λŠ” 데에도 μ‚¬μš©λ  수 μžˆλ‹€κ³  μ„€λͺ…ν–ˆμŠ΅λ‹ˆλ‹€. AlohaλŠ” νŠΉμ • μœ ν˜• λ§€κ°œλ³€μˆ˜λ₯Ό 가진 클래슀λ₯Ό λ§Œλ“€κ³ , μœ ν˜• λ²”μœ„λ₯Ό νŠΉμ • ν΄λž˜μŠ€μ™€ κ·Έ ν•˜μœ„ 클래슀둜만 μ œν•œν•˜μ—¬ 이λ₯Ό λ³΄μ—¬μ£Όμ—ˆμŠ΅λ‹ˆλ‹€. κ·ΈλŠ” λ˜ν•œ "Number"와 "Housekeeper"와 같은 클래슀λ₯Ό μ‚¬μš©ν•˜μ—¬ κ°œλ…μ„ μ„€λͺ…ν•˜λŠ” 예제λ₯Ό μ œκ³΅ν–ˆμŠ΅λ‹ˆλ‹€. λŒ€ν™”λŠ” Alohaκ°€ μ°Έκ°€μžλ“€μ—κ²Œ μžμ‹ μ˜ μ½”λ“œμ—μ„œ μ œλ„€λ¦­μ„ κ΅¬ν˜„ν•˜λŠ” μ—°μŠ΅μ„ ꢌμž₯ν•˜λ©΄μ„œ λλ‚¬μŠ΅λ‹ˆλ‹€.

객체 지ν–₯ ν”„λ‘œκ·Έλž˜λ°μ—μ„œ λ‹€μš΄μΊμŠ€νŒ… ν•œκ³„

νšŒμ˜μ—μ„œ ALOHAλŠ” 객체 지ν–₯ ν”„λ‘œκ·Έλž˜λ°μ—μ„œμ˜ λ‹€μš΄μΊμŠ€νŒ…μ˜ ν•œκ³„λ₯Ό λ…Όμ˜ν–ˆμŠ΅λ‹ˆλ‹€. 그듀은 λ‹€μš΄μΊμŠ€νŒ…μ„ μœ„ν•΄μ„œλŠ” 객체가 λΆ€λͺ¨ ν΄λž˜μŠ€μ™€ λ™μΌν•œ μœ ν˜•μ΄μ–΄μ•Ό ν•˜λ©°, 객체의 μœ ν˜•μ„ μ—…λ°μ΄νŠΈν•˜μ§€ μ•Šκ³  λ‹€μš΄μΊμŠ€νŠΈν•˜λ €λŠ” μ‹œλ„λŠ” 였λ₯˜λ‘œ μ΄μ–΄μ§ˆ 것이라고 μ„€λͺ…ν–ˆμŠ΅λ‹ˆλ‹€. ALOHAλŠ” λ˜ν•œ λΆ€λͺ¨ 객체 μœ ν˜•μ„ μžμ‹ 객체 μœ ν˜•μœΌλ‘œ μ§€μ •ν•˜λŠ” 것이 ν—ˆμš©λ˜μ§€ μ•ŠλŠ” 문제λ₯Ό λ…Όμ˜ν–ˆμŠ΅λ‹ˆλ‹€. 그듀은 숫자 ν˜•μ‹μ˜ κ°œλ…κ³Ό 그것이 객체 크기λ₯Ό μ§€μ •ν•˜λŠ” 데 μ–΄λ–»κ²Œ μ‚¬μš©λ  수 μžˆλŠ”μ§€μ— λŒ€ν•΄ 더 μ„€λͺ…ν–ˆμŠ΅λ‹ˆλ‹€. ALOHAλŠ” λ˜ν•œ "setT" λ©”μ„œλ“œλ₯Ό μ‚¬μš©ν•˜μ—¬ 객체의 μœ ν˜•μ„ μ„€μ •ν•˜λŠ” 방법을 보여 μ£Όμ—ˆμŠ΅λ‹ˆλ‹€. λŒ€ν™”λŠ” ALOHAκ°€ 객체λ₯Ό λ§Œλ“€ λ•Œ μ˜¬λ°”λ₯Έ μœ ν˜•μ„ μ§€μ •ν•˜λŠ” 것이 μ€‘μš”ν•˜λ‹€λŠ” 것을 ν† λ‘ ν•˜λ©΄μ„œ λλ‚¬μŠ΅λ‹ˆλ‹€.
토둠은 일반 ν”„λ‘œκ·Έλž˜λ° 기술과 κ·Έ μ‘μš©μ— 쀑점을 λ‘‘λ‹ˆλ‹€. λ°œν‘œμžλŠ” μΌλ°˜μ„ μ‚¬μš©ν•˜μ—¬ 클래슀 μœ ν˜•μ„ μ •μ˜ν•˜λŠ” 방법을 μ„€λͺ…ν•˜κ³  νŠΉμ • λ²”μœ„ λ‚΄μ—μ„œ μœ ν˜•μ„ μ œν•œ ν•  κ°€λŠ₯성을 μ–ΈκΈ‰ν•©λ‹ˆλ‹€. 그듀은 λ˜ν•œ 일반적인 방법과 μœ ν˜• μ œν•œμ— λŒ€ν•΄ μ–ΈκΈ‰ν•©λ‹ˆλ‹€. λŒ€ν™” μ „λ°˜μ— 걸쳐 "남성 κ°€μ •λΆ€"에 λŒ€ν•œ 자주 언급이 μžˆμ§€λ§Œ, κ·Έ λ§₯락은 λͺ…ν™•ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. μ—°μ‚¬λŠ” 일반 ꡬ독 μ œμ•ˆμ„ μ‚΄νŽ΄λ³΄κ³  μ‹œμ²­μžλ“€μ΄ μž μ„ μž€λŠ”μ§€ 물어보며 결둠을 λ‚΄λ¦½λ‹ˆλ‹€.

νŒ¨μ…˜ μ‹œμ¦Œκ³Ό 포켓λͺ¬ ν† λ‘ 

그룹은 μ»¬λ ‰μ…˜, νŒ¨μ…˜ μ‹œμ¦Œ, 포켓λͺ¬ λ“± λ‹€μ–‘ν•œ 주제λ₯Ό λ…Όμ˜ν•©λ‹ˆλ‹€. 그듀은 νŒ¨μ…˜μ—μ„œ SS (λ΄„ / 여름) 및 FW (가을 / 겨울) μ»¬λ ‰μ…˜μ„ μ–ΈκΈ‰ν•©λ‹ˆλ‹€. λŒ€ν™”λŠ” 포켓λͺ¬μœΌλ‘œ λ„˜μ–΄κ°€λ©°, μ›λž˜ 포켓λͺ¬ μˆ˜μ— λŒ€ν•œ 의견이 λ‹€λ¦…λ‹ˆλ‹€. λ‚˜μ€‘μ— 그듀은 λ©”μ‹œμ§• 앱인 μΉ΄μΉ΄μ˜€ν†‘μ—μ„œ λ¬Έμ œκ°€ λ°œμƒν–ˆλ‹€κ³  μ΄μ•ΌκΈ°ν•©λ‹ˆλ‹€. 그듀은 Melon (μŒμ•… 슀트리밍 μ„œλΉ„μŠ€)을 ν¬ν•¨ν•œ μ—¬λŸ¬ μ„œλΉ„μŠ€κ°€ KakaoTalk μ •μ „μœΌλ‘œ 인해 μ‚¬μš©μž 인증 λ¬Έμ œκ°€ λ°œμƒν–ˆλ‹€κ³  μ§€μ ν•©λ‹ˆλ‹€. νŒ¨μ…˜κ³Ό 삢에 λŒ€ν•œ 캐주얼 μ±„νŒ…
νšŒμ˜μ—μ„œ ALOHAλŠ” 이름 λ³€κ²½, YouTube μž‘μ—…, μ‡Όν•‘λͺ°, νŒ¨μ…˜ μ•„μ΄ν…œ 및 λΈ”λž™μ•„μ›ƒ νŠΈλ ˆμ΄λ”λ₯Ό ν¬ν•¨ν•œ λ‹€μ–‘ν•œ μ£Όμ œμ— λŒ€ν•΄ λ…Όμ˜ν–ˆμŠ΅λ‹ˆλ‹€. ALOHAλŠ” λ˜ν•œ 꿈의 옷차림, μΈν…Œλ¦¬μ–΄ μ—…λ°μ΄νŠΈ, 그리고 μžλ™μ°¨μ— λŒ€ν•΄ μ–ΈκΈ‰ν–ˆμŠ΅λ‹ˆλ‹€. λŒ€ν™”λŠ” μΊμ£Όμ–Όν•˜κ³  κ°œλ°©μ μ΄μ—ˆμœΌλ©°, ALOHAλŠ” λ‹€λ₯Έ μ‚¬λžŒλ“€μ—κ²Œ μžμ‹ μ˜ 생각과 μ˜κ²¬μ„ κ³΅μœ ν•˜λ„λ‘ μž₯λ €ν–ˆμŠ΅λ‹ˆλ‹€.

Collection Framework κ°œμš” 및 μ€‘μš”μ„±

νšŒμ˜μ—μ„œ ALOHAλŠ” μ—¬λŸ¬ μš”μ†Œλ₯Ό μ €μž₯ν•˜κ³  μš”μ†Œ μˆ˜μ— 따라 크기λ₯Ό μ‘°μ •ν•  수 μžˆλŠ” 동적 데이터 ꡬ쑰인 Collection Framework에 λŒ€ν•΄ λ…Όμ˜ν–ˆμŠ΅λ‹ˆλ‹€. ALOHAλŠ” μ»¬λ ‰μ…˜ ν”„λ ˆμž„μ›Œν¬μ— μ΄λŸ¬ν•œ 데이터 ꡬ쑰λ₯Ό 더 효율적으둜 μ²˜λ¦¬ν•˜κΈ° μœ„ν•œ λ‹€μ–‘ν•œ 데이터 ꡬ쑰와 μ•Œκ³ λ¦¬μ¦˜μ΄ ν¬ν•¨λ˜μ–΄ μžˆλ‹€κ³  μ„€λͺ…ν–ˆμŠ΅λ‹ˆλ‹€. ν”„λ ˆμž„μ›Œν¬λŠ” List, Set, Queue 및 Mapκ³Ό 같은 μΈν„°νŽ˜μ΄μŠ€μ™€ ArrayList, LinkedList, Vector 및 HashMapκ³Ό 같은 클래슀둜 κ΅¬μ„±λ©λ‹ˆλ‹€. ALOHAλŠ” μ»¬λ ‰μ…˜ ν”„λ ˆμž„μ›Œν¬μ—μ„œ μ§€μ •λœ μœ ν˜•μ€ κΈ°λ³Έ μœ ν˜•μ΄ μ•„λ‹ˆλΌ μ°Έμ‘° ν˜•μ‹μΌ 수 μžˆλ‹€κ³  κ°•μ‘°ν–ˆμŠ΅λ‹ˆλ‹€. λŒ€ν™”λŠ” 효율적인 데이터 처리λ₯Ό μœ„ν•΄ μ»¬λ ‰μ…˜ ν”„λ ˆμž„μ›Œν¬λ₯Ό μ΄ν•΄ν•˜λŠ” 것이 μ€‘μš”ν•˜λ‹€λŠ” 점에 λŒ€ν•œ ν† λ‘ μœΌλ‘œ λλ‚¬μŠ΅λ‹ˆλ‹€.

Java μ»¬λ ‰μ…˜ κ°œμš” 및 κ΅¬ν˜„

이 κ°•μ˜λŠ” List, Set 및 Map μΈν„°νŽ˜μ΄μŠ€μ— μ΄ˆμ μ„ 맞좘 Java μ»¬λ ‰μ…˜μ˜ λ‹€μ–‘ν•œ 츑면을 λ‹€λ£Ήλ‹ˆλ‹€. ArrayList, Vector 및 LinkedList의 ꡬ쑰와 λ©”μ„œλ“œλ₯Ό μ„€λͺ…ν•˜κ³  κ΅¬ν˜„κ³Ό μ„±λŠ₯의 차이점을 κ°•μ‘°ν•©λ‹ˆλ‹€. μ—°μ‚¬λŠ” λ˜ν•œ HashSetκ³Ό HashMap에 λŒ€ν•΄ λ…Όμ˜ν•˜λ©° 쀑볡 방지 및 ν‚€-κ°’ νŽ˜μ–΄λ§κ³Ό 같은 κ³ μœ ν•œ νŠΉμ„±μ„ κ°•μ‘°ν•©λ‹ˆλ‹€. κ°•μ˜λŠ” μ»¬λ ‰μ…˜μ—μ„œ 객체 비ꡐ 및 정렬에 μ‚¬μš©λ˜λŠ” Comparable 및 Comparator μΈν„°νŽ˜μ΄μŠ€μ— λŒ€ν•œ μ†Œκ°œλ‘œ λλ‚©λ‹ˆλ‹€.