[Android TIL] 240501 (์Šคํƒ ๋‹ค๋“œ๋ฐ˜ 7์ฃผ์ฐจ, ํŠน๊ฐ•)
๋ฐ˜์‘ํ˜•

 

 

 

 

 

๐ŸŒฑ Today I Learned 

  1. (10:00 ~ 10:30 / 30๋ถ„) ๋ฐ์ผ๋ฆฌ ์Šคํฌ๋Ÿผ ๋ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ฝ”๋“œ์นดํƒ€
  2. (11:00 ~ 12:40 / 1์‹œ๊ฐ„ 40๋ถ„) ํ™”์ดํŒ… ๋ฏธ๋‹ˆ ํŠน๊ฐ•
  3. (12:40 ~ 13:30 / 50๋ถ„) TIL ์ด๋ฒˆ ์ฃผ ๋ชฉํ‘œ ์ž‘์„ฑ ๋ฐ ์ •๋ฆฌ
  4. (19:30 ~ 20:00 / 30๋ถ„) Room ์ •๋ฆฌ
  5. (20:00 ~ 20:20 / 20๋ถ„) ๋ฐ์ผ๋ฆฌ ํšŒ๊ณ 

*** ์ ์‹ฌ 13:00 ~ 14:00 / ์ €๋… 18:00 ~ 19:00 ์ œ์™ธ

โ€‹

 

๐Ÿ“… ์ด๋ฒˆ ์ฃผ ๋ชฉํ‘œ 

์ง‘์ค‘์‹œ๊ฐ„
โฐ ์ด 0์‹œ๊ฐ„ 0๋ถ„
ํ™”์š”์ผ
(โฐ 3:10)
์ˆ˜์š”์ผ
(โฐ 0:00)
๋ชฉ์š”์ผ
(โฐ 0:00)
๊ธˆ์š”์ผ
(โฐ 0:00)
์ฃผ๋ง
(โฐ 0:00)
์‹ฌํ™” ๊ฐ•์˜ ์ˆ˜๊ฐ• โ–  Shared
  Preference
โ–ก Room
โ–ก ์‚ฌ์šฉ์ž์œ„์น˜
โ–ก ๊ตฌ๊ธ€์ง€๋„์•ฑ
โ–ก Retrofit
โ–ก ๋ฏธ์„ธ๋จผ์ง€์•ฑ
โ–ก ๊ฐœ๋ฐœํ”„๋กœ์„ธ์Šค
โ–ก ๋””๋ฒ„๊น…
โ–ก ๋ณต์Šต  
๊ฐœ์ธ ๊ณผ์ œ ์‹œ์ž‘       โ–ก ๊ฐœ์ธ ๊ณผ์ œ ์‹œ์ž‘ โ–ก ๊ฐœ์ธ ๊ณผ์ œ ๊ตฌํ˜„
Fragment ์ดํ•ด
- ๋ฐ์ดํ„ฐ ์ „๋‹ฌ
- ํ™”๋ฉด ์ด๋™
      โ–ก ํ™”๋ฉด ์ด๋™ โ–ก ๋ฐ์ดํ„ฐ ์ „๋‹ฌ
์•Œ๊ณ ๋ฆฌ์ฆ˜     โ–ก ์•Œ๊ณ ๋ฆฌ์ฆ˜ โ–ก ์•Œ๊ณ ๋ฆฌ์ฆ˜ โ–ก ์•Œ๊ณ ๋ฆฌ์ฆ˜
์ˆ™๋ จ ์ฃผ์ฐจ ํŒ€ํ”„๋กœ์ ํŠธ ์ฝ”๋“œ ๋ถ„์„       โ–ก ์ฝ”๋“œ ๋ถ„์„ โ–ก ์ฝ”๋“œ ๋ถ„์„
์Šคํƒ ๋‹ค๋“œ๋ฐ˜   โ–  7์ฃผ์ฐจ ๊ฐ•์˜ โ–ก 7์ฃผ์ฐจ ๊ฐ•์˜ ๋ณต์Šต
โ–ก MVVM๊ณผ์ œ ๋ณต์Šต
   
๋ฒ ์ด์ง๋ฐ˜ ๊ฐ•์˜
๋“ค์–ด๋ณด๊ธฐ
    โ–ก 5ํšŒ์ฐจ ๊ฐ•์˜ โ–ก 6ํšŒ์ฐจ ๊ฐ•์˜ โ–ก 7ํšŒ์ฐจ ๊ฐ•์˜
