ReactorKit과 TCA의 문제 고찰

치킨치·2024년 5월 6일
0

두 아키텍쳐는 flux를 기반하고 Dispatcher, Store, View 크게 세 부분으로 나누고 State, Action, Reducer의 개념으로 단방향 데이터 흐름을 만든다.

flux를 직접 공부한 적은 없지만 flux를 기반으로 발전해온 ReactorKitTCA는 동일한 문제점들을 발견했다.
상태(State)를 하나의 struct로 관리한다는 것이다.
아무리 struct가 스택 메모리의 데이터는 오버헤드가 적지만 모든 상태를 하나로 묶어서 관리한다면 아래와 같은 문제가 발생 할 수 있다.
1. 비교가 불필요한 멤버들까지 확인이 이루어진다.

  • 리스트 데이터가 너무 많은 데이터를 자주 혹은 많이 로드하는 경우 문제가 두드러질 것이다.
  • 포함관계인 두 뷰는 상위뷰의 State하위 뷰의 State를 포함하고 있는 경우가 있는데, 이 문제가 발생 할 것이다.
  1. 과다할 정도의 로직이 상위 뷰에 집중될 가능성이 커진다.
  • javascript와 Andorid에선 State Hoisting이라고 지칭하는데, 이 기술은 편리하긴 하지만 코드 커플링을 유도한다.
profile
풀스텍이었던 iOS개발자

0개의 댓글