๊พธ์ค€ํ•จ์ด ์ง„๋ฆฌ๋‹ค!!

์–ด์ œ๋ณด๋‹ค ๋ฐœ์ „ํ•œ ์˜ค๋Š˜์ด ๋˜๊ณ ํ”ˆ ๐Ÿง‘๐Ÿปโ€๐Ÿ’ป ์˜ ๋ธ”๋กœ๊ทธ

์ฝ”ํ‹€๋ฆฐ 21

[Java][Kotlin][Android] ์•ˆ๋“œ๋กœ์ด๋“œ ์ž๋ฐ”์™€ ์ฝ”ํ‹€๋ฆฐ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๊ธฐ - ์•ˆ๋“œ๋กœ์ด๋“œ Legacy ์ฝ”๋“œ ์œ ์ง€๋ณด์ˆ˜ ํ•˜๊ธฐ (1)

์•ˆ๋…•ํ•˜์„ธ์š” ๐Ÿ‘‹ ๊ฑฐ์˜ ํ•œ ๋‹ฌ ๋งŒ์— ํฌ์ŠคํŒ…์œผ๋กœ ์ฐพ์•„๋ต™๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ํ”„๋กœ์ ํŠธ๋“ค์„ ๊ฒฝํ—˜ํ•˜๋‹ค ๋ณด๋ฉด ์ž๋ฐ”๋กœ ๋˜์–ด์žˆ๋Š” ์ฝ”๋“œ๋ฅผ ์ฝ”ํ‹€๋ฆฐ์œผ๋กœ ๋ฐ”๊พธ๊ฑฐ๋‚˜ ๋ ˆ๊ฑฐ์‹œ ์ฝ”๋“œ๋“ค์„ ์œ ์ง€ ๋ณด์ˆ˜ํ•˜๋ฉด์„œ ์ฝ”ํ‹€๋ฆฐ์„ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋”๋Ÿฌ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ค๋Š˜์€ ์ด๋Ÿฐ ๊ฒฝ์šฐ์— ๋Œ€ํ•œ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋‚ด์šฉ๋“ค์„ ํฌ์ŠคํŒ…ํ•ด๋ณด๋ ค ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฒˆ ํฌ์ŠคํŒ…์€ ์ด 2ํŽธ์œผ๋กœ ๊ธฐํš์ด ๋  ๊ฒƒ์œผ๋กœ ๋ณด์ด๋ฉฐ 1ํŽธ(๋ณธ ํฌ์ŠคํŒ…)์€ ์ž๋ฐ”์™€ ์ฝ”ํ‹€๋ฆฐ์„ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ• 2ํŽธ์€ ์ž๋ฐ” ์ฝ”๋“œ๋ฅผ ์ฝ”ํ‹€๋ฆฐ์œผ๋กœ ๋ณ€๊ฒฝํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ ํฌ์ŠคํŒ… ํ•ด๋ณด๋ ค ํ•ฉ๋‹ˆ๋‹ค! ๊ทธ๋Ÿผ ๋ฐ”๋กœ ์‹œ์ž‘ํ•ด๋ณด๋„๋ก ํ• ๊นŒ์š”? ๐Ÿ˜Ž 1. ์„ค์ • ์ž๋ฐ” ๊ธฐ๋ฐ˜ ํ”„๋กœ์ ํŠธ์—์„œ ์ฝ”ํ‹€๋ฆฐ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ์œ„ ์ฝ”๋“œ์™€ ๊ฐ™์ด build.gradle์„ ์„ค์ •ํ•ด์ค๋‹ˆ๋‹ค. // Project gradle plugins { ... // ์ƒ๋žต id 'org.jetbrai..

Android 2023.05.19

[Kotlin][Android] ์•ˆ๋“œ๋กœ์ด๋“œ Coroutine Flow ์ ์šฉํ•˜๊ธฐ (1) (๋„คํŠธ์›Œํฌ ํ†ต์‹  Flow๋กœ ์ด์ „ํ•˜๊ธฐ)

