개발자

mvc, flux 패턴의 차이점

2024년 02월 17일조회 291

flux 아키텍쳐에 대해 공부를 하던 중 제가 이해한 바가 맞는지 궁금하게 되어 질문드립니다. 처음 서치를 시작했을 때는 각 장단점을 얘기하였을 때 mvc 패턴 : 양방향 데이터 플로우로 인해 큰 규모의 프로젝트에서는 다수의 model, view 가 뒤섞여 어디서 데이터가 수정되었는지 추적이 어렵고 의도하지 않은 사이드 이펙트가 발생할 수 있다. flux 패턴 : 단방향 데이터 플로우를 강제하여 상호작용으로 인해 어떤 데이터가 수정되고 그로 인해 영향을 받는 view 를 파악하기가 쉽다. 는 것이 제가 얻은 중론이였습니다. 하지만 mvc 패턴 또한 view 상호작용 > controller > model 수정 > view 데이터 반영 으로 단방향 플로우를 가지는 것이 아닌가? 라는 생각이 들었습니다. 추가적인 서치 후 최근 mvc 패턴은 초기 아키텍쳐를 그대로 반영하지 않으며, 그 이름으로 불리는 mvp, mvvm 패턴을 뜻하는 경향이 있다. 해당 파생 아키텍쳐에서는 model < - > view 사이 양방향 데이터 플로우가 만들어져 규모가 커질수록 복잡도가 증가하게 되었다는 정보를 알게되었습니다. flux 패턴은 오히려 초기 mvc 패턴의 단방향 플로우를 강제하여 데이터 추적 및 이해를 쉽게하였다고 보는 것이 맞는 것인지 앞서 말한 것들이 제가 제대로 이해한 것인지 선배님들이 답변을 주시면 정말 감사하겠습니다.

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.

답변 2

인기 답변

조용구님의 프로필 사진

안녕하세요! 제가 아는 선에서 답변드립니다 :) (1) -------------- mvc 패턴 : 양방향 데이터 플로우로 인해 큰 규모의 프로젝트에서는 다수의 model, view 가 뒤섞여 어디서 데이터가 수정되었는지 추적이 어렵고 의도하지 않은 사이드 이펙트가 발생할 수 있다. flux 패턴 : 단방향 데이터 플로우를 강제하여 상호작용으로 인해 어떤 데이터가 수정되고 그로 인해 영향을 받는 view 를 파악하기가 쉽다. ------------- (1) 답변: 이 부분은 맞습니다. (2) ------------- 하지만 mvc 패턴 또한 view 상호작용 > controller > model 수정 > view 데이터 반영 으로 단방향 플로우를 가지는 것이 아닌가? 라는 생각이 들었습니다. ------------- (2) 답변: 초기의 MVC 패턴은 View에서 직접 Model에 message를 보내서 변경할 수 있었습니다. 문서에서는 양방향이라는 용어는 사용하지 않았으나 구조상으로 양방향입니다. 최근의 MVC 패턴은 위에서 설명한 것 처럼 단방향 플로우입니다. (3) ------------- 최근 mvc 패턴은 초기 아키텍쳐를 그대로 반영하지 않으며, 그 이름으로 불리는 mvp, mvvm 패턴을 뜻하는 경향이 있다. 해당 파생 아키텍쳐에서는 model < - > view 사이 양방향 데이터 플로우가 만들어져 규모가 커질수록 복잡도가 증가하게 되었다는 정보를 알게되었습니다. ------------- (3) 답변 - MVVM은 2005년 MS 사에서 WPF 언어에 적용한 패턴이고, MVP는 2011년 Taligent 사에서 C++, Java에 적용한 패턴입니다. - MVVM, MVP 패턴은 MVC를 참조했지만 각 패턴의 개념들은 다른 역할과 책임을 부여했기 때문에 패턴을 이해하지 못한 사람들의 생각으로 보입니다. - 양방향을 적용한 것은 MVVM이고, ViewModel에 양방향을 적용해서 MVC의 코드를 획기적으로 감소 시켜서 화두가 됐었습니다. (4) ------------- flux 패턴은 오히려 초기 mvc 패턴의 단방향 플로우를 강제하여 데이터 추적 및 이해를 쉽게하였다고 보는 것이 맞는 것인지 ------------- (4) 답변: 대체로 이해하신 것 같습니다만 flux를 정확히 이해하려면 mvc 패턴을 비교하기 보다 flux 자체로 이해하는 게 더 쉽습니다! 초기의 MVC 패턴을 단방향 플로우로 구현한 것이 최근의 MVC 패턴이라 혼란의 여지가 있습니다. (최근의 MVC는 View에서 Controller를 통해 Model을 변경 할 수 있음)

세혁님의 프로필 사진

세혁

작성자

삼성 청년 SW 아카데미 웹 개발2024년 02월 18일

친절한 답변 감사드립니다! 항상 비교하는 방식으로 공부하였는데 말씀대로 대상 자체를 이해하는 공부방법을 시도해봐야겠습니다...

삭제된 사용자님의 프로필 사진

삭제된 사용자

2024년 02월 24일

test

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

목록으로
키워드로 질문 모아보기

실무, 커리어 고민이 있다면

새로운 질문 올리기

지금 가입하면 모든 질문의 답변을 볼 수 있어요!