///////
Search

3์ฃผ์ฐจ ํšŒ๊ณ (5/16 - 5/22)

ย ์ด๋ฒˆ ์ฃผ ๋ชฉํ‘œย 

โ€ข
[ V ] ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ ์ž…๋ฌธ ์บ˜๋ฆฐ๋” ์™„์„ฑ
โ€ข
[ V ] ๊ฐœ์ธ ํ”„๋กœ์ ํŠธ ๋””์ž์ธ ์ˆ˜์ •
โ€ข
[ ฮ” ] ๋””์ž์ธํŒจํ„ด(MVVM / MVP) ํ•™์Šต
โ€ข
[ V ] ์ด๋ฒˆ ์ฃผ ๊ฐ•์˜ ์ •๋ฆฌํ•˜์—ฌ ๋ธ”๋กœ๊ทธ ์ž‘์„ฑ

ย Liked(์ข‹์•˜๋˜ ์ )

Kotlin ๋…ํ•™์—์„œ ๋ฐฐ์šฐ์ง€ ๋ชปํ•œ ๊ฒƒ์„ ๋ฐฐ์› ๋‹ค
โ€ข
๋…ํ•™์œผ๋กœ ์•Œ๊ฒŒ ๋๋˜๊ฑด ? ์—ฐ์‚ฐ์ž์™€ lateinit ์ •๋„์˜€๋Š”๋ฐ ๋ฌธ๋ฒ•์ ์œผ๋กœ ๊นŠ๊ฒŒ ๋“ค์–ด์˜ค๋‹ˆ ๋ชจ๋ฅด๋Š” ๋ถ€๋ถ„์ด ๋งŽ์•˜๋‹ค. ๊ฐ•์˜๋ฅผ ์ด์ „๋ณด๋‹ค ์—ด์‹ฌํžˆ ๋“ฃ๊ณ  ์ฃผ์„์„ ๋งŽ์ด ๋‹ฌ์•„์•ผ๊ฒ ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค.
โ€ข
๋งˆ๋ƒฅ Java์™€ ๋น„์Šทํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋Š”๋ฐ Kotlin์—์„œ ์ง€์›ํ•˜๋Š” ๊ฒƒ๋„ ๋งŽ๊ณ , Companion๊ณผ Static์ฒ˜๋Ÿผ ์ด๋ฆ„์€ ๋‹ค๋ฅด์ง€๋งŒ ๊ธฐ๋Šฅ์ด ๋น„์Šทํ•œ ๋ถ€๋ถ„๋„ ์žˆ์–ด์„œ ๋ฐฐ์šฐ๋Š” ๋ฐ ๋ฟŒ๋“ฏํ•จ์ด ๋А๊ปด์กŒ๋‹ค.

ย Lacked (์•„์‰ฌ์› ๋˜ ์ )

๋””์ž์ธ ์š”์†Œ ์ง‘์ฐฉ

โ€ข
recyclerView๋ฅผ ์‚ฌ์šฉํ–ˆ๋Š”๋ฐ ๊ธฐ๊ธฐ ์ž์ฒด ๋ฉ”๋‰ด๋ฐ” ๋•Œ๋ฌธ์— ๋งˆ์ง€๋ง‰ item์ด ๊ฐ€๋ ค์กŒ๋‹ค. ๊ทธ๋ƒฅ ์ง„ํ–‰ํ•ด๋„ ๋์ง€๋งŒ ์™ ์ง€ ๊ฑฐ์Šฌ๋ ค์„œ ๊ณ„์† ๊ณ ์น˜๊ฒŒ ๋˜์—ˆ๋‹ค.
โ€ข
์ง€๊ธˆ ๋””์ž์ธ๋ณด๋‹ค๋Š” ๊ธฐ๋Šฅ ๊ตฌํ˜„์ด ๋จผ์ € ๋ผ์•ผ๋œ๋‹ค๋Š” ๊ฑธ ์•Œ๊ณ  ์žˆ์œผ๋ฉด์„œ๋„ ๊ณ ์น˜๊ธฐ ์œ„ํ•ด์„œ ์‹œ๊ฐ„์„ ๋งŽ์ด ํˆฌ์žํ–ˆ๋‹ค.

