본문 바로가기

잡인터뷰

MVC Framework는 무엇인가?

반응형

PHP MVC Framework

MVC Framework

MVC(Mode-View-Controller) 프레임워크는 소프트웨어 개발에서 자주 사용되는 디자인 패턴 중 하나이다.

이 패턴은 소프트웨어를 구성하는 세 가지 구성 요소를 분리함으로써

코드의 가독성, 유지 보수성 및 재사용성을 향상한다.

MVC 패턴에서 모델(Model)은 애플리케이션의 데이터와 해당 데이터를 조작하는 로직을 담당한다.

뷰(View)는 사용자 인터페이스를 담당하며,

컨트롤러(Controller)는 모델과 뷰 사이의 상호 작용을 관리한다.

이렇게 구성된 소프트웨어의 구성 요소는 서로 독립적이므로,

하나의 구성 요소를 수정하더라도 다른 구성 요소에 영향을 미치지 않는다.

MVC 프레임워크는 많은 웹 애플리케이션에서 사용된다.

이 프레임워크를 사용하면 웹 애플리케이션을 빠르게 개발할 수 있으며,

유지 보수가 쉽다.

예를 들어, 심포니 (Symfony)는 PHP 기반의 MVC 프레임워크로,

대규모의 웹 애플리케이션에서 널리 사용된다.

 

PHP MVC Framework 종류

  1. Symfony - https://symfony.com/
  2. Laravel - https://laravel.com/
  3. CakePHP - https://cakephp.org/
  4. CodeIgniter - https://codeigniter.com/
  5. Yii - https://www.yiiframework.com/
 

Yii Framework

 

www.yiiframework.com

 

Welcome to CodeIgniter

Clear documentation The User Guide contains an introduction, tutorial, a number of "how to" guides, and then reference documentation for the components that make up the framework.

codeigniter.com

 

CakePHP - Build fast, grow solid | PHP Framework | Home

CakePHP is an open-source web, rapid development framework that makes building web applications simpler, faster and require less code. It follows the model–view–controller (MVC) . Manual for beginners now available and links towards the last version.

cakephp.org

 

Laravel - The PHP Framework For Web Artisans

Laravel is a PHP web application framework with expressive, elegant syntax. We’ve already laid the foundation — freeing you to create without sweating the small things.

laravel.com

 

Symfony, High Performance PHP Framework for Web Development

Symfony is a set of reusable PHP components and a PHP framework to build web applications, APIs, microservices and web services.

symfony.com

 

반응형

PHP 코드로 MVC를 구현해 보겠다.

1. 모델(Model) 작성하기: 데이터베이스에서 데이터를 가져오고 조작하는 함수를 작성한다.

class ProductModel {
    public function getProductById($id) {
        // 데이터베이스에서 해당 제품 ID의 정보를 가져옴
        return $productInfo;
    }
    
    public function updateProductById($id, $newData) {
        // 데이터베이스에서 해당 제품 ID의 정보를 업데이트함
        return $result;
    }
}

2. 뷰(View) 작성하기: 웹 페이지에서 데이터를 표시하는 HTML 코드를 작성한다.

class ProductView {
    public function displayProduct($productInfo) {
        // 제품 정보를 HTML 형태로 출력함
    }
}

3. 컨트롤러(Controller) 작성하기: 모델과 뷰를 연결하고, 사용자의 요청에 따라 데이터를 가져오거나 업데이트하는 함수를 작성한다.

class ProductController {
    private $model;
    private $view;

    public function __construct($model, $view) {
        $this->model = $model;
        $this->view = $view;
    }

    public function displayProduct($id) {
        $productInfo = $this->model->getProductById($id);
        $this->view->displayProduct($productInfo);
    }
    
    public function updateProduct($id, $newData) {
        $result = $this->model->updateProductById($id, $newData);
        // 업데이트 결과를 반환함
    }
}

4. 웹 페이지에서 컨트롤러 호출하기: 사용자의 요청에 따라 컨트롤러를 호출한다.

$productModel = new ProductModel();
$productView = new ProductView();
$productController = new ProductController($productModel, $productView);

// 제품 정보를 표시하는 페이지
if ($_GET['action'] == 'display') {
    $productController->displayProduct($_GET['id']);
}

// 제품 정보를 업데이트하는 페이지
if ($_GET['action'] == 'update') {
    $result = $productController->updateProduct($_GET['id'], $_POST['newData']);
    // 업데이트 결과를 처리함
}

이렇게 PHP에서 MVC 패턴을 구현하면, 코드의 가독성과 유지 보수성이 향상되며, 웹 애플리케이션 개발에 아주 큰 도움이 된다.

반응형