๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
728x90

๐Ÿค2024 ์•ˆ๋“œ๋กœ์ด๋“œ/Filmo ์˜ํ™” ํ”„๋กœ์ ํŠธ35

Android ๋ ˆ์ด์•„์›ƒ ๊ณต์‹๋ฌธ์„œ ์ •๋ฆฌ ์•ˆ๋“œ๋กœ์ด๋“œ UI ๊ฐœ๋ฐœ์„ ํ•˜๋ฉด ConstraintLayout, LinearLayout , ๋ ˆ์ด์•„์›ƒ์„ ์งœ๋ณด์ž~~ํ•˜๊ณ  ๋ง์„ ํ•˜๊ณค ํ•œ๋‹ค. ๊ทธ๋Ÿฌ๋˜ ์ค‘ ๋ ˆ์ด์•„์›ƒ์ด ๋ฌด์—‡์ธ์ง€ ๋ฌป๋Š”๋‹ค๋ฉด ๋ญ๋ผ๊ณ  ๋Œ€๋‹ตํ• ๊นŒ? ํ•˜๋Š” ์งˆ๋ฌธ์ด ๋จธ๋ฆฟ์†์— ๋– ์˜ฌ๋ž๊ณ  ๋ ˆ์ด์•„์›ƒ์„ ํ•ญ์ƒ ์ ‘ํ•˜๊ณ  ์žˆ์ง€๋งŒ ๊ฐœ๋…์„ ๋ง๋กœ์จ ์„ค๋ช…ํ•˜๊ธฐ์—๋Š” ๊ฐœ๋…์ด ์ œ๋Œ€๋กœ ์ •๋ฆฝ๋˜์ง€ ์•Š์€ ์ƒํƒœ๋ผ๊ณ  ๋Š๊ผˆ๋‹ค. ๊ทธ ๋ž˜ ์„œ ์˜ค๋Š˜์€ ์•ˆ๋“œ๋กœ์ด๋“œ ๊ณต์‹๋ฌธ์„œ ๋ทฐ ํŒŒํŠธ๋ฅผ ์ดํ•ดํ•˜๊ณ  ์ •๋ฆฌํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค!!! ๋ ˆ์ด์•„์›ƒ์ด๋ž€? ๊ทธ๋ž˜์„œ ๋ ˆ์ด์•„์›ƒ์ด ๋ญ์•ผ? ๋ ˆ์ด์•„์›ƒ์€ ์•กํ‹ฐ๋น„ํ‹ฐ์—์„œ์™€ ๊ฐ™์ด ์•ฑ ๋‚ด ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค์˜ ๊ตฌ์กฐ๋ฅผ ์ •์˜ํ•œ๋‹ค.๋ ˆ์ด์•„์›ƒ์˜ ๋ชจ๋“  ์š”์†Œ๋Š” View ๋ฐ ViewGroup ๊ฐ์ฒด์˜ ๊ณ„์ธต ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๋ฐ ์ด ๋•Œ ๋ทฐ์™€ ๋ทฐ ๊ทธ๋ฃน์˜ ์ฐจ์ด๊ฐ€ ๋ฌด์—‡์ผ๊นŒ?? โ“ ๋ทฐ์™€ ๋ทฐ ๊ทธ๋ฃน์˜ ์ฐจ์ด๋Š” ๋ฌด์—‡์ผ๊นŒ? ๐Ÿค View ๊ฐ์ฒด๋Š” ์œ„์ ฏ์ด๋ผ๊ณ  ํ•˜.. 2024. 3. 27.
Android : ์ดˆ๊ธฐํ™” ๋กœ์ง์„ ๋‹ด๋Š” "App StartUp ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ" ์•Œ์•„๋ณด๊ธฐ ๋“ค์–ด๊ฐ€๊ธฐ ์ „์—์ด๋ฒˆ์— ์†Œ์…œ ๋กœ๊ทธ์ธ์„ ๊ตฌํ˜„ํ•˜์—ฌ ๊ฐ ๋กœ๊ทธ์ธ ๋ณ„๋กœ ์ดˆ๊ธฐํ™” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด์ค˜์•ผํ–ˆ๋‹ค.์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด์ฃผ๋ฉด์„œ ๋‚ด ๊ณ ๋ฏผ์€ - onCreate์™€ init ์ค‘ ์–ด๋Š ๋ฉ”์„œ๋“œ์— ํฌํ•จํ•ด์•ผํ• ์ง€- ํ˜„์žฌ์˜ ์•กํ‹ฐ๋น„ํ‹ฐ ํด๋ž˜์Šค์™€  Application ํด๋ž˜์Šค ์ค‘ ์–ด๋””์— ์ž‘์„ฑํ•ด์ฃผ์–ด์•ผํ•˜๋Š”์ง€๊ธฐ์ค€์— ๋Œ€ํ•œ ๊ฒƒ์ด์—ˆ๋‹ค.  ๋‘˜๋‹ค ์‹œ๋„๋ฅผ ํ•ด๋ณด์•˜์ง€๋งŒ ๋ช…ํ™•ํ•œ ์ฐจ์ด๋ฅผ ์•Œ๊ธฐ ์–ด๋ ค์›Œ  ๋ฉ˜ํ†  ๊ฐœ๋ฐœ์ž๋ถ„๊ป˜ ์งˆ๋ฌธ์„ ๋“œ๋ ธ๋‹ค!๊ฐœ๋ฐœ์ž๋ถ„๊ป˜์„œ๋Š” ๋ณ„๋„์˜ ์ดˆ๊ธฐํ™” ๋ชจ๋“ˆ์„ ๋งŒ๋“ค์–ด์„œ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ๋ง์”€ ์ฃผ์…จ๊ณ  ๊ทธ ๋ฐฉ์‹์ด ๋ฐ”๋กœ App StartUp ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์ดˆ๊ธฐํ™”ํ•˜๋Š” ๊ฒƒ์ด์—ˆ๋‹ค!!๊ทธ๋ž˜์„œ ๋กœ๊ทธ์ธ ์ฝ”๋“œ์™€ ๊ด€๋ จํ•˜์—ฌ ๋‚ด ์ฝ”๋“œ๋ฅผ App StartUp ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์ „ํ›„  ์ฝ”๋“œ๋ฅผ ๋น„๊ตํ•˜๊ณ  ๋‚ด์šฉ์„ ์ดํ•ดํ•ด๋ณด๋ คํ•œ๋‹ค!  ์ด์ „๊นŒ์ง€๋Š”...์ด์ „์—๋Š” ์ดˆ๊ธฐํ™”ํ•ด์•ผํ•˜๋Š” ๊ตฌ์„ฑ ์š”์†Œ์— ๊ด€ํ•ด ๋ณ„๋„์˜ .. 2024. 3. 26.
Android Context ์‚ฌ์šฉ ์‹œ Memory leak ๋ฐฉ์ง€๋ฅผ ์œ„ํ•œ ๋ฌธ์ œ ํ•ด๊ฒฐ ๋“ค์–ด๊ฐ€๊ธฐ ์ „์—context๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ตฌ๊ธ€ credemtialManager์„ ๋ทฐ๋ชจ๋ธ๋กœ ์˜ฎ๊ธฐ๋Š” ๊ฒƒ์ด ์ข‹๋‹ค๋Š” ์ฝ”๋“œ ๋ฆฌ๋ทฐ๋ฅผ ๋“ค์—ˆ๋‹ค.  memory leak (๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜)๋ž€?๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋”์ด์ƒ ํ•„์š”ํ•˜์ง€ ์•Š์€ ๊ฐ์ฒด์— ๋Œ€ํ•œ ์ฐธ์กฐ๋ฅผ ์œ ์ง€ํ•จ์œผ๋กœ์จ ํ•ด๋‹น ๊ฐ์ฒด์— ํ• ๋‹น๋œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํšŒ์ˆ˜ํ•  ์ˆ˜ ์—†์–ด ๋‚˜ํƒ€๋‚˜๋Š” ์˜ค๋ฅ˜๋ฅผ ๋งํ•œ๋‹ค. ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜๊ฐ€ ์–ธ์ œ ๋ฐœ์ƒํ•˜๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•œ ์‹œ๋„๋“ค์งˆ๋ฌธ ์ •๋ฆฌ ์ƒํ™ฉ AuthAcivity์—์„œ ViewModel๋กœ CredentialManager  ๊ด€๋ จ google login ์ฝ”๋“œ๋ฅผ ์ด๋™ํ•˜๊ณ ์‹ถ๋‹ค.CredentialManager ๊ฐ์ฒด ๊ตฌ์„ฑ ์‹œ activityContext๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค.viewModel์—์„œ CredentialManager  ๊ฐ์ฒด๋ฅผ ์–ด๋–ค ๋ฐฉ์‹์œผ๋กœ ๊ตฌ์„ฑํ•ด์ฃผ์–ด์•ผํ• ๊นŒ?โžก๏ธ 1. ๋ทฐ .. 2024. 3. 20.
๐Ÿ›๏ธ[Android ์•ฑ ์•„ํ‚คํ…์ณ] : UI layer , Domain layer, Data layer ๋“ค์–ด๊ฐ€๊ธฐ ์ „์— ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ๊ฐ€ MVVM์œผ๋กœ ์žกํ˜€์žˆ์—ˆ๊ณ  ์ด์— ๋งž์ถ”์–ด์„œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ธฐ ์œ„ํ•ด์„œ ๋”๋”์šฑ MVVM์— ๋Œ€ํ•œ ์ดํ•ด๋ฅผ ๋†’์—ฌ์•ผ๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์šฐ์„  ๊ฐ layer๊ฐ€ ์–ด๋–ค ์—ญํ• ์„ ํ•˜๊ณ  ์–ด๋–ค ๋กœ์ง์„ ํฌํ•จํ•˜๋Š”์ง€์— ๋Œ€ํ•ด์„œ๋ถ€ํ„ฐ ๊ณต๋ถ€๋ฅผ ํ•ด๋ณด์ž! ๊ฐ ๋ ˆ์ด์–ด์˜ ์—ญํ•  1๏ธโƒฃUI ๋ ˆ์ด์–ด๋Š” ํ™”๋ฉด์— ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ฐ์ดํ„ฐ๋ฅผ ํ‘œ์‹œํ•ด์ค€๋‹ค. 2๏ธโƒฃ๋ฐ์ดํ„ฐ ๋ ˆ์ด์–ด๋Š” ์•ฑ์˜ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ํฌํ•จํ•˜๊ณ  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋…ธ์ถœํ•ด์ค€๋‹ค. 3๏ธโƒฃ๋„๋ฉ”์ธ ๋ ˆ์ด์–ด๋Š” UI์™€ ๋ฐ์ดํ„ฐ ๋ ˆ์ด์–ด ๊ฐ„์˜ ์ƒํ˜ธ์ž‘์šฉ์„ ๊ฐ„์†Œํ™”ํ•˜๊ณ  ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ค€๋‹ค. ์œ„ ๋‹ค์ด์–ด๊ทธ๋žจ์€ ์•ˆ๋“œ๋กœ์ด๋“œ ์•ฑ ์•„ํ‚คํ…์ณ๋ฅผ ๋‚˜ํƒ€๋‚ด๊ณ  ์žˆ๋‹ค. ํ™”์‚ดํ‘œ๋Š” ํด๋ž˜์Šค ๊ฐ„์˜ ์ข…์†์„ฑ์„ ๋‚˜ํƒ€๋‚ด๋Š”๋ฐ ๋„๋ฉ”์ธ ๋ ˆ์ด์–ด๋Š” ๋ฐ์ดํ„ฐ ๋ ˆ์ด์–ด ํด๋ž˜์Šค์— ์ข…์†๋œ๋‹ค. di๋กœ ์ƒ๊ฐํ•˜๋ฉด ๋ฐ์ดํ„ฐ ๋ ˆ์ด์–ด ํด๋ž˜์Šค์— ๋„๋ฉ”์ธ ๋ ˆ์ด.. 2024. 3. 15.
728x90