-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
MVVM에 대하여 설명해주세요. #18
Comments
|
MVVM은 애플리케이션을 모델, 뷰, 뷰모델로 분리하여 구조를 나눈 아키텍처 패턴입니다. 모델은 데이터와 비즈니서 로직을 관리하고, 뷰는 사용자에게 데이터를 시각적으로 표현하며, 마지막으로 뷰모델은 뷰와 모델 간 데이터 바인딩을 통해 중재자 역할을 하며 상호작용을 합니다. 이러한 MVVM 패턴은 구조를 나눔으로서 코드의 재사용성과 유지보수성을 높이고, 데이터 바인딩을 통해 개발 편의를 향상시키는 장점이 존재합니다. 하지만 데이터 바인딩이 늘어나면 디버깅에 어려움이 생길수도 있다는 단점도 존재합니다. 또한 유연한 데이터바인딩을 위해 RxSwift나 Combine을 사용하게 되는데 이러한 프레임워크나 라이브러리 채택으로 인해 의존성이 생깁니다. |
MVVM은 Model-View-ViewModel을 합친 말이다. 기존 MVC에서 컨트롤러가 비대해지는 문제를 해결하기 위해 등장한 패턴 중 하나이다. 모델과 뷰의 개념은 MVC와 동일하게 모델은 데이터와 데이터 처리 로직, 뷰는 UI 요소와 데이터 입력과 화면상 출력을 담당한다. MVC와 다른 점은 View Model이라는 새로운 레이어를 사용한다는 것이다. 기존에 View Controller가 담당하던 비즈니스 로직을 View Model이 담당하게 되고 View Controller는 View와 View Model을 연결하는 역할을 하며 View Model을 관측하고 그에 따른 UI 업데이트를 View에 전달하는 역할을 맡게 된다. 또한 데이터 바인딩을 적용해 View Model의 상태 변화를 자동으로 View에 반영할 수도 있다. MVC는 View Controller가 특정 뷰에 종속되는 문제가 있어 재사용성이 좋지 않다는 문제가 있었다. 하지만 View Model은 특정 뷰에 종속되지 않아 재사용성이 좋다는 장점이 있다. 이 경우 책임에 따라 View Model을 나누거나 각 비즈니스 로직들을 Use Case로 나눠 관리하는 방법을 도입할 수 있다. |
MVVM은 소프트웨어를 크게 Model-ViewModel-View 3개의 레이어로 나누는 소프트웨어 아키텍쳐 패턴입니다. Model은 프로그램이 가지는 상태를 저장하고 비즈니스로직을 수행합니다. MVC와 가장 다른 점은 Controller 대신 ViewModel이 있다는 점입니다. |
The text was updated successfully, but these errors were encountered: