[Design Pattern] 1. singleton νŒ¨ν„΄
Design Pattern 2020. 3. 16. 22:42

κ°œμš” λ””μžμΈ νŒ¨ν„΄μ΄ 무엇인지, μ™œ μ‚¬μš©ν•˜λŠ”μ§€ μ΄ν•΄ν•œλ‹€. 싱글톀 νŒ¨ν„΄μ— λŒ€ν•΄ μ΄ν•΄ν•˜κ³ , μ–Έμ œ μ‚¬μš©ν•˜λŠ”μ§€ νŒŒμ•…ν•œλ‹€. 싱글톀 νŒ¨ν„΄μ˜ μž₯점에 λŒ€ν•΄ νŒŒμ•…ν•œλ‹€. λ””μžμΈ νŒ¨ν„΄μ΄λž€? λ””μžμΈ νŒ¨ν„΄ μ •μ˜ λ””μžμΈ νŒ¨ν„΄μ΄λž€, μ†Œν”„νŠΈμ›¨μ–΄λ₯Ό 섀계할 λ•Œ νŠΉμ • λ§₯λ½μ—μ„œ 자주 λ°œμƒν•˜λŠ” 고질적인 λ¬Έμ œλ“€μ„ ν”Όν•  수 μžˆλ„λ‘ 널리 μ•Œλ €μ§„ 해결책듀을 λ§ν•©λ‹ˆλ‹€. "바퀴λ₯Ό λ‹€μ‹œ 발λͺ…ν•˜μ§€ 마라(Don't reinvent the wheel)" 이 문ꡬ의 μ˜λ―ΈλŠ” 이미 λ§Œλ“€μ–΄μ Έ μžˆμ–΄μ„œ μ™„λ²½ν•œ 것을 μ²˜μŒλΆ€ν„° ꡳ이 λ‹€μ‹œ λ§Œλ“€ ν•„μš”κ°€ μ—†λ‹€λŠ” μ˜λ―Έμž…λ‹ˆλ‹€. λ””μžμΈ νŒ¨ν„΄μ€ 이 말을 지킬 수 μžˆλ„λ‘ ν•˜λŠ” 널리 νΌμ ΈμžˆλŠ” 해결책을 μ˜λ―Έν•˜λ©°, λ˜ν•œ νŒ€μ› μ‚¬μ΄μ˜ 징검닀리λ₯Ό μžμ²˜ν•˜μ—¬ μ˜μ‚¬ μ†Œν†΅μ„ μ›ν™œν•˜κ²Œ ν•΄μ£ΌλŠ” κ°œλ°œμžλ“€μ—κ²ŒλŠ” ꡉμž₯히 고마운 κ°œλ…μž…λ‹ˆλ‹€. λ””μžμΈ νŒ¨ν„΄ ꡬ쑰 μ½˜ν…..

[ANDROID] λ°± μŠ€νƒμ— λŒ€ν•œ 이해
μ•ˆλ“œλ‘œμ΄λ“œ 2020. 3. 14. 00:16

κ°œμš” Task에 λŒ€ν•΄ μ΄ν•΄ν•œλ‹€. Task와 μ•‘ν‹°λΉ„ν‹°μ™€μ˜ 관계에 λŒ€ν•΄ μ΄ν•΄ν•œλ‹€. λ°± μŠ€νƒμ˜ λ™μž‘μ— λŒ€ν•΄ μ΄ν•΄ν•œλ‹€. Task, Activity, λ°± μŠ€νƒ TaskλŠ” μ‚¬μš©μžκ°€ νŠΉμ • μž‘μ—…μ„ ν•  λ•Œ μƒν˜Έμž‘μš©ν•˜λŠ” Activity의 μ§‘ν•©μž…λ‹ˆλ‹€. ν•˜λ‚˜μ˜ Taskμ—λŠ” μ•‘ν‹°λΉ„ν‹° 집합을 μ—΄λ¦° μˆœμ„œλŒ€λ‘œ μ •λ ¬ν•΄λ†“λŠ” λ°± μŠ€νƒμ΄ μ‘΄μž¬ν•©λ‹ˆλ‹€. λ°± μŠ€νƒμ€ Stack의 μ„±μ§ˆμ„ 가지고 있으며 κ°€μž₯ μ΅œμ‹ μ— μ—΄λ¦° μ•‘ν‹°λΉ„ν‹°κ°€ κ°€μž₯ λ§¨μœ„λ‘œ μœ„μΉ˜ν•˜κ²Œ λ©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄μ„œ 이메일 μ•±μ—λŠ” μƒˆ λ©”μ‹œμ§€ λͺ©λ‘μ„ ν‘œμ‹œν•˜λŠ” μ•‘ν‹°λΉ„ν‹°κ°€ μ‘΄μž¬ν•˜κ³ , μ‚¬μš©μžκ°€ λ©”μ‹œμ§€ λͺ©λ‘μ—μ„œ λ©”μ‹œμ§€λ₯Ό ν•˜λ‚˜ ν΄λ¦­ν•˜λ©΄ λ©”μ‹œμ§€μ˜ λ‚΄μš©μ„ μƒμ„Έν•˜κ²Œ λ³Ό 수 μžˆλ„λ‘ μƒˆλ‘œμš΄ μ•‘ν‹°λΉ„ν‹°κ°€ μ—΄λ¦¬κ²Œ λ©λ‹ˆλ‹€. μ΄λ•Œ λ©”μ‹œμ§€ 상세보기 μ•‘ν‹°λΉ„ν‹°λŠ” λ°± μŠ€νƒμ— μΆ”κ°€λ˜λ©°, λ§Œμ•½μ— μ‚¬μš©μžκ°€ λ’€λ‘œκ°€κΈ° λ²„νŠΌμ„ νƒ­ν•˜λ©΄ λ©”..

