Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[REFACTOR] Curriculum, Challenge, Bookmark Adaptor Pattern 적용 (#155) #158

Merged
merged 12 commits into from
Oct 19, 2023

Conversation

ffalswo2
Copy link
Contributor

@ffalswo2 ffalswo2 commented Oct 17, 2023

🌱 작업한 내용

  • Coordinator에서의 ViewController의 user action에 대한 관심사를 분리하기 위해서 시작된 adapter pattern적용을 일단 위 세군데의 coordinator에 적용 완료했습니다.
  • Adaptor 생성 또한 Factory로 책임을 분리시켜 생성에 대한 책임은 온전히 Factory가 전담하게끔 하였습니다.

🌱 PR Point

image

  • Coordinator -> navigationController -> ViewController -> Cooridnator -> ... 순으로 순환 참조가 생길 수 있는 우려가 존재한다는 것을 확인해서 추후 모든 adapter pattern 적용 후 Memory leak검사를 진행 후에 안정성을 위해 weak를 추가하는 방향으로 해야할 것 같습니다.
  • 추가로 adapter 생성은 Factory에서 하게끔 추후에 수정하는 것이 좋아보여 따로 이슈를 파서 수정할 계획입니다.
  • ViewController -> Coordinator로 바로 이어지는 depth에서 ViewController -> Adapter -> Coordinator 로 사이에 Adapter를 두어 depth를 늘려 VC와 Coordinator를 메소드명까지 완전한 분리를 시킬 수 있게 되었습니다.
  • 이로 인해서 화면전환 flow에 변경이 생길 때 변경사항이 미치는 영향이 Coordinator까지 가지 않고 adapter에서 멈추게 됩니다. 또한, Navigation interface를 채택하고 있다면 어떤 adapter든 adapter자리를 교체할 수 있기 때문에, 확장에는 열려있고 수정에는 닫힌 OCP 원칙을 지키며 유연한 설계가 가능케 되었습니다.

하지만 이제 단점으로는 아래와 같은 어마어마한 양의 보일러플레이트가 생기게 됩니다..
실제로 구현할 때에도 적지 않은 코드 양이었고 쉬운 과정이 아니었기에 도입 전에 충분한 고민과 근거를 필요시해보입니다.
image

📸 스크린샷

구현 내용 스크린샷
동작 확인 Simulator Screen Recording - iPhone 15 Pro - 2023-10-17 at 13 55 02

📮 관련 이슈

@ffalswo2 ffalswo2 merged commit c682157 into main Oct 19, 2023
@kimscastle kimscastle deleted the refactor/#155 branch October 19, 2023 13:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
♻️Refactoring 리펙터링 🦁민재 민재's
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[REFACTOR] Curriculum, Challenge, Bookmark Adaptor Pattern 적용
3 participants