sladuf
200
sladuf
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (83)
    • ๐Ÿ“š Programming (32)
      • Swift (13)
      • JAVA (2)
      • Python (6)
      • SQL (6)
      • Web (5)
    • ๐Ÿ“ฑ iOS (25)
      • Base (7)
      • SwiftUI (9)
      • UIKit (7)
      • ์ธ๊ฐ• & ์ฑ… (2)
    • ๐Ÿ”— Algorithm (20)
      • Python (12)
      • Swift (3)
      • Tip (5)
    • ๐Ÿ—‚ ETC (6)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ํ™ˆ
  • ํƒœ๊ทธ
  • ๋ฐฉ๋ช…๋ก

๊ณต์ง€์‚ฌํ•ญ

์ธ๊ธฐ ๊ธ€

ํƒœ๊ทธ

  • ์Šค์œ„ํ”„ํŠธ
  • Swift

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ

๊ธ€์“ฐ๊ธฐ ์„ค์ •
hELLO ยท Designed By ์ •์ƒ์šฐ.
sladuf

200

[Stanford iOS] ์•„ํ‚คํ…์ฒ˜ & MVC
๐Ÿ“ฑ iOS/Base

[Stanford iOS] ์•„ํ‚คํ…์ฒ˜ & MVC

2022. 5. 5. 04:20

 

 

 

[Stanford iOS]๋Š” ํ•œ๊ธ€๋ง์ด ๋ฒˆ์—ญํ•œ Stanford iOS๋ฅผ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

 

[๋ฌด๋ฃŒ] Stanford iOS ํ•œ๊ธ€์ž๋ง‰ ๊ฐ•์˜ - ์ธํ”„๋Ÿฐ | ๊ฐ•์˜

ํ•œ๊ธ€๋ง์˜ ์ฒซ๋ฒˆ์งธ ํ”„๋กœ์ ํŠธ ์•„์ด์˜ค์—์Šค๋Š” ํ˜„์žฌ iTunes์—์„œ ๊ณต๊ฐœ๋œ Stanford - Developing iOS 9 Apps with Swift ๊ฐ•์˜๋ฅผ ๋ฒˆ์—ญํ•˜์˜€์Šต๋‹ˆ๋‹ค., - ๊ฐ•์˜ ์†Œ๊ฐœ | ์ธํ”„๋Ÿฐ...

www.inflearn.com

 

 

 

์•„ํ‚คํ…์ณ

 


 

MVC ๋””์ž์ธ ํŒจํ„ด

iOS ๊ธฐ๋ณธ ๋””์ž์ธ ํŒจํ„ด

 

๐Ÿ“Œ Model

What ํ”„๋กœ๊ทธ๋žจ์ด ํ•˜๋Š”์ผ, ์ฆ‰ ๋ชจ๋“  ๊ณ„์‚ฐ์„ ๋‹ด๋‹นํ•œ๋‹ค. UI์™€๋Š” ์ƒ๊ด€ ์—†๋Š” ์ผ์„ ์ฒ˜๋ฆฌํ•จ

๐Ÿ“Œ View

 UI == Client์™€ ์ƒํ˜ธ์ž‘์šฉ์„ ํ•˜๋Š” ๋ถ€๋ถ„ -> View ํ˜ผ์ž ํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„

๐Ÿ“Œ Controller

How Model๊ณผ View ์—ฐ๊ฒฐ (View๋ฅผ ๋ฆฌ์Šค๋‹ํ•˜๊ณ , ํŒ๋‹จํ•˜์—ฌ Model ์—…๋ฐ์ดํŠธ)

View <-> Model ์‚ฌ์ด์˜ ์†Œํ†ต์€ X

 

 

View ↔๏ธ Controller

View๋Š” Controller์˜ ๋ฏธ๋‹ˆ์–ธ ์—ญํ• ์„ ํ•œ๋‹ค. ํ•ญ์ƒ Controller์˜ ํ—ˆ๋ฝ์„ ๋งก๊ณ , ํ–‰์œ„์— ๋Œ€ํ•œ ๋ณด๊ณ ๋ฅผ ํ•ฉ๋‹ˆ๋‹ค.

๋ฌด์—‡์„ ํ• ๊ฒƒ์ธ์ง€(will) ํ•ด๋„๋˜๋Š”์ง€(should) ํ–ˆ๋Š”์ง€(did)๋ฅผ ๊ฐ์ฒด๋ฅผ ํ†ตํ•ด ์•Œ๋ ค์ค๋‹ˆ๋‹ค.

๋˜, View๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์ง€ ๋ชปํ•˜๊ธฐ ๋•Œ๋ฌธ์— Controller์—์„œ ๋ฐ์ดํ„ฐ ์†Œ์Šค๋ฅผ ๋ฐ›์•„์™€์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์ด ๋ฐ”๋กœ UI๋กœ์ง์ด ๋™์ž‘ํ•˜๋Š” ๋ฐฉ์‹

 

Model ↔๏ธ Controller