[ANDROID] μ•‘ν‹°λΉ„ν‹° μƒνƒœ λ³€κ²½
μ•ˆλ“œλ‘œμ΄λ“œ 2020. 3. 12. 23:00

κ°œμš” μ•‘ν‹°λΉ„ν‹°μ˜ μƒνƒœμ— λŒ€ν•΄ μ΄ν•΄ν•œλ‹€. μ•‘ν‹°λΉ„ν‹°μ˜ μƒνƒœ 변경을 μœ λ°œν•˜λŠ” μ΄λ²€νŠΈμ— λŒ€ν•΄ νŒŒμ•…ν•œλ‹€. μ•‘ν‹°λΉ„ν‹°μ˜ μƒνƒœ 변경이 일어났을 λ•Œμ˜ λ³€ν™”λ₯Ό μ΄ν•΄ν•œλ‹€. μ•‘ν‹°λΉ„ν‹° κ΅¬μ„±μ˜ λ³€κ²½ μ•‘ν‹°λΉ„ν‹°μ˜ ꡬ성이 λ³€ν•  수 μžˆλŠ” μ—¬λŸ¬ μ΄λ²€νŠΈκ°€ μ‘΄μž¬ν•©λ‹ˆλ‹€. μ•„λ§ˆλ„ κ°€μž₯ 많이 μΌμ–΄λ‚˜λŠ” μ˜ˆλ‘œλŠ” μ„Έλ‘œ λͺ¨λ“œμ™€ κ°€λ‘œ λͺ¨λ“œκ°„ λ°©ν–₯ 변화일 κ²ƒμž…λ‹ˆλ‹€. λ§Œμ•½ ꡬ성변경이 λ°œμƒν•˜λ©΄ μ•‘ν‹°λΉ„ν‹°λŠ” 제거되고 μ™„μ „νžˆ μƒˆλ‘œ μƒμ„±λ©λ‹ˆλ‹€. 즉, onPause(), onStop() 및 onDestory() 콜백 λ©”μ„œλ“œκ°€ 호좜이 λ˜λŠ”λ° μ΄λŸ¬ν•œ 상황이 μΌμ–΄λ‚˜λ©΄ μœ μ§€λ˜κ³  있던 UI μƒνƒœλ₯Ό μ™„μ „νžˆ μžƒκ²Œ λ©λ‹ˆλ‹€. UI μƒνƒœλ₯Ό μœ μ§€ν•˜κΈ° μœ„ν•΄μ„œλŠ” ViewModel, onSaveInstanceState() λ©”μ„œλ“œ λ˜λŠ” 영ꡬ 둜컬 μ €μž₯μ†Œμ˜ 쑰합을 ν™œμš©ν•΄μ•Όλ§Œ ν•©λ‹ˆλ‹€. μ–΄λ– ν•œ 방법을..

[ANDROID] λ ˆμ΄μ•„μ›ƒ
μ•ˆλ“œλ‘œμ΄λ“œ 2020. 3. 10. 23:33

