
๋ณธ ํฌ์คํ ์ ๊ณฐํ๊น๋์ ๊ฐ์์์์ ๊ธฐ๋ฐ์ผ๋ก, ๊ฐ์ธ์ ์ผ๋ก ๊ณต๋ถํ ๋ด์ฉ์ ์ ๋ฆฌํ ๊ธ์ ๋๋ค. ๋์ฑ ์์ธํ ๋ด์ฉ์, ๊ฐ์ ์์์ ์ง์ ์์ฒญํ์๋๊ฒ์ ์ถ์ฒ๋๋ฆฝ๋๋ค! ์ด์ ์ ํฌ์คํ ํ RxSwift + MVVMํจํด [Subject๋ฅผ ํ์ฉํด๋ณด์]์ ์ด์ด์ง๋ ํฌ์คํ ์ ๋๋ค. ์ ๋ฒ ํฌ์คํ ๋ง๋ฏธ์ ๋์๋ RxCocoa์ ๋ํด ๊ฐ๋จํ๊ฒ ์์๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. RxCocoa๋ฅผ ์์ฝํ์๋ฉด, [RxSwift์ ์์๋ค์ UIKit์ ์ ์ฉํ ์ ์๋๋ก extension ์์ผ์ ์ ๋ชฉ์ํจ ๊ฒ] ์ด๋ผ๊ณ ์ค๋ช ํ ์ ์์ต๋๋ค. ๊ธ๋ก๋ง ๋ณด๋ฉด ์ฝ๊ฒ ์ดํด๊ฐ ๋์ง ์์ผ๋, ์์๋ฅผ ํตํด ์์๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. override func viewDidLoad() { super.viewDidLoad() viewModel.itemsCount .subscrib..

๋ณธ ํฌ์คํ ์ ๊ณฐํ๊น๋์ ๊ฐ์์์์ ๊ธฐ๋ฐ์ผ๋ก, ๊ฐ์ธ์ ์ผ๋ก ๊ณต๋ถํ ๋ด์ฉ์ ์ ๋ฆฌํ ๊ธ์ ๋๋ค. ๋์ฑ ์์ธํ ๋ด์ฉ์, ๊ฐ์ ์์์ ์ง์ ์์ฒญํ์๋๊ฒ์ ์ถ์ฒ๋๋ฆฝ๋๋ค! ์ด์ ์ ํฌ์คํ ํ [RxSwift] #3) RxSwift๋ฅผ ํ์ฉํ MVVMํจํด [1] ์ ์ด์ด์ง๋ ํฌ์คํ ์ ๋๋ค. ๋ํ, ์ด๋ฒ ๊ธ๋ถํฐ ์ฝ๋๋ด์ฉ์ ์บก์ณ ํ์์ด ์๋, ์ฝ๋๋ธ๋ญ ํ์์ผ๋ก ์์ฑ ํ ์์ ์ ๋๋ค! ์ด์ ํฌ์คํ ์์ Observable๋ก ์์ฑํ ๋ณ์๋ฅผ, ๊ตฌ๋ ํ ์ดํ์๋ ์ง์์ ์ธ ๊ฐ์ ๋ณ๊ฒฝ์ ๊ด์ฐฐํด์ผํ๋ ํ์๊ฐ ์๊ฒจ ์ด๋ฅผ์ํด Observable์ Subject๋ก ๊ตฌํํด์ผ ํ ํ์๊ฐ ์๋ค๊ณ ํ์์ต๋๋ค. (Subject์ ๋ํ ์ค๋ช ์ ์ด ๊ฒ์๋ฌผ์ ์ฐธ๊ณ ํด์ฃผ์ธ์!) class MenuListViewModel{ var menus : [Menu] = [ Menu..