์๊ฐ : ๋ฐ์ค์คํผ์ค ์์๋ฅผ ์๊ฐํ๋ ์ฑ์ ๋๋ค.
ํ๋ก์ ํธ ๊ธฐ๊ฐ : 2022.01.02 ~ 2022.01.06
์๋ | ์ฐ๋กฑ์ฐจ |
---|---|
- API ๊ด๋ฆฌ ๋ฐ ๋คํธ์ํน ๊ฐ์ฒด ๊ตฌํ
- MVVM ๊ตฌ์กฐ ์ค๊ณ
- ๋ฉ์ธ ํ๋ฉด ๊ตฌํ
- ์ํ ์์ธ ํ๋ฉด ๊ตฌํ
- Firebase ๊ตฌํ
- ๋ฆฌ๋ทฐ ์์ฑ ํ๋ฉด ๊ตฌํ
- ๋ฆฌ๋ทฐ ๋ฆฌ์คํธ ํ๋ฉด ๊ตฌํ
๋ฉ์ธ ํ๋ฉด | ์์ธ ํ๋ฉด | ๋ฆฌ๋ทฐ ํ๋ฉด |
---|---|---|
- Entry: AppDelegate๊ณผ SceneDelegate์ด ์์ต๋๋ค.
- Model: ๋คํธ์ํน, ํ์ด์ด๋ฒ ์ด์ค์ ์ฌ์ฉ๋๋ ๋ชจ๋ธ์ ๋๋ค.
- Network: API, REST, FierBase์ CRUD ๋ก์ง์ ํฌํจํฉ๋๋ค.
- Domain: ํ๋ฉด ๋ณ ๊ตฌํ์ฌํญ์ ํฌํจํฉ๋๋ค.
- Extension: ์ปค์คํ ํ Extension์ ์งํฉ์ ๋๋ค.
- SupportFile: Assets, plistํ์ผ ๋ฑ์ด ์์ต๋๋ค.
๋ด๋ถ ๋ก์ง์ด ํผ์กํด์ง๋ ๊ฒ์ ๋ฐฉ์งํ๊ณ ์ ๋ก์ง์ ํ๋ฆ์ input๊ณผ output ์ฒ๋ผ ๋จ๋ฐฉํฅ์ผ๋ก ์ ํํ์ต๋๋ค. ์ด๋ฌํ ํํ๋ฅผ ViewModelInterface๋ก ์ถ์ํํ์์ต๋๋ค. ViewController์์ ์ถ์ํ ๋ ViewModelInterface์ ViewModel์ Newtork๊ฐ์ฒด ๋ชจ๋ ์์กด์ฑ์ฃผ์ ํํ๋ก ์ด๊ธฐํํ๋ฉฐ ์ด๋ฌํ ๊ตฌ์กฐ๋ ํ ์คํธ ์ฝ๋ ์์ฑ์๋ ์ฉ์ดํฉ๋๋ค.
๋น๋๊ธฐ ๋ก์ง์ Combine์ ์ฌ์ฉํ์ฌ ๊ตฌํํ์์ต๋๋ค. ํ๋์ API๋ง์ด ์๋ ์ฌ๋ฌ API์๋ ์ฌ์ฉ๊ฐ๋ฅํ๊ฒ ๊ตฌํํ์์ต๋๋ค. ์ ์ ๊ฐฏ์ ๋น ์ธ๋ฒ์ฉ request๋ฅผ ํด์ผํ๋๋ฐ ์ด ์ ์ Combine์ Sequence๋ฅผ ์ฌ์ฉํด ๊ตฌํํ์์ต๋๋ค.
์๊ตฌ์ฌํญ์๋ FireStorage๋ฅผ ์ฌ์ฉํ๋ผ๊ณ ๋ช ์๋์ด์์ผ๋ ์ฌ์ฉ์ ์ฐธ๊ณ ํ๋ผ๋ ๋งํฌ๋ FireStore ์ฌ์ ํผ๋์ ๋ง์ดํ์ต๋๋ค. ์๋ ๊ณํ์ FireStore์ ์ ๋ณด๋ฅผ ์ ์ฅํ๊ณ ์ด๋ฏธ์ง์ ๊ฐ์ ํฐ ํฌ๊ธฐ์ ํ์ผ๋ง ํ์ด์ดStorage์ ์ ์ฅํ ์๊ฐ์ด์์ผ๋ FireStore์๋ง ์ฌ์ฉํด์ผ๋๋ค๋ ์กฐ๊ฑด์ผ๋ก ํฐํฌ๊ธฐ์ ์ด๋ฏธ์งํ์ผ์ ํฌ๊ธฐ๋ฅผ ์ค์ด๊ณ ์ธ์ฝ๋ฉํ์ฌ String์ผ๋ก ์ ์ฅํ์์ต๋๋ค.