노션 링크:
https://ember-slope-7c6.notion.site/MVC-vs-MVVM-ae2523065f384be98b0ab2424373dbf2
아키텍쳐 패턴이란?
- 소프트웨어의 구조를 패턴화 한 것
- 소프트웨어 아키텍처의 공통적인 발생 문제에 대한 재사용 가능한 해결책
- 디자인 패턴과 비슷하지만 더 넓은 범위에 속합니다.
💡 디자인 패턴이란?
- 객체 지향 프로그래밍을 설계할 때 자주 발생하는 문제에 대해서 처리하기 위해 사용되는 패턴
- 개발자들 간의 커뮤니케이션 효율성을 높이는 기법
- 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 |