๋ณธ๋ RxFlow๋ฅผ ํ๊ณ ์ถ์์ง๋ง RxFlowํ๋ฉด์ ๋ง์ ์ด๋ ค์์ ๋๊ผ์ต๋๋ค. ๊ทธ๋์ RxFlow์ ๊ธฐ๋ฐ์ด ๋๋ ํจํด์ด Coordinatorย ํจํด์ด๋๋ผ๊ณ ์. ๊ทธ๋์ย ์ค๋์ Coordinator Pattern์ ๋ํด์ ์์๋ณด๊ฒ ์ต๋๋ค.
์ผ๋จ ๋ฒ์ญ๊ธฐ์ Coordinator๋ผ๊ณ ๋๋ฆฌ๋ฉด "์กฐ์ ์"๋ผ๊ณ ๋์ต๋๋ค.
Coordinator์ ํ๋ ์ด์์ ๋ทฐ ์ปจํธ๋กค๋ฌ๋ค์๊ฒ ์ง์๋ฅผ ๋ด๋ฆฌ๋ ๊ฐ์ฒด์ด๋ฉฐย ๋ง๊ทธ๋๋ก ์กฐ์ ์์ ๊ฐ์ ์ฐ๊ฒฐ์ ํฉ๋๋ค.
์์ฝํ๋ฉด Coordinator๋ ์ฑ์ ํ๋ฉด ์ ํ ๋ฐ ๊ณ์ธต์ ๋ํ ํ๋ฆ์ ์ ์ดํ๋ ์ญํ์ ํฉ๋๋ค.
์ฌ๋ฌ๋ถ๋ ๊ทธ๋ ๊ณ ์ ๋ ๊ทธ๋ ๊ณ ์ด๋ฐ์ ํ๋ฉด ์ ํ์ด๋ผ๊ณ ํ๋ฉด ์ฃผ๋ก push ํน์ present๋ฅผ ์ฌ์ฉํฉ๋๋ค.
๊ทธ๋ฌ๋ฉด ์จ์ ํ ViewController์ ์ฑ ์์ด ๋ถ์ฌ๋๋ฉฐ ViewController์ ์์กด์ฑ์ด ์๊น๋๋ค.
ํ์ง๋ง Coordinator๋ฅผ ์ฌ์ฉํ๋ฉด ViewController์ ํ๋ฉด์ ์ด์ ํ๋ฆ์ Coordinator๊ฐ ๋์์ฃผ๊ธฐ ๋๋ฌธ์ ViewController์
๋ถ๋ด์ ์ค์ฌ ์ค ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋์ค์ ViewModel์ ๊ฐ์ด ์ฌ์ฉํ๋ฉด์ DI ๋ํ ํด๊ฒฐํ ์ ์๋ค๊ณ ํ๋ค์.
DI = ์์กด๊ด๊ณ ์ฃผ์ (โA๊ฐ B๋ฅผ ์์กดํ๋คโ , ์์กด ๋์ B๊ฐ ๋ณํ๋ฉด ๊ทธ๊ฒ์ด A์๊ฒ ์ํฅ์ ๋ฏธ์น๋ค)
์ฑ์ ๋ชจ๋ ์์ ์ ์บก์ํํ ์ ์์ผ๋ฉฐ Coordinator๋ ์์ ํ ์ ์ด ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ view์ ๋ผ์ดํ์ฌ์ดํด์ ๋ฌด์ํ๊ณ ๋ ๋ฆฝ์ ์ผ๋ก view๋ฅผ ์ปจํธ๋กค ํ ์ ์์ต๋๋ค. ์์์ ๋งํ ์ฌ์ฉ์ด์ ๋ํ ์ฅ์ ์ด๊ธฐ ๋๋ฌธ์ด ์ดํ ์๋ตํ๊ฒ ์ต๋๋ค.
๋จ์ ์ ์์๋ก ๋ค๋ฉด ์ฝ๊ฐ swift ๋์์ธ ํจํด์ MVP์ ์ ์ฌํ๋ค๊ณ ์๊ฐํ์ต๋๋ค.
์ด์ ๋ ํ๋์ View๋ฅผ ์ด๋ํ๊ธฐ ์ํด์๋ ๋ฌด์กฐ๊ฑด ViewController๊ฐ์ ์ด๋์ ํ ๋
Coordinator๊ฐ ํ๋์ฉ ์๊ธฐ๋ ๋ฒ๊ฑฐ๋ก์์ด ์๊ธฐ๊ธฐ ๋๋ฌธ์ ๋๋ค MVP๋ ํ๋ฆฌ์ ํธ๋ฅผ ๊ณ์ ๋ง๋ค์๋๋ฐย
Coordinatorย ํจํด์ Coordinator๋ฅผ ๊ณ์ ๋ง๋๋ ๋ฒ๊ฑฐ๋ก์์ด ์์ต๋๋ค ๊ทธ๋ฆฌ๊ณ ์๊ท๋ชจ ํ๋ก์ ํธ๋ฅผ ํ ๋๋
์ด๋์ ๋ ๊ด๋ฆฌ๊ฐ ๋ ์ ์๋ค๊ณ ์๊ฐํ์ง๋ง ๊ท๋ชจ๊ฐ ์ปค์ ธ๋ฒ๋ฆฌ๋ ๊ฒฝ์ฐ์๋ ์ ์ง๋ณด์๋ ์ด๋ ต๋ค๊ณ ์๊ฐํฉ๋๋ค...