๐ฑ Today I Learned (์ง์ค์๊ฐ : 6์๊ฐ 0๋ถ)
- (08:40 ~ 10:00 / 1์๊ฐ 20๋ถ) ์ฝ๋ ์์ฑ ์ค๋น ๋ฐ Git ์ด๊ธฐํ ๋ฐฉ๋ฒ ์ํ,
- (10:00 ~ 10:40 / 40๋ถ) ๋ฐ์ผ๋ฆฌ ์คํฌ๋ผ, ์ฝ๋์ ๋ํ ๋ํ
- (11:00 ~ 12:20 / 1์๊ฐ 20๋ถ) ์คํ ๋ค๋๋ฐ 5์ฃผ์ฐจ ๊ฐ์
- (12:25 ~ 12:55 / 30๋ถ) ๊ฐ์ธ ๊ณผ์ ์์ : git init ๋ฐ README.md ์์ฑ
- (19:00 ~ 20:30 / 1์๊ฐ 30๋ถ) ๊ฐ์ธ ๊ณผ์ ๊ตฌํ
- (20:30 ~ 21:10 / 40๋ถ) ํ ๋ฐ์ผ๋ฆฌ ํ๊ณ
*** ์ ์ฌ 13:00 ~ 14:00 / ์ ๋ 18:00 ~ 19:00 ์ ์ธ
โ
๐ ์ด๋ฒ ์ฃผ ๋ชฉํ
[V] ์๋ จ ๊ฐ์ ๋ค ๋ฃ๊ธฐ[ ] ์คํ ๋ค๋ 2์ฃผ์ฐจ ์ฌํ ๊ตฌํ : ์๋ จ ๊ฐ์ ์ฒดํ(fragment, fragment ๊ฐ์ ๋ฐ์ดํฐ์ ๋ฌ) ํฌ๊ธฐ[V] ์คํ ๋ค๋๋ฐ ๋ฐ๋ฆฐ ๊ฐ์ ๋ฃ๊ธฐ[V] ์ ๋ฌธ ๊ฐ์ธ ๊ณผ์ ํด์ค ํ์ต[V] ๋ฒ ์ด์ง๋ฐ ๊ฐ์ 4์ฃผ์ฐจ๊น์ง[V] ์คํ ๋ค๋ 4์ฃผ์ฐจ ๊ณผ์ ๊ตฌํ- [ ] ์๋ จ ๊ฐ์ธ ๊ณผ์ ํ์ ๊ตฌํ : ์๋ จ ๊ฐ์ ์ฒดํ(notification, dialog, recyclerview, fragment ์ข ํฉ)
- [ ] ์ ์ฐฝ๊ฒฝ ๋ด์ฉ ์ ๋ฆฌ
- [ ] ๋ฐ๋ฆฌ์ ์์ฌ ์๋๋ก์ด๋ ์์ ์ง๋ ๋ถ๋ถ๊น์ง ๋ค ํ๊ธฐ
- [ ] Fragment ์ฌ์ด์ ๋ฐ์ดํฐ ์ ์ก์ ๊ตฌํํ ๊ฐ์ธ ํ๋ก์ ํธ
- [ ] ์๊ณ ๋ฆฌ์ฆ ์ง์ค ์ฝ๋์นดํ
- [ ] ๋งํฌ ์๊ฐ
- [ ] (์ฌํ) KIA ๊ฐ๋ ํ๊ธฐ
- [ ] (์ฌํ) Android Developer ์ฝ๊ธฐ
- [ ] (์ฌํ) ๊ฐ์ธํ๋ก์ ํธ UI ๊ตฌํ
- [ ] (์ฌํ) ์ ๋ฒ ํ๋ก์ ํธ ์ฝ๋ ๋ฏ์ด๋ณด๊ธฐ
โ
1. ์คํ ๋ค๋๋ฐ 5์ฃผ์ฐจ ๊ฐ์
- ํ ๋ฒ์ ๋ชจ๋ ์ฝ๋๋ฅผ ๊ฐ๋ฐํ๋ ค๊ณ ํ์ง ๋ง๊ณ , ๊ฐ๋ฐํ๋ ค๋ ๊ณผ์ /ํ๋ก์ ํธ์ ํ์คํฌ๋ฅผ ์๊ฒ ์ชผ๊ฐ์ ์ ์ด๋๋ผ.
- ๋ฉํฐ๋ทฐ ํ์ ์ ๊ตฌํํ๋ ๋ฒ์ ๋ํด ๊ณผ์ ํผ๋๋ฐฑ ๋ผ์ด๋ธ ์ฝ๋ฉ์ ๋ณด์ฌ์ฃผ์ จ๋ค.
- ์๋๋ก์ด๋ ์ํคํ ์ฒ ์ค MVP์ MVVM์ ์ฐจ์ด (์ฐธ๊ณ ๋ธ๋ก๊ทธ: ๋งํฌ1)
- Observer Pattern (LiveData๋ฅผ ์ดํดํ๊ธฐ ์ํจ) : ๋ฉ๋ฉ์ด์ ์ผ์น์ด๊ฐ ๊ณตํต์ ์ผ๋ก update()๋ฅผ ์ค๋ฒ๋ผ์ด๋
- MVC๋ก ๊ตฌํ๋ ์ด์ ๊ณผ์ ๋ฅผ MVVM์ผ๋ก ๋ฐ๊พธ๋ ๊ณผ์ ๋ฅผ ๋ฐ์๋ค.
๋ทฐ๋ชจ๋ธ์ ๊ตฌํํ๋ ๊ฒ์ด ๊ทธ๋๋ ๋ฆฌ์ฌ์ดํด๋ฌ๋ทฐ๋ฅผ ์ฒ์ ๊ตฌํํ๋ ์ด๋ ค์๋ณด๋ค๋ ๋ํ๋ค๊ณ ๋ค ํ๋ค.
2. ๋น๊ทผ๋ง์ผ ๋ฆฌ์ฌ์ดํด๋ฌ๋ทฐ ๊ณผ์ ๊ตฌํ
[Android] ์ฑ๊ธํค(Singleton) ํจํด ๊ฐ๋ ๋ฐ ์์, object, companion object
๐ค ์ฑ๊ธํค ํจํด? ์ฑ๊ธํค ํจํด์ ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ์์ ์ฌ์ฉ๋๋ ๋์์ธ ํจํด ์ค ํ๋์ด๋ค. ์ด ํจํด์ ํน์ ํด๋์ค์ ์ธ์คํด์ค(๊ฐ์ฒด)๋ฅผ ์ค์ง ํ๋๋ง ์์ฑํ๋๋ก ๋ณด์ฅํ๋ค. ๋ฐ๋ผ์ ํด๋น ํด๋
limheejin.tistory.com
- ๋๋ฏธ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ๊บผ๋ด ์ฐ๋ฉด์ ๊ถ๊ธํด์ง ๋ด์ฉ์ด๋ค.
- ํท๊ฐ๋ ธ๋ ์ฑ๊ธํค ํจํด์ ๊ฐ๋ ๊ณผ, object ๋ฐ companion object์ ์ ํํ ์ฐจ์ด๋ฅผ ๋ค์ ํ ๋ฒ ์ ๋ฆฌํ์๋ค.
๐จ ๋ฆฌ์ฌ์ดํด๋ฌ๋ทฐ ํ๋ฉด์ด ์ถ๋ ฅ๋์ง ์๋ ๋ฌธ์
ํฌ๊ฒ ๋ ๊ฐ์ง์ ์์ธ์ด ์์๋ค.
๐ก ์ฒซ ๋ฒ์งธ ๋ฌธ์ : ์ด๊ธฐํ ์ค๋ฅ
- onCreate์์ initRecyclerView()๋ฅผ ํธ์ถํ๋๋ฐ, ์ฌ๊ธฐ์ itemAdapter๋ฅผ ์ด๊ธฐํํ์ง ์์๋ค.
์ด์ ๋ฐ๋ผ, ์ฑ์ ์คํํ๋ฉด ๋ค์ด๋๋ ํ์์ด ์ผ์ด๋ฌ๋ค. - ๋ฐ๋ผ์ ๋ค์๊ณผ ๊ฐ์ด itemAdapter๋ฅผ ์ด๊ธฐํํด์ฃผ์๋ค.
๐ก ๋ ๋ฒ์งธ ๋ฌธ์ : ์ด๋ํฐ ์ค์ ์ค๋ฅ
- RecyclerView์ ์ด๋ํฐ์ ๋ฐ์ดํฐ๋ฅผ ์ ๋๋ก ์ค์ ํ์ง ๋ชปํ๋ค.
- ์ ๋ณด๋ฉด ItemAdapter์์๋ List<Item> ํ์ ์ itemItems๋ฅผ ํ๋ผ๋ฏธํฐ๋ก ๋ฐ๊ณ ์๋ค.
- ๊ทธ๋ฐ๋ฐ ๋ฐ์ var items: List = listOf() ๋ฅผ ์์ฑํด๋๊ณ , ๊ทธ items ๋ฆฌ์คํธ๋ฅผ onBindViewHolder์ getItemCount ํจ์์์ ์ฌ์ฉํ๊ณ ์๋ค. ์ด์ ๋ฐ๋ผ RecyclerView์ ์์ดํ ์ด ์ ๋๋ก ํ์๋์ง ์์ ์ ์์๋ค.
- ๋ฐ๋ผ์ ์์ฑ์์ ํ๋ผ๋ฏธํฐ๋ฅผ items๋ก ์์ ํ๊ณ , ์๋ items ์ ์ธ์ ์ญ์ ํ์ฌ ์ ์ ์๋์์ผฐ๋ค.
๐ค ์ ์์ ์ธ ์ค๊ฐ ๊ตฌ๋ถ์ ๊ตฌํ์ ๋ํ ๊ณ ๋ฏผ
- ์์ดํ ์ ์ฝ๊ฒ ๊ตฌ๋ณํ ์ ์๋๋ก, ์์ดํ ๊ณผ ์์ดํ ์ฌ์ด์ ํ์ ์ค๊ฐ ๊ตฌ๋ถ์ ์ ๋ฃ์ด์ผํ๋ค.
- ์ฒ์์ ๊ทธ๋ฅ ์๋ฌด ์๊ฐ์์ด ๋ฆฌ์ฌ์ดํด๋ฌ๋ทฐ์ ์์ดํ ์ ๋ด๋ xml์ ํ์์ ์ ๊ตฌํํ View๋ฅผ ๋งจ ์๋์ ๋ฃ์ด์ฃผ์๋๋ฐ, ๋ ์ ์์ ์ธ ๋ฐฉ๋ฒ์ ์๋์ง ๊ณ ๋ฏผ์ด ๋์๋ค.
- ํ ๋ฐ์ผ๋ฆฌ ํ๊ณ ์์ ํ์๋ถ์ ์ฝ๋๋ฅผ ๋ณด๊ณ ์๋ก์ด ๋ฐฉ๋ฒ์ ์์๋ค. ์ด ๋ฐฉ๋ฒ์ ๋ด์ผ ์ ๋ฆฌ ํ ์์ ํด ๋ณผ ์์ ์ด๋ค.
๐ญ Retrospect
๊ฐ์ธ ๊ณผ์ ๊ตฌํ์ ์์ํ๋ค. ์ด๋ฒ ์ฃผ๋ ํ์ผ์ ์๊ฐ์ด ๋ชจ์๋ผ์, ์ฃผ๋ง์ ๋ ์ง์คํ ๊ณํ์ด๋ค.
โ