본문 바로가기

Yii Framework/Guide to Yii 1.0

05. 모델 - 뷰 - 컨트롤러 (MVC)

yiiframework 의 The Definitive Guide를 개인적으로 직역 정리한 곳 입니다.

영어전공자도 아니며 영어라 친하지도 않습니다.

그냥 보면서 직영으로 옮겨 놓은것으로 오역이나 잘못된 부분이 있는 경우 알려 주시면 수정하겠습니다.

이 페이지의 원문 : http://www.yiiframework.com/doc/guide/1.1/en/basics.mvc



  1. 일반적인 워크플로우


Yii는 웹 프로그래밍에서 널리 사용되는 모델-뷰-컨트롤러 (MVC) 디자인 패턴을 구현하고 있습니다.

MVC는 사용자 인터페이스를 고려하여 비즈니스 로직을 분리하는 것을 목적으로하고 있습니다.

그래서, 개발자는 다른것에 영향을 주지 않고 쉽게 변경을 할수 있습니다.


MVC에서는 모델(M)은 정보(데이터)와 비즈니스 규칙을 표현하고, 뷰(V)는 폼이나 텍스트와 같은 사용자 인터페이스를 포함, 컨트롤러(C)은 모델과 뷰의 연결을 관리합니다 .

MVC를 구현하는 것 외에도 Yii는 응용 프로그램 이라는 프론트 컨트롤러도 도입하고 있습니다. 이것은 요청을 처리하기 위해 실행 컨텍스트를 캡슐화 한 것입니다. 응용 프로그램은 사용자 요청에 대한 몇 가지 정보를 수집하고, 또한 처리하기 위해 적절한 컨트롤러에 요청을 전달합니다.


다음 그림은 Yii 응용 프로그램의 정적 구조를 보여줍니다.

Static structure of Yii application

Static structure of Yii application

1. 일반적인 워크플로우

다음 그림은 Yii 응용 프로그램이 사용자 요청을 처리 할 때의 일반적인 워크 플로우를 제공합니다.

    Typical workflow of a Yii application

    Typical workflow of a Yii application

    1. 사용자가 URL http://www.example.com/index.php?r=post/show&id=1 따라 요청을 발행합니다.  웹 서버는 부트 스트랩 스크립트 index.php 를 실행하여 요청을 처리합니다.

    2. 부트 스트랩 스크립트는 응용 프로그램 인스턴스를 생성하고 그것을 실행합니다.

    3. 응용 프로그램은 상세한 사용자 요청 정보를 request 라는 응용 프로그램 구성 요소 에서 얻습니다.

    4.  응용 프로그램은 urlManager 라는 응용 프로그램 구성 요소 덕분에 요구되는 컨트롤러 와 액션 을 결정합니다. 이 예에서는 컨트롤러는 post 에서 PostController 클래스를 나타냅니다. 그리고 작업 show 이지만 그 실제 의미는 컨트롤러에 의해 결정됩니다.

    5. 응용 프로그램은 사용자 요청을 계속 처리하기 위해 요청 된 컨트롤러의 인스턴스를 생성합니다.

       컨트롤러는 액션 show 가 컨트롤러 클래스의 actionShow 메소드로 결정합니다.

       그리고 액션에 연결된 필터 (예를 들어 액세스 제어 및 벤치 마크)을 생성하여 실행합니다.

       액션은 필터에 의해 허용 된 경우에만 실행됩니다.

    6. 액션은 ID가 1 인 Post 모델 을 데이터베이스에서 읽습니다.

    7. 액션은 Post 모델을 사용하여 show 라는 뷰 를 표시합니다.

    8. 뷰는 Post 모델의 특성 (속성)을 읽어 봅니다.

    9. 뷰는 여러 위젯 을 실행합니다.

    10. 뷰 그린 결과는 레이아웃 에 포함됩니다.