July 29, 2020

PHP MVC - Laravel (라라벨)이란?

라라벨 LTS 릴리즈 버전 경우 버그 수정 기간 2년, 보안 패치 기간 3년 동안 유지보수 제공됩니다. 또한 라라벨은 PHP MVC 패턴의 오픈소스 웹 프레임워크입니다.

Title: PHP Laravel
Author: DongDongE
Tags: Programming
Release: 2020.07.29



라라벨 LTS 릴리즈 버전 경우 버그 수정 기간 2년, 보안 패치 기간 3년 동안 유지보수 제공됩니다.


또한 라라벨은 PHP MVC 패턴의 오픈소스 웹 프레임워크입니다.

MVC란? - (Model, View, Controller) 아키텍처 패턴 기반으로 개발된 프로젝트로 추후 웹 유지보수 및 확장시에 보다 편하고 빠르게 진행할 수 개발 방법을 말합니다.


그외 라라벨 공식 사이트에서는 아래와 같은 문구가 존재합니다.

"The PHP Framework for Web Artisans"
즉, 웹 장인을 위한 PHP 프레임 워크 쓰여져 있으며,"Laravel은 표현력 있고 우아한 구문을 가추고 있는 웹 프레임 워크이며, 자유롭게 만들 수 있는 뼈대(프레임워크)를 마련했다."표현하고 있습니다.

2016년 당시 해외에서 라라벨의 인기는 높았으나, 현재까지도 라라벨에 관한 국내에서 자료가 적어 직접 공식 홈페이지 및 API를 참조하여 공부해보고 관련 프로젝트를 진행하려고 합니다.


"라라벨"은 기존 PHP 코드에 대한 이해력과 프로젝트 경험 있는 상태에서 진행하는게 나을 것 같습니다. 해당 프레임 워크는 입문자용이 아닌 경험이 있는 상태에서 진행을 하셔야 보다 좀 이해를 할 수 있는 것 같습니다 ㅠㅠ


직접 PHP 프레임워크를 제작하여 구현도 해봤으나 라라벨 처럼 어렵고 API가 많은건 처음보았습니다...


요약하자면
보안 관점에서는 해당 PHP 프레임워크는 기본적으로 시큐어코딩이 되어 있습니다.
(CSRF 토큰사용, SQL Injection 대응으로 PDO-Prepare Statement, XSS 대응으로 HTML Entity 변환, PHP 파일 직접 참조 불가능하게 대응으로 Rewrite 사용 등 여러가지 구현되어 있습니다.)
하지만 저처럼 프로젝트로 취약한 웹사이트(모의해킹 훈련용)를 개발하기에는 적당하지가 않더라구요.

그러면 반대로 개발자 입장에서 보면 라라벨은 MVC 패턴을 사용하기에 쉽고 빠르게 유지보수를 할 수 있다는게 장점인것 같습니다. (예를 들어 여러 개발자가 있고 대규모 프로젝트다 라고 한다면, View에는 사용자에게 출력할 HTML를 사용하여 출력하면되고 Python Flask의 Jinja 문법 처럼 라라벨도 블레이드 문법을 사용하여 처리하며, 사용자에게 요청받은 URL은 컨트롤러에서 적절하게 처리한뒤 Model를 통하여 로직을 처리할 수 있습니다.) 그러면 이게 왜?? 장점이 될까? 생각을 할 수 있는데요.

보다 쉽고 간단하게 설명드리자면 만약 "게시판 웹사이트"를 개발한다면 여기서 게시판이 10개가 존재한다면 중복되는 코드라인이 분명 있을텐데 이걸 페이지 코드 마다 중복되어 사용하면 추후에 변경(유지보수)시 10개의 php 코드를 수정해야 합니다. 하지만 MVC 패턴을 사용한다면 게시판 로직 관련 Model만 변경하면 나머지 게시판 로직도 불러와서 사용하기에 편하게 수정할 수 있습니다.






https://laravel.com/docs/
본 글은 라라벨 공식 홈페이지 Doc자료를 참조하여 정리하였습니다.