์•ˆ๋…•ํ•˜์„ธ์š” ๐Ÿ‘‹ ์˜ค๋Š˜์€ ์•ˆ๋“œ๋กœ์ด๋“œ MVVMํŒจํ„ด์—์„œ Flow๋ฅผ ์–ด๋–ป๊ฒŒ ์ ์šฉํ•˜๋Š”์ง€๋ฅผ ์•Œ์•„๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค ๐Ÿ˜Ž Flow์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ํฌ์ŠคํŒ…์€ ์•„๋ž˜ ๋งํฌ๋ฅผ ์ฐธ๊ณ  ๋ฐ”๋ž๋‹ˆ๋‹ค ๐Ÿ™ [Kotlin] ์ฝ”ํ‹€๋ฆฐ Coroutine์— ๋Œ€ํ•˜์—ฌ (3) - Coroutine Flow(ํ”Œ๋กœ์šฐ) ์•ˆ๋…•ํ•˜์„ธ์š”๐Ÿ‘‹ ์˜ค๋Š˜์€ ์ฝ”๋ฃจํ‹ด ๊ด€๋ จ ๋งˆ์ง€๋ง‰ ํฌ์ŠคํŒ…์œผ๋กœ ์ฝ”๋ฃจํ‹ด Flow์— ๋Œ€ํ•ด ๊ณต๋ถ€ํ•œ ๋‚ด์šฉ์„ ํฌ์ŠคํŒ…ํ•ด๋ณด๋ ค ํ•ฉ๋‹ˆ๋‹ค. 1. Coroutine Flow๋ž€? Flow๋Š” ์ˆœ์ฐจ์ ์œผ๋กœ ๊ฐ’์„ ๋‚ด๋ณด๋‚ด๊ณ  ์ •์ƒ์ ์œผ๋กœ ๋˜๋Š” ์˜ˆ์™ธ๋กœ ์™„๋ฃŒ๋˜ devyo-111commit.tistory.com ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” ์ด์ „ Clean Architecture์— ๋Œ€ํ•œ ํฌ์ŠคํŒ…์„ ํ•  ๋•Œ ์‚ฌ์šฉํ–ˆ๋˜ ์˜ˆ์ œ๋ฅผ Flow๋กœ ์ด์ „ํ•˜๋ฉฐ ์‚ฌ์šฉํ•  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค. ํ•ด๋‹น ์˜ˆ์ œ์˜ ์ „์ฒด ์ฝ”๋“œ ๋ฐ ์„ค๋ช…์€ ์•„๋ž˜ ํฌ์ŠคํŒ…์„ ์ฐธ๊ณ ํ•ด์ฃผ์„ธ..

Android/Kotlin 2023.03.22

[Android] ์•ˆ๋“œ๋กœ์ด๋“œ Clean Architecture์— ๋Œ€ํ•ด์„œ (2) - ์•ˆ๋“œ๋กœ์ด๋“œ ํ”„๋กœ์ ํŠธ์— ์ ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•

์•ˆ๋…•ํ•˜์„ธ์š” ๐Ÿ‘‹ ์˜ค๋Š˜์€ ์ง€๋‚œ ํฌ์ŠคํŒ…์— ์ด์–ด ์•ˆ๋“œ๋กœ์ด๋“œ ํ”„๋กœ์ ํŠธ์—์„œ ์–ด๋–ป๊ฒŒ Clean Architecture๋ฅผ ์ ์šฉ์‹œํ‚ค๋Š”์ง€์— ๋Œ€ํ•ด์„œ ํฌ์ŠคํŒ…ํ•ด๋ณด๋ ค ํ•ฉ๋‹ˆ๋‹ค. Clean Architecture์˜ ๊ฐœ๋…์— ๋Œ€ํ•ด์„œ๋Š” ์•„๋ž˜ ํฌ์ŠคํŒ…์„ ์ฐธ๊ณ  ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค ๐Ÿค” [Android] ์•ˆ๋“œ๋กœ์ด๋“œ Clean Architecture์— ๋Œ€ํ•ด์„œ ( 1 ) - Clean Architecture์˜ ๊ฐœ๋… ์•ˆ๋…•ํ•˜์„ธ์š” ๐Ÿ‘‹ ์˜ค๋Š˜์€ Clean Architecture์— ๋Œ€ํ•ด์„œ ๊ณต๋ถ€ํ•œ ๋‚ด์šฉ์„ ํฌ์ŠคํŒ…ํ•ด๋ณด๋ ค ํ•ฉ๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ์— ์ ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•๊นŒ์ง€ ํฌ์ŠคํŒ…ํ•˜๊ธฐ์—” ๋‚ด์šฉ์ด ๊ธธ์–ด์งˆ ๊ฒƒ ๊ฐ™์•„ ์˜ค๋Š˜์€ ๊ฐœ๋…์— ๋Œ€ํ•ด์„œ๋งŒ ๊ฐ„๋žตํ•˜๊ฒŒ ํฌ devyo-111commit.tistory.com Android์—์„œ Clean Architecture๋ฅผ ์ ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์•ž์„œ ๋งํ–ˆ๋“ฏ 3๊ฐ€์ง€ lay..

