MVC, Flux 디자인 패턴

kang·2020년 4월 13일
0

MVC

java 개발자 교육을 받을 때, mvc 패턴을 알게 되었고, 그때 처음 사용해 보았고 지금까지도 많은 프로젝트에서 사용한다.
controller, model, view 패턴으로 컨트롤러는 모델의 데이터를 조회하거나 업데이트하는 역할을 하며, 모델의 변화는 뷰에 반영합니다.
조금 더 간단히 말하면 양방향 데이터이기 때문에 프로젝트 규모가 커질수록 복잡해지고 관리가 어려워지기 때문에 예측 불가능한 코드를 만들게 된다고도 합니다.
구글에서 검색하면 쉽게 볼 수 있는 글이 페이스북에서 발생하는 버그이며, 양방향 데이터의 문제점에 대해 자세히 찾아볼 수 있습니다.

Flux

Flux 패턴이란, MVC 패턴을 보완할 목적으로 faceBook에서 만든 아키텍처이며,
Redux를 경험해 본 사람들은 쉽게 이해할 수 있다.
참고로 본인은 flux 패턴을 사용하면서도 flux 패턴이라는 용어가 있는지도 몰랐다.
Redux을 사용하게 되면 flux 패턴이 어떤 건지 잘 알게 되며, 핵심은 단방향 데이터이고,
Action이 발생하면 dispatcher로 Store로 전달되고 store가 변경되면 view가 변경된다.

MVC와의 차이점은 MVC는 Model이 업데이트가 되면, view가 따라서 업데이트가 되고, 업데이트가 된 view는 다시 다른 Model을 업데이트하고 또 다른 View 업데이트될 수 있다.
하지만 Flux 패턴은 view가 변경된다고 해서 Store가 변경되지 않고, Action, Dispatcher을 사용해야만 Store의 데이터를 변경할 수 있다.

MVC 패턴에 실무에서 사용해보지 않아서 어떤 이슈가 발생하는지, 얼마만큼 복잡해지는지에 대해서 자세히 모르겠다.
Flux 패턴은 action과 dispatcher을 사용하여 데이터를 store에 전달하는 방식으로 사용했기에 익숙하고 Flux만 제대로 경험해 본 나로선, MVC와 flux를 명확히 비교할 수가 없다.

profile
ksb

0개의 댓글