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

์ „์ฒด ๊ธ€141

[์„œ๋ฒ„ ํ˜ธ์ถœ ์„ฑ๊ณต ์‹คํŒจ ์ฒ˜๋ฆฌ ] ๋ชจ์กฐ๋ฆฌ ์ˆ˜์ •ํ•˜๊ธฐ !!!! ๋ฐฐ๊ฒฝํ”„๋กœ์ ํŠธ๊ฐ€ ์ ์  ๋งˆ๋ฌด๋ฆฌ๋˜๋Š” ์ตœ๊ทผ... ์„œ๋ฒ„ ์ˆ˜์ •์„ ๊ธฐ๋‹ค๋ฆฌ๋ฉด์„œ ๊ธฐ์กด ๋กœ์ง์— ๋Œ€ํ•ด ์˜๋ฌธ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋˜ ๋ถ€๋ถ„์— ๋Œ€ํ•ด ์ด์ „์— ํ•จ๊ป˜ ํ–ˆ๋˜ ๊ฐœ๋ฐœ์ž๋ถ„๊ป˜ ์งˆ๋ฌธ์„ ๋“œ๋ ธ๋‹ค!!! ๊ทธ๋Ÿฐ๋ฐ ๊ฒฐ๊ณผ์ ์œผ๋กœ ๋‚˜๋Š” ์„œ๋ฒ„ ์‹คํŒจ, ์„ฑ๊ณต ์ฒ˜๋ฆฌ์— ๋Œ€ํ•œ ์ดํ•ด๊ฐ€ ์ •~~๋ง ๋ถ€์กฑํ•œ ์ƒํƒœ์˜€๋‹ค. ๋”ฐ๋ผ์„œ ๊ทธ๋Ÿฐ ์ƒํƒœ๋กœ ์ง  ์ฝ”๋“œ๊ฐ€ ๋ชจ๋‘ ์ž˜๋ชป๋˜์—‡๋‹ค๋Š” ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ›๊ฒŒ ๋˜์—ˆ๋‹ค.์ด๋ ‡๊ฒŒ ํฌ๊ฒŒ ์ž˜๋ชป๋œ ์ ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค๋‹ˆ ใ… ใ…   ์งˆ๋ฌธ์„ ๋“œ๋ ค์„œ ์ •๋ง ๋‹คํ–‰์ด๊ณ  ๋‹ต๋ณ€ ์ฃผ์‹  ๊ฒƒ์— ์ •๋ง ๊ฐ์‚ฌํ•˜๋‹ค ๐Ÿ™์ž˜๋ชป๋œ ์ฝ”๋“œ์ž˜๋ชป๋œ ์ฝ”๋“œ๋ฅผ ๋ณด๊ณ  ๋ฌธ์ œ์ ๊ณผ ๋ถ€์กฑํ•จ ์ ์„ ์ฑ„์›Œ๋ณด์žclass GetReportListUseCase @Inject constructor( private val reportRepository: ReportRepository, ) { op.. 2024. 11. 29.
๋‚˜๋ฅผ ๋˜๋Œ์•„๋ณด๋ฉฐ ๊ณผ๊ฑฐ์˜ ๋‚˜ : ๊ฑด๊ฐ•์ด ์ตœ๊ณ ์•ผ !!! ๋‚˜๋Š” ์–ด๋ฆด ๋•Œ๋ถ€ํ„ฐ ๊ฑด๊ฐ•์„ ์ธ์ƒ์—์„œ ๊ฐ€์žฅ ์ค‘์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค.๋ชธ ์–ด๋”˜๊ฐ€๊ฐ€ ๊ฐ‘์ž๊ธฐ ์•„ํ”Œ ๋•Œ๋ฉด ํ•ญ์ƒ ๊ฑฑ์ •๊ณผ ๋ถˆ์•ˆ์„ ๋Š๊ผˆ๊ณ , ์ด๋กœ ์ธํ•ด ๋‚ด ์ฆ์ƒ์— ๋Œ€ํ•œ ์ •ํ™•ํ•œ ์ •๋ณด๋ฅผ ์–ป๊ธฐ ์œ„ํ•ด ์ƒˆ๋ฒฝ๊นŒ์ง€ ๊ฒ€์ƒ‰ํ•˜๊ณค ํ–ˆ๋‹ค.๋‚ด ๋ชธ์ด ์•„ํ”ˆ ์ฆ์ƒ์˜ ์›์ธ์ด ๋ฌด์—‡์ธ์ง€ ์ •ํ™•ํžˆ ์•Œ๊ธฐ ์œ„ํ•œ ์‹œ๊ฐ„์€ ๋‹น์—ฐํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค. ๋„ค์ด๋ฒ„ ์ง€์‹์ธ์„ ์‚ฌ์šฉํ•˜์—ฌ ์‹ค์ œ ์˜์‚ฌ์„ ์ƒ๋‹˜๋“ค์˜ ๋น„๋Œ€๋ฉด ์ง„๋ฃŒ๋ฅผ ์ดˆ๋“ฑํ•™์ƒ๋•Œ๋ถ€ํ„ฐ ์‚ฌ์šฉํ•ด์˜จ ๊ฒƒ ๊ฐ™๋‹ค. ๋ฌผ๋ก  ๋Œ€๋ถ€๋ถ„์€ ๋ณ„๋‹ค๋ฅธ ์ฆ์ƒ์ด ์•„๋‹ˆ์—ˆ๊ณ , ๋ฉฐ์น ์ด ์ง€๋‚˜๋ฉด ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์‚ฌ๋ผ์ง€๊ธฐ๋„ ํ–ˆ๋‹คใ…Žใ…Ž ๊ทธ๋ ‡์ง€๋งŒ ๊ทธ ๋•Œ๋งŒํผ์€ ์ •๋ง ํฐ ๋ณ‘์ด๋ฉด ์–ด๋–กํ•˜์ง€? ํ•˜๋Š” ๊ฑฑ์ •์— ์ž ์„ ๋ชป์ด๋ฃจ๊ธฐ๋„ ํ•˜๋ฉฐ ์งˆ๋ฌธ์„ ํ•œ ๊ฒƒ ๊ฐ™๋‹ค. ์น˜๊ณผ ์น˜๋ฃŒ๋ฅผ ํ•˜๋˜ ์ค‘์—๋Š” ๋…ผ๋ฌธ๊นŒ์ง€ ์ฐพ์•„๋ณด๋ฉฐ ๋‚ด ์ผ€์ด์Šค์— ๋งž๋Š” ๋ฐฉ์‹์ด ๋ฌด์—‡์ธ์ง€ ์•Œ์•„๋ณด๊ธฐ๋„ ํ–ˆ๋‹ค. ์ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์—ฌ๋Ÿฌ ์น˜๊ณผ.. 2024. 11. 26.
๐Ÿ‘€ [Android Repository Pattern]์„ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ  ์•Œ์•„๋ณด๊ธฐ! ํ”„๋กœ์ ํŠธ ์ค‘ Repository Pattern์— ๋Œ€ํ•ด์„œ ์ ์šฉํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค.์ด์ „ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ์™œ Repository์˜ ๊ตฌํ˜„์ฒด์ธํ„ฐํŽ˜์ด์Šค , DataSource์˜ ์ธํ„ฐํŽ˜์ด์Šค์™€ ๊ตฌํ˜„์ฒด๋กœ ๋‚˜๋ˆ„์–ด์„œ ์ด 4๊ฐœ์˜ ํŒŒ์ผ์—์„œ ์ž‘์—…ํ•ด์•ผํ• ์ง€ ๋ช…ํ™•ํžˆ ์ดํ•ดํ•˜์ง€ ๋ชปํ–ˆ๋‹ค. ๊ทธ๋ƒฅ ํ•œ๋ฒˆ์— ํ•œ ํด๋ž˜์Šค์—์„œ ์ž‘์„ฑํ•˜๋ฉด ์–ด๋–ค ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธฐ๋Š” ๊ฒƒ์ธ๊ฑฐ์ง€? ํ•˜๋Š”  ์ƒ๊ฐ์„ ๊ฐ€์ง€๊ณ  ์žˆ์—ˆ๋‹ค.. ๋Š๋‚€ ์ ์„ ํ•˜๋‚˜์”ฉ ์ •๋ฆฌํ•ด๋ณด๋ฉด Repostiory pattern์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉด ์–ด๋–ค ์ ์ด ๋ถˆํŽธํ•œ์ง€ ์ง์ ‘ ๋Š๋‚„ ์ˆ˜ ์žˆ๊ฒ ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๊ณ  ์ด๋ฒˆ ํ”„๋กœ์ ํŠธ๋ฅผ ํ•˜๋ฉฐ Repository Pattern์„ ์‚ฌ์šฉํ•ด์•ผํ•˜๋Š” ์ด์œ ๋ฅผ ์ •๋ฆฌํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค. ์šฐ์„  ์ง€๊ธˆ๊นŒ์ง€ Repository Pattern์„ ์‚ฌ์šฉํ•˜๋ฉด ํŽธํ–ˆ๋˜ ์ ๊ณผ ๋ถˆํŽธํ–ˆ๋˜ ์ ์„ ๊ณต์œ ํ•ด๋ณด๋ฉด๋ ˆํฌ์ง€ํ† ๋ฆฌ ํŒจํ„ด์— ๋Œ€ํ•œ ๊ฐ์ƒ : ํŽธ๋ฆฌํ•œ ์ ๊ณผ.. 2024. 11. 18.
โ˜บ๏ธAndroid : flow๋ฅผ ์ˆœ์ฐจ์ ์œผ๋กœ ์‚ฌ์šฉํ•ด๋ณด์ž~! ์š”๊ตฌ์‚ฌํ•ญ ์ •๋ฆฌํ•˜๊ธฐ ๊ตฌํ˜„ํ•ด์•ผํ•  ์š”๊ตฌ์‚ฌํ•ญ์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.๋จผ์ € ์ƒํ™ฉ์„ ์ดํ•ดํ•ด๋ณด๋ฉด๊ธฐ์กด์—๋Š” ํŒ”๋กœ์šฐ ์—ฌ๋ถ€์— ๋”ฐ๋ฅธ ์ฒ˜๋ฆฌ์—†์ด ํŒ”๋กœ์›Œ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋ฆฌ์‚ฌ์ดํด๋Ÿฌ๋ทฐ๋กœ ๋ณด์—ฌ์ฃผ์—ˆ๋‹ค.๋”ฐ๋ผ์„œ Flow๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š”  ์œ ์ฆˆ์ผ€์ด์Šค๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์€ ํ›„ ์ด๋ฅผ StateFlow ๋ณ€์ˆ˜์— ๋„ฃ์–ด์ฃผ๊ณ  UI๋ฅผ ์—…๋ฐ์ดํŠธํ•ด์ฃผ์—ˆ๋‹ค.  ์ถ”๊ฐ€๋œ ์‚ฌํ•ญ์€ ๋‚ด๊ฐ€ ํ•ด๋‹น ์œ ์ €์— ๋Œ€ํ•œ ํŒ”๋กœ์šฐ ์—ฌ๋ถ€์— ๋”ฐ๋ผ UI์š”์†Œ์— ๋ณ€ํ™”๋ฅผ ์ฃผ๋Š” ๊ฒƒ์ด์—ˆ๋‹ค.๋”ฐ๋ผ์„œ ํŒ”๋กœ์šฐ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ์œ ์ฆˆ ์ผ€์ด์Šค์™€ ์œ ์ €์— ๋Œ€ํ•œ ํŒ”๋กœ์šฐ ์—ฌ๋ถ€๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ์œ ์ฆˆ ์ผ€์ด์Šค๋ฅผ ๊ฒฐํ•ฉํ•œ ํ›„ ๊ฒฐํ•ฉํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฆฌ์‚ฌ์ดํด๋Ÿฌ๋ทฐ์— ์ „๋‹ฌํ•ด์ฃผ์–ด์•ผํ–ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ๋‘ ๋ฐ์ดํ„ฐ๋ฅผ ์–ด๋–ป๊ฒŒ ๊ฒฐํ•ฉํ•˜๋ฉด ์ข‹์„๊นŒ?  ์ฐพ์•„๋ณธ ๊ฒฐ๊ณผ combine๊ณผ zip, flatMapLatest์— ๋Œ€ํ•ด์„œ ๋‚˜์™”๋‹ค.  flow๋ฅผ collectํ•˜๋Š” ๊ฒƒ๊ณผ ์–ด๋–ป๊ฒŒ ๋‹ค๋ฅด๊ณ , ๊ฐ .. 2024. 11. 4.
728x90