본문 바로가기

명사 美 비격식 (무리 중에서) 아주 뛰어난[눈에 띄는] 사람[것]

이론

MVVM패턴이란?

MVVM패턴

Model-View-ViewModel의 약자

주로 웹 모바일 애플리케이션 개발에 사용

ViewModel는 Model과 View의 중재자 역할을 한다.

 

MVVM특징

ViewModel과 View간의 양방향 데이터 바인딩을 통해 데이터의 변화를 자동으로 반영할 수 있다.

ViewModel은 비즈니스 로직을 포함하고 View와는 독립적으로 테스트가 용이하다

ViewModel은 여러 View에 재사용될 수 있다.

View는 ViewModel의 상태에 의존하지않고 유연하게 변경 가능하다

 

MVVM 패턴을 사용하는 주요이점은 

사용자 인터페이스와 비즈니스 로직간의 강력한 분리를 달성하는것이며

데이터 바인딩을 통해 이 분리를 쉽게 유지할 수 있다.

 

 

 

Angular, Vue.js, React 등의 프레임워크에서 MVVM 유사개념이 사용되고있다.

이해를 돕기위해 예시코드를 살펴보자.

 

이해가 되지않는다면,

MVVM패턴은 ViewModel이 View와 Model간의 통신을 관리하고,

데이터바인딩을 수행해 자동으로 화면을 갱신시킬 수 있다고 알아두도록 하자.

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>MVVM Example</title>
</head>
<body>

<div id="app">
  <input v-model="viewModel.message" placeholder="Type a message">
  <p>{{ viewModel.message }}</p>
</div>

<script src="https://cdn.jsdelivr.net/npm/vue@2"></script>
<script>
  // Model: message라는 속성을 가진 데이터
  const model = {message: ''};

  // ViewModel: ViewModel객체를 생성해 message속성을 가지도록
  const viewModel = new Vue({
    data: {message: ''},
    watch: {
      message(newMessage) {
        // 데이터가 변경될 때마다 Model 업데이트
        model.message = newMessage;
      }
    }
  });

  // View: 입력란과 텍스트를 바인딩한다.
  new Vue({
    el: '#app',
    data: {
      viewModel
    }
  });
</script>

</body>
</html>

 

 

'이론' 카테고리의 다른 글

React 리액트란?  (0) 2023.12.07
MVW패턴이란?  (0) 2023.12.07
자바의 정석 Chapter08: 예외처리  (0) 2023.12.07
Apache Commons Validator, Validation Script없는 유효성검사  (0) 2023.12.06
국제화란?  (0) 2023.12.06