ํ•œ ๋‹ฌ ์ง‘์ค‘๋ ฅ ์†Œ๋ชจ

โ€ข
๊ทธ ๋™์•ˆ ์—ด์‹ฌํžˆ ํ–ˆ๋Š”๋ฐ ์ด๋ฒˆ ์ฃผ๋Š” ๊ฐ•์˜ ์ •๋ฆฌํ•˜๋Š” ๋ฐ์— ์‹œ๊ฐ„์„ ๋งŽ์ด ํˆฌ์žํ–ˆ๋‹ค. ์ง‘์ค‘๋ ฅ์ด ๋งŽ์ด ๋–จ์–ด์ง„ ๊ฒƒ์„ ์ฒด๊ฐํ•˜๊ณ  ์กฐ๋ฐ”์‹ฌ์ด ์ƒ๊ฒจ๋ฒ„๋ ธ๋‹ค.
โ€ข
๋ฆฌํ”„๋ ˆ์‰ฌ๋ฅผ ํ•‘๊ณ„๋กœ ๋А์Šจํ•˜๊ฒŒ ๊ณ„ํš์„ ์งฐ๋Š”๋ฐ ๋‹ค๋ฅธ ํ”„๋กœ์ ํŠธ๋ฅผ ํ•ด๋ณผ ๊ธฐํšŒ๊ฐ€ ์ƒ๊ฒจ์„œ ์กฐ๊ธˆ ํ›„ํšŒ๋œ๋‹ค.

ย Learned (๋ฐฐ์šด ์ )

kotlin ๋ฌธ๋ฒ•

โ€ข
Companion๊ณผ Static
โ—ฆ
Java์—์„œ๋Š” Static์„ ์‚ฌ์šฉํ•˜๊ณ , Kotlin์—์„œ๋Š” Companion์„ ์‚ฌ์šฉํ•œ๋‹ค. ์ด๋ฆ„์€ ๋‹ค๋ฅด์ง€๋งŒ ์ด๋ฅผ ์‚ฌ์šฉํ•œ ์š”์†Œ๋“ค์€ ๊ฐ์ฒด ์ƒ์„ฑ์—†์ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ณตํ†ต์ ์ด ์žˆ๋‹ค.
โ€ข
copy()๋ฅผ ์ด์šฉํ•œ ๊นŠ์€ ๋ณต์‚ฌ์™€ ์–•์€ ๋ณต์‚ฌ
โ—ฆ
data class์˜ copy()๋ฅผ ์ด์šฉํ•˜๋ฉด ๊นŠ์€ ๋ณต์‚ฌ๋ฅผ ํ•  ์ˆ˜ ์žˆ๋‹ค.
โ—ฆ
๊นŠ์€ ๋ณต์‚ฌ๋ฅผ ํ•˜๋ฉด ๊ฐ์ฒด์˜ ์ „์ฒด ๊ฐ’์„ ๋ณต์‚ฌํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ ๋ฉค๋ฒ„๋ณ€์ˆ˜์˜ ๊ฐ’์„ ๋ณ€๊ฒฝํ–ˆ์„ ๋•Œ ์›๋ณธ์ด ์œ ์ง€๋œ๋‹ค.
โ—ฆ
์–•์€ ๋ณต์‚ฌ๋Š” = ์—ฐ์‚ฐ์ž๋ฅผ ์ด์šฉํ•œ๋‹ค.
โ—ฆ
์–•์€ ๋ณต์‚ฌ๋ฅผ ํ•˜๋ฉด ๊ฐ์ฒด์˜ ์ฃผ์†Œ ๊ฐ’์„ ๋ณต์‚ฌํ•˜๋ฏ€๋กœ ๋ฉค๋ฒ„๋ณ€์ˆ˜์˜ ๊ฐ’์„ ๋ณ€๊ฒฝํ–ˆ์„ ๋•Œ ์›๋ณธ์ด ์œ ์ง€๋˜์ง€ ์•Š๋Š”๋‹ค.
โ€ข
as ์™€ is ๋ฅผ ์ด์šฉํ•œ ์บ์ŠคํŒ…
โ—ฆ
as : ๊ฐ์ฒด๋ฅผ ์ง€์ •๋œ ํด๋ž˜์Šค ํƒ€์ž…์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ์—ฐ์‚ฐ์ž
โ—ฆ
is : ํ˜• ๋ณ€ํ™˜์ด ๊ฐ€๋Šฅํ•˜๋ฉด ๋ณ€ํ™˜์„ ํ•˜๊ณ  true๋ฅผ ๋ฐ˜ํ™˜