κ°œμš” λ ˆμ΄μ•„μ›ƒμ΄ 무엇인지 μ΄ν•΄ν•œλ‹€. λ ˆμ΄μ•„μ›ƒμ˜ 전체적인 흐름에 λŒ€ν•΄ μ΄ν•΄ν•œλ‹€. AdapterView와 Adapterκ°€ μ™œ ν•„μš”ν•œμ§€ μ΄ν•΄ν•œλ‹€. λ ˆμ΄μ•„μ›ƒμ΄λž€ λ¬΄μ—‡μΌκΉŒ? λ ˆμ΄μ•„μ›ƒμ€ μ•±μ—μ„œ μ‚¬μš©μž UIλ₯Ό μœ„ν•œ ꡬ쑰λ₯Ό μ •μ˜ν•©λ‹ˆλ‹€. λ ˆμ΄μ•„μ›ƒμ˜ λͺ¨λ“  μš”μ†ŒλŠ” View와 ViewGroupλ₯Ό 상속받아 λΉŒλ“œλ©λ‹ˆλ‹€. 일반적으둜 ViewλŠ” μ‚¬μš©μžμ™€ μƒν˜Έμž‘μš©ν•  수 μžˆλŠ” 것듀을 그리며 ViewGroup은 View와 λ‹€λ₯Έ ViewGroup 객체의 λ ˆμ΄μ•„μ›ƒ ꡬ쑰λ₯Ό μ •μ˜ν•˜λŠ” μ»¨ν…Œμ΄λ„ˆ λ°•μŠ€ μž…λ‹ˆλ‹€. View κ°μ²΄λŠ” 'μœ„μ ―'이라고 ν•˜κ³  ViewGroup κ°μ²΄λŠ” 'λ ˆμ΄μ•„μ›ƒ'이라고 λΆ€λ¦…λ‹ˆλ‹€. ViewλŠ” μ—¬λŸ¬ ν•˜μœ„ 클래슀 쀑 ν•˜λ‚˜κ°€ 될 수 있으며, ViewGroup은 λ‹€μ–‘ν•œ λ ˆμ΄μ•„μ›ƒ ꡬ쑰λ₯Ό μ œκ³΅ν•˜λŠ” μ—¬λŸ¬ μ’…λ₯˜μ˜ λ ˆμ΄μ•„μ›ƒ 쀑 ν•˜λ‚˜μž…λ‹ˆλ‹€. λ ˆμ΄μ•„μ›ƒ..

[JAVA] Collections Framework..3
JAVA/Java Programming 2020. 3. 4. 16:23

https://ybdeveloper.tistory.com/44 [JAVA] Collections Framework..2 Set μΈν„°νŽ˜μ΄μŠ€ Set μΈν„°νŽ˜μ΄μŠ€λŠ” 쀑볡을 ν—ˆμš©ν•˜μ§€ μ•Šκ³  μ €μž₯μˆœμ„œκ°€ μœ μ§€λ˜μ§€ μ•ŠλŠ” μ»¬λ ‰μ…˜ 클래슀λ₯Ό κ΅¬ν˜„ν•˜λŠ”λ° μ‚¬μš©λ©λ‹ˆλ‹€. Set μΈν„°νŽ˜μ΄μŠ€λ₯Ό κ΅¬ν˜„ν•œ ν΄λž˜μŠ€λ‘œλŠ” HashSet, TreeSet 등이 μžˆμŠ΅λ‹ˆλ‹€. 1. HashSet Ha.. ybdeveloper.tistory.com Map μΈν„°νŽ˜μ΄μŠ€ Map μΈν„°νŽ˜μ΄μŠ€λŠ” key와 valueλ₯Ό ν•˜λ‚˜μ˜ 쌍으둜 λ¬Άμ–΄μ„œ μ €μž₯ν•˜λŠ” μ»¬λ ‰μ…˜ 클래슀λ₯Ό κ΅¬ν˜„ν•˜λŠ” 데 μ‚¬μš©λ©λ‹ˆλ‹€. keyλŠ” 쀑볡될 수 μ—†μ§€λ§Œ valueλŠ” 쀑볡을 ν—ˆμš©ν•©λ‹ˆλ‹€. 기쑴에 μ €μž₯된 데이터와 μ€‘λ³΅λœ key와 valueλ₯Ό μ €μž₯ν•˜λ©΄, 기쑴의 valueλŠ” 없어지고 λ§ˆμ§€λ§‰μ— μ €μž₯된 valueκ°€ 남겨..