iOS Project/Personal Project
NHBank OpenAPI ์๊ธ์ฃผ ์กฐํ ์๋น์ค Application
youngjaeLee1026
2022. 1. 29. 13:52
AutoLayout์ ์ ์ฉํ NHBank OpenAPI ์๊ธ์ฃผ ์กฐํ ์๋น์ค Application
- ํด๋น ํ๋ฉด์์ ๋์จ ๊ณ์ข๋ฒํธ๋ ์ค์ ๊ณ์ข๋ฒํธ๊ฐ ์๋, Open API ํ ์คํธ๋ฅผ ์ํด์ ์์๋ก ๋ฐ๊ธ๋ ๊ณ์ข๋ฒํธ์์ ์๋ฆฝ๋๋ค.
1. MVVM ๋์์ธ ํจํด(์ํํธ์จ์ด ์ํคํ ์ณ ํจํด)
- Model-View-ViewModel ํํ์ ๋์์ธ ํจํด์ ๋๋ค.
1.1. Model
- Model์ ๋ฐ์ดํฐ์ ๊ตฌ์กฐ๋ฅผ ์ ์ํ๊ณ ViewModel์๊ฒ ๊ฒฐ๊ณผ๋ฅผ ์๋ ค์ค๋๋ค.
- View(ViewController)๋ Model์ ์ง์ ์ ๊ทผํ ์ ์์ต๋๋ค.
1.2. View(ViewController)
- View๋ iOS์์์ ViewController์ ํด๋นํฉ๋๋ค.
- View๋ ์ฌ์ฉ์์์ ์ํธ์์ฉ์ ํตํด ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ๋ฉด ViewModel์๊ฒ ์๋ ค์ค๋๋ค.
- ViewModel์ด ์ ๋ฐ์ดํธ ์์ฒญํ ๋ฐ์ดํฐ๋ฅผ ํ๋ฉด์ ๋ณด์ฌ์ฃผ๋ ์ญํ ์ ํฉ๋๋ค.
1.3. ViewModel
- ViewModel์ ์ฌ์ฉ์์์ ์ํธ์์ฉ์ View๊ฐ ๋ณด๋ด์ฃผ๋ฉด ๊ทธ์ ๋ง๋ Business Logic์ ์ฒ๋ฆฌํฉ๋๋ค.
- Model์ ์ ์ํ ๋ฐ์ดํฐ์ ๋ํด Read / Update / Delete ์ญํ ์ ๋ด๋นํฉ๋๋ค.
1.4. ์ด๋ฏธ์ง๋ฅผ ํตํ ์ถ๊ฐ ์ค๋ช
- ์ฅ์ : MVC ํจํด์ ๋นํด, MVVM ํจํด์ ์ฅ์ ์ View-Model-ViewModel ๋ชจ๋ ์์กด์ฑ์ด ์๋ค๋ ๊ฒ์ด ์ฅ์ ์ ๋๋ค.
- ๋จ์ : ๋ฐ๋ฉด์ ์ค๊ณ๊ฐ ์ด๋ ค์ด ๊ฒ์ด ๋จ์ ์ด๋ฉฐ, View๊ฐ ์ปค์ง๋ฉด ViewModel๋ ์ปค์ง๋ค๋ ๋จ์ ์ด ์์ต๋๋ค.
1.5. ํ๋ก์ ํธ(์ค์ต)๋ฅผ ํตํ ์ดํด
1.5.1. Model ์ค๊ณ
- NHBank Open API(์ฐธ๊ณ ๋งํฌ)๋ฅผ ์ฐธ๊ณ ํ์ฌ Model์ ์ค๊ณํ์ต๋๋ค.
1.5.2. ViewModel - Service ์ค๊ณ
- Service๋ MVVM์ ๊ผญ ํ์ํ ๊ฒ์ ์๋๋๋ค. API ์๋ต์ ๋ฐ์์ค๊ธฐ ์ํด ์ค๊ณ ํ์์ผ๋ฉฐ, ํ์ํ๋ค๋ฉด ViewModel์ ํฉ์ณ๋ ๋ฉ๋๋ค.
- ํด๋น ์ค๊ณ๋ ์ด ๊ฒ์๊ธ์ ์ฐธ๊ณ ํ์ต๋๋ค.
1.5.3. ViewModel ์ค๊ณ
- Model์์ ์ ์ํ ๋ฐ์ดํฐ์ ๋ํด Read / Update / Delete ์ฐ์ฐ์ ์ํํฉ๋๋ค.
1.5.4. View(ViewController) ์ค๊ณ
- ViewController์์๋ ๋จ์ํ ViewModel์์ ์ ๋ฌํ๋ ๋ฐ์ดํฐ๋ฅผ ํ๋ฉด์ ๋ณด์ฌ์ฃผ๋ ์ญํ ์ ํฉ๋๋ค.
1.5.5. ์ ์ฒด ์ฝ๋ ๋งํฌ
- ์ ์ฒด ์ฝ๋๋ ์ฌ๊ธฐ์์ ํ์ธํ์ค ์ ์์ต๋๋ค.
1.6. ๋๋์
- ์ด๋ฒ Application์ ์๋ฒฝํ๊ฒ ๊ตฌํํ ๊ฒ์ธ์ง๋ ์ ๋ชจ๋ฅด์ง๋ง, ๊ตฌํํ๋ฉด์๋ ์์ฐจ๋ก ๋ฆฌํฉํ ๋ง ๊ณผ์ ์ ๊ฑฐ์ณค๋๋ฐ ํ์คํ ๋ฆฌํฉํ ๋ง ํ๋๋ฐ ์์ด์ ๋งค์ฐ ํธ๋ฆฌํจ์ ๋๊ผ์ต๋๋ค.
- ์ด๋ก ์ผ๋ก๋ง ์๊ณ ์๋ ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ, ํ๋กํ ์ฝ์งํฅ ํ๋ก๊ทธ๋๋ฐ ๋ฑ ์ฝ๋์ ์ค๋ณต์ ์ค์ด๊ณ ์ฌ์ฌ์ฉ์ฑ์ ๋๋ฆฌ๋ฉฐ, ์ ์ฐํ๊ฒ ์ฝ๋๋ฅผ ์์ฑํ๋ ๊ฒ์ ์ง์ ๊ฒฝํํจ์ผ๋ก์จ ๊ทธ ์ค์์ฑ์ ๋ค์ ํ ๋ฒ ๊นจ๋ซ๊ฒ ๋๋ ํ๋ก์ ํธ์์ต๋๋ค.