Store, StoreOf, ViewStore, ViewStoreOf 이게 뭐람?

KANO·2023년 10월 2일

프로젝틍에 TCA를 적용하면서 보이는것이 Store관련 키워드가 보이는것이 여럿이 있다.
Store, StoreOf, ViewStore, ViewStoreOf등이 아래 코드처럼 보일것이다.
간략히 정리해보면 아래와 같다.

참고로 나는 TCA + UIKit기반으로 사용하고 있다.

 let simpleStore = Store(initialState: SimpleReducer.State(),
                              reducer: {SimpleReducer()})
        
 let simpleVC = SimpleViewController(simpleStore)
SimpleViewController
 var viewStore: ViewStoreOf<SimpleReducer>
 var cancellables: Set<AnyCancellable> = []

   
    init(_ store:StoreOf<SimpleReducer>) {
        self.viewStore = ViewStore(store, observe: {$0})
        super.init(nibName: nil, bundle: nil)
    }

Store

  • Store는 앱의 전역 상태를 저장하고 관리하는 중앙 데이터 저장소
  • 앱의 상태, 액션 처리 및 상태 업데이트를 관리
  • UI 컴포넌트 간에 데이터 흐름 조정
  • 초기 상태와 상태 변경 로직이 포함
  • 전역 앱 상태를 관리하는 핵심 요소

StoreOf

  • Store의 일부 서브 상태를 추출, 해당 서브 상태에 대한 액션 처리 담당
  • 앱의 전역 상태를 분리하여 작은 모듈로 나누고, 서브 모듈 간의 상호 작용을 처리
  • 특정 상태의 일부를 추상화하고 상태 변경 로직을 정의

ViewStore

  • Store의 서브 상태를 특정 뷰 또는 화면에 대한 인터페이스로 추상화
  • 특히 UI에서 필요한 데이터와 상태 업데이트를 처리 역활
  • ViewStore는 특정 뷰에서만 사용되며 해당 뷰에 필요한 상태 및 액션을 캡슐화

ViewStoreOf

  • ViewStore를 생성하기 위한 유틸리티 함수
  • 특정 뷰에 대한 ViewStore를 생성할 때 사용되며, 해당 뷰에서 필요한 데이터와 상태 업데이트를 추상화
  • ViewStoreOf를 사용하면 특정 뷰에 대한 ViewStore를 생성하고 필요한 데이터에 접근
profile
개발자이에요

0개의 댓글