Android 2023.02.21

[Android] ์•ˆ๋“œ๋กœ์ด๋“œ Clean Architecture์— ๋Œ€ํ•ด์„œ ( 1 ) - Clean Architecture์˜ ๊ฐœ๋…

์•ˆ๋…•ํ•˜์„ธ์š” ๐Ÿ‘‹ ์˜ค๋Š˜์€ Clean Architecture์— ๋Œ€ํ•ด์„œ ๊ณต๋ถ€ํ•œ ๋‚ด์šฉ์„ ํฌ์ŠคํŒ…ํ•ด๋ณด๋ ค ํ•ฉ๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ์— ์ ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•๊นŒ์ง€ ํฌ์ŠคํŒ…ํ•˜๊ธฐ์—” ๋‚ด์šฉ์ด ๊ธธ์–ด์งˆ ๊ฒƒ ๊ฐ™์•„ ์˜ค๋Š˜์€ ๊ฐœ๋…์— ๋Œ€ํ•ด์„œ๋งŒ ๊ฐ„๋žตํ•˜๊ฒŒ ํฌ์ŠคํŒ… ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋จผ์ €, Clean Architecture๋ž€ ๋ฌด์—‡์ผ๊นŒ์š”? Clean Architecture๋ž€? ํด๋ฆฐ ์ฝ”๋“œ(Clean Code)๋ฅผ ์ €์ˆ ํ•œ ๋กœ๋ฒ„ํŠธ ๋งˆํ‹ด(Robert C. Martin)์ด ์ œ์•ˆํ•œ ์‹œ์Šคํ…œ ์•„ํ‚คํ…์ฒ˜๋กœ, ๊ธฐ์กด์˜ ๊ณ„์ธตํ˜• ์•„ํ‚คํ…์ฒ˜๊ฐ€ ๊ฐ€์ง€๋˜ ์˜์กด์„ฑ์—์„œ ๋ฒ—์–ด๋‚˜๋„๋ก ํ•˜๋Š” ์„ค๊ณ„๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด Clean Architecture๋Š” ์™œ ์“ฐ๋Š”๋ฐ? Clean Architecture๋ฅผ ํ†ตํ•œ ์„ค๊ณ„๋ฅผ ํ•˜๊ฒŒ ๋˜๋ฉด ๊ด€์‹ฌ์‚ฌ๊ฐ€ ๋ถ„๋ฆฌ๋˜์–ด ํ™•์žฅ์„ฑ์ด ์ข‹์•„์ง€๊ณ  ์‰ฝ๊ฒŒ ํŒจํ‚ค์ง€ ๋ฐ ๊ตฌ์กฐ๋ฅผ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ๊ธฐ์— ์œ ์ง€๋ณด์ˆ˜ ์ธก๋ฉด์—..

Android 2023.02.20

[Kotlin][Android] ์•ˆ๋“œ๋กœ์ด๋“œ Room์˜ ์‚ฌ์šฉ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ

์•ˆ๋…•ํ•˜์„ธ์š” ๐Ÿ‘‹ ์˜ค๋Š˜์€ ์•ˆ๋“œ๋กœ์ด๋“œ Room์˜ ์‚ฌ์šฉ๋ฒ•์— ๋Œ€ํ•ด์„œ ํฌ์ŠคํŒ…ํ•ด๋ณด๋ ค ํ•ฉ๋‹ˆ๋‹ค. Room์ด๋ž€? ์Šค๋งˆํŠธํฐ ๋‚ด์žฅ DB์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ORM(Object Relational Mapping)๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค. Room์€ DB ๋ฐ์ดํ„ฐ๋ฅผ Java ๋˜๋Š” ์ฝ”ํ‹€๋ฆฐ ๊ฐ์ฒด๋กœ ๋งคํ•‘ํ•ด์ฃผ๋ฉฐ, SQLite๋ฅผ ๋‚ด๋ถ€์ ์œผ๋กœ ์‚ฌ์šฉํ•จ์œผ๋กœ์จ DB๋ฅผ ๊ตฌ์กฐ์ ์œผ๋กœ ๋ถ„๋ฆฌํ•˜๊ณ  ๋ฐ์ดํ„ฐ ์ ‘๊ทผ์˜ ํŽธ์˜์„ฑ์„ ๋†’์—ฌ์ฃผ์–ด ์œ ์ง€๋ณด์ˆ˜๋ฅผ ํŽธ๋ฆฌํ•˜๊ฒŒ ํ•ด ์ค๋‹ˆ๋‹ค. Room์˜ ๊ตฌ์กฐ์— ๋Œ€ํ•ด์„œ room์˜ ๊ตฌ์กฐ๋Š” ํฌ๊ฒŒ Database , DAO , Entity๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜๋Š” Room์˜ ๊ตฌ์กฐ์ด๋ฉฐ ๊ฐ๊ฐ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•˜๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. Entity(์—”ํ‹ฐํ‹ฐ) DB ๋‚ด์˜ Table๋กœ class์˜ ๋ณ€์ˆ˜๋“ค์ด ์นผ๋Ÿผ(column)์ด ๋˜์–ด Table์ด ์ƒ์„ฑ..

Android/Kotlin 2022.12.16

[Kotlin][Android] ์•ˆ๋“œ๋กœ์ด๋“œ ์นด์นด์˜ค๋งต API ์‚ฌ์šฉํ•˜๊ธฐ - POI์ •๋ณด ํ™œ์šฉํ•˜์—ฌ ๋งต์— PIN ์ƒ์„ฑํ•˜๊ธฐ

์•ˆ๋…•ํ•˜์„ธ์š” ๐Ÿ‘‹ ์˜ค๋Š˜์€ ์ €๋ฒˆ ํฌ์ŠคํŠธ์— ์ด์–ด์„œ ์นด์นด์˜ค ๋งต API๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์ง€๋„์— PIN์„ ์ฐ๋Š” ๋ฒ•์„ ํฌ์ŠคํŒ…ํ•ด๋ณด๋ ค ํ•ฉ๋‹ˆ๋‹ค! ์นด์นด์˜ค ๋งต API์˜ ๊ธฐ๋ณธ ์„ค์ • ๋ฐ API๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์ง€๋„๋ฅผ ๋„์šฐ๋Š” ๋ฐฉ๋ฒ•์€ ์ด์ „ ํฌ์ŠคํŒ…์„ ์ฐธ๊ณ ํ•ด์ฃผ์„ธ์š” ๐Ÿ˜Ž [Kotlin][Android] ์•ˆ๋“œ๋กœ์ด๋“œ ์นด์นด์˜ค๋งต API ์‚ฌ์šฉํ•˜๊ธฐ - ์นด์นด์˜ค๋งต ํ™”๋ฉด์— ๋„์šฐ๊ธฐ ์•ˆ๋…•ํ•˜์„ธ์š” ์˜ค๋Š˜์€ ์นด์นด์˜ค ๋งต API๋ฅผ ํ™œ์šฉํ•˜๋Š” ๊ธฐ๋ณธ์ ์ธ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ํฌ์ŠคํŒ…ํ•ด๋ณด๋ ค ํ•ฉ๋‹ˆ๋‹ค. ์œ„์น˜์ •๋ณด๋ฅผ ์ด์šฉํ•  ์ˆ˜ ์žˆ๋Š” API๋Š” ๋งŽ์ง€๋งŒ ์ €๋Š” ๊ฐœ์ธ์ ์œผ๋กœ ์นด์นด์˜ค ๋งต์ด ๋ฌธ์„œ๊ฐ€ ์ž˜ ์ •๋ฆฌ๋˜์–ด์žˆ๋‹ค๊ณ  ์ƒ๊ฐ devyo-111commit.tistory.com ์นด์นด์˜ค ๋งต API์—์„œ๋Š” ํ‚ค์›Œ๋“œ์— ๋”ฐ๋ฅธ ์œ„์น˜ ์ •๋ณด๋ฅผ ์ „๋‹ฌํ•ด์ฃผ๋Š” API๊ฐ€ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋ฌธ์„œ๋Š” https://apis.map.kakao.com/andr..

