728x90 ๋ฐ์ํ Design Pattern9 [React Native] Redux๋? (feat. Flux) Redux๋? Javascript ์ดํ๋ฆฌ์ผ์ด์ ์์ ์ํ ๊ด๋ฆฌ๋ฅผ ๋์์ฃผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ ๋๋ค. ์ฌ๊ธฐ์ "์ํ?๋ ๋ฐ๋๋ ์ด๋ค ๊ฐ๋ค์ ์๋ฏธํ๋๋ฐ์. ์๋ฅผ ๋ค๋ฉด ๊ณ์ฐ๊ธฐ์์ ์ด๋ค ๋ฒํผ๋ค์ ๋๋ฅด๋ฉด ๊ณ์ฐํ ๊ฐ์ด ๊ณ์ํด ๋ฌ๋ผ์ง์ฃ ? ๋ฐ๋ก ๊ณ์ฐํ ๊ฐ์ด => ๊ณ์ฐํ ๊ฒฐ๊ณผ๋ฅผ ๋ํ๋ด๋ ์ํ์ธ ๊ฒ ์ ๋๋ค. Flux๋? Redux๋ Facebook์ Flux ๋์์ธ ํจํด์์ ์ ๋๋ ๊ฒ์ธ๋ฐ์. Flux๋ Web ์ดํ๋ฆฌ์ผ์ด์ ์ MVC ํจํด์ผ๋ก ๊ตฌํํ ๋ ๋ฐ์ํ๋ ๋ฌธ์ ๋ค์ ํด๊ฒฐํ๊ณ ์ ๋ง๋ค์ด ์ก์ต๋๋ค. ๊ทธ๋ ๋ค๋ฉด ์ด๋ ํ ๋ฌธ์ ๋ค์ด ๋ฐ์ํ์๊น์? ๊ธฐ์กด MVC๋ ์๋์ ๊ฐ์ด Model๊ณผ View๊ฐ ์๋ฐฉํฅ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์์ต๋๋ค. ํ์ง๋ง ์ฑ์ด ์ปค์ง๋ฉด ์ปค์ง์๋ก Model๊ณผ View์ ์๋ฐฉํฅ ์ํต์ด ๋์ด๋ฌ๊ณ , ์ด๊ฒ์ ๋ฐ์ดํฐ์ ๋ณ๊ฒฝ ์ฌํญ์ ๋น ๋ฅด๊ฒ.. 2022. 8. 3. [Design Pattern] MVVM(Model - View - ViewModel) ํจํด์ด๋? (feat. Swift) ์๋ ํ์ธ์ Foma ๐ป ์ ๋๋ค! ์ค๋์ ์ ๋ง ์ค๋๋ง์ ๋์์ธ ํจํด์ ์ ๋ฆฌํ๊ฒ ๋์๋๋ฐ์. ๊ทธ ์ค์์ ๊ฐ์ฅ ์ธ๊ธฐ(?)์๊ณ ํซํ MVVM ๋์์ธ ํจํด์ ๋ค๋ค๋ณด๋ ค๊ณ ํฉ๋๋ค. (SwiftUI ๋ํ ๊ธฐ๋ณธ ๋์์ธ ํจํด์ผ๋ก MVVM์ ์ฌ์ฉํฉ๋๋ค.) ๋ฐ๋ก ์์ํ ๊ฒ์~ MVVM(Model - View - ViewModel)ํจํด์ด๋? ๐ง MVVM์ ํ๋์ ์ํํธ์จ์ด ์ํคํ ์ฒ ํจํด ์ผ๋ก GUI ์ฝ๋๋ก ๊ตฌํํ๋ ๊ทธ๋ํฝ ์ฌ์ฉ์ ์ธํฐํ์ด์ค(๋ทฐ)์ ๊ฐ๋ฐ์ ๋น์ฆ๋์ค ๋ก์ง ๋๋ ๋ฐฑ์๋ ๋ก์ง(๋ชจ๋ธ)๋ก๋ถํฐ ๋ถ๋ฆฌ์์ผ์ ๋ทฐ๊ฐ ์ด๋ ํน์ ํ ๋ชจ๋ธ ํ๋ซํผ์ ์ข ์๋์ง ์๋๋ก ํด์ค๋ค. MVVM์ ๋ทฐ ๋ชจ๋ธ์ ๊ฐ ๋ณํ๊ธฐ์ธ๋ฐ, ์ด๋ ๋ทฐ ๋ชจ๋ธ์ด ๋ชจ๋ธ์ ์๋ ๋ฐ์ดํฐ ๊ฐ์ฒด๋ฅผ ๋ ธ์ถ(๋ณํ)ํ๋ ์ฑ ์์ ์ง๊ธฐ ๋๋ฌธ์ ๊ฐ์ฒด๋ฅผ ๊ด๋ฆฌํ๊ณ ํํํ๊ธฐ๊ฐ ์ฌ์์ง๋ค๋ ๊ฒ์ ์๋ฏธํ๋ค.. 2021. 10. 19. [RIBs] Memo ์ญ์ ,์์ ๊ตฌํํด๋ณด๊ธฐ ์๋ ํ์ธ์ Foma๐ป ์ ๋๋ค! ์ ๋ฒ ์๊ฐ์ Memo๊น์ง ์ด๋ํด์ ํ๋ฉด์ ๋ณด์ฌ์ฃผ๋ ๊ฒ๊น์ง ๊ตฌํํ์๋๋ฐ์. ์ค๋์ Memoํ๋ฉด์์ ์ผ์ด๋๋ ์ญ์ ,์์ ์ ๊ตฌํํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. ๋ฐ๋ก ์์ํ ๊ฒ์~ MemoViewController.storyboard ์คํ ๋ฆฌ๋ณด๋ ํ๋ฉด ๊ตฌ์ฑ์ ์๋์ ๊ฐ์ต๋๋ค. ๋ทฐ์ปจํธ๋กค๋ฌ์ ํ ์ด๋ธ๋ทฐ๋ฅผ ๋ฃ์ด์ฃผ๊ณ ํ ์ด๋ธ๋ทฐ ์ ์ MemoTableViewCell์ ๋ฐ๋ก ๋ง๋ค์ด์ฃผ์์ต๋๋ค. ํ ์ด๋ธ๋ทฐ์ ์ ์ ๋ณด๋ฅผ ํ์ํด์ค Label,์ญ์ ๋ฒํผ.๋ํ๊ธฐ๋ฒํผ์ผ๋ก ๊ตฌ์ฑ๋์ด์์ต๋๋ค. Memo ๋ฉ๋ชจ๋ ๊ฐ๋จํ๊ฒ ์ซ์๋ง ๊ฐ์ง๊ณ ์๋ ๊ฐ์ฒด๋ก ๋ง๋ค์ด์ค๋๋ค. struct Memo { let number:Int } MemoData ์๋ ์๋ฒ์ ํต์ ์ ํด์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์์ผํ์ง๋ง...๊ท์ฐฎ์ผ๋๊น .. ์ ์ญ์ผ๋ก ์ ์ธํ ๋ฐ์ดํฐ๋ฅผ ๋ฏธ๋ฆฌ ์ธํ ํด.. 2021. 8. 26. [RIBs] Router๋ฅผ ์ด์ฉํด ํ๋ฉด ์ ํํด๋ณด๊ธฐ (feat. Memo) ์๋ ํ์ธ์ Foma๐ ์ ๋๋ค! ์ค๋์ RIBs ์ํคํ ์ฒ๋ฅผ ์ฌ์ฉํ์ฌ ํ๋ฉด ์ ํํ๋ ๋ฒ์ ๋ํด์ ์์๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. ๊ธฐ์กด Uber์ ํํ ๋ฆฌ์ผ์ ๋ฐ๋ผํ๋ ค๊ณ ํ์ผ๋... ์ ๋ ์์๋๋๋ผ๊ตฌ์... ๊ทธ๋์ ๋ค๋ฅธ ์ข์ ํํ ๋ฆฌ์ผ์ด ์์๊น? ํ๊ณ ์ด์ฌํ ์ฐพ์๋ณด๋ค๊ฐ SimpleMemo๋ฅผ RIBs๋ก ๊ตฌํํ ํํ ๋ฆฌ์ผ ์ฐพ๊ฒ๋์์ต๋๋ค. GitHub - eunjin3786/SimpleMemo-RIBs: SimpleMemo๋ฅผ RIBs๋ก ๋ฐ๊ฟ๋ณด์ :-) SimpleMemo๋ฅผ RIBs๋ก ๋ฐ๊ฟ๋ณด์ :-). Contribute to eunjin3786/SimpleMemo-RIBs development by creating an account on GitHub. github.com ์ ํฌ์คํ ์์ RootRIB์์ LoggedOutRIB์.. 2021. 8. 24. [RIBs] Interactor๋ก ๋น๋์ง์ค ๋ก์ง ์ฒ๋ฆฌํด๋ณด๊ธฐ (feat. ์ด๊ธฐ์ธํ ) ์๋ ํ์ธ์ Foma ๐ ์ ๋๋ค! ์ ๋ฒ ๊ธ์์ RIBs ์ ๋ํ ์ด๋ก ์ ๋ค๋ค๋๋ฐ์. (ํน์ ์๋ณด์ ๋ถ๋ค์ ์ฌ๊ธฐ ์์ ๋ณด๊ณ ์์ฃผ์ธ์~) ์ค๋์ Uber์์ ์ง์ ์ ๊ณตํ๋ ํํ ๋ฆฌ์ผ์ ํ๋ฒ ๋ฐ๋ผํด๋ณด๋ฉด์ ๊ตฌํํด๋ณด๋ ค๊ณ ํฉ๋๋ค! ๋ฐ๋ก ์์ํ ๊ฒ์~ ํ๋ก์ ํธ ์์ฑ ๊ฐ์ฅ ๋จผ์ RIBs ํํ ๋ฆฌ์ผ์ ๋ฐ๋ผํ ํ๋ก์ ํธ๋ฅผ ์์ฑํด์ค์ผ๊ฒ ์ฃ ? ์ ๋ RIBs Example๋ก ์ด๋ฆ ์ง๊ฒ ์ต๋๋ค. Pod init & install ์ ๋ CocoaPod์ ์ด์ฉํด์ RIBs๋ฅผ ์ค์นํ๋๋ก ํ๊ฒ ์ต๋๋ค. ํฐ๋ฏธ๋์์ ํ๋ก์ ํธ๊ฐ ์๋ ๊ฒฝ๋ก๋ก ์ด๋ํด pod init์ ํด์ฃผ์๋ฉด pod file์ด ์๊ธธ๊ฑฐ์์. ํํ์ผ์ ์๋ ์ฝ๋๋ฅผ ์ถ๊ฐํฉ๋๋ค. (๋ฒ์ ์ ๋ฐ๋ ์ ์์ผ๋ ๊ณต์ ๊นํ์์ ํ์ธํด์ฃผ์ธ์!) pod 'RIBs', '~> 0.9' ์ถ๊ฐํ ๋ค์ pod ins.. 2021. 8. 18. [Design Pattern] RIBs๋?(feat. Uber) ์๋ ํ์ธ์ Foma๐ ์ ๋๋ค! ์ค๋์ Uber์์ ๋ง๋ ํ๋ ์์ํฌ์ธ RIBs์ ๋ํด์ ์์๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. iOS๊ณ์์ ์์ฃผ ๊ณ ์์ด์ '๋ฏผ์๋ค'๋๋ ์ฌ๋ฌ ๋์์ธ ํจํด์ ๊ฑฐ์ณ์ RIBs์ ์ ์ฐฉํ๊ฒ ๋์๋ค๊ณ ํ๊ณ ๋ ๋ง์ ํ์ฌ์์ RIBs ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํ๊ณ ์๋๋ผ๊ตฌ์. ๊ทธ๋์ ์ด๋ค ์ ์ด ์ฅ์ ์ด๊ณ ๋ ์ด๋ป๊ฒ ์ฌ์ฉํ๋์ง์ ๋ํด์ ๋ค๋ค๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค! ๋ฐ๋ก ์์ํ ๊ฒ์~ RIBs๋? ๊ณต์ ๊นํ์์ ์ด๋ ๊ฒ ์๊ฐํฉ๋๋ค. RIBs๋ Uber์ ๋ชจ๋ฐ์ผ ํฌ๋ก์ค ํ๋ซํผ ์ํคํ ์ฒ ํ๋ ์์ํฌ์ ๋๋ค. RIB์ด๋ผ๋ ์ด๋ฆ์ ์ด ์ํคํ ์ฒ์ ํต์ฌ ๊ตฌ์ฑ ์์์ธ Router, Interactor ๋ฐ Builder์ ์ฝ์ด์ ๋๋ค. ์ด ํ๋ ์์ํฌ๋ ๋ง์ ์์ ์์ง๋์ด์ ์ค์ฒฉ ์ํ๊ฐ ์๋ ๋ชจ๋ฐ์ผ ์ฑ์ ์ํด ์ค๊ณ๋์์ต๋๋ค. ์ ๊ณต RIBs ์ํค.. 2021. 8. 18. [Design Pattern] MVP ํจํด์ด๋? ์๋ ํ์ธ์ Foma๐ ์ ๋๋ค! ์ค๋์ Model - View - Presenter๋ก ์ด๋ค์ ธ์๋ M.V.P ๋์์ธ ํจํด์ ๋ํด์ ์์๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. ์ง๊ธ๋ถํฐ ์์ธํ ์ดํด๋ณด๊ฒ ์ต๋๋ค. MVP๋? Model - View - Presenter ๋ก ์ด๋ค์ง ๋์์ธ ํจํด์ด๋ฉฐ MVC์์ Controller๊ฐ ํ๋ ์ญํ ์ Presenter๊ฐ ํ๋ค๊ณ ๋ณด๋ฉด ๋ฉ๋๋ค. "๊ทธ๋ฌ๋ฉด MVC ์ฐ๋ฉด ๋์ง ์ MVP๋ฅผ ์จ?" MVC๋ Model๊ณผ View๊ฐ ์๋ก ์ฐ๊ฒฐ๋์ด ์์ด ์์กด๊ด๊ณ๋ฅผ ๊ฐ๊ฒ ๋ฉ๋๋ค. ํ์ง๋ง MVP๋ Model๊ณผ View ๋ถ๋ฆฌ๋์ด ์๊ณ ์ค์ง Presenter๋ฅผ ํตํด์ ์ํ๋ ๋ณํ๋ฅผ ์๋ ค์ค ์ ์์ต๋๋ค. ์ด๋ ๊ฒ View์ ๋น์ง๋์ค ๋ก์ง์ด ์์ ํ ๋ถ๋ฆฌ๊ฐ ๋์ด ํ ์คํธ๊ฐ ์ฉ์ดํด์ง๋ค๋ ์ฅ์ ์ด ์์ต๋๋ค. ๋ทฐ๊ฐ ์ ๋ฐ์ดํธ ๋๋ ๊ณผ์ ์.. 2021. 8. 11. [Design Pattern] Apple์ MVC ํจํด์ด๋? ์๋ ํ์ธ์ Foma ๐ ์ ๋๋ค! ์ ๋ฒ ๊ธ์ MVC ํจํด์ ๋ํด์ ๋ค๋ค์๋๋ฐ iOS์์ ๋ค๋ฃจ๋ ๊ฒ๊ณผ๋ ์กฐ๊ธ ๋ค๋ฅด๊ฒ ์ปค์คํ ๋ทฐ๋ฅผ ์ง์ ๋ง๋ค์ด์ ๋ญ๊ฐ ๋ ์ ์์ ์ธ MVC ํจํด์ ๊ตฌํํ์ด์. (ํน์ ์๋ณด์ จ๊ฑฐ๋ ๊ถ๊ธํ์ ๋ถ๋ค์ ์ฌ๊ธฐ ์์ ๋ด์ฃผ์ธ์!) ํ์ง๋ง ๋ณดํต MVCํ๊ณ ๋ ์กฐ๊ธ ๋ค๋ฅธ ๋ถ๋ถ์ด ์์ด์. ๊ทธ๋์ ์ค๋์ ์ ํ์ MVC ํจํด์ ๋ํด์ ์ ๋ฆฌํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค! Apple's MVC ์ ํ์ ์ ํ์ ์ธ MVC ํจํด์์ ๋ชจ๋ธ๊ณผ ๋ทฐ์ ์ปจํธ๋กค๋ฌ๊ฐ ์๋ก ์์กด์ ์ธ ๊ฒ์ ๋ถ๋ฆฌํ๊ธฐ ์ํด ์์ ๋ค๋ง์ MVC ํจํด์ ๊ฐ๋ฐํฉ๋๋ค. ์ปจํธ๋กค๋ฌ๊ฐ ๋ทฐ์ ๋ชจ๋ธ์ ์ฐ๊ฒฐ์์ผ์ฃผ์ด ์๋ก ๋ถ๋ฆฌ๋์ด ์๊ณ ์๋ก์ ๋ํด ์ ํ์๊ฐ ์๊ฒ๋ ๋ง๋๋ ค๊ณ ํ์ผ๋.... ์ปจํธ๋กค๋ฌ๊ฐ ๋ทฐ์ ๋ผ์ดํ ์ฌ์ดํด์ ๊ด์ฌํ๊ฒ ๋๋ฉด์ MV - C ํจํด์ด ๋์ด๋ฒ๋ฆฝ๋๋ค. ์ด๋ ๊ฒ ๋๋ฉด์.. 2021. 6. 3. [Design Pattern] MVCํจํด์ด๋? (Model-View-Controller) ์๋ ํ์ธ์ Foma ์ ๋๋ค! ์ค๋ ์์๋ณผ ์ฃผ์ ๋ ํํ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋๋ ๋์์ธ ํจํด์ธ Model - View -Controller ์ ๋ํด์ ์์๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. ๋ฐ๋ก ์์ํ ๊ฒ์! MVC ํจํด์ด๋? "MVC๋ ์ํํธ์จ์ด ๊ณตํ์์ ์ฌ์ฉ๋๋ ์ํํธ์จ์ด ๋์์ธ ํจํด์ด๋ค. ์ด ํจํด์ ์ฑ๊ณต์ ์ผ๋ก ์ฌ์ฉํ๋ฉด, ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ก๋ถํฐ ๋น์ฆ๋์ค ๋ก์ง์ ๋ถ๋ฆฌํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ์๊ฐ์ ์์๋ ๊ทธ ์ด๋ฉด์์ ์คํ๋๋ ๋น์ฆ๋์ค ๋ก์ง์ ์๋ก ์ํฅ ์์ด ์ฝ๊ฒ ๊ณ ์น ์ ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค ์ ์๋ค. MVC์์ ๋ชจ๋ธ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐ์ดํฐ๋ฅผ ๋ํ๋ด๋ฉฐ, ๋ทฐ๋ ํ ์คํธ, ์ฒดํฌ๋ฐ์ค ํญ๋ชฉ ๋ฑ๊ณผ ๊ฐ์ ์ฌ์ฉ์ ์ธํฐํ์ด์ค ์์๋ฅผ ๋ํ๋ด๊ณ , ์ปจํธ๋กค๋ฌ๋ ๋ฐ์ดํฐ์ ๋น์ฆ๋์ค ๋ก์ง ์ฌ์ด์ ์ํธ๋์์ ๊ด๋ฆฌํ๋ค." - ์ํค ๋ฐฑ๊ณผ- ์ฅ์ ๋ค๋ฅธ ํจํด์ ๋นํด.. 2021. 6. 3. ์ด์ 1 ๋ค์ 728x90 ๋ฐ์ํ