GDSC Sookmyung 활동/10 min Seminar

MVC vs MVVM

doobi 2023. 2. 27. 18:58

 

노션 링크: 

https://ember-slope-7c6.notion.site/MVC-vs-MVVM-ae2523065f384be98b0ab2424373dbf2

 

MVC vs MVVM

아키텍쳐 패턴이란?

ember-slope-7c6.notion.site

 

 

아키텍쳐 패턴이란?

  • 소프트웨어의 구조를 패턴화 한 것
  • 소프트웨어 아키텍처의 공통적인 발생 문제에 대한 재사용 가능한 해결책
  • 디자인 패턴과 비슷하지만 더 넓은 범위에 속합니다.

💡 디자인 패턴이란?

  • 객체 지향 프로그래밍을 설계할 때 자주 발생하는 문제에 대해서 처리하기 위해 사용되는 패턴
  • 개발자들 간의 커뮤니케이션 효율성을 높이는 기법
  • ex) 생성 패턴, 구조 패턴, 행위 패턴 </aside>

아키텍쳐 패턴을 사용하는 이유

  • 구조화 된 패턴을 사용하지 않을 경우, 코드 라인 수가 늘어나서 이해하기 어려워질 수 있다.
  • 복잡한 코드를 단순화
  • 코드 관리가 쉽고 깔끔
  • 개발자 빌드 및 테스트 시간을 절약

MVC 패턴

  • 애플리케이션을 Model, View, Controller로 분리하는 아키텍처
  • Model: 로직과 관련된 모든 데이터를 포함Controller: 모델과 뷰 구성요소 간의 인터페이스
  • View: 사용자에게 데이터를 표현하거나 유저와 상호작용을 처리함

흐름

사용자 액션 → 컨트롤러 → 모델 → 컨트롤러 → 뷰 → 모델 → 뷰 → 사용자

  • 뷰와 컨트롤러는 모두 모델에 의존

장점

  • 간단하다
  • 클래스와 객체가 독립적으로 작동하므로 테스트가 쉬움
  • 여러 개의 뷰를 모델에 빌드할 수 있다.
  • 소규모 프로젝트에 적합

단점

  • 새로운 view가 생기면 이에 대응되는 컨트롤러 필요
  • 유지 보수, 재사용이 어려움
  • 개발 규모가 커질 수록 컨트롤러가 복잡해짐

MVVM 패턴

  • 애플리케이션을 Model, View, ViewModel로 분리하는 아키텍처
  • Model: 데이터를 저장하고 처리ViewModel: View와 Model 사이에 존재하며 서로간의 중재를 하는 역할
  • View: 사용자가 직접 보는 화면(UI)을 담당

흐름

사용자 액션 → 뷰 → 뷰 모델 → 모델 → 뷰 모델 → 뷰 → 사용자

  • MVC 패턴과 매우 유사하지만, 컨트롤러 대신 뷰모델(ViewModel)이라는 개념을 사용
  • 뷰모델은 뷰와 모델 사이의 의존성을 줄임

장점

  • 테스트, 유지 보수, 재사용이 쉬워짐
  • 코드가 분리되면서 확장성과 유지보수성이 높아짐
  • 대규모 프로젝트에 적합

단점

  • View 와 Model 설계가 어려움

MVC vs MVVM

MVC MVVM

간단하다, 소규모 프로젝트에 적합 설계가 어렵다, 대규모 프로젝트에 적합
코드 재사용이 어려움 프로젝트 파일 유지,보수가 쉽다.
View 와 Model의 의존성이 높다 View와 모델의 의존성이 없다

출처

MVC vs MVVM- A complete guide with comparison

MVC (Model View Controller) Architecture Pattern in Android with Example - GeeksforGeeks

'GDSC Sookmyung 활동 > 10 min Seminar' 카테고리의 다른 글

스프링부트 로그 찍기  (0) 2023.03.05
커스텀 데이터셋 만들기  (0) 2023.03.05
JWT란 무엇인가  (0) 2023.02.27
XML과 Compose의 차이점  (1) 2023.02.27
Spring Security Trivia  (0) 2023.02.21