ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • iOS [Swift] - Coordinator Pattern (1)
    iOS Develop 2022. 12. 19. 17:09
    반응형

    오늘은 무심코 코딩을 하다가 UINavigationController를 대체할 무언가에 대한 궁금증으로 시작하여

    Coordinator 패턴에 대해 학습을 하고 블로깅을 해보려고 한다. :)

     

    Coordinator Pattern 의 등장 배경

    나는 평소에 화면 전환을 할 때, UINavigationController를 자연스럽게 많이 사용하곤 했다. 

    그러다 현업에서 일을 하다보니 선배님들의 코드에는 생각보다 UINavigationController가 많이 쓰이지 않았다.

     

    내가 주로 사용하던 UINavigationController는 편하게 사용이 가능하고 접근성이 쉽지만, 앱의 크기가 커질수록 버거워질 수 밖에 없을 것이다. 새로운 화면이 쌓일 때마다 무거워지고 스택이 쌓이기 때문이다. 또, ViewController에 대한 의존도가 너무나도 커지고 그에 대한 역할이 커지는 것도 있을 것이다. 

     

    Massive한 ViewController의 가장 큰 문제점은 로직들이 엄청나게 엉켜있다는 점이다.

    그렇기에 점점 관리가 힘들어지고 이런 문제점을 해결하기 위해서,

    화면 전환을 독립적인 Class에서 관리할 수 있는 Coordinator Pattern 이 등장하게 된다.

     

    Coordinator Pattern의 특징

    • Coordinator Pattern은 화면 전환의 흐름을 제어하기 때문에, 기존 ViewController가 담당해왔던 책임을 대신 맡게된다.
    • Coordinator Pattern은 화면 전환 제어하는 것을 담당하고, 의존성 주입(DI)를 가능케 해주는 중간 역할을 한다. 
    • 기존 Massive ViewController보다 수준 높은 관리를 통해, 안정적으로 로직을 관리할 수 있다.
    • 기존 Massive ViewController는 ViewController간 의존도가 컸을텐데, Coordinator는 ViewController간 강한 결합도를 완화시켜줄 수 있다.
    • 결론적으로 유지보수하는 것에 큰 이점이 있고, ViewController가 View의 역할에만 집중할 수 있게 된다. 
    • 모든 Coordinator는 하위 Coordinator가 있기 때문에, 
      (ViewController에서 버튼을 클릭하면 상위 Coordinator에 알려주고, 그 Coordinator는 보다 상위의 App Coordinator에게 행위에 대한 처리를 알려준다. App Coordinator는 다른 화면으로 전환을 시켜주는 등의 처리를 할 수 있다.)

     

    오늘은 Coordinator Pattern에 대해 짧게 나마 살펴보았습니다. 부족한 점은 알려주시면 감사하겠습니다 :) 

    다음 포스팅에서는 Coordinator Pattern을 적용해보는 사례를 정리해보겠습니다. 🤩

Designed by Tistory.