iOS Project/Personal Project

NHBank OpenAPI ์˜ˆ๊ธˆ์ฃผ ์กฐํšŒ ์„œ๋น„์Šค Application

youngjaeLee1026 2022. 1. 29. 13:52

AutoLayout์„ ์ ์šฉํ•œ NHBank OpenAPI ์˜ˆ๊ธˆ์ฃผ ์กฐํšŒ ์„œ๋น„์Šค Application

  • ํ•ด๋‹น ํ™”๋ฉด์—์„œ ๋‚˜์˜จ ๊ณ„์ขŒ๋ฒˆํ˜ธ๋Š” ์‹ค์ œ ๊ณ„์ขŒ๋ฒˆํ˜ธ๊ฐ€ ์•„๋‹Œ, Open API ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•ด์„œ ์ž„์˜๋กœ ๋ฐœ๊ธ‰๋œ ๊ณ„์ขŒ๋ฒˆํ˜ธ์ž„์„ ์•Œ๋ฆฝ๋‹ˆ๋‹ค.

1

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. ์ด๋ฏธ์ง€๋ฅผ ํ†ตํ•œ ์ถ”๊ฐ€ ์„ค๋ช…

2

  • ์žฅ์  : MVC ํŒจํ„ด์— ๋น„ํ•ด, MVVM ํŒจํ„ด์˜ ์žฅ์ ์€ View-Model-ViewModel ๋ชจ๋‘ ์˜์กด์„ฑ์ด ์—†๋‹ค๋Š” ๊ฒƒ์ด ์žฅ์ ์ž…๋‹ˆ๋‹ค.
  • ๋‹จ์  : ๋ฐ˜๋ฉด์— ์„ค๊ณ„๊ฐ€ ์–ด๋ ค์šด ๊ฒƒ์ด ๋‹จ์ ์ด๋ฉฐ, View๊ฐ€ ์ปค์ง€๋ฉด ViewModel๋„ ์ปค์ง„๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

1.5. ํ”„๋กœ์ ํŠธ(์‹ค์Šต)๋ฅผ ํ†ตํ•œ ์ดํ•ด

3

1.5.1. Model ์„ค๊ณ„

4567

1.5.2. ViewModel - Service ์„ค๊ณ„

  • Service๋Š” MVVM์— ๊ผญ ํ•„์š”ํ•œ ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. API ์‘๋‹ต์„ ๋ฐ›์•„์˜ค๊ธฐ ์œ„ํ•ด ์„ค๊ณ„ ํ•˜์˜€์œผ๋ฉฐ, ํ•„์š”ํ•˜๋‹ค๋ฉด ViewModel์— ํ•ฉ์ณ๋„ ๋ฉ๋‹ˆ๋‹ค.
  • ํ•ด๋‹น ์„ค๊ณ„๋Š” ์ด ๊ฒŒ์‹œ๊ธ€์„ ์ฐธ๊ณ ํ–ˆ์Šต๋‹ˆ๋‹ค.

89

1.5.3. ViewModel ์„ค๊ณ„

  • Model์—์„œ ์ •์˜ํ•œ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด Read / Update / Delete ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

1011

1.5.4. View(ViewController) ์„ค๊ณ„

  • ViewController์—์„œ๋Š” ๋‹จ์ˆœํžˆ ViewModel์—์„œ ์ „๋‹ฌํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ํ™”๋ฉด์— ๋ณด์—ฌ์ฃผ๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.

1213

1.5.5. ์ „์ฒด ์ฝ”๋“œ ๋งํฌ

  • ์ „์ฒด ์ฝ”๋“œ๋Š” ์—ฌ๊ธฐ์—์„œ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

1.6. ๋А๋‚€์ 

  • ์ด๋ฒˆ Application์„ ์™„๋ฒฝํ•˜๊ฒŒ ๊ตฌํ˜„ํ•œ ๊ฒƒ์ธ์ง€๋Š” ์ž˜ ๋ชจ๋ฅด์ง€๋งŒ, ๊ตฌํ˜„ํ•˜๋ฉด์„œ๋„ ์ˆ˜์ฐจ๋ก€ ๋ฆฌํŒฉํ† ๋ง ๊ณผ์ •์„ ๊ฑฐ์ณค๋Š”๋ฐ ํ™•์‹คํžˆ ๋ฆฌํŒฉํ† ๋ง ํ•˜๋Š”๋ฐ ์žˆ์–ด์„œ ๋งค์šฐ ํŽธ๋ฆฌํ•จ์„ ๋А๊ผˆ์Šต๋‹ˆ๋‹ค.
  • ์ด๋ก ์œผ๋กœ๋งŒ ์•Œ๊ณ  ์žˆ๋˜ ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ, ํ”„๋กœํ† ์ฝœ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋“ฑ ์ฝ”๋“œ์˜ ์ค‘๋ณต์„ ์ค„์ด๊ณ  ์žฌ์‚ฌ์šฉ์„ฑ์„ ๋Š˜๋ฆฌ๋ฉฐ, ์œ ์—ฐํ•˜๊ฒŒ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์„ ์ง์ ‘ ๊ฒฝํ—˜ํ•จ์œผ๋กœ์จ ๊ทธ ์ค‘์š”์„ฑ์„ ๋‹ค์‹œ ํ•œ ๋ฒˆ ๊นจ๋‹ซ๊ฒŒ ๋˜๋Š” ํ”„๋กœ์ ํŠธ์˜€์Šต๋‹ˆ๋‹ค.

1.7. Reference