Skip to content

Latest commit

ย 

History

History
49 lines (26 loc) ยท 2.28 KB

CoordinatorTheory-junha.md

File metadata and controls

49 lines (26 loc) ยท 2.28 KB

Coordinator Pattern ์ด๋ก 



๋ณธ๋ž˜ RxFlow๋ฅผ ํ•˜๊ณ  ์‹ถ์—ˆ์ง€๋งŒ RxFlowํ•˜๋ฉด์„œ ๋งŽ์€ ์–ด๋ ค์›€์„ ๋Š๊ผˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ RxFlow์— ๊ธฐ๋ฐ˜์ด ๋˜๋Š” ํŒจํ„ด์ด Coordinatorย ํŒจํ„ด์ด๋”๋ผ๊ณ ์š”. ๊ทธ๋ž˜์„œย ์˜ค๋Š˜์€ Coordinator Pattern์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.


Coordinatorย ๋ž€?

์ผ๋‹จ ๋ฒˆ์—ญ๊ธฐ์— Coordinator๋ผ๊ณ  ๋Œ๋ฆฌ๋ฉด "์กฐ์ •์ž"๋ผ๊ณ  ๋‚˜์˜ต๋‹ˆ๋‹ค.

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๋ฅผ ๊ณ„์† ๋งŒ๋“œ๋Š” ๋ฒˆ๊ฑฐ๋กœ์›€์ด ์žˆ์Šต๋‹ˆ๋‹ค ๊ทธ๋ฆฌ๊ณ  ์†Œ๊ทœ๋ชจ ํ”„๋กœ์ ํŠธ๋ฅผ ํ• ๋•Œ๋Š”

์–ด๋Š์ •๋„ ๊ด€๋ฆฌ๊ฐ€ ๋  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€๋งŒ ๊ทœ๋ชจ๊ฐ€ ์ปค์ ธ๋ฒ„๋ฆฌ๋Š” ๊ฒฝ์šฐ์—๋Š” ์œ ์ง€๋ณด์ˆ˜๋„ ์–ด๋ ต๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค...