MVC모델이 나오게 된 배경

소프트웨어 구조를 더 쉽게 유지하고 수정하기 위해서 나온 모델이다. 쉽게 말해 HTML 파일 하나에 DB접속과 데이터 반환을 한번에 구현 한것과 html따로 DB접속과 데이터 반환을 하는 기능을 분리 시켰다고 생각하면 된다. 

 

MVC

  • Model View Controller의 약자로 애플리케이션을 세가지의 역할로 구분한 개발 방법론.
  • 의 그림처럼 사용자가 Controller를 조작하면 Controller Model을 통해서 데이터를 가져옴.
  • 그 정보를 바탕으로 시각적인 표현을 담당하는 View를 제어해서 사용자에게 전달하게된다.

 

 

 

MVC 디자인 패턴을 웹에 적용해보면

  1. 사용자가 웹사이트에 접속한다.
  2. CONTROLLER는 사용자가 요청한 웹페이지를 서비스하기 위해서 모델을 호출한다.
  3. 모델을 데이터베이스나 파일과 같은 데이터 소스를 제어한 후에 그 결과를 리턴한다.
  4. CONTROLLERMODEL이 리턴한 결과를 VIEW에 반영한다.
  5. 데이터가 반영된 VIEW는 사용자에게 보여진다.

 

Controller, Model, View의 역할 정리

 

Controller

사용자가 접근 한 URL로 요청사항을 파악한 후에 그에 맞는 데이터를 Model에 의뢰하고, 데이터를 View에 반영해서 사용자에게 알려준다.

 

Model

일반적으로 CI의 모델은 데이터베이스 테이블에 대응된다. 이를테면 Topic이라는 테이블은 topic_model이라는 Model을 만든다. 그런데 이 관계가 강제적이지 않기 때문에 규칙을 일관성 있게 정의하는 것이 필요하다.

 

View

View는 클라이언트 측 기술인 html/css/javascript들을 모아둔 컨테이너이다.

 

 

 

 

MVC 패턴의 특징

1. 로직, 데이터 , 페이지 등 어플리케이션을 분리하여 어플리케이션 간 의존성이 낮아진다.

2. 특정 어플리케이션만 집중 할 수 있도록 업무를 분할 할 수 있다.

3. 의존성이 높아지게 되면 로직 하나 바꾸기 위해 데이터, 화면 코드까지 수정해야하는 상황이 발생함.

4.Model과 View의 완벽한 분리가 어렵다.(Model과 View를 완벽하게 분리했다고 했는데 어렵다니? 다음 포스팅에..)

5. 유지보수가 용이하다.

6. 기능 설계를 하기 위해 많은 객체들이 필요하기 때문에 복잡할 수 있다.

7.설계시간이 오래 걸리고 숙련된 개발자가 필요하다.

 

출처:https://server-engineer.tistory.com/167

 

 

 

출처: 생활코딩-https://opentutorials.org/course/697/3828 

 

MVC 디자인 패턴 - 생활코딩

수업 소개 이미 CodeIgniter의 기본적인 골격인 Controller, Model, View를 살펴봤다. 이것들을 모아서 MVC라고 하는데 이번 시간에는 MVC에 대한 일반적인 정의를 간단히 알아보고, CodeIgniter에서는 MVC 패턴을 어떻게 구현하고 있는가를 알아보자. 복습의 성격도 있는 수업이다.  디자인 패턴 디자인 패턴은 건축으로치면 공법에 해당하는 것으로 소프트웨어의 개발 방법을 공식화 한 것이다. 소수의 뛰어난 엔지니어가 해결한 문

opentutorials.org

 

+ Recent posts