Model์ด ๊ฐ€์ง€๊ณ  ์žˆ๋Š”๋ฐ์ดํ„ฐ๋ฅผ Controller๊ฐ€ ๋งˆ์Œ๋Œ€๋กœ ๊ฐ€์ง€๊ณ ์˜ค๊ณ , ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

Model๊ณผ Controller์˜ ์†Œํ†ต ๋ฐฉ์‹์€, Radio Station Model(๊ต์ˆ˜๋‹˜ say..) ์ž…๋‹ˆ๋‹ค.

Model์€ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ณ€๊ฒฝ๋˜์—ˆ๋‹ค๋Š” ๊ฒƒ์„ ๋ผ๋””์˜ค๋กœ ์•Œ๋ฆฌ๋ฉด, Controller๋Š” ๊ทธ ๋ฐ์ดํ„ฐ์— ๋งž๋Š” ์ฃผํŒŒ์ˆ˜๋ฅผ ์„ค์ •ํ•ด์„œ ๋ณ€๊ฒฝ๋˜๋Š” ๊ฒƒ์„ ๊ฐ์ง€ํ•ด์„œ ๊ฐ€์ ธ์™€์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์„œ, ๋ผ๋””์˜ค์™€ ์ฃผํŒŒ์ˆ˜๋Š” ์ดํ•ด๋ฅผ ์œ„ํ•œ ์˜๋ฏธ์ƒ ๊ด€๊ณ„์ž…๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ๋Š” Notification & KVO ๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

 

Q. View์—์„œ ์ฃผํŒŒ์ˆ˜๋ฅผ ์„ค์ •ํ•ด์„œ Model์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜๋Š” ์—†์„๊นŒ?

โžก๏ธ ๋„ค, ์„ค๊ณ„๋ฅผ ๊ทธ๋ ‡๊ฒŒ ํ•˜์ง€ ์•Š๊ณ , ๊ทธ๋Ÿฐ ๋ฐฉ์‹์œผ๋กœ ๊ตฌํ˜„ํ•  ์ˆ˜ ์—†๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

 

์‹ค์ œ ์•ฑ์—์„œ์˜ MVC

์‹ค์ œ ์•ฑ์—์„œ๋Š” ํ•˜๋‚˜์˜ MVC ๊ตฌ์กฐ๊ฐ€ ์•„๋‹Œ, ์—ฌ๋Ÿฌ MVC ๋“ค์ด ๊ฒฐํ•ฉ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ดˆ๋ก์ƒ‰ ํ™”์‚ดํ‘œ๋ฅผ ๋ณด๋ฉด ์•Œ์ˆ˜ ์žˆ๋“ฏ์ด, ๊ธฐ๋ณธ์ ์œผ๋กœ MVC๋Š” ๋‹ค๋ฅธ MVC์˜ ๋ทฐ ์ผ๋ถ€๋กœ๋งŒ ์ผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

 

 

Controller : ๋ชจ๋“  Controller๋Š” UIViewController๋ฅผ ์ƒ์†๋ฐ›์•„์•ผํ•จ

class ViewController: UIViewController {
    
}

 

 

 

 

 

์ €์ž‘์žํ‘œ์‹œ (์ƒˆ์ฐฝ์—ด๋ฆผ)

'๐Ÿ“ฑ iOS > Base' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Swift] ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ NetworkManager๋งŒ๋“ค๊ธฐ (feat. Generic)  (3) 2023.05.05
[Swift] ์„œ๋ฒ„์— iOS ์ด๋ฏธ์ง€ ๋ณด๋‚ผ ๋•Œ ์šฉ๋Ÿ‰ ์ด์Šˆ & ํ•ด๊ฒฐ  (0) 2023.03.23
[Swift] json value type์ด ๋‹ฌ๋ผ์ง€๋Š” response์— ๋Œ€์‘ํ•˜์—ฌ API Responder๋งŒ๋“ค๊ธฐ  (0) 2023.02.12
[RxSwift] ๊ฐœ๋…์žก๊ธฐ (Subscribe, Observable, Subject)  (0) 2023.02.04
[Swift] Custom Calendar ๋‹ฌ์˜ ๋งˆ์ง€๋ง‰ ๋‚  ๊ตฌํ•˜๊ธฐ  (0) 2023.01.16
    '๐Ÿ“ฑ iOS/Base' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [Swift] ์„œ๋ฒ„์— iOS ์ด๋ฏธ์ง€ ๋ณด๋‚ผ ๋•Œ ์šฉ๋Ÿ‰ ์ด์Šˆ & ํ•ด๊ฒฐ
    • [Swift] json value type์ด ๋‹ฌ๋ผ์ง€๋Š” response์— ๋Œ€์‘ํ•˜์—ฌ API Responder๋งŒ๋“ค๊ธฐ
    • [RxSwift] ๊ฐœ๋…์žก๊ธฐ (Subscribe, Observable, Subject)
    • [Swift] Custom Calendar ๋‹ฌ์˜ ๋งˆ์ง€๋ง‰ ๋‚  ๊ตฌํ•˜๊ธฐ
    sladuf
    sladuf

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”