[Javascript] MVVM: 화면과 값을 묶어 두면 무엇이 편해지고 무엇이 어려워지는가
MVC, Flux, Redux를 공부하고 나서 이런 질문이 남았다. 「MVVC인가? 그런 것도 있지 않아?」 이름을 정확히 기억하지 못했는데, 말하려던 건 MVVM(Model-View-ViewModel)이었다. 끝 글자가 C가 아니라 M이다.
MVC, Flux, Redux를 공부하고 나서 이런 질문이 남았다. 「MVVC인가? 그런 것도 있지 않아?」 이름을 정확히 기억하지 못했는데, 말하려던 건 MVVM(Model-View-ViewModel)이었다. 끝 글자가 C가 아니라 M이다.
Flux 글에서 「값을 바꾸고 싶으면 전표(Action)를 내고, 고치는 건 값을 가진 Store가 한다」를 공부했다. 그다음에 궁금했던 건 두 가지였다. Flux와 Redux는 같이 나온 건가, 다른 때 나온 건가. 그리고 Redux는 Flux와 무엇이 다른가.
FSD 글에서 프론트엔드 구조 후보 넷을 놓고 FSD를 골랐다. FSD는 화면 코드를 층으로 나누고 「위층 파일만 아래층 파일을 불러 쓸 수 있다」는 방향 규칙을 거는 구조다. 그때 MVC는 「화면과 로직을 나누나에 답할 뿐, 누가 누구를 부르나에는 답이 없다」는 한 줄로 넘겼다....
MVC 글은 Flux라는 이름을 꺼낸 데서 끝났다. 큰 MVC 앱에서는 값 하나를 바꾸면 그 값에 기대는 다른 값이 줄줄이 바뀌고, 결국 「누가 이걸 바꿨지?」를 찾을 수 없게 됐다. Facebook은 그 답으로 Flux를 내놓았다. 그 글에는 「Flux가 실제로 어떤 모양인지는 ...
백엔드, 그러니까 화면 뒤에서 데이터를 저장하고 업무 규칙을 처리하는 서버 쪽 프로그램에는 3계층 구조가 있다. Controller → Service → Repository 순서로만 부르고, 거꾸로는 부르지 않는다. 더 나아가면 헥사고날 아키텍처가 있다. 업무 규칙을 가운데 두고 ...