Eungene's Imaginations...

MVC - Controller(Action Method)와 View의 역할. 본문

Programming/ASP.net(MVC&Core)

MVC - Controller(Action Method)와 View의 역할.

Eungene's 2015. 12. 2. 17:51
728x90
반응형

 

해야 할 일

하지 말아야 할 일

 Action Method

 뷰로 뷰 모델 개체를 전달한다.

 서식을 설정한 데이터를 뷰로 전달한다.

 View

 뷰 모델 개체를 이용해서 사용자에게 내용을 제공.

 어떤 식으로든 뷰 모델 개체를 변경한다.


이렇게 규칙을 적용하는 이유는 MVC 프레임워크를 사용해서 최고의 결과물을 얻으려면, 응용 프로그램의 가 부분들을 엄격하게 분리를 시켜야 한다.

Rozor를 이용하여 View에서 굉장히 많은 일들을 할 수 있다. 심지어 C#구문들을 실행할 수도 있다.
하지만, 어떤 방식으로든 Razor를 사용해서 업무 로직을 수행하거나 도메인 모델 개체를 조작해서는 안된다.

반대로, 액션 매서드에서 뷰로 전달할 데이터의 서식을 설정해서도 안 된다.
그 대신, 출력에 필요한 데이터를 뷰가 직접 구성하도록 만들어야 한다.

만약, 위의 규칙을 어긴다면, MVC 패턴의 장점을 훼손시키고 앞으로 발생할 변화에 대한 대응 능력을 떨어뜨린다.

MVC 프레임워크는 MVC 패턴을 적절하게 사용하도록 강요하지 않으므로,
설계나 코딩 시에 내릴 결정이 어떤 영향을 끼치는지를 직접 확실하게 인식하고 있어야 한다는 점을 기억해야 한다.



데이터 처리데이터 서식 설정 의 차이

데이터 서식 설정은 뷰의 역할로, Razor를 통해서 Controller에서 통째로 가져온 Model을 토대로 View를 구성해준 것이 데이터 서식 설정이라고 할 수 있겠다. 데이터 처리는 Controllers 폴더에서 cs파일에서 Model개체 자체를 return View(ModelsName); 을 통해서 전달해준 것을 보면, 그 이유는 바로 나온다. Controller에서는 Model에 대한 데이터의 가공만 해주었을 뿐이지, View단을 직접적으로 건들지는 않았다.

때때로 데이터 처리와 데이터 서식 설정 간의 경계를 파악하기 어려운 경우도 분명히 있겠지만, 지나치다 싶을 정도로 조심해서 극히 간단한 표현식들 말고는 대부분 뷰대신 컨트롤러에서 작업을 하는 것이 좋다.

위에서도 언급을 했지만, 이렇게 2번에 걸쳐서 이야기를 하는 이유도, MVC의 장점을 더욱더 살리고, 향 후 유지보수 관련하여 개발자가 편하려면 이 패턴에 맞추어서 작업하는게 가장 이상적이다.

반응형
Comments