Joyce ์„œ์  ๋…ํ•™   โ–ก 151 ~ 217p
   (๋ทฐ, ๋ ˆ์ด์•„์›ƒ)
โ–ก ์Šคํ†ฑ์›Œ์น˜ โ–ก ๋ฎค์ง ํ”Œ๋ ˆ์ด์–ด โ–ก QR ๋ฆฌ๋”๊ธฐ
๊ธฐํƒ€ ์‚ฌํ•ญ   โ–  ํ™”์ดํŒ… ํŠน๊ฐ•     โ–ก ์ •์ฐฝ๊ฒฝ ์ •๋ฆฌ
์‹ฌํ™” ๋ชฉํ‘œ
 - KIA ๊ฐœ๋… ํ›‘๊ธฐ
 - Android Developer ์ฝ๊ธฐ
 - ๊ฐœ์ธํ”„๋กœ์ ํŠธ UI ๊ตฌํ˜„
 - ์ €๋ฒˆ ํ”„๋กœ์ ํŠธ ์ฝ”๋“œ ๋œฏ์–ด๋ณด๊ธฐ
 - ๋งํฌ ์ˆ˜๊ฐ•

 

 

 

1. ์•ˆ๋“œ๋กœ์ด๋“œ ์‹ฌํ™” ๊ฐ•์˜ ์ˆ˜๊ฐ• ๋ฐ ์ •๋ฆฌ

 

[Android ๊ธฐ์ดˆ] 15. SharedPreferences

์•ˆ๋“œ๋กœ์ด๋“œ์—์„œ์˜ ์˜๊ตฌ(๋น„ํœ˜๋ฐœ์„ฑ) ๋ฐ์ดํ„ฐ ์ €์žฅ๋ฒ•SharedPreference (์„ค์ • ์ •๋ณด ์ €์žฅํ•  ๋•Œ ๋งŽ์ด ์‚ฌ์šฉ)๋ฐ์ดํ„ฐ๋ฒ ์ด์ŠคํŒŒ์ผ<p data-ke-size="si..

limheejin.tistory.com

 

[Android ๊ธฐ์ดˆ] 16. Room (๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค)

์•ˆ๋“œ๋กœ์ด๋“œ์—์„œ์˜ ์˜๊ตฌ(๋น„ํœ˜๋ฐœ์„ฑ) ๋ฐ์ดํ„ฐ ์ €์žฅ๋ฒ•SharedPreference๋ฐ์ดํ„ฐ๋ฒ ์ด์ŠคํŒŒ์ผ   1) Room ๊ฐœ์š”SQLite๋ฅผ ์‰ฝ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐ์ฒด ๋งคํ•‘ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์‰ฝ๊ฒŒ Query๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” API๋ฅผ

limheejin.tistory.com

 

 

 

 

2. ์Šคํƒ ๋‹ค๋“œ๋ฐ˜ 7์ฃผ์ฐจ 

 

api ํ…Œ์ŠคํŠธ

 

Json์ด๋ž€?

  • ํ‚ค-๊ฐ’(key-value)๋กœ ์ด๋ฃจ์–ด์ง„ ๊ตฌ์กฐํ™”๋œ ๋ฐ์ดํ„ฐ๋ฅผ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•œ ๋ฌธ์ž ๊ธฐ๋ฐ˜์˜ ํ‘œ์ค€ ํฌ๋งท(๋ฐ์ดํ„ฐ ํ˜•์‹)
  • ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›๋Š”๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๊ฒฝ๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ ๊ตํ™˜ ํ˜•์‹
  • JSON์€ ๋ฐ์ดํ„ฐ ํฌ๋งท์ผ ๋ฟ์ด๋ฉฐ ์–ด๋– ํ•œ ํ†ต์‹  ๋ฐฉ๋ฒ•๋„, ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฌธ๋ฒ•๋„ ์•„๋‹Œ ๋‹จ์ˆœํžˆ ๋ฐ์ดํ„ฐ๋ฅผ ํ‘œ์‹œํ•˜๋Š” ํ‘œํ˜„ ๋ฐฉ๋ฒ•

 

Json Converting ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

- Gson (Json์„ ์ž๋ฐ” ๊ฐ์ฒด๋กœ ์ปจ๋ฒ„ํŒ…)
- Moshi 

 

