본문 바로가기

CS/디자인 패턴

Flux 패턴

Flux 패턴 : MVC 패턴의 한계로 페이스북이 만들었음. 데이터를 한방향으로 흐르게 하는 패턴으로 action, dispatcher, store 이라는 계층이 있다.

 

* 기존 MVC 패턴으로 했을 때의 문제

 

-  "읽은 표시(mark seen)"에 관해 많은 뷰가 있다면 이를 어떻게 처리해야할까? 어떤 페이지에서 메시지를 읽었는데 다른 페이지에서는 메시지가 안 읽었다고 뜸.

- V와 C의 관계가 복잡해지니 버그를 수정하기도 데이터흐름을 알아보기 어려운 문제가 발생.
--> 예를 들어, view에서 일어난 것이 모델에 영향을 끼치기도 하고, 그 반대도 영향을 미치는 로직도 발생. 즉, "데이터를 뷰에 공유하기가 어려움"

 

 

 

1) Action
마우스 클릭이나, 글을 쓴다던가 이벤트를 의미하며 이벤트가 발생했을 action에 관한 객체를 만들어내 dispatcher에게 전달

 

2) Dispatcher
들어오는 action 객체 정보를 기반으로 어떠한 "행위"를 할 것인가. 보통 action 객체 type를 기반으로 미리 만들어 놓은 로직을 수행(일반적으로 switch문 사용)

 

3) Store
데이터, 상태를 담고 있는 계층

* Flux 패턴

4) 장점

  • 데이터 일관성 증대
  • 버그를 찾기가 쉬움
  • 단위 테스팅이 쉬워짐

출처 : 면접을 위한 cs 전공지식 노트

'CS > 디자인 패턴' 카테고리의 다른 글

의존성 주입과 전략 패턴의 차이  (0) 2022.07.22
MVC, MVP, MVVM  (0) 2022.07.22
프록시 패턴  (0) 2022.07.22
옵저버 패턴  (0) 2022.07.22
전략 패턴  (0) 2022.07.22