Android/Kotlin 2022.11.28

[Kotlin][Android] ์•ˆ๋“œ๋กœ์ด๋“œ MVVM ํŒจํ„ด์— ๋Œ€ํ•ด์„œ - Retrofit์œผ๋กœ ์ „์†ก๋ฐ›์€ ๊ฐ’์„ MVVM๊ตฌ์กฐ ์ ์šฉํ•˜์—ฌ ๊ตฌํ˜„ํ•˜๊ธฐ

์•ˆ๋…•ํ•˜์„ธ์š” ๐Ÿ‘‹ ์˜ค๋Š˜์€ MVVM ํŒจํ„ด์— ๋Œ€ํ•ด์„œ ๊ณต๋ถ€ํ•œ ๋‚ด์šฉ์„ ํฌ์ŠคํŒ…ํ•ด๋ณด๋ ค ํ•ฉ๋‹ˆ๋‹ค. MVVM ํŒจํ„ด์ด๋ž€? MVVM ํŒจํ„ด์€ Model, View, ViewModel์„ ๋ถ„๋ฆฌํ•ด View์™€ Model ๊ฐ„์˜ ์˜์กด์„ฑ์„ ์ค„์—ฌ์ฃผ๋Š” ํŒจํ„ด์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. View ์ด๋ฒคํŠธ๋ฅผ ๋ฐœ์ƒ์‹œ์ผœ ๋ฐ์ดํ„ฐ๋ฅผ ์š”์ฒญ โฌ‡๏ธ ViewModel View์—์„œ ์š”์ฒญํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๋Š” ํ•จ์ˆ˜ ๋“ฑ์„ ํ˜ธ์ถœ โฌ‡๏ธ Model ViewModel์—์„œ ์š”์ฒญํ•˜๋Š” ๊ฐ’์„ ๋ฐ˜ํ™˜ โฌ‡๏ธ ViewModel ๋ชจ๋ธ์—์„œ ๋ฐ˜ํ™˜๋ฐ›์€ ๊ฐ’์„ LiveData๋กœ ๊ฐ์‹ธ์คŒ โฌ‡๏ธ View ๋ผ์ด๋ธŒ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ์ง€ํ•˜์—ฌ ์ถœ๋ ฅ ๊ทธ๋ ‡๋‹ค๋ฉด.. ์™œ MVVMํŒจํ„ด์„ ์‚ฌ์šฉํ• ๊นŒ์š”? ๊ธฐ์กด์— ์‚ฌ์šฉํ•˜๋˜ ํŒจํ„ด์œผ๋ก  MVC , MVP ํŒจํ„ด์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. MVC์˜ ๊ฒฝ์šฐ View์™€ Controller๋ฅผ ์•กํ‹ฐ๋น„ํ‹ฐ์—์„œ ๋ชจ๋‘ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•˜๊ธฐ์— Vie..

Android/Kotlin 2022.11.10

[Kotlin][Android] ์•ˆ๋“œ๋กœ์ด๋“œ Coroutine(์ฝ”๋ฃจํ‹ด) ์‚ฌ์šฉํ•˜์—ฌ ๋กœ๋”ฉ ํ™”๋ฉด(๋‹ค์ด์–ผ๋กœ๊ทธ) ๋งŒ๋“ค๊ธฐ

