'쓸잘때기없지만 실용적인 강좌'에 해당되는 글 1건

  1. 2011.10.15 ASP.NET MVC3 그리고 Razor (1)
ASP.NET2011.10.15 00:08

ASP.NET MVC3로 프로젝트를 진행하고 있습니다.
MVC2에서 부족한 부분들을 3에서 많이 채워 주었습니다.

대표적인 예로 View Engine인 Razor 지원이 됩니다.

제가 실용적인 강좌가 많이 없다고 많은 분들께 이야기 하고 다녔습니다. 저 또한 실용적인 강좌를 만들지 못하고 있지만 정말 실무에서 필요한 내용이 무었인지 여러분들과 조금이나마 공유했으면 좋겠다는 생각에 지극히 개인적인(?) 아티클을 남겨 봅니다.

MVC(Model-View-Controller) 는 사실 명명이 잘못되었다고 생각합니다. CMV가 되어야 하는데, MVC죠...

이야기처럼 봐 주세요 ^^;

웹은 요청(Request)가 있어야 응답(Response)을 합니다.

요청을 받는 녀석은 Controller(C) 이죠. 요청을 받으면 요청한 내용을 보여주기 위해서 Model(M)에서 필요한 내용을 꺼냅니다. 그리고 View(V)를 통해서 보여주게 되는것이죠.

그럼 기존 WebForm기반이랑 뭐가 다른가요?

WebForm도 마찬가지입니다. 요청(Request)에 대해 응답(Response)를 하는데, 단지 Page기반의 처리방법이 MVC와 차이가 있는것입니다.

현재 우리 팀원이 자주 질문하는것이 새로운 요청일 경우 Controller를 어떻게 다르게 만들어야 하는지가 궁금한가 봅니다.

Controller는 단지 요청(Request)을 받아들이고 Model을 통해서 어떻게 View에게 보여줄것인가 하는 녀석이니까 작은 Doamin 으로 나눈다면 특정한 Business Logic에 대해서는 하나만 존재 하면 됩니다.

그러면 기존에 웹폼 기반에 수많은 페이지들은 어떻할것인가?

도메인 모델로 구분짓고 적절히 나누면 되는것입니다.
예를 들어 Twitter와 같은 시스템을 설계를 한다고 할때에는 TimeLine을 위한 Controller 하나, 팔로워, 팔로잉을 하는 사람들을 위한 Controller 하나, 그리고 쪽지와 같은 특수한 기능을 하는 기능적인 Controller하나, 마지막으로 설정에 관련된 Controller 하나, 이렇게 4개만 있으면 됩니다.

그럼 이렇게 의문을 가지시는 분들이 있을것 같습니다.
"그럼. 팔로워, 팔로잉 페이지를 따로 만들어야 하는데, 그걸 컨트롤러 하나로 만들면 어떻할껀데? 기존 웹폼은 전부 따로 만들어서 유저컨트롤로 쪼개어서 SP만 따로 호출하면 되는거 아니냐?"

그런분들은 그냥 웹폼으로 열심히 만드십시오. 라고 하겠습니다.

MVC의 장점은 M-V-C를 명확하게 나눌수 있는점입니다.

요즘에 퍼블리셔와 같이 일하지 않습니까? 퍼블리셔가 주는 페이지들은 View 입니다. Controller가 아닙니다.

??????

예... Controller는 요청(Request)을 받기 위한것이지 응답(Response)을 하기 위한것이 아닙니다.
그 페이지들을 View에 만드는겁니다.

그런데!!!
실용적인 강좌에 대해서 제가 서두에 언급을 했습니다. 실용적이란 이런걸 말씀드리는것입니다.

Controller는 도메인 모델에 대해 크게 나누어진것 이고, WebForm에서 MVC로 넘어오시려는 분들이 생각하시는 페이지는 View입니다.


"그래서 어쩌라고?" 하시는 분들...

자...

요청을 받았습니다. 응답을 위해 기존에 흔히 말하는 DAL을 통해서 페이지에 뿌려준다?

MVC에서는 그게 아닙니다.

MVC에서는 Controller로 받은 응답을 요청하기 위해서 View에 필요한 데이터를 Model에 요청해서 뽑아내고
ViewBag, ViewData 에 넣어서 단지 View로 넘겨주기만 하면 됩니다.

그러면 View에서 정말 멋진 Razor로 보여주면 되는것입니다.

뭐... 작업 하시다가 사파리에서 화면이 틀어진다? 망할놈의 IE6에서 깨진다? 그건 고귀한 퍼블리셔님들이 해야 할 몫입니다.

대략 어떤건지 감이 오시나요?

다음 강좌에 계속하겠습니다.



!!! 혹시나 제가 틀린 부분이 있으면 얼마든지 댓글남겨 주십시오. 정보 공유는 올바른 정보공유로 부터 시작이 됩니다.

감사합니다.
저작자 표시 비영리 동일 조건 변경 허락
신고
Posted by dotnetpower

티스토리 툴바