Knowledge/이론

MVC 패턴

똑똑한망치 2024. 2. 27. 21:49
728x90
반응형

1. 디자인 패턴


디자인 패턴이란 기존 환경 내에서 반복적으로 일어나는 문제들을 어떻게 풀어나갈 것인가에 대한 일종의 솔루션 같은 것이다. 디자인 패턴 계의 교과서로 불리는 [GoF의 디자인 패턴] 에서는 객체지향적 디자인 패턴의 카테고리를 "생성 패턴 (Creational Pattern)" , "구조 패턴(Structural Pattern)", "행위 패턴(Behavioral Pattern)" 3가지로 구분하고 있다.

 

 

 


 

 

2. MVC 패턴


보통 웹 프로젝트에서 많이 사용되었던 패턴이다. 하나의 프로그램 로직을 Model, View, Controller 역할로 구분하여 구현하는 디자인 패턴을 말한다.

 

 

 

위 사진과 같이

  • 사용자가 Controller 를 조작하면
  • Controller 는 Model을 통해서 데이터를 가져오고
  • 그 정보를 바탕으로 시작적인 표현을 담당하는 View를 제어하여 사용자에게 전달한다.

밑의 사진과 같이 Controller 가 View에게 영향을 미치는 경우도 있다.

 

 

 

(1) 모델 (Model)

소프트웨어나 애플리케이션에서 정보 및 데이터 부분을 의미한다.

그리고 Controller 에게 받은 데이터, 정보를 조작(가공하는)을 가공하는 역할을 수행한다.

즉, 데이터와 관련된 부분을 담당하며 값과 기능을 가지는 객체라고 보면 된다.

 

 

(2) 뷰 (View)

입력값이나 체크박스 항목 등과 같은 사용자 인터페이스 요소를 나타낸다. 

Controller에게 받은 Model의 데이터를 사용자에게 시각적으로 보여주기 위한 역할을 수행한다.

즉, 데이터 및 객체의 입력, 데이터를 기반으로 사용자들일 볼 수 있는 화면을 출력해주는 담당이다.

 

 

(3) 컨트롤러 (Controller)

Model 과 View 사이에서 데이터 흐름을 제어한다. 사용자가 접근한 URL에 따라 요청을 파악하고 URL에 적절한 Method를 호출하여 Service에서 비즈니스 로직을 처리한다. 이 후 결과를 Model에 저장하여 View에게 전달하는 역할을 수행한다.

즉, Controller는 Model과 View의 역할을 분리하는 중요한 요소이다.

 

 

 


 

 

 

3. 왜 MVC 패턴을 사용해야 할까

서로 분리되어 각자의 역할에 집중할 수 있게 개발을 한다면 유지보수성, 애플리케이션의 확장성, 유연성이 증가하고, 중복코딩의 문제점이사라진다.

반응형

'Knowledge > 이론' 카테고리의 다른 글

정규화 & 비정규화  (0) 2024.03.04
SQL 명령어  (0) 2024.03.04
인덱스  (1) 2024.02.25
RESTful API  (0) 2024.02.25
브라우저의 렌더링 과정  (0) 2024.02.20