์•ˆ๋…•ํ•˜์„ธ์š” ๐Ÿ‘‹ ์˜ค๋Š˜์€ ์ฝ”๋ฃจํ‹ด์„ ํ™œ์šฉํ•˜์—ฌ ์•ˆ๋“œ๋กœ์ด๋“œ์—์„œ ๋กœ๋”ฉ ํ™”๋ฉด(๋‹ค์ด์–ผ๋กœ๊ทธ)์„ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์„ ํฌ์ŠคํŒ…ํ•ด๋ณด๋ ค ํ•ฉ๋‹ˆ๋‹ค. ์ฝ”๋ฃจํ‹ด์˜ ๊ธฐ๋ณธ์ ์ธ ์„ค๋ช…๊ณผ ์‚ฌ์šฉ๋ฒ•์— ๋Œ€ํ•ด์„œ๋Š” ์•„๋ž˜ ํฌ์ŠคํŒ…๋“ค์— ์ž์„ธํ•˜๊ฒŒ ์„ค๋ช…๋˜์–ด ์žˆ์œผ๋‹ˆ ํ™•์ธ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค ๐Ÿ˜Ž [Kotlin] ์ฝ”ํ‹€๋ฆฐ Coroutine(์ฝ”๋ฃจํ‹ด)์— ๋Œ€ํ•˜์—ฌ (1) - CoroutineScope์™€ CoroutineContext ๋ฐ ๊ธฐ๋ณธ ์‚ฌ์šฉ๋ฐฉ๋ฒ• ์•ˆ๋…•ํ•˜์„ธ์š” ์˜ค๋Š˜์€ ์ฝ”ํ‹€๋ฆฐ์˜ Coroutine์— ๋Œ€ํ•˜์—ฌ ํฌ์ŠคํŒ…ํ•ด๋ณด๋ ค ํ•ฉ๋‹ˆ๋‹ค. Coroutine์ด๋ž€? ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ํ•˜๋‚˜์˜ ์ž‘์—… ๋‹จ์œ„๋ฅผ Routine์ด๋ผ ํ•˜๋Š”๋ฐ ๊ฐ Routine์ด ํ˜‘์—…(Co)ํ•˜์—ฌ ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ณผ์ •์„ ํ•ฉ์น˜๊ฒŒ devyo-111commit.tistory.com [Kotlin] ์ฝ”ํ‹€๋ฆฐ Coroutine(์ฝ”๋ฃจํ‹ด)์— ๋Œ€ํ•˜์—ฌ (2) - ์ฝ”..

Android/Kotlin 2022.11.01

[Kotlin][Android] ์•ˆ๋“œ๋กœ์ด๋“œ RecyclerView(๋ฆฌ์‹ธ์ดํด๋Ÿฌ ๋ทฐ)์˜ ์‚ฌ์šฉ๋ฐฉ๋ฒ•

์•ˆ๋…•ํ•˜์„ธ์š” ๐Ÿ‘‹ ์˜ค๋Š˜์€ RecyclerView์— ๋Œ€ํ•ด์„œ ๊ณต๋ถ€ํ•œ ๋‚ด์šฉ์„ ํฌ์ŠคํŒ…ํ•ด๋ณด๋ ค ํ•ฉ๋‹ˆ๋‹ค. RecyclerView(๋ฆฌ์‹ธ์ดํด๋Ÿฌ ๋ทฐ)๋ž€? RecyclerView๋Š” ListView์ฒ˜๋Ÿผ ์ œํ•œ๋œ ํ™”๋ฉด(Window)์— ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ ์…‹์„ ๋ณด์—ฌ์ค„ ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ListView๋Š” ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ๊ฐ€ ์ƒ์„ฑ๋  ๋•Œ View๋ฅผ ๊ณ„์† ์ƒˆ๋กœ ์ƒ์„ฑ ํ•˜์ง€๋งŒ RecyclerView๋Š” ๋ฏธ๋ฆฌ ์ƒ์„ฑ๋œ View๋ฅผ ๊ณ„์† '์žฌํ™œ์šฉ(Recycle)' ํ•˜์—ฌ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ListView์— ๋น„ํ•ด ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ์ ์œผ๋กœ ํšจ์œจ์ ์ด๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. RecyclerView.ViewHolder RecyclerView๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” View์˜ ViewHolder๋กœ View์˜ ์ปดํฌ๋„ŒํŠธ๋“ค์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. RecyclerViewAdapter๋ฅผ ํ†ตํ•ด ViewHol..

