[React] Flux & Atomic 패턴

Hyowmls·2024년 6월 14일
0
post-thumbnail
post-custom-banner

Flux architecture pattern

단방향 데이터 흐름을 가진 패턴

Data Flow

  • Action - 데이터 흐름의 변화를 유발하는 동작
  • Dispatcher - Action이 발생했음을 Store에 전달하는 역할
  • Store - 데이터를 저장하는 공간
  • View - Store에서 데이터를 가져와 사용자에게 보여주는 부분

Flux 패턴 장점

  • 단방향 데이터 흐름
    상태 변화에 대한 예측이 가능하며 디버깅이 용이하다
  • 모듈화 구조
    상태 관리와 뷰를 분리하여 모듈화 구조를 개발할 수 있다
  • 확장성
    상태 관리를 체계적으로 할 수 있어 복잡한 애플리케이션 확장이 수월하다

Flux 패턴 단점

  • 복잡성 증가
    작은 애플리케이션의 경우 복잡도가 증가한다
  • 복잡한 보일러플레이트 코드
    초기 설정을 위한 코드가 많다

Flux 패턴 기반의 상태 관리 라이브러리

  • RTK(Redux Tool Kit)
  • Zustand

Atmoic design pattern

  • 상태를 작고 독립적인 단위(atom)로 분리하여 관리하는 패턴
  • 컴포넌트가 상태를 구독한다

Atomic 패턴 장점

  • 독립성과 모듈화
    작은 단위로 상태를 관리하기 때문에 코드의 재사용성과 유지보수성이 향상된다
  • 확장성
    상태 관리를 쳬계적으로 할 수 있어 애플리케이션 확장이 수월하다

Atomic 패턴 단점

  • 복잡성 증가
    상태를 많은 아톰 단위로 나누게 되는 경우 코드 구조가 복잡해지고 관리가 어려워 질 수 있다
  • 디버깅의 어려움
    상태가 여러 아톰에 분산되어 있어 상태 변경이 일어나는 과정을 추적하는 것이 어려울 수 있다

Atomic 패턴 기반의 상태 관리 라이브러리

  • Recoil
  • Jotai
post-custom-banner

0개의 댓글