공부/웹서버

MVC

원클릭쓰리버그 2022. 5. 14. 17:31
728x90

C# Wep 서버를 공부하다가 MVC라는 용어를 발견하게 되었다.

 

 

MVC

MVC (모델-뷰-컨트롤러) 는 사용자 인터페이스, 데이터 및 논리 제어를 구현하는데 널리 사용되는 소프트웨어 디자인 패턴입니다. 소프트웨어의 비즈니스 로직과 화면을 구분하는데 중점을 두고 있습니다. 이러한 "관심사 분리" 는 더나은 업무의 분리와 향상된 관리를 제공합니다. MVC 에 기반을 둔 몇 가지 다른 디자인 패턴으로 MVVM (모델-뷰-뷰모델), MVP (모델-뷰-프리젠터), MVW (모델-뷰-왓에버) 가 있습니다.

 

 

 

 

 

M - 모델 (Model)

애플리케이션의 정보, 데이터를 나타냅니다. 데이터베이스, 처음의 정의하는 상수, 초기화값, 변수 등을 뜻합니다. 또한 이러한 DATA, 정보들의 가공을 책임지는 컴포넌트를 말합니다. 모델의 중요한 포인트는 독립성을 유지하는 것이다. 

 

독립성 

사용자가 편집하기위해 필요한 데이터를 가지고 있어야 한다. 유저가 조작하는 공간에 대해 독립성을 유지하지 않는다면, DATA 혼돈이 올 수 있다. 그러므로 Model에 있는 정보는 View와 Controller의 정보와 상관이 없어야 한다. 이러한 처리 방법을 구현하기 위해 View 및 Controller가 Model의 정보를 바꿀 수 있게 요청하는 함수가 필요하다.

 

V - 뷰 (View)

input 텍스트, 체크박스 항목 등과 같은 사용자 인터페이스 요소를 나타냅니다. 다시 말해 데이터 및 객체의 입력, 그리고 보여주는 출력을 담당합니다. 데이타를 기반으로 사용자들이 볼 수 있는 화면입니다.

 

C - 컨트롤러(Controller)

데이터와 사용자인터페이스 요소들을 잇는 다리역할을 합니다.

즉, 사용자가 데이터를 클릭하고, 수정하는 것에 대한 "이벤트"들을 처리하는 부분을 뜻합니다.

컨트롤러 또한 다음과 같은 규칙을 이해해야 합니다.

 

 

작동원리

 

  1. User는 View의 정보를 보고 원하는 행동을 진행한다.
  2. Controller에서 User의 행동을 Model에게 Action으로 요청한다.
  3. 가공된 정보를 Model에서 Controller에 전달한다.
  4. Controller에 요청에 따라 View가 Action을 진행한다.
  5. User가 이를 보고 피드백을 준다.

 

필요성과 한계

  1.  단순하고 직관적임
  2. 기능 별로 코드를 분리하여, 하나의 파일에 코드가 모이는 것을 방지하여 가독성과 코드 재사용 증가
  3. View와 Model 사이의 의존성이 높음
  4. View와 Model의 높은 의존성은 어플리케이션이 커질수록 복잡해지고, 유지보수가 어려움

'공부 > 웹서버' 카테고리의 다른 글

Asp.net  (0) 2022.04.30
LINQ  (0) 2022.04.29
css의 기초  (0) 2022.04.04
HTML 기초 # List / Table  (0) 2022.03.29
HTML 기초 #1  (0) 2022.03.25