개발자
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
지금 가입하면 모든 질문의 답변을 볼 수 있어요!
현직자들의 명쾌한 답변을 얻을 수 있어요.
이미 회원이신가요?
지금 가입하면 모든 질문의 답변을 볼 수 있어요!