๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

ํ‹ฐ์Šคํ† ๋ฆฌ์ฑŒ๋ฆฐ์ง€

(5)
MVVM + RxSwift MVVM(Model - View - ViewModel)   1. ๋ทฐ(View) (ํ™”๋ฉด์„ ๊ทธ๋ฆฐ๋‹ค.)ํ™”๋ฉด์— ํ‘œํ˜„๋˜๋Š” ๋ ˆ์ด์•„์›ƒ ๊ด€์—ฌํ•œ๋‹ค. UI์— ๊ด€๋ จ๋œ ๊ฒƒ๋“ค์„ ๋‹ค๋ฃจ๋ฏ€๋กœ UI๋กœ์ง์„ ํฌํ•จํ•œ๋‹ค.๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ํฌํ•จํ•˜์ง€ ๋ง์•„์•ผ ํ•œ๋‹ค.๊ฐ ์ปดํฌ๋„ŒํŠธ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๋‹ด๊ณ , ViewModel๋กœ ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์™€ ์–ด๋–ป๊ฒŒ ๋ฐฐ์น˜ํ• ์ง€๋“ฑ์„ ๋‹ด๊ณ ์žˆ๋‹ค. 2. ๋ทฐ๋ชจ๋ธ(ViewModel) (ํ™”๋ฉด์— ๊ทธ๋ฆด ์ •๋ณด๋ฅผ ์ค€๋น„ํ•œ๋‹ค.)ViewModel์€ ์•ฑ์˜ ํ•ต์‹ฌ์ ์ธ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ๋‹ด๊ณ ์žˆ๋Š” ์ฝ”๋“œ ๊ณ„์ธต์ด๋‹ค.MVCํŒจํ„ด์˜ Controller์™€ ๋น„์Šทํ•œ ์—ญํ• ์„ ํ•˜๊ณ  ์žˆ๋‹ค.View์™€ Model์‚ฌ์ด์—์„œ View์˜ ์š”์ฒญ์— ๋”ฐ๋ผ ๋กœ์ง์„ ์‹คํ–‰ํ•˜๊ณ , Model์˜ ๋ณ€ํ™”์— ๋”ฐ๋ผ View์˜ refreshํ•œ๋‹ค.Model์— ๋ณ€ํ™”๊ฐ€ ์ƒ๊ธฐ๋ฉด View์—๊ฒŒ notification์„ ๋ณด..
[iOS]์˜ต์ €๋ฒ„ ํŒจํ„ด ์˜ต์ €๋ฒ„ ํŒจํ„ด์ด๋ž€?Observer Pattern(์˜ต์ €๋ฒ„)์ด๋ž€ ๊ด€์ฐฐ ์ค‘์ธ ๊ฐ์ฒด์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์ด๋ฒคํŠธ๋ฅผ ์—ฌ๋Ÿฌ ๋‹ค๋ฅธ ๊ฐ์ฒด์— ์•Œ๋ฆฌ๋Š” ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์ •์˜ํ•  ์ˆ˜ ์žˆ๋Š” ๋””์ž์ธ ํŒจํ„ด์ž…๋‹ˆ๋‹ค. iOS์—์„œ๋Š” Swift 5.1 ๋ฒ„์ „๋ถ€ํ„ฐ Combine ํ”„๋ ˆ์ž„์›Œํฌ์— Publisher๊ฐ€ ์ถ”๊ฐ€๋˜์–ด ์ด๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ณ  NotificationCenter๋„ ๋น„์Šทํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.    Subject (Publisher)Observer๋“ค์„ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ ๊ฐœ์ˆ˜๋Š” ์ œํ•œ์ด ์—†์Šต๋‹ˆ๋‹ค.Observer๋“ค์„ ์ถ”๊ฐ€, ์ œ๊ฑฐํ•˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.Concrete Subject (Publisher)Concrete Observer ๊ฐ์ฒด์˜ ์ƒํƒœ๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.์ƒํƒœ๊ฐ€ ๋ณ€๊ฒฝ๋˜๋ฉด Observer(Subscriber)์—๊ฒŒ ์•Œ๋ฆฝ๋‹ˆ๋‹ค.Observer (Subscrib..
[iOS] ReactiveX, Reactive Programming Reactive ProgrammingReactive Programming์ด๋ž€ ๋น„๋™๊ธฐ์  ๋ฐ์ดํ„ฐ ํ๋ฆ„๊ณผ ์ „๋‹ฌ์— ๊ด€ํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํŒจ๋Ÿฌ๋‹ค์ž„์ด๋‹ค.Reative Programming์˜ ํ•ต์‹ฌ์€ ๋ชจ๋“  ๊ฒƒ์„ ๋น„๋™๊ธฐ์  ๋ฐ์ดํ„ฐ์˜ stream์œผ๋กœ ๊ฐ„์ฃผํ•˜๊ณ  ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•์„ ํ†ตํ•ด ์ด๋Ÿฌํ•œ ๋น„๋™๊ธฐ ์ด๋ฒคํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์ด๋‹ค.ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ํŠน์ • ๊ธฐ๋Šฅ์„ ์ง์ ‘ ์ •ํ•ด์„œ ์‹คํ–‰๋˜๋„๋ก ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์‹œ์Šคํ…œ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒ๋˜์—ˆ์„ ๋•Œ, ์ด๋ฅผ ์•Œ์•„์„œ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.์‚ฌ์šฉ์ž์˜ ์ž…์žฅ์—์„œ๋Š” Reative Programming์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ž‘์„ฑ๋œ ํ”„๋กœ๊ทธ๋žจ์€ ์‹ค์‹œ๊ฐ„์„ฑ์„ ๊ฐ€์ง„๋‹ค.ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ์ž‘์„ฑํ•œ ์ˆœ์„œ์™€ ๋‹ค๋ฅด๊ฒŒ ์‚ฌ์šฉ์ž์™€ ์ƒํ˜ธ์ž‘์šฉํ•˜๋ฉฐ ๊ทธ์— ๋”ฐ๋ผ์„œ ์‹ค์‹œ๊ฐ„์œผ๋กœ ํ™”๋ฉด์ด ๋ณ€ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.์ด๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด์„œ ํ”„๋กœ๊ทธ๋žจ์ด ์ง€์†์ ์œผ๋กœ ํŠน์ • ๊ฐ’์— ๋Œ€ํ•œ ๊ด€์ฐฐ์„ ํ•ด์•ผ ..
[iOS] iOS data storage - 2. Userdefault, Coredata, Realm, Keychain File Manager์ƒŒ๋“œ๋ฐ•์Šค๋ฅผ ํ†ตํ•ด ์•ฑ๋งˆ๋‹ค ๋ณ„๋„์˜ ํŒŒ์ผ์„ ์ƒ์„ฑํ•ด ๊ณต์œ ๋˜์ง€ ์•Š๋„๋ก ํ•˜๊ณ , ์™ธ๋ถ€๋กœ๋ถ€ํ„ฐ์˜ ์ ‘๊ทผ์—๋„ ๋ณดํ˜ธ๋˜๋Š” ์˜์—ญ์œผ๋กœ ์‹œ์Šคํ…œ์ด ๋ถ€์ •์ ์œผ๋กœ ์กฐ์ž‘๋˜๋Š” ๊ฒƒ์„ ๋ง‰๊ธฐ ์œ„ํ•ด์„œ๋‹ค. ํŒŒ์ผ ๋งค๋‹ˆ์ €๋ฅผ ํ†ตํ•ด์„œ ํŒŒ์ผ์‹œ์Šคํ…œ๊ณผ ์ƒํ˜ธ์ž‘์šฉ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค.ํŒŒ์ผ๊ณผ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ฐพ๊ณ , ๋งŒ๋“ค๊ณ , ๋ณต์‚ฌํ•˜๊ณ , ์ด๋™ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•œ๋‹ค.ํŒŒ์ผ ๋งค๋‹ˆ์ €๋ฅผ ํ†ตํ•ด ์ฃผ๋กœ ์ ‘๊ทผํ•ด ์‚ฌ์šฉํ•  ๋””๋ ‰ํ† ๋ฆฌ๋“ค์— ๋Œ€ํ•ด ์‚ดํŽด๋ณด๋ฉด์„œ ์–ด๋–ค ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋ฉด ์ข‹์„์ง€ ์•Œ์•„๋ณด์ž.์ •๋ฆฌ๋ฅผ ํ•ด๋ณด๋ฉดfile system๊ณผ ์ƒํ˜ธ ์ž‘์šฉ ๊ฐ€๋Šฅํ•œ ์ธํ„ฐํŽ˜์ด์Šคfile๊ณผ directory๋ฅผ locate, create, copy, move ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.file system ๋‚ด ์ €์žฅ์‹œ ๊ฒฝ๋กœ(path) ์ •๋ณด๋ฅผ ํšจ์œจ์ ์œผ๋กœ ํ‘œํ˜„ํ•˜๋Š” NSURL์„ ์‚ฌ์šฉํ•˜์—ฌ ์œ„์น˜๋ฅผ ์ง€์ •iCloud ๋‚ด ์ €์žฅ๋˜์–ด ์žˆ..
[iOS] iOS data storage - 1. Sandbox(์ƒŒ๋“œ๋ฐ•์Šค) [Contents]SandBox ?SandBox ๊ตฌ์กฐBundle ContainerData ContainerDocumentLibrarytmpiCloud Container1. SandBox ?์•ฑ์„ ์ƒˆ๋กœ ์„ค์น˜ํ–ˆ์„ ๋•Œ, ๊ฐ„ํ˜น ์•„๋ž˜์™€ ๊ฐ™์ด ์ ‘๊ทผ ๊ถŒํ•œ์„ ํ—ˆ์šฉํ•ด๋‹ฌ๋ผ๋Š” Alert์€ ๋ณธ ์ ์ด ์žˆ์„ ๊ฒƒ์ด๋‹ค. ์ด๋Ÿฌํ•œ ๊ณผ์ •์ด ๊ฐ ์•ฑ๋ณ„๋กœ ๋ณ„๋„๋กœ ์ˆ˜ํ–‰๋˜๋Š”๋ฐ,๊ฐ ์•ฑ์ด ํŠน์ • ๋ฐ์ดํ„ฐ๋‚˜ ํ•˜๋“œ์›จ์–ด์— ์ ‘๊ทผํ•˜๋ ค๋ฉด *๊ถŒํ•œ (Permission)*์„ ์š”์ฒญํ•ด์•ผ ํ•˜๋ฉฐ, ์‚ฌ์šฉ์ž๊ฐ€ ์Šน์ธํ•ด์•ผ๋งŒ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.์ด๋Ÿฌํ•œ ๊ตฌ์กฐ๋ฅผ App Sandbox๋ผ๊ณ  ๋ถˆ๋ฆฌ๋ฉฐ, ๊ฐœ๋ฐœ์ž๋Š” ์• ํ”Œ์—์„œ ์ œ๊ณตํ•˜๋Š” ๊ถŒํ•œ๊ณผ ์ ‘๊ทผ ๋ฒ”์œ„ ๋‚ด์—์„œ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•ด์•ผ ํ•œ๋‹ค. ์ฆ‰, ๊ฐ๊ฐ์˜ ์•ฑ๋งˆ๋‹ค ๊ณ ์œ ํ•œ ์‹คํ–‰ ํ™˜๊ฒฝ์ด ์ œ๊ณต๋˜๋ฉฐ, ์•ฑ์€ ์ด ํ™˜๊ฒฝ ์™ธ๋ถ€์˜ ์‹œ์Šคํ…œ ํŒŒ์ผ์ด๋‚˜ ๋‹ค๋ฅธ ์•ฑ์˜ ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•  ์ˆ˜ ์—†๋‹ค...

๋ฐ˜์‘ํ˜•