Repository Pattern

  • ์ฃผ๋œ ๋ชฉ์ ์€ Data Layer๋ฅผ ์บก์Šํ™”ํ•˜๊ธฐ ์œ„ํ•จ
    - ๋ฐ์ดํ„ฐ ๋ ˆ์ด์–ด์™€ ํ”„๋ ˆ์  ํ…Œ์ด์…˜ ๋ ˆ์ด์–ด์˜ ๊ฒฐํ•ฉ๋„(Coupling)๊ฐ€ ์ค„์–ด๋“ฆ
  • Data์˜ ์ถœ์ฒ˜(network, local data, file ๋“ฑ)์— ๊ด€๊ณ„ ์—†์ด ๋™์ผํ•œ ์ธํ„ฐํŽ˜์ด์Šค๋กœ ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ํŒจํ„ด
  • repository → datasource ์˜์กด์„ฑ ํšŒํ”ผ
    : ์˜์กด์„ฑ์„ ์—†์• ๋ฉด dataSource ๋ณ€๊ฒฝ์‹œ (ex. network → local data๋กœ ๋ณ€๊ฒฝ ์‹œ) repository์—๋Š” ์˜ํ–ฅ์ด ์—†์Œ
  • ํ”„๋ ˆ์  ํ…Œ์ด์…˜ ๋ ˆ์ด์–ด์—์„œ ๋ฐ์ดํ„ฐ ๋ ˆ์ด์–ด์— ์ง์ ‘ ์ ‘๊ทผํ•˜์ง€ ์•Š์•„๋„, ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋กœ ๋ฐ์ดํ„ฐ ์š”์ฒญ๋งŒ ํ•˜๋ฉด ๋จ
    -> ์ƒˆ๋กœ์šด Data ์ถ”๊ฐ€๊ฐ€ ์‰ฌ์›€
  • ๋ฐ์ดํ„ฐ ๋ ˆ์ด์–ด์˜ Data class๋งŒ ๋™์ผํ•˜๋‹ค๋ฉด, cache, remote ๊ฒฐ๊ณผ ๊ฐ’์ธ Data class๋งŒ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ๊ตฌํ˜„์ฒด์— ๋ณด๋‚ด์ฃผ๋ฉด ๋จ

 

๋„คํŠธ์›Œํฌ ๋ฐ์ดํ„ฐ ๋ฐ›์•„์˜ค๋Š” ๊ตฌ์กฐ

 

 

LiveData์™€ ํ•จ๊ป˜ ์ฝ”๋ฃจํ‹ด ์‚ฌ์šฉ

 

์ˆ˜๋ช… ์ฃผ๊ธฐ ์ธ์‹ ๊ตฌ์„ฑ์š”์†Œ๋กœ Kotlin ์ฝ”๋ฃจํ‹ด ์‚ฌ์šฉ  |  Android ๊ฐœ๋ฐœ์ž  |  Android Developers

์ด ํŽ˜์ด์ง€๋Š” Cloud Translation API๋ฅผ ํ†ตํ•ด ๋ฒˆ์—ญ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ˆ˜๋ช… ์ฃผ๊ธฐ ์ธ์‹ ๊ตฌ์„ฑ์š”์†Œ๋กœ Kotlin ์ฝ”๋ฃจํ‹ด ์‚ฌ์šฉ ์ปฌ๋ ‰์…˜์„ ์‚ฌ์šฉํ•ด ์ •๋ฆฌํ•˜๊ธฐ ๋‚ด ํ™˜๊ฒฝ์„ค์ •์„ ๊ธฐ์ค€์œผ๋กœ ์ฝ˜ํ…์ธ ๋ฅผ ์ €์žฅํ•˜๊ณ  ๋ถ„๋ฅ˜ํ•˜์„ธ์š”. Kotlin ์ฝ”

developer.android.com

  • ๋ผ์ด๋ธŒ ์ฝ”๋”ฉํ•˜์‹ค ๋•Œ data, extension, network(retrofit์„ค์ •), presentation ์œผ๋กœ ํŒจํ‚ค์ง•ํ•˜์‹œ๋Š” ๊ฑธ ํ™•์ธ

 

 

3. ํ™”์ดํŒ… ๋ฏธ๋‹ˆ ํŠน๊ฐ•

 

