ํฌ์ŠคํŒ… ์ธ๋„ค์ผ ์ด๋ฏธ์ง€

ํ•™์Šต

deprecated๋œ firebase dynamic link ์—†์ด Firebase email link authentication ๊ตฌํ˜„ํ•˜๊ธฐ - 2

์ด์ „ ๊ธ€https://dodobest.tistory.com/120 deprecated๋œ firebase dynamic link ์—†์ด Firebase email link authentication ๊ตฌํ˜„ํ•˜๊ธฐ - 12025๋…„ 8์›” 25์ผ๋ถ€ํ„ฐ Firebase dynamic Link(FDL)๊ฐ€ deprecated ๋˜์–ด ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. Deprecation ๋ฌธ์„œ์— ๋”ฐ๋ฅด๋ฉด ์‹ ๊ทœ ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ์ž๋Š” FDL์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๊ณ , Firebase email link authentication์— ํ•œํ•ด์„œ ๊ณ ๊ฐ์„ผdodobest.tistory.com  ์ด์ „ ๊ธ€์—์„œ ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ์ด๋ฉ”์ผ๋กœ ์ธ์ฆ ๋ฉ”์ผ์„ ๋ฐœ์†กํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.์ด๋ฒˆ ๊ธ€์—์„œ๋Š” ์ธ์ฆ ๋ฉ”์ผ์˜ ํ™•์ธ ์—ฌ๋ถ€๋ฅผ ๊ด€์ฐฐํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.Android Kotli..

2024.09.16 ๊ฒŒ์‹œ๋จ

ํฌ์ŠคํŒ… ์ธ๋„ค์ผ ์ด๋ฏธ์ง€

ํ•™์Šต

deprecated๋œ firebase dynamic link ์—†์ด Firebase email link authentication ๊ตฌํ˜„ํ•˜๊ธฐ - 1

2025๋…„ 8์›” 25์ผ๋ถ€ํ„ฐ Firebase dynamic Link(FDL)๊ฐ€ deprecated ๋˜์–ด ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. Deprecation ๋ฌธ์„œ์— ๋”ฐ๋ฅด๋ฉด ์‹ ๊ทœ ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ์ž๋Š” FDL์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๊ณ , Firebase email link authentication์— ํ•œํ•ด์„œ ๊ณ ๊ฐ์„ผํ„ฐ์— ๋ฌธ์˜ํ•˜๋ฉด FDL์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. (๋ฌธ์„œ์™€ ๋‹ค๋ฅด๊ฒŒ ์‹ ๊ทœ ํ”„๋กœ์ ํŠธ๋„ Firebase Console์—์„œ Run ํƒญ ํ•˜์œ„์˜ Dynamic Links์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.) Q. I need to onboard onto Firebase Dynamic Links to enable email link auth in Firebase Authentication. What should I do?A. It curren..

2024.09.11 ๊ฒŒ์‹œ๋จ

ํฌ์ŠคํŒ… ์ธ๋„ค์ผ ์ด๋ฏธ์ง€

์ฝ”๋”ฉํ…Œ์ŠคํŠธ

Kotlin ์นด์นด์˜ค ์ฃผ์ฐจ ์š”๊ธˆ ๊ณ„์‚ฐ - ConcurrentModificationException, HashMap, hashing

