Conversation
|
PR 올리기 전에 develop 현행화해서 rebase 한 번 씩 부탁드려요 충돌난채로 리뷰하면 의미가 반감되니까요! |
|
크게 3가지 정도 궁금증이 남는데,
|
|
seungyooooong
left a comment
There was a problem hiding this comment.
저번 회의때 말씀해주신 내용이라 아래 적어주신 리뷰를 보고 어느정도 상황을 이해했습니다 리베이스 및 주석 삭제 등 코드 정리해주시고 리뷰 마지막으로 요청해주세요!
- CompletePage delegate 제거 - DogetherButton에 PublishRelay 추가 (탭 이벤트 방출) - CompletePage에서 Signal로 외부 이벤트 노출 - CompleteViewController에서 emit(onNext:)로 이벤트 처리 - delegate 의존 제거로 단방향 Rx 이벤트 플로우 정리 # Conflicts: # dogether/Presentation/Common/DogetherButton.swift
- TodoWritePage의 TodoWriteDelegate 제거 - UITextFieldDelegate 및 버튼 Action을 Rx 스트림으로 대체 - PublishRelay/Signal 기반 단방향 이벤트 플로우로 리팩토링 - ViewController에서 emit(onNext:)로 ViewModel 로직 연결
7ed6b27 to
7893489
Compare
📝 Issue Number
🔧 변경 사항
🔍 변경 이유
프로토콜 선언 및 연결 과정이 반복되고, View ↔ Controller 간 결합도가 높아졌습니다.
이를 개선하기 위해 RxSwift의 Relay/Signal 스트림 구조를 도입했습니다.
이 방식은
UI → ViewController → ViewModel로 이어지는 단방향 이벤트 플로우를 형성해코드 연결이 단순해지고, 선언적이며 일관된 이벤트 처리가 가능합니다.
🧐 추가 설명
DogetherButton,CompletePage,TodoWritePage등 UI 컴포넌트에서PublishRelay로 이벤트를 방출하고, 외부에는Signal로 읽기 전용으로 노출합니다.ViewController는 각Signal을emit(onNext:)형태로 구독해 ViewModel과 연결하며,이를 통해 UI 이벤트 → 비즈니스 로직 흐름이 단순하고 예측 가능해졌습니다.
이왕 서드파티 라이브러리인 RxSwift를 도입한 만큼,
이벤트 플로우도 리액티브하게 바인딩하고 선언적으로 처리하는게 어떨까하는 생각에 이 구조를 생각해봤습니다.