ย Longed for (์•ž์œผ๋กœ ๋ฐ”๋ผ๋Š” ์ )

API๋ฅผ ์ด์šฉํ•˜์—ฌ json ํ†ต์‹  ์•ฑ ๊ฐœ๋ฐœ

โ€ข
rest API๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์•ฑ์„ ๊ฐœ๋ฐœํ•œ ๊ฒฝํ—˜์„ ๊ฐ€์ง„ ๊ฐœ๋ฐœ์ž๋ฅผ ์ฐพ๋Š” ๊ฒฝ์šฐ๊ฐ€ ์ข…์ข… ์žˆ๋‹ค.
โ€ข
์ด๋Ÿฌํ•œ ์ด์œ ๋กœ API๋ฅผ ํ™œ์šฉํ•˜์—ฌ json ํ†ต์‹ ์„ ํ•˜๋Š” ์•ฑ์„ ๊ฐœ๋ฐœํ•˜๋Š” ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•  ๊ณ„ํš์ด๋‹ค. ๋ฐฑ์—”๋“œ์—์„œ ์ฃผ๋Š” json ์ •๋ณด๋ฅผ ํ† ๋Œ€๋กœ ์•ฑ์„ ๊ฐœ๋ฐœํ•  ๊ฒƒ์ด๋‹ค. ๋””์ž์ธ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด์•ผ๋˜๋Š”๋ฐ ์ผ๋‹จ ํ”ผ๊ทธ๋งˆ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋””์ž์ธํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ด์•ผ ํ•  ๊ฒƒ ๊ฐ™๋‹ค.
โ€ข
ํ˜„์žฌ ์ง„ํ–‰ํ•˜๊ณ  ์žˆ๋Š” ๊ฐœ์ธ ํ”„๋กœ์ ํŠธ๋ฅผ ๋‹ค์Œ์ฃผ ์•ˆ์— ๋๋‚ด๊ณ  API ์‘์šฉ ํ”„๋กœ์ ํŠธ๋ฅผ ๋ฉ‹์‚ฌ ํ”„๋กœ์ ํŠธ ์‹œ์ž‘ ์ „๊นŒ์ง€ ๋งˆ๋ฌด๋ฆฌํ•˜์—ฌ ๋ฐฐํฌํ•  ๊ณ„ํš์ด๋‹ค.

๋””์ž์ธ ํŒจํ„ด ๊ณต๋ถ€

โ€ข
MVVM ์ž ๊น ์‚ดํŽด๋ดค๋Š”๋ฐ ๋‚ด๊ฐ€ ์ฐธ๊ณ ํ–ˆ๋˜ ์ฝ”๋“œ๋ž‘ ๋น„์Šทํ•œ๊ฑฐ ๊ฐ™๊ธฐ๋„ ํ•˜๊ณ  ์• ๋งคํ•˜๋‹ค.
โ€ข
Model - View - ViewModel ์ˆœ์„œ์ธ๋ฐ ๋‚˜๋Š” recyclerView๋ฅผ ์‚ฌ์šฉํ•˜๋‹ค๋ณด๋‹ˆ View - Adapter - Repository - ListViewModel ์ˆœ์„œ๋กœ ํ˜๋Ÿฌ๊ฐ„๋‹ค. ์ด๊ฒŒ MVVM์ด ๋งž๋Š”์ง€ ํŒ๋‹จ์ด ์ž˜ ์„œ์ง€ ์•Š๋Š”๋‹ค.
โ€ข
๊ณต์‹ ๋ฌธ์„œ๋ฅผ ์ฐธ๊ณ ํ•ด์•ผ๋  ๊ฒƒ ๊ฐ™๋‹ค.