toggle menu

[AngularJS] MVC 패턴? MVVM 패턴?

2012. 11. 24. 22:42 AngularJS
앵귤라에는 다양한 개념이 존재하는데 컨트롤러(Controller) 외에도, 모듈, 스코프, 다이렉티브(지시어), 서비스, 프로바이더 등 기존에 jQuery만 해왔다면 선뜻 이해하기 어려운 단어들로 인해 쉽게 파악이 되지 않는다..

컨트롤러라는 개념이 있으니 이 녀석이 MVC 패턴에서 C를 담당한다고 쳐도, 나머지 녀석들은 저 패턴에 어떻게 맞아 들어갈까 고민이 되는게 사실이다.

일반적으로 앵귤러에서는 이렇게 나누어진다고 볼 수 있다.

Controller (controller) : UI 뒷단에서 data (스코프) 를 조작하는 역할
Directive : 스코프를 통해서 컨트롤러와 커뮤니케이션하기 위해 DOM을 세팅하는 역할, 그리고 DOM을 조작하는 역할
Template (view) : DOM의 요소에 directive를 할당
Scope (model 또는 viewmodel) : 시스템의 모든 조각들 사이에 데이터를 날라주는 역할
Service : 주입 가능하고 재사용할 수 있는 코드들. 보통 Ajax, cookie, 기타 I/O와 같이 종속적인 것들이 해당된다.


사실상 거의 MVVM이지 MVC는 아니다!


MVVM (Model-View-ViewModel) 패턴이란 데이타 모델(Model) 부분과 화면을 보여주는 뷰(View) 그리고 뷰에서 발생되는 이벤트행동들을 뷰모델(ViewModel)로 나누는 것이다. (http://junsae.tistory.com/30)


사실 앵귤러 공식 사이트에서는 MVW 라고 표현하고 있다. W는 Whatever!
모델과 뷰가 연동되는 것이 핵심이니 뭐.. ;)

 

AngularJS 관련 포스팅 더보기