๊ฐœ๋ฐœ์ž๊ฐ€ ๋˜๊ธฐ๋กœ ๊ฒฐ์ •ํ•˜๋Š” ์ด์œ 

  • ๊ฐœ์ธ์  ์„ฑ์žฅ : ์ƒˆ๋กœ์šด ๊ธฐ์ˆ ์„ ๋ฐฐ์šฐ๋ฉฐ ์ž๊ธฐ๊ณ„๋ฐœ์„ ์ง€์†
  • ์‚ฌํšŒ์  ๊ธฐ์—ฌ : ๊ธฐ์ˆ ์„ ํ†ตํ•ด ์‚ฌํšŒ์  ๋ฌธ์ œ ํ•ด๊ฒฐ, ๋‹ค๋ฅธ ์ด๋“ค์˜ ์ƒํ™œ ๊ฐœ์„ 
  • ์ฐฝ์—… ๊ธฐํšŒ : ๊ธฐ์ˆ ๋ ฅ์„ ๋ฐ”ํƒ•์œผ๋กœ ์ฐฝ์—…ํ•˜๊ฑฐ๋‚˜ ์Šคํƒ€ํŠธ์—… ์ฐธ์—ฌํ•  ๊ธฐํšŒ ๋งŽ์Œ
  • ์ทจ๋ฏธ์™€ ์ง์—…์˜ ์—ฐ๊ฒฐ : ์ฝ”๋”ฉ์ด ์ทจ๋ฏธ์ธ ์‚ฌ๋žŒ๋“ค์ด ์ž์‹ ์˜ ์—ด์ •์œผ๋กœ ์ง์—… ์„ ํƒ

 

๊ฐœ๋ฐœ์ž๋กœ ์‚ด๋ฉด์„œ ์ข‹์€ ์ 

  • ์ฐฝ์˜๋ ฅ ๋ฐœํœ˜, ์•„์ด๋””์–ด ์‹ค์ œ๋กœ ๊ตฌํ˜„
  • ์ง€์†์ ์ธ ํ•™์Šต, ๊ณ„์† ์ƒˆ๋กœ์šด ๊ฑธ ๋ฐฐ์›€
  • ๋ฌธ์ œ ํ•ด๊ฒฐ, ์„ฑ์ทจ๊ฐ
  • ์œ ์—ฐํ•œ ๊ทผ๋ฌด ํ™˜๊ฒฝ, ๊ทผ๋ฌด ์‹œ๊ฐ„
  • ๋†’์€ ์ˆ˜์š”, ๋น„๊ต์  ์•ˆ์ •์ 
  • ๋†’์€ ๊ธ‰์—ฌ

 

๊ฐœ๋ฐœ์ž ์ ์„ฑ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

  • ๋ฐฉํƒˆ์ถœ ๊ฒŒ์ž„์ฒ˜๋Ÿผ ์ •ํ•ด์ง„ ๋ฌธ์ œ๋ฅผ ๋‘๊ณ  ํ’€์–ด ๋‚ด๋Š” ๊ฒƒ์— ์„ฑ์ทจ๊ฐ
  • ๋ฌธ์ œ๋ฅผ ํ’€ ๋•Œ ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•์„ ์‹œ๋„ํ•˜๊ณ  ์ด ๊ณผ์ •์„ ์ฆ๊น€
  • ์˜์—…๊ณผ ๊ฐ™์€ ํ™œ๋™์ ์ธ ์ผ๋ณด๋‹ค๋Š” ์‚ฌ๋ฌด์‹ค์—์„œ ํ•˜๋ฃจ ์ข…์ผ ์•‰์•„ ์ผํ•˜๋Š” ๊ฒŒ ์ข‹์Œ
  • ํ˜‘์—…๋ณด๋‹ค๋Š” ํ˜ผ์ž ์ผํ•˜๋Š” ๊ฒŒ ํŽธํ•˜์ง€๋งŒ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜์ด ์–ด๋ ต์ง„ ์•Š์Œ
  • ๋ชจ๋ฅด๋Š” ๊ฒƒ์„ ๊ณต๋ถ€ํ•˜๊ฑฐ๋‚˜ ์ž๊ธฐ๊ณ„๋ฐœํ•˜๋Š” ๊ฒƒ์„ ์ฆ๊น€
  • ํ•˜๋‚˜์˜ ์ผ์ด ํ’€๋ฆฌ์ง€ ์•Š์œผ๋ฉด ํ•ด๊ฒฐํ•  ๋•Œ๊นŒ์ง€ ๋งค๋‹ฌ๋ฆฌ๋Š” ํŽธ
  • ๋ˆ„๊ตฐ๊ฐ€๋ฅผ ์„ค๋“ํ•ด์•ผํ•  ๋•Œ ๊ฒฝํ—˜์ด๋‚˜ ๊ฐ์ •์œผ๋กœ ์„ค๋“ํ•˜๋Š” ๊ฒŒ ์•„๋‹ˆ๋ผ ์ •ํ™•ํ•œ ์ž๋ฃŒ๋ฅผ ์ค€๋น„ํ•ด ๋งํ•˜๋Š” ํŽธ์ด๋‹ค
  • ๋‚ด ์†์œผ๋กœ ๋ฌด์–ธ๊ฐ€ ๋งŒ๋“ค์–ด ๊ฒฐ๊ณผ๋ฌผ์„ ๋งŒ๋“ค์–ด ๋‚ด๋Š” ๊ฒƒ์—์„œ ์„ฑ์ทจ๊ฐ์„ ๋Š๋‚Œ
  • ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธฐ๊ฑฐ๋‚˜ ์–ด๋–ค ๊ฒฐ๊ณผ๋ฅผ ๋ดค์„ ๋•Œ, ๊ทผ์›์„ ์ฐพ์•„๊ฐ€ ์›์ธ์„ ๋ถ„์„ํ•˜๋Š” ๊ฒƒ์„ ์ข‹์•„ํ•จ

 

Q&A

  • ํ”„๋ฆฌ๋žœ์„œ ์ „ํ™˜์€ ๋ณดํ†ต 1~2๋…„์€ ์—†๊ณ  5๋…„์ฐจ๋ถ€ํ„ฐ ๋งŽ์Œ
    ์›” ์ฒœ ๋งŒ์›์”ฉ ๊ฐ€์ ธ๊ฐ€์ง€๋งŒ, ๊ฐ€์ •์ด ์žˆ๋Š” ๊ฒฝ์šฐ ๊ณ ์šฉ๋ถˆ์•ˆ์ • ๋•Œ๋ฌธ์— ๋Œ€๋ถ€๋ถ„ ์ •๊ทœ์ง์„ ์„ ํ˜ธ
    ํšŒ์‚ฌ๋งˆ๋‹ค ํŠน์ • ๊ธฐ๋Šฅ ํ”„๋ฆฌ๋žœ์„œ๋“ค์ด ์กด์žฌํ•  ์ˆ˜ ์žˆ์Œ
  • ๊ฐ€๋Šฅํ•˜๋ฉด ํŒ€ํ”„๋กœ์ ํŠธ๋ณด๋‹ค ๊ฐœ์ธํ”„๋กœ์ ํŠธ๊ฐ€ ๋ณด๊ธฐ์—” ์ข‹์Œ
  • ๋‹น์—ฐํ•˜์ง€๋งŒ ์บ ํ”„ ๋๋‚˜๋„ ๊ณต๋ถ€ ๊ณ„์† ํ•ด์•ผ ํ•จ
  • ์ ํ”„ํ•  ๊ฑฐ ์ƒ๊ฐํ•˜๊ณ  ์ฒ˜์Œ์—” ์–ด๋”” ํšŒ์‚ฌ๋“  ๋“ค์–ด๊ฐ€๊ณ  3~5๋…„์ฐจ์— ์นด์นด์˜ค๋ฑ…ํฌ ๊ฐ™์€ ๋ฐ ๊ฒฝ๋ ฅ์ง์œผ๋กœ ์ ํ”„ ๊ฐ€๋Šฅ

 

 

 

 

๐Ÿ’ญ Retrospect

์ž‘์„ฑ์ค‘์ด๋‹ค. ๋ชฉํ‘œ๋ฅผ ๋ชฉ๋ก์‹์œผ๋กœ ๋‚˜์—ดํ•˜๋‹ˆ ์šฐ์„ ์ˆœ์œ„๋‚˜ ์š”์ผ๋ณ„ ๊ตฌ๋ถ„์ด ํž˜๋“ค์–ด์„œ, ํ‘œ ํ˜•์‹์œผ๋กœ ๋‚˜๋ˆ„์–ด๋ณด์•˜๋‹ค.

์ค‘๊ฐ„์— ๋ชธ์ด ์ข€ ์•ˆ ์ข‹์•˜๋‹ค.

โ€‹

 

 

 

 

๋ฐ˜์‘ํ˜•
 ๐Ÿ’ฌ C O M M E N T