[TIL] 2024. 09. 24

2024. 9. 24. 23:17ยทTIL (Today I Learned)
๐Ÿ”ฅ ํ‚ค์›Œ๋“œ
     - MVC
     - MVVM
     - ์‹ฑ๊ธ€ํ†คํŒจํ„ด
     - Delegate ํŒจํ„ด
     - RxSwift

 

๐Ÿ”ฅ ์˜ˆ์ƒ ์งˆ๋ฌธ์ง€

  1. ์‹ฑ๊ธ€ํ†ค ํŒจํ„ด์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.
    • ์‹ฑ๊ธ€ํ†ค ํŒจํ„ด(Singleton Pattern)์€ ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค๊ฐ€ ํ•˜๋‚˜๋งŒ ์ƒ์„ฑ๋˜๋„๋ก ๋ณด์žฅํ•˜๋Š” ๋””์ž์ธ ํŒจํ„ด์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์ „์—ญ์ ์œผ๋กœ ์ธ์Šคํ„ด์Šค์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Swift์—์„œ๋Š” static ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‹จ์ผ ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ณ , ์ด๋ฅผ ํ†ตํ•ด ์‹ฑ๊ธ€ํ†ค ํŒจํ„ด์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  2. ๋”œ๋ฆฌ๊ฒŒ์ดํŠธ ํŒจํ„ด์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.
    • ๋”œ๋ฆฌ๊ฒŒ์ดํŠธ ํŒจํ„ด(Delegate Pattern)์€ ํ•œ ๊ฐ์ฒด๊ฐ€ ํŠน์ • ์ž‘์—…์„ ๋‹ค๋ฅธ ๊ฐ์ฒด์—๊ฒŒ ์œ„์ž„ํ•˜๋Š” ๋””์ž์ธ ํŒจํ„ด์ž…๋‹ˆ๋‹ค. ํ”„๋กœํ† ์ฝœ์„ ํ†ตํ•ด ๊ตฌํ˜„๋˜๋ฉฐ, ํ”„๋กœํ† ์ฝœ์„ ์ค€์ˆ˜ํ•˜๋Š” ๊ฐ์ฒด๊ฐ€ ์œ„์ž„๋œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด ํŒจํ„ด์€ UIKit์˜ ์—ฌ๋Ÿฌ ํด๋ž˜์Šค์—์„œ ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ, ๋ฐ์ดํ„ฐ ์ „๋‹ฌ ๋“ฑ์— ์ž์ฃผ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๊ฐ์ฒด ๊ฐ„์˜ ๊ฒฐํ•ฉ๋„๋ฅผ ๋‚ฎ์ถ”๊ณ , ์ฝ”๋“œ์˜ ์žฌ์‚ฌ์šฉ์„ฑ๊ณผ ํ™•์žฅ์„ฑ์„ ๋†’์ธ๋‹ค๋Š” ์žฅ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
  3. iOS์—์„œ ์ œ๊ณตํ•˜๋Š” ์‹ฑ๊ธ€ํ†ค ํŒจํ„ด์„ ์ ์šฉํ•œ ๊ฒƒ๋“ค์€ ์–ด๋–ค๊ฒŒ ์žˆ๋Š”์ง€ ์˜ˆ๋ฅผ ๋“ค์–ด์ฃผ์„ธ์š”.
    • iOS์—์„œ ์‹ฑ๊ธ€ํ†ค ํŒจํ„ด์ด ์ ์šฉ๋œ ์˜ˆ์‹œ๋กœ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒƒ๋“ค์ด ์žˆ์Šต๋‹ˆ๋‹ค:
      • UserDefaults.standard: ์‚ฌ์šฉ์ž ์„ค์ •์ด๋‚˜ ๊ฐ„๋‹จํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ๋ถˆ๋Ÿฌ์˜ต๋‹ˆ๋‹ค.
      • UIApplication.shared: ์•ฑ์˜ ๋ผ์ดํ”„์‚ฌ์ดํด๊ณผ ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
      • FileManager.default: ํŒŒ์ผ ์‹œ์Šคํ…œ์— ์ ‘๊ทผํ•˜์—ฌ ํŒŒ์ผ์„ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
      • URLSession.shared: ๊ธฐ๋ณธ์ ์ธ ๋„คํŠธ์›Œํ‚น ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
      • NotificationCenter.default: ์•ฑ ๋‚ด์—์„œ ์ด๋ฒคํŠธ๋ฅผ ์ „ํŒŒํ•˜๊ณ  ์ˆ˜์‹ ํ•ฉ๋‹ˆ๋‹ค.
  4. MVC์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.
    • MVC(Model-View-Controller)๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์„ธ ๊ฐ€์ง€ ์—ญํ• ๋กœ ๋ถ„๋ฆฌํ•˜๋Š” ๋””์ž์ธ ํŒจํ„ด์ž…๋‹ˆ๋‹ค.
      • Model: ๋ฐ์ดํ„ฐ์™€ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
      • View: ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค(UI)๋ฅผ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค.
      • Controller: Model๊ณผ View๋ฅผ ์—ฐ๊ฒฐํ•˜๊ณ  ์‚ฌ์šฉ์ž ์ž…๋ ฅ์„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. MVC์—์„œ๋Š” Controller๊ฐ€ View์™€ Model์„ ์ค‘๊ฐœํ•˜์—ฌ ์„œ๋กœ ํ†ต์‹ ํ•ฉ๋‹ˆ๋‹ค.
    • MVC ํŒจํ„ด์€ ์ฝ”๋“œ์˜ ๋ชจ๋“ˆํ™”๋ฅผ ๋†’์ด๊ณ  ์œ ์ง€๋ณด์ˆ˜๋ฅผ ์šฉ์ดํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.
  5. MVVM์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.
    • MVVM(Model-View-ViewModel)์€ UI ๊ฐœ๋ฐœ์„ ๋” ๋ชจ๋“ˆํ™”ํ•˜๊ณ  ํ…Œ์ŠคํŠธํ•˜๊ธฐ ์‰ฝ๊ฒŒ ๋งŒ๋“œ๋Š” ๋””์ž์ธ ํŒจํ„ด์ž…๋‹ˆ๋‹ค:
      • Model: ๋ฐ์ดํ„ฐ์™€ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
      • View: ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค(UI)๋ฅผ ๋‹ด๋‹นํ•˜๊ณ , ViewModel์„ ๋ฐ”์ธ๋”ฉ ํ•˜์—ฌ ๋ฐ์ดํ„ฐ์™€ ์ƒํ˜ธ์ž‘์šฉํ•ฉ๋‹ˆ๋‹ค.
      • ViewModel: View๋ฅผ ์œ„ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ณตํ•˜๊ณ  ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค. Model๊ณผ View ์‚ฌ์ด์˜ ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ์„ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค.
    • MVVM ํŒจํ„ด์€ ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ์„ ํ†ตํ•ด View์™€ ViewModel ์‚ฌ์ด์˜ ์–‘๋ฐฉํ–ฅ ํ†ต์‹ ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜์—ฌ, ์ฝ”๋“œ์˜ ์žฌ์‚ฌ์šฉ์„ฑ๊ณผ ํ…Œ์ŠคํŠธ ์šฉ์ด์„ฑ์„ ๋†’์ž…๋‹ˆ๋‹ค.
  6. MVVM์—์„œ ๋ฐ”์ธ๋”ฉ์„ ์œ„ํ•ด์„œ ์–ด๋–ค ๋ฐฉ๋ฒ•์„ ์จ๋ณด์…จ๋‚˜์š”?
    • RxSwift๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ”์ธ๋”ฉ์„ ๊ตฌํ˜„ํ•ด๋ณด์•˜์Šต๋‹ˆ๋‹ค. RxSwift๋ฅผ ํ†ตํ•ด Observables์™€ Binding์„ ํ™œ์šฉํ•˜์—ฌ ViewModel๊ณผ View ์‚ฌ์ด์˜ ๋ฐ์ดํ„ฐ ํ๋ฆ„์„ ๊ฐ„๊ฒฐํ•˜๊ณ  ์„ ์–ธ์ ์œผ๋กœ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.
  7. MVC์™€ MVVM์˜ ์ฐจ์ด์ ์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.
    • Controller์˜ ์—ญํ• : MVC์—์„œ๋Š” Controller๊ฐ€ View์™€ Model์„ ๋ชจ๋‘ ๊ด€๋ฆฌํ•˜์ง€๋งŒ, MVVM์—์„œ๋Š” ViewModel์ด View์™€ Model์„ ๋ถ„๋ฆฌํ•˜์—ฌ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
    • ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ: MVVM์—์„œ๋Š” ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ์„ ํ†ตํ•ด ViewModel๊ณผ View ์‚ฌ์ด์˜ ํ†ต์‹ ์„ ์ž๋™ํ™”ํ•˜๊ณ  ๋‹จ๋ฐฉํ–ฅ ํ˜น์€ ์–‘๋ฐฉํ–ฅ ๋ฐ”์ธ๋”ฉ์„ ์‰ฝ๊ฒŒ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ˜๋ฉด, MVC์—์„œ๋Š” View์™€ Controller ๊ฐ„์˜ ์ƒํ˜ธ์ž‘์šฉ์„ ์ง์ ‘ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    • ํ…Œ์ŠคํŠธ ์šฉ์ด์„ฑ: MVVM์€ View์™€ ๋กœ์ง์ด ๋ถ„๋ฆฌ๋˜์–ด ์žˆ์–ด ํ…Œ์ŠคํŠธํ•˜๊ธฐ๊ฐ€ ๋” ์‰ฝ์Šต๋‹ˆ๋‹ค.
  8. RxSwift์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.
    • RxSwift๋Š” Microsoft์—์„œ ๋งŒ๋“  ๋ฐ˜์‘ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์ง€์›ํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ, Swift์—์„œ ๋น„๋™๊ธฐ ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•˜๊ณ  ์ด๋ฒคํŠธ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. RxSwift๋Š” Observable์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ์˜ ๋ณ€ํ™”๋ฅผ ๊ฐ์ง€ํ•˜๊ณ , ์ด ๋ณ€ํ™”๋ฅผ Observer์—๊ฒŒ ์ „๋‹ฌํ•˜์—ฌ ๋ฐ์ดํ„ฐ ํ๋ฆ„์„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์ฝ”๋“œ์˜ ๊ฐ„๊ฒฐ์„ฑ๊ณผ ์œ ์ง€๋ณด์ˆ˜์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ DisposeBag์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜๋ฅผ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์žฅ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
  9. ์˜ต์ €๋ฒ„ ํŒจํ„ด์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.
    • ์˜ต์ €๋ฒ„ ํŒจํ„ด(Observer Pattern)์€ ๊ฐ์ฒด์˜ ์ƒํƒœ ๋ณ€ํ™”๋ฅผ ๊ด€์ฐฐํ•˜๊ณ , ๋ณ€ํ™”๊ฐ€ ์žˆ์„ ๋•Œ ๊ด€๋ จ๋œ ๊ฐ์ฒด๋“ค์—๊ฒŒ ์ž๋™์œผ๋กœ ์•Œ๋ฆผ์ด ์ „๋‹ฌ๋˜๋Š” ๋””์ž์ธ ํŒจํ„ด์ž…๋‹ˆ๋‹ค. ์ฃผ์ฒด(Subject)์™€ ๊ด€์ฐฐ์ž(Observer)๋กœ ๊ตฌ์„ฑ๋˜๋ฉฐ, Subject์˜ ์ƒํƒœ๊ฐ€ ๋ณ€๊ฒฝ๋˜๋ฉด Observer๋“ค์—๊ฒŒ ์•Œ๋ฆผ์„ ๋ณด๋‚ด ๋ณ€ํ™”์— ์ ์ ˆํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.
  10. Observable๊ณผ Observer์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.
    • Observable: ๋ฐ์ดํ„ฐ์˜ ๋ณ€ํ™”๋ฅผ ๊ฐ์ง€ํ•˜๊ณ , ํ•ด๋‹น ๋ณ€ํ™”๋ฅผ Observer์—๊ฒŒ ์ „๋‹ฌํ•˜๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฒคํŠธ ์ŠคํŠธ๋ฆผ์„ ์ƒ์„ฑํ•˜๋ฉฐ, Observer๊ฐ€ ๊ตฌ๋…(subscribe)ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • Observer: Observable์˜ ๋ณ€ํ™”๋ฅผ ๊ฐ์ง€ํ•˜๊ณ  ๊ทธ์— ๋ฐ˜์‘ํ•˜๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. Observable๋กœ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์‹ ํ•˜๋ฉฐ, ์ด๋ฅผ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ onNext, onError, onCompleted ๋ฉ”์„œ๋“œ๋ฅผ ๊ตฌํ˜„ํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›๊ฑฐ๋‚˜ ์—๋Ÿฌ๋ฅผ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
    • Observable๊ณผ Observer๋Š” ํ•จ๊ป˜ ์‚ฌ์šฉ๋˜์–ด ๋น„๋™๊ธฐ ๋ฐ์ดํ„ฐ ํ๋ฆ„์„ ๊ด€๋ฆฌํ•˜๊ณ , ๋ฐ˜์‘ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.
  11. Subject์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.
    • Subject๋Š” RxSwift์—์„œ Observable์ด์ž Observer์˜ ์—ญํ• ์„ ๋™์‹œ์— ์ˆ˜ํ–‰ํ•˜๋Š” ํŠน๋ณ„ํ•œ ๊ฐ์ฒด์ž…๋‹ˆ๋‹ค. Subject๋Š” ์™ธ๋ถ€์—์„œ ์ด๋ฒคํŠธ๋ฅผ ์ˆ˜์‹ ํ•  ์ˆ˜ ์žˆ๊ณ , ๊ทธ ์ด๋ฒคํŠธ๋ฅผ ์ž์‹ ์„ ๊ตฌ๋…ํ•˜๋Š” Observer๋“ค์—๊ฒŒ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค. ์ฃผ๋กœ ์™ธ๋ถ€ ์ด๋ฒคํŠธ๋ฅผ Observable๋กœ ๋ณ€ํ™˜ํ•˜๊ฑฐ๋‚˜, ์—ฌ๋Ÿฌ Observer๊ฐ€ ๋™์ผํ•œ ๋ฐ์ดํ„ฐ ์ŠคํŠธ๋ฆผ์„ ๊ณต์œ ํ•  ๋•Œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
    • ๋Œ€ํ‘œ์ ์ธ Subject๋กœ๋Š” PublishSubject, BehaviorSubject, ReplaySubject, AsyncSubject ๋“ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
      • PublishSubject: ๊ตฌ๋… ์ดํ›„์— ๋ฐœํ–‰๋˜๋Š” ์ƒˆ๋กœ์šด ์•„์ดํ…œ๋“ค๋งŒ Observer์—๊ฒŒ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.
      • BehaviorSubject: ๊ฐ€์žฅ ์ตœ๊ทผ์— ๋ฐœํ–‰๋œ ์•„์ดํ…œ์ด๋‚˜ ๊ธฐ๋ณธ๊ฐ’์„ ์ƒˆ๋กœ์šด ๊ตฌ๋…์ž์—๊ฒŒ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.
      • ReplaySubject: ์ง€์ •๋œ ๋ฒ„ํผ ํฌ๊ธฐ ๋งŒํผ์˜ ์ตœ๊ทผ ์•„์ดํ…œ๋“ค์„ ์ƒˆ๋กœ์šด ๊ตฌ๋…์ž์—๊ฒŒ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.
      • AsyncSubject: ์†Œ์Šค Observable์˜ ์™„๋ฃŒ ์‹œ์ ์— ๊ฐ€์žฅ ์ตœ๊ทผ ์•„์ดํ…œ์„ ๋ฐœํ–‰ํ•˜๊ณ , ๊ทธ ์ดํ›„์— ์™„๋ฃŒ ์ด๋ฒคํŠธ๋ฅผ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.
  12. Cold Observable๊ณผ Hot Observable์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.
    • Cold Observable:
      • ์ •์˜: ๊ตฌ๋…์ž๊ฐ€ ์ƒ๊ธธ ๋•Œ๋งˆ๋‹ค ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ ์ŠคํŠธ๋ฆผ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
      • ํŠน์ง•: ๊ฐ ๊ตฌ๋…์ž๋Š” ๋…๋ฆฝ์ ์ธ ๋ฐ์ดํ„ฐ ์ŠคํŠธ๋ฆผ์„ ๋ฐ›์œผ๋ฉฐ, Observable์ด ๊ตฌ๋…๋  ๋•Œ๊นŒ์ง€ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐœํ–‰ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
      • ์˜ˆ์‹œ: ๋„คํŠธ์›Œํฌ ์š”์ฒญ, ํŒŒ์ผ ์ฝ๊ธฐ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ฟผ๋ฆฌ ๋“ฑ.
    • Hot Observable:
      • ์ •์˜: ๊ตฌ๋… ์—ฌ๋ถ€์™€ ์ƒ๊ด€์—†์ด ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐœํ–‰ํ•˜๋Š” Observable์ž…๋‹ˆ๋‹ค.
      • ํŠน์ง•: ์—ฌ๋Ÿฌ ๊ตฌ๋…์ž๋“ค์ด ๋™์ผํ•œ ๋ฐ์ดํ„ฐ ์ŠคํŠธ๋ฆผ์„ ๊ณต์œ ํ•˜๋ฉฐ, ๊ตฌ๋… ์‹œ์ ์— ๋”ฐ๋ผ ์ˆ˜์‹ ํ•˜๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
      • ์˜ˆ์‹œ: ๋งˆ์šฐ์Šค ํด๋ฆญ ์ด๋ฒคํŠธ, ํ‚ค๋ณด๋“œ ์ž…๋ ฅ, System Notification ๋“ฑ.
    • ๊ตฌ๋ถ„ ๋ฐฉ๋ฒ•:
      • Cold Observable์€ ๋ฐ์ดํ„ฐ๋ฅผ "์ƒ์‚ฐ"ํ•˜๊ณ , Hot Observable์€ ์ด๋ฏธ ์กด์žฌํ•˜๋Š” ๋ฐ์ดํ„ฐ๋‚˜ ์ด๋ฒคํŠธ๋ฅผ "๊ณต์œ "ํ•ฉ๋‹ˆ๋‹ค.
      • Subject๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Cold Observable์„ Hot Observable๋กœ ๋ณ€ํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋ฐ˜์‘ํ˜•

'TIL (Today I Learned)' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[TIL] 2024. 09. 26  (0) 2024.09.26
[TIL] 2024. 09. 25  (0) 2024.09.25
[TIL] 2024. 09. 23  (0) 2024.09.24
[TIL] 2024. 09. 20  (0) 2024.09.24
[TIL] 2024. 09. 19  (0) 2024.09.24
'TIL (Today I Learned)' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [TIL] 2024. 09. 26
  • [TIL] 2024. 09. 25
  • [TIL] 2024. 09. 23
  • [TIL] 2024. 09. 20
DongDong_
DongDong_
  • DongDong_
    how-dev
    DongDong_
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (102)
      • TIL (Today I Learned) (96)
      • DEV (0)
        • ์•Œ๊ณ ๋ฆฌ์ฆ˜ (0)
        • SWIFT (0)
      • ์‚ฌ์ „์บ ํ”„ ๋ฐ์ผ๋ฆฌ ๋ฏธ์…˜ (5)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
    • ๊ธ€์ž‘์„ฑ
  • ๋งํฌ

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

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

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

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
DongDong_
[TIL] 2024. 09. 24
์ƒ๋‹จ์œผ๋กœ

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