mvc flux mvvm redux constate recoil jotai sagen ...

반응형

자꾸 한번씩 의심을 하게 된다. redux 대신 좀 더 쉽게 사용할 수 있는 전역 상태 라이브러리는 없는가에 대해서...

하지만 다른 것들은 쉬운게 아니라 기능이 없는 것이다. redux 가 아직까지는 제일 낫다.

 

그러나

recoil 은 아직 experimental 인데 이 경우는 아직 잘은 모르겠고 (왜냐하면 리액트 팀의 공식 라이브러리이니깐...)

constate 라던가 뭐 이런건 그냥 거의 contextAPI 와 hook 를 사용한 단순한 라이브러리 정도여서 그냥 기능이 없을 뿐이지 심플한 것이 아니다. React 의 useState, useReducer 같은 거 사용한 contextAPI 와의 조합 정도...

 

전역 상태는 redux-toolkit 이 현재로서는 최고의 선택. flux 패턴의 구현체. flux 패턴이 제일 좋아 보인다. 안정적이다. 레펀런스도 많다.

 

redux: flux, 리덕스는 미들웨어가 장점.

mobx: proxy, 프록시의 특성으로 인해서 computed 를 내부적으로 제공한다.

recoil: atomic store, 다른 스토어에 접근하기 용이하고 이 스토어들을 사용해 다른 값을 도출할 수 있다.

 

react-query 는 추가적으로 꼭 쓰자! 여유되면 redux-toolkit 에도 rtk-query 도 적용하면 좋겠지만... 일단은 react-query 부터.

 

정말 좋은 글!

https://ridicorp.com/story/how-to-use-redux-in-ridi/

 

리덕스 내부를 잘 설명한 글

https://jungpaeng.tistory.com/72

 

mvc vs flux 패턴 비교 

https://velog.io/@chosh/TIL-028-MVC-FLUX-REDUX

 

mvc vs mvvm vs mvp (ios 기준)

https://ios-development.tistory.com/75 

https://velog.io/@leeyoungwoozz/iOS-MVC-MVP-MVVM-비교

https://dev-leeyang.tistory.com/21 (viper / vip ? 도 추가)

https://gyuwon.github.io/blog/2017/03/05/mvvm-architectural-pattern.html (mvvm 깊은 설명 글)

 

ios 는 기본적으로 mvc 이고 ios13 부터 swiftUI + combine 을 통해 mvvm 도 적용. react 는 기본 mvvm 패턴 형식이라 볼 수 있다.

MVC 는 Controller 에서 Action 을 받아서 모델데이터가져오고 뷰에 뿌려주고 이것저것 다했는데

MVVM 은 Controller 빼고 View 에서 Action 받고 ViewModel 이란걸 (react state 같은거, view 와 binding 된 뷰모델영역) 두고 ViewModel 갱신되면 자동으로 View 가 갱신되도록 UI 갱신작업을 Controller 에서 일일이 하던 것을 ViewModel 이란걸 만들어서 좀 더 UI 의 구조에 중점을 두고 복잡성을 줄인것. View속에 Controller가 내재되어 있으며, View Model은 View에 대한 데이터 정보를 모르고(뷰 자체 안에서 처리) 데이터 바인딩* 실현(contorller에 대한 부하 감소) MVC에서는 Controller에 많은 부하를 주었기 때문에 View쪽으로 Controller를 보내고 비어있는 Controller자리에 중재역할을 할 View Model 개념을 삽입한 것 뿐.

반응형

댓글

Designed by JB FACTORY