티스토리 뷰

728x90

잊고 지낼만 하면 어디선가 누군가가 꼭 이야기 한다. MVC 패턴에 대해...


그래서 한참 동안 잊었다가 다시 상기 하게 되었다.

MVC 진짜를 찾아서 오랜만에 책을 뒤적거렸다.



책을 보니 노르웨이 컴퓨터 과학자 트리베 린스카우그(Trygve Reenskaug)가 처음 MVC패턴을 고안했다. 

스몰토크라는 언어로 어플리케이션을 만드는데 사용했다고 한다.


"패턴 지향 소프트웨어 아키텍처"라는 책에 그려진 다이어그램을 따라 코딩 해 봤다.







핵심은 이렇다.

비즈니스 로직인 Model과 프리젠테이션 로직인 View 의 책임을 나눠 놓고 View와 Controller또한 책임에 따라 분리한다.

View는 표현을 해야 하기 때문에 Model에 의존 될수 있다. 하지만 Model은 View를 몰라도 된다.

사용자의 인터렉션은 Controller가 받는다.


"패턴 지향 소프트웨어 아키텍처"의 책과 "엔터프라이즈 애플리케이션 아키텍처 패턴"에 구현 방식이 서로 다르게 설명 되어 있는데

그 이유는 이벤트 전파 방식에 대해서 해석이 다르기 때문이다.

전통적인 방식에서는 Model과 Controller, View 가 서로 pub-sub 패턴으로 이벤트를 전파하지만,

일부 책에서는 Model이 변경되면 Controller에만 이벤트 전파가 되고 Controller에서 View로 다시 이벤트를 전파하는 방식이 차이점이다.


MVC 패턴의 변형이 여러가지다.

유명한 몇가지 MVP, MVVM는 다음에 알아 보도록 하자.


참고

MVC 레포트 - http://folk.uio.no/trygver/2007/MVC_Originals.pdf

트리베 린스카우그의 MVC - http://heim.ifi.uio.no/~trygver/themes/mvc/mvc-index.html

패턴 지향 소프트웨어 아키텍처(Pattern-Oriented Software Architecture)

엔터프라이즈 애플리케이션 아키텍처 패턴(Pattern of enterprise Application Architecture)

마틴 파울러의 GUI Architectures - https://www.martinfowler.com/eaaDev/uiArchs.html

728x90
댓글