[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๊ฐ€ ๋‚จ๊ฒจ..