ConcurrentModificationException https://school.programmers.co.kr/learn/courses/30/lessons/92341 ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.programmers.co.kr    ์ž๋™์ฐจ์˜ ์ฃผ์ฐจ์žฅ ์ถœ์ž… ๋ˆ„์  ์‹œ๊ฐ„์„ ๊ธฐ๋กํ•œ ํ›„, ๋น„์šฉ์„ ๊ณ„์‚ฐํ•ด์„œ ๋ฐ˜ํ™˜ํ•˜๋ฉด ๋˜๋Š” ๋ฌธ์ œ์ด๋‹ค.์•„๋ž˜๋Š” ์ฒ˜์Œ์— ์ž‘์„ฑํ•œ ๋‹ต์•ˆ์ด๋‹ค. ์–ด๋–ค ๋ฌธ์ œ๊ฐ€ ์žˆ์„๊นŒ? /** ๋ˆ„์  ์ฃผ์ฐจ ์‹œ๊ฐ„์ด ๊ธฐ๋ณธ ์‹œ๊ฐ„ ์ดํ•˜๋ผ๋ฉด ๊ธฐ๋ณธ ์š”๊ธˆ ๋ˆ„์  ์ฃผ์ฐจ ์‹œ๊ฐ„์ด ๊ธฐ๋ณธ ์‹œ๊ฐ„์„ ์ดˆ๊ณผํ•˜๋ฉด ์ดˆ๊ณผํ•œ ์‹œ๊ฐ„์— ๋Œ€ํ•ด ๋‹จ์œ„ ์‹œ๊ฐ„ ๋งˆ๋‹ค ๋‹จ์œ„ ์š”๊ธˆ ์ดˆ๊ณผํ•œ ์‹œ๊ฐ„์ด ๋‹จ์œ„ ์‹œ๊ฐ„์œผ๋กœ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€์ง€..

2024.09.04 ๊ฒŒ์‹œ๋จ

ํฌ์ŠคํŒ… ์ธ๋„ค์ผ ์ด๋ฏธ์ง€

ํ•™์Šต

Safe Navigate Action

๋ฌธ์ œ ์ƒํ™ฉ ๋ฐ ํ•ด๊ฒฐ๋ฐฉ๋ฒ• ์ƒ๋‹จ์˜ ์‚ฌ์ง„ ๊ถŒํ•œ ๋ณ€๊ฒฝ ์˜์—ญ์„ ํด๋ฆญํ•˜๋ฉด Navigation Action์„ ์ด์šฉํ•ด ModalBottomSheetFragment๊ฐ€ ์‹คํ–‰๋˜์–ด ModalBottomSheet๊ฐ€ ๋ณด์ด๋„๋ก ์„ค์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.   ์ฒœ์ฒœํžˆ ๋ˆŒ๋ €์„ ๋•Œ๋Š” ๋ฌธ์ œ ์—†์—ˆ์œผ๋‚˜, ๋งค์šฐ ๋น ๋ฅด๊ฒŒ ์—ฐ์†ํ•ด์„œ ๋ˆ„๋ฅผ ๊ฒฝ์šฐ ์•„๋ž˜์™€ ๊ฐ™์€ exception์ด ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.๋‚ด์šฉ์„ ์š”์•…ํ•ด๋ณด๋ฉด, ํ˜„์žฌ ModalBottomSheetFragment์—์„œ ํ˜ธ์ถœํ•œ Action์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์—†๋‹ค๋Š” ๋œป์ž…๋‹ˆ๋‹ค.Process: com.bestapp.rice, PID: 12707java.lang.IllegalArgumentException: Navigation action/destination com.bestapp.rice:id/action_profileI..

2024.08.22 ๊ฒŒ์‹œ๋จ

ํฌ์ŠคํŒ… ์ธ๋„ค์ผ ์ด๋ฏธ์ง€

TIL

240821 TIL - ๋ฉด์ ‘

