우리 같이 협업하자

[우협하] 6주차 회고 - 본격적인 개발을 시작하다. (+ 코디네이터 패턴)

여성일 2024. 8. 23. 13:52
728x90

 오랜 기획 끝에 드디어 본격적인 개발을 시작했다. 처음에는 3주면 충분할 거라 생각했던 기획 단계가 예상을 훌쩍 뛰어넘어 길어졌다. 기획 과정에서 우리 팀은 수많은 변화와 도전을 겪었다. 디자인은 계속해서 수정되었고, 앱의 기능도 여러 차례 변경을 거쳤다.

 

 처음에는 이러한 변화와 지연이 답답하게 느껴졌지만, 돌이켜보니 이 모든 과정이 정말 값진 경험이었다. 기획은 거의 마무리 단계에 이르렀지만, 디자인 작업이 아직 완전히 끝나지 않아 개발을 미루고 있었다. 그러던 중 디자이너로부터 완성 페이지를 받게 되었고, 이를 바탕으로 UI 개발을 시작하게 되었다.

 

코디네이터 도입

 이번 프로젝트에서는 코디네이터 패턴을 도입했다. 새로운 아키텍처 패턴을 학습하고 실제 프로젝트에 적용해 보기 위함도 있지만, 우리 앱이 복잡해진만큼 앱의 화면 전환 로직을 분리하고 모듈화하기 위해 도입하였다. 

 최상위에 AppCoordinator를 두고, 그 아래에 OnboardingCoordinator와 TabCoordinator를 배치했다. 이렇게 하면 앱의 전체적인 흐름을 AppCoordinator가 관리하고, 세부적인 흐름은 각 하위 코디네이터가 담당하게 된다. 하지만 이 과정에서 코디네이터 간의 책임 분배를 명확히 하는 게 정말 어려웠다. 

 

 코디네이터 간의 통신 방식을 결정하는 것도 큰 고민거리였다. 델리게이트 패턴을 사용할지, 클로저를 사용할지 고민했지만, 델리게이트 패턴을 사용했다.

 

 코디네이터 패턴을 적용하면서 많은 것을 배웠다. 화면 전환 로직이 중앙화되니 앱의 흐름을 한눈에 파악하기 쉬워졌고, 각 뷰 컨트롤러는 자신의 역할에만 집중할 수 있게 되었다. 물론 아직 개선의 여지는 많다. 앞으로는 각 코디네이터에 대한 단위 테스트를 작성하여 더욱 견고한 구조를 만들어갈 예정이다. 코디네이터 간의 의존성 주입 방식도 개선하여 더 유연한 구조를 만들어갈 생각이다. 또한, 코디네이터의 생명주기 관리에도 더 신경 써서 앱의 성능을 최적화할 계획이다.