MVC vs MVVM 정리

박두팔이·2025년 9월 8일
0

MVC vs MVVM 정리

1. 내가 헷갈렸던 부분

  • 처음에 MVC의 Controller가 단순히 Model과 데이터를 주고받는 역할이라면,
    결국 View를 몰라도 되는 것 아닌가? → 그러면 MVVM과 뭐가 다른지 혼란스러웠음.

2. MVC 아키텍처

  • 구성 요소

    • Model: 데이터, 비즈니스 로직
    • View: 화면(UI)
    • Controller: 이벤트를 받아 Model을 호출하고, View에 데이터를 전달
  • Controller와 View 관계

    • Controller는 직접 View를 조작하지 않더라도,
      여전히 View를 선택/지정하고 데이터 전달 책임을 가짐
    • 즉, Controller는 View의 존재를 어느 정도 인지해야 함

3. MVVM 아키텍처

  • 구성 요소

    • Model: 데이터, 비즈니스 로직
    • View: 화면(UI)
    • ViewModel: View에 필요한 상태와 동작을 노출
  • ViewModel과 View 관계

    • ViewModel은 View를 전혀 모름
    • View는 ViewModel의 속성을 데이터 바인딩을 통해 구독
    • 상태가 변하면 View가 자동 갱신됨
    • 사용자 액션은 Command/Action 형태로 ViewModel에 전달됨

4. 핵심 차이

  • MVC

    • Controller ↔ View 간 간접적이지만 강한 결합
    • Controller는 어떤 View를 사용할지, 어떤 데이터를 넘길지 결정
  • MVVM

    • ViewModel ↔ View 간 데이터 바인딩 기반의 느슨한 결합
    • ViewModel은 View 존재를 모름
    • View는 단순히 ViewModel의 상태를 반영할 뿐

5. 정리

  • MVC: Controller가 데이터를 받아 어떤 View로 보여줄지 결정
  • MVVM: ViewModel이 상태를 노출하면, View가 자동으로 따라옴

➡️ 내가 헷갈렸던 부분은 MVC의 Controller도 View를 모를 수 있지 않나?였음.
하지만 중요한 차이는 Controller는 여전히 View를 지정해야 한다는 점,
반면 ViewModel은 View의 존재 자체를 몰라도 된다는 점이었음 오늘 하나 더 알아가서 기쁘다아.

profile
기억을 위한 기록 :>

0개의 댓글