์˜ค๋Š˜ ๋ฉด์ ‘์„ ๋ณด๊ณ  ์™”๋‹ค. ๊ณผ์ œํ…Œ์ŠคํŠธ 30๋ถ„ + ๊ธฐ์ˆ ๋ฉด์ ‘ 1์‹œ๊ฐ„์œผ๋กœ ์ง„ํ–‰ํ–ˆ๋‹ค. ๊ณผ์ œํ…Œ์ŠคํŠธ๋Š” ๋งฅ๋ถ์„ ์ด์šฉํ•ด์„œ ์ง„ํ–‰ํ–ˆ๋Š”๋ฐ, ๋‚˜๋Š” ์ง€๊ธˆ๊นŒ์ง€ ๋งฅ๋ถ์„ ์ด์šฉํ•ด๋ณธ์ ์ด ์—†๋‹ค. ๋งฅ๋งˆ์šฐ์Šค๋„ ์ œ๊ณต๋๋Š”๋ฐ, ์˜ค๋ฅธ์ชฝ ํด๋ฆญ ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ชฐ๋ผ์„œ ํ„ฐ์น˜ํŒจ๋“œ๋ฅผ ์ด์šฉํ–ˆ๋‹ค, ๋งฅ๋ถ ํ„ฐ์น˜ํŒจ๋“œ๋„ ์ฒ˜์Œ ์จ๋ด์„œ ๊ทธ๋Ÿฐ์ง€ ์˜ค๋ฅธ์ชฝ ์ƒ๋‹จ์„ ๋‘๋ฒˆ ๋ˆŒ๋Ÿฌ๋„ ์˜ค๋ฅธ์ชฝ ํด๋ฆญ์ด ์ž˜ ์•ˆ ๋๋‹ค.๊ทธ ์™ธ์— ํ•œ์˜ ์ „ํ™˜, IDE ๋‹จ์ถ•ํ‚ค ๋“ฑ ์œˆ๋„์šฐ๋ž‘ ๋‹ค๋ฅธ ๊ฒƒ์ด ๋„ˆ๋ฌด ๋งŽ์•„์„œ ์ฃผ์–ด์ง„ ๋ฌธ์ œ ์กฐ๊ฑด์„ ๋‹ค ๋งŒ์กฑํ•˜์ง€ ๋ชปํ•œ ๊ฒƒ ๊ฐ™๋‹ค.... ๋งฅ๋ถ ์‚ฌ์•ผํ• ๊นŒ.....๐Ÿค” OS์™€ ๋ฌด๊ด€ํ•˜๊ฒŒ ๊ณผ์ œํ…Œ์ŠคํŠธ๋ฅผ ์™„๋ฃŒํ•˜์ง€ ๋ชปํ•œ ์ด์œ ๊ฐ€ 2๊ฐ€์ง€ ์žˆ๋‹ค. 1. Activity LifecycleScope Activity์—์„œ DB์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๊ณ  ์žˆ์—ˆ๊ณ , ์‹œ๊ฐ„์ด 5์ดˆ ์ด์ƒ ์†Œ์š”๋˜์–ด exception์ด ๋ฐœ์ƒ..

2024.08.22 ๊ฒŒ์‹œ๋จ

ํฌ์ŠคํŒ… ์ธ๋„ค์ผ ์ด๋ฏธ์ง€

ํ•™์Šต

Flow, Channel, ChannelFlow, CallbackFlow

Flow์™€ Channel์˜ ๋ชฉ์  Flow : ๋ฐ์ดํ„ฐ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์ฒ˜๋ฆฌํ•˜๋Š”๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.Channel : ์ฝ”๋ฃจํ‹ด ๊ฐ„์— ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›๋Š”๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Flow & Channel ๋น„๊ต Flow๋Š” ๋น„๋™๊ธฐ์ ์œผ๋กœ ์ƒ์„ฑ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜๋Š” ์ŠคํŠธ๋ฆผ์œผ๋กœ, ๊ด€์ฐฐ์ž๊ฐ€ ์—†์œผ๋ฉด ๋ฐ์ดํ„ฐ๋ฅผ ์ƒ์„ฑํ•˜์ง€ ์•Š๋Š” Cold source ์ž…๋‹ˆ๋‹ค.๊ธฐ๋ณธ์ ์œผ๋กœ Flow๋Š” ์ƒ์„ฑ๋œ ๋ฐ์ดํ„ฐ๊ฐ€ collect ํ•จ์ˆ˜์— ์˜ํ•ด ์†Œ๋น„๋  ๋•Œ๊นŒ์ง€ ๋‹ค์Œ ๋ฐ์ดํ„ฐ๋ฅผ ์ƒ์„ฑํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‹จ, buffer ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ๋ฒ„ํผ๋ฅผ ์„ค์ •ํ•˜๋ฉด, ๋ฒ„ํผ ํฌ๊ธฐ + 1 ๋งŒํผ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฏธ๋ฆฌ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฒ„ํผ๊ฐ€ ์žˆ๋Š” Flow๋Š” Hot source ์ž…๋‹ˆ๋‹ค. onBufferOverflow ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ด์šฉํ•ด ๋ฒ„ํผ๊ฐ€ ๊ฝ‰์ฐผ์„ ๋•Œ ๋™์ž‘์„ ์ •์˜ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋‹ค์Œ์˜ 3๊ฐ€์ง€ ์ข…๋ฅ˜..