Android/Kotlin 2022.10.28

[Kotlin][Android] ์•ˆ๋“œ๋กœ์ด๋“œ Fragment(ํ”„๋ž˜๊ทธ๋จผํŠธ)์˜ ์ƒ๋ช…์ฃผ๊ธฐ ๋ฐ ์‚ฌ์šฉ๋ฐฉ๋ฒ•

์•ˆ๋…•ํ•˜์„ธ์š” ๐Ÿ‘‹ ์˜ค๋Š˜์€ ์•ˆ๋“œ๋กœ์ด๋“œ ํ”„๋ž˜๊ทธ๋จผํŠธ์— ๋Œ€ํ•˜์—ฌ ๊ณต๋ถ€ํ•œ ๋‚ด์šฉ์„ ํฌ์ŠคํŒ…ํ•ด๋ณด๋ ค ํ•ฉ๋‹ˆ๋‹ค. Fragment(ํ”„๋ž˜๊ทธ๋จผํŠธ)๋ž€? ํ”„๋ž˜๊ทธ๋จผํŠธ๋Š” ์ž์ฒด ์ˆ˜๋ช… ์ฃผ๊ธฐ๋ฅผ ๊ฐ€์ง€๊ณ , ์ž์ฒด ์ž…๋ ฅ ์ด๋ฒคํŠธ๋ฅผ ๋ฐ›์œผ๋ฉฐ, ์•กํ‹ฐ๋น„ํ‹ฐ ์‹คํ–‰ ์ค‘์— ์ถ”๊ฐ€ ๋ฐ ์ œ๊ฑฐ๊ฐ€ ๊ฐ€๋Šฅํ•œ ์•กํ‹ฐ๋น„ํ‹ฐ์˜ ๋ชจ๋“ˆ์‹ ์„น์…˜์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค(๋‹ค๋ฅธ ์•กํ‹ฐ๋น„ํ‹ฐ์— ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” "ํ•˜์œ„ ์•กํ‹ฐ๋น„ํ‹ฐ"์™€ ๊ฐ™์€ ๊ฐœ๋…). Fragment(ํ”„๋ž˜๊ทธ๋จผํŠธ)์˜ ์ƒ๋ช…์ฃผ๊ธฐ ํ”„๋ž˜๊ทธ๋จผํŠธ๋„ ์•กํ‹ฐ๋น„ํ‹ฐ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์ƒ๋ช…์ฃผ๊ธฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ ์•กํ‹ฐ๋น„ํ‹ฐ์— ์ข…์†๋˜์–ด ์žˆ๋Š” ๋งŒํผ ์•กํ‹ฐ๋น„ํ‹ฐ์˜ ์ƒ๋ช…์ฃผ๊ธฐ์™€ ๊ด€๋ จ์ด ๊นŠ์Šต๋‹ˆ๋‹ค. ์œ„ ์‚ฌ์ง„์€ ํ”„๋ž˜๊ทธ๋จผํŠธ์˜ ์ƒ๋ช…์ฃผ๊ธฐ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋‹ค์ด์–ด๊ทธ๋žจ์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ํ”„๋ž˜๊ทธ๋จผํŠธ๋„ Create , Start , Pause , Stop , Destroy๊ฐ€ ์กด์žฌํ•˜์ง€๋งŒ ์กด์žฌํ•˜์ง€๋งŒ ํ”„๋ž˜๊ทธ๋จผํŠธ ๋‚ด๋ถ€ vie..

Android/Kotlin 2022.10.20