[Swift] Coordinator Pattern

잡담

이전에도 적용해본 경험이 있는데, 디자인 패턴 의도대로 쓰고 있지 않다는 생각이 들었습니다. 조금 더 확실한 학습이 필요했고, 적용하게 되었습니다.

지금 이 게시글에 하나하나 정리하기엔 시간이 부족하기도 하고, 제가 참고한 블로그보다 잘 정리할 자신이 없어요.. ㅎㅎ

제가 이해한 부분에 대한 학습 정리라고 생각하시면 될 것 같습니다.

확실한 이해와 학습이 필요하시다면, 제 글보단 링크를 참고하시는게 더 좋을 것 같아요!

학습 정리

  1. Coordinator 패턴의 근본적인 목적은 화면 전환의 흐름을 Controller에서 분리하기 위함입니다.
  2. Controller는 뷰를 그려주는 것에만 집중할 수 있습니다.
  3. 화면 전환은 Coordinator에서 관리하고, Controller는 자신의 대리자를 알 수 없습니다. 그렇기 때문에 Coordinator만 바꿔주면 Controller는 재사용이 가능해집니다.
  4. 모든 화면 전환은 전체 앱을 지시하는 AppCoordinator에서 해주고, 모든 Coordinator에는 하위 Coordinator가 존재합니다.

이전에 적용했던 Coordinator 패턴은 Coordinator 끼리의 계층 구조가 없었고, Controller를 재사용할 수 없었던 것 같습니다.

여기서의 키 포인트는 모든 전환을 AppCoordinator에서 컨트롤하고, 모든 Coordinator에는 하위 Coordinator가 존재한다는 것입니다.

완전히 Controller에서 화면 전환 로직이 분리되고, Controller에서는 어떤 객체가 화면 전환을 담당하는지 알 수 없는 것이죠.

자세한 학습을 원하시면 링크 참고 부탁드립니다.