2024.08.15 ๊ฒŒ์‹œ๋จ

ํฌ์ŠคํŒ… ์ธ๋„ค์ผ ์ด๋ฏธ์ง€

ํ•™์Šต

RecyclerView Itemdecoration ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์‚ฌ์šฉํ•˜๊ธฐ

1. ๊ตฌํ˜„ ์š”๊ตฌ ์‚ฌํ•ญ ํ”„๋กœํ•„ ํ™”๋ฉด์—์„œ ์‚ฌ์šฉ์ž๋“ค์ด ๋ชจ์ž„์—์„œ ์ฐ์—ˆ๋˜ ์‚ฌ์ง„์„ GridView ํƒ€์ž…์œผ๋กœ ๋ณด์—ฌ์ค„ ์ˆ˜ ์žˆ๋Š” UI๊ฐ€ ํ•„์š”ํ–ˆ์Šต๋‹ˆ๋‹ค.์ด๋•Œ, ์ธ์Šคํƒ€๊ทธ๋žจ๊ณผ ๊ฐ™์ด ์‚ฌ์ง„ ์‚ฌ์ด์— ๋™์ผํ•œ Margin์ด ํ•„์š”ํ–ˆ์Šต๋‹ˆ๋‹ค. 2. ๊ตฌํ˜„ ๋ฐฉ๋ฒ• ์‚ฌ์ง„๋“ค์„ ํ‘œ์‹œํ•˜๊ธฐ ์œ„ํ•ด ๊ตฌํ˜„ํ•œ RecyclerView ์ž…๋‹ˆ๋‹ค.ํ•œ ์—ด์— ์—ฌ๋Ÿฌ ์ด๋ฏธ์ง€๋ฅผ ํ‘œ์‹œํ•˜๊ธฐ ์œ„ํ•ด GridLayoutManager๋ฅผ ์ด์šฉํ–ˆ์œผ๋ฉฐ, ๊ฐœ์ˆ˜๋Š” 3๊ฐœ๋กœ ์„ค์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.  ViewHolder์—์„œ ์‚ฌ์šฉํ•œ XML ์ž…๋‹ˆ๋‹ค.RecyclerView์—์„œ ํ•œ ์—ด์˜ ์•„์ดํ…œ์„ 3๊ฐœ๋กœ ์„ค์ •ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์—, 3๊ฐœ์˜ ์•„์ดํ…œ์ด ๋ชจ๋“  width๋ฅผ ์ฐจ์ง€ํ•˜๋„๋ก Layout์˜ width๋ฅผ match_parent๋กœ ์„ค์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.์ด๋ฏธ์ง€๊ฐ€ ์ •์‚ฌ๊ฐํ˜•์œผ๋กœ ํ‘œ์‹œ๋˜๋„๋ก Style์„ ์ •์˜ํ•ด ์„ค์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.์•„์ดํ…œ ์‚ฌ์ด์˜ ์„ธ๋กœ ๋ฐฉํ–ฅ M..

2024.07.24 ๊ฒŒ์‹œ๋จ

ํฌ์ŠคํŒ… ์ธ๋„ค์ผ ์ด๋ฏธ์ง€

ํ›„๊ธฐ

๋‚ด์ผ๋ฐฐ์›€์บ ํ”„ Android 3๊ธฐ ์ž์„ธํ•œ ํ›„๊ธฐ

์ด์ „์— ์ž‘์„ฑํ•œ ์‹œ์ ์œผ๋กœ๋ถ€ํ„ฐ 2์ฃผ๊ฐ€ ์ง€๋‚œ ์‹œ์ ์— ๋” ์ž์„ธํ•œ ํ›„๊ธฐ๋ฅผ ์ž‘์„ฑํ•ด๋ณด๊ณ ์ž ํ•œ๋‹ค. https://dodobest.tistory.com/113 240629 TIL - 1์ฃผ ๋‚จ์€ ์‹œ์ ์— ์ž‘์„ฑํ•˜๋Š” ๋‚ด์ผ๋ฐฐ์›€์บ ํ”„ Android 3๊ธฐ ํ›„๊ธฐTIL์„ ์•ˆ ์“ด์ง€ 2๊ฐœ์›”์ด ๋œ ๊ฒƒ ๊ฐ™์€๋ฐ, ์ˆ˜๋ฃŒ๊นŒ์ง€ ์ผ์ฃผ์ผ ๋‚จ์€ ์‹œ์ ์— ํ›„๊ธฐ๋ฅผ ์ž‘์„ฑํ•ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์žฅ์  - ๊ต์œก ์‹œ๊ฐ„ ๋‚ด๋‚ด ์ƒ์ฃผํ•˜์‹œ๋Š” ๋‹ค์–‘ํ•œ ํŠœํ„ฐ ๋‹˜๋“ค ์ด ๋ถ€๋ถ„์ด ๋‚ด์ผ๋ฐฐ์›€์บ ํ”„์˜ ๊ฐ€์žฅ ํฐ ์žฅ์ ์ดdodobest.tistory.com  1. ์ฐธ์—ฌ ๊ณ„๊ธฐ 2022๋…„ ํ•˜๋ฐ˜๊ธฐ์— ๋„ค์ด๋ฒ„ ๋ถ€์ŠคํŠธ์บ ํ”„ 7๊ธฐ Andorid ๊ณผ์ •์— ์ฐธ์—ฌํ•œ ๊ฒฝํ—˜์ด ์žˆ์œผ๋‚˜, ํ•™์Šต ๋ฐฉํ–ฅ์— ์žˆ์–ด์„œ ์–ด๋ ค์›€์„ ๊ฒช์—ˆ๋‹ค. ์ฝ”๋“œ๋ชฝํ‚ค๊ฐ€ ๋˜์ง€ ์•Š์œผ๋ ค๋ฉด ๋‹จ์ˆœํžˆ ๊ธฐ๋Šฅ๋งŒ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์ดํ•ดํ•˜๊ณ  ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค๋Š” ์˜์ƒ์„ ๋ณด๊ณ , ํ•„์š”ํ•˜์ง€ ..

2024.07.14 ๊ฒŒ์‹œ๋จ

ํฌ์ŠคํŒ… ์ธ๋„ค์ผ ์ด๋ฏธ์ง€

TIL

240629 TIL - 1์ฃผ ๋‚จ์€ ์‹œ์ ์— ์ž‘์„ฑํ•˜๋Š” ๋‚ด์ผ๋ฐฐ์›€์บ ํ”„ Android 3๊ธฐ ํ›„๊ธฐ

TIL์„ ์•ˆ ์“ด์ง€ 2๊ฐœ์›”์ด ๋œ ๊ฒƒ ๊ฐ™์€๋ฐ, ์ˆ˜๋ฃŒ๊นŒ์ง€ ์ผ์ฃผ์ผ ๋‚จ์€ ์‹œ์ ์— ํ›„๊ธฐ๋ฅผ ์ž‘์„ฑํ•ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์žฅ์  - ๊ต์œก ์‹œ๊ฐ„ ๋‚ด๋‚ด ์ƒ์ฃผํ•˜์‹œ๋Š” ๋‹ค์–‘ํ•œ ํŠœํ„ฐ ๋‹˜๋“ค ์ด ๋ถ€๋ถ„์ด ๋‚ด์ผ๋ฐฐ์›€์บ ํ”„์˜ ๊ฐ€์žฅ ํฐ ์žฅ์ ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์•„์นจ 9์‹œ๋ถ€ํ„ฐ ์ €๋… 9์‹œ๊นŒ์ง€ ๋‹ค์–‘ํ•œ ํŠœํ„ฐ ๋‹˜๋“ค์ด ์˜จ๋ผ์ธ ๊ต์œก ๊ณต๊ฐ„์— ์ƒ์ฃผํ•˜๊ณ  ๊ณ„์…”์„œ ์งˆ๋ฌธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์ฒ˜์Œ ํ•™์Šตํ•˜์‹œ๋Š” ๋ถ„์ด๋ผ๋ฉด ์ด ๋ถ€๋ถ„์ด ์˜คํžˆ๋ ค ๋‹จ์ ์ด ๋  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ํŠœํ„ฐ ๋‹˜์—๊ฒŒ ๊ฐ€์„œ ๋ฐ”๋กœ ์งˆ๋ฌธ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค๋ณด๋‹ˆ, ์†Œํ†ต ์ฑ„๋„์ธ Slack ์งˆ๋ฌธ๋ฐฉ์— ์งˆ๋ฌธ์ด ์˜ฌ๋ผ์˜ค์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.(๊ธฐ์ˆ˜๋งˆ๋‹ค ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.) ๊ทธ๋ž˜์„œ ๋‚ด๊ฐ€ ๋ชจ๋ฅธ๋‹ค๊ณ  ์ธ์ง€ํ•œ ์ง€์‹๋งŒ ์งˆ๋ฌธ์„ ํ†ตํ•ด ํ•™์Šตํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ๊ฐœ๋ฐœ์— ๋Œ€ํ•œ ์‚ฌ์ „ ์ง€์‹์ด ์—†๋‹ค๋ฉด ํฐ ์„ฑ์žฅ์„ ํ•˜๊ธฐ๋ž€ ์–ด๋ ค์šธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.๋„ค์ด๋ฒ„ ๋ถ€์ŠคํŠธ์บ ํ”„ ์ฑŒ๋ฆฐ์ง€ ๊ณผ์ •์—์„œ ๊ณต..

2024.06.29 ๊ฒŒ์‹œ๋จ

ํฌ์ŠคํŒ… ์ธ๋„ค์ผ ์ด๋ฏธ์ง€

ํ•™์Šต

์™œ repeatOnLifecycle ์•ž์— viewLifecycleOwner๋ฅผ ๋ถ™์—ฌ์•ผํ• ๊นŒ?

ํ•ต์‹ฌ ๋‚ด์šฉ ์„  ์ •๋ฆฌ์™œ repeatOnLifecycle ์•ž์— viewLifecycleOwner๋ฅผ ๋ถ™์—ฌ์•ผํ• ๊นŒ? ๊ณต์‹๋ฌธ์„œ ์˜ˆ์‹œ ์ฝ”๋“œ์—์„œ repeatOnLifecycle ์•ž์— viewLifecycleOwner๋ฅผ ๋ถ™์—ฌ์„œ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์™œ ์ผ๊นŒ์š”?  class MyFragment : Fragment() { val viewModel: MyViewModel by viewModel() override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) // Create a new coroutine in the lifecycleScope ..

2024.06.26 ๊ฒŒ์‹œ๋จ