본문 바로가기
프로그램/PHP

PHP 프레임워크 소개

by 오리온동산 2022. 8. 19.

PHP 프레임워크 소개

PHP 개발을 편하게 할 수 있는 프레임워크 소개를 하고자 합니다.

프레임워크의 장점은 이를 이용해 만든 서비스는 어떤 개발자가 와도 유지/보수가 쉽다는 장점이 있습니다.

그 이유는 표준 모델을 만들고 다양한 라이브러리와 클래스를 객체화하여 구조화시키기 편하기 때문입니다.

프레임워크는 전반적으로 MVC 패턴, 헬퍼, 보안, 라우팅, 캐쉬 코드 관리의 유용성에서 다양한 공통적 특징들을 제공하고 있습니다. 이와 관련한 코드를 개발할 경우 소스가 단출해지고 심플해지는 장점을 제공합니다.

소개되는 프레임워크 중에서 선호도가 있는데, 아무래도 가장 많이 현업에서 사용하는 것을 먼저 경험해 보는 것이 좋겠죠.

Laravel(라라벨)

라라벨은 상대적으로 최근에 나온 프레임워크이지만, 현재 가장 인기 있는 PHP 프레임워크이며, 거대한 생태계를 갖고 있습니다. Release 마다 문서화되고 다수의 영상, 튜토리얼, 블로가 있기 때문에 배움에 있어 자료가 많이 있습니다.

빠른 애플리케이션을 개발 가능하도록 많은 기능들이 제공되고 있습니다.

Artisan 커맨드 라인 인터페이스를 통해 유용하게 사용 가능한 명령어를 제공하며, 강력한 템플릿 엔진을 통해 일상적인 큐잉, Restful 라우팅, 세션, 일상적인 인증이나 캐싱 등을 쉽게 처리할 수 있습니다.

 

라라벨은 여타 PHP 프레임워크에 비해 자체 오버해드가 큰 편이라 간단한 작업을 하는 요청의 경우, 실제 요청 처리에 걸리는 시간보다 프레임워크 및 내부 모듈의 초기화에 걸리는 시간이 더 많습니다.

개발자가 실제 사용하지 않는 모듈까지 불필요하게 모두 로드되기 때문에 클라이언트로부터 빈번하게 대량의 요청이 들어오는 서비스의 경우, 프레임워크의 오버해드가 눈덩이처럼 커질 수 있습니다.

Codeigniter(코드이그나이터)

코드이그나이터는 가장 오래된 프레임워크 중 하나이지만 심플하고 강력합니다. 설치가 용이하며, 최소한의 환경 설정만 하면 됩니다. 거의 모든 공유 및 전용 호스팅 서버에서 완벽하게 동작합니다.

MVC 패턴으로 개발이 가능하며, 코드이그나이터의 최대 장점은 속도입니다. 다른 프레임워크와 비교했을 때 데이터베이스 작업이 더 빠르게 실행되며, 문서화가 잘 되어 있고 PHP 초보자를 위한 훌륭한 프레임워크입니다.

Zend(젠드)

Zend는 사용자에게 드래그 앤 드롭 편집기, 암호화 코딩 도구, 데이터베이스 연결 마법사 및 즉성 온라인 디버깅 도구와 같은 다양한 기능들을 제공합니다.

다양한 구성 옵션들을 제공하기 때문에 복잡한 웹사이트 개발에 좋습니다.

하지만, 다른 프레임워크에 비해 배우기가 쉽지는 않습니다.

CakePHP(케익PHP)

CakePHP는 10년이 넘었지만 여전히 가장 대중적인 PHP 프레임워크 중 하나입니다. 

속도와 안정성 및 보안성이 우수하며, 개발자 커뮤니티로부터 큰 지원을 받아 기술적인 트렌드를 잘 따릅니다.

상용 웹 애플리케이션 개발에 적합한 프레임워크로서 문서화가 잘 되어 있으며, Form 입력 양식 검사화 SQL 주입 방지, CSRF 보호, XSS 방지 기능이 좋습니다.

Symphony(심포니)

Symphony는 개발자들에게 재사용 가능한 PHP 컴포넌트와 코드 세트를 제공하는 또 하나의 프레임워크입니다.

심포니는 개발자 커뮤니티를 통해 지원되는 거대한 생태계를 가지고 있습니다.

규모가 제법 거대한 큰 엔터프라이즙 프로젝트에 가장 적합하며, 컴포넌트는 Drupal, PIWIK, OROCRM, PHPBB 등과 같은 다양한 콘텐츠 관리 시스템에서 사용되며 심지어 Laravel 프레임워크에서도 사용합니다.

Phalcon(팔콘)

Phalcon 프레임워크는 다른 PHP 프레임워크와 달리 C/C++ 기반하여 개발된 풀스택 PHP 프레임워크입니다.

웹 애플리케이션이 실제 구동하게 될 서버에 딱 맞는 프로세서 명령어로 최적화 빌드가 되고, 웹서버에 동적 C모듈로 단 한 번만 로드가 됩니다. 이미 빌드된 상태로 메모리에 로드되어 있기 때문에, 다른 PHP 프레임워크보다 저 적은 메모리르 ㄹ소모하며 더 적게 CPU 자원을 사용하므로 프레임워크 자체 오버해드가 매우 낮습니다.

phalcon-devtools 커맨드 라인 인터페이스를 통해 개발 중 유용하게 사용할 수 있는 명령어를 제공합니다.

Yii 2

Yii는 가장 오래된 프레임워크 중 하나이며, 최신 버전을 통해 많은 인기를 얻고 있습니다.

완전히 객체지향적이며 DRY(Do not Repeat Yourself) 코딩 개념을 기반으로 하며, 강력한 레이지(Lazy) 로딩 기술을 통해 다른 프레임워크보다 빠르게 동작합니다.

Ajax 및 Jquery와 통합될 수 있어 대규모 웹사이트 개발에 유리합니다.

Gii를 사용하면 객체지향 프로그래밍과 빠른 애플리케이션 프로토타입 개발이 가능합니다.

FuelPHP(퓨얼PHP)

FuelPHP 프레임워크는 모듈화 되어 있고 확장이 가능한 유연한 풀스택 프레임워크입니다.

MVC패턴을 지원하며, 진화된 형태의 HMVC(Hierarchical Model-View-Controller)를 아키텍처 차원에서 지원합니다.

입력된 필터링,  URI 필터링 및 출력 인코딩 등의 기능을 제공하며 보안 문제를 해결합니다.

자체의 인증 프레임워크와 함께 많은 정교한 기능들을 갖고 있으며, 문서화도 잘 되어 있습니다.

다양한 형태의 End-to-End 웹 솔루션 개발에 적합합니다.

Slim(슬림)

일반적으로 Restful API 및 Restful 서비스를 개발하는 데 사용되는 경량의 마이크로 프레임워크입니다.

슬림은 미니멀하게 디자인된 프레임워크에도 불구하고, 클라이언트 사이드 HTTP 캐싱, 세션 및 쿠키 라우팅, URL 라우팅, HTTP 요청을 통한 플래시 메시지 자원과 같은 다양한 기능을 제공합니다.

소규모 웹 애플리케이션 개발에 탁월합니다.

정리

소개된 PHP 프레임워크 이외에도 다른 프레임워크가 또 있습니다.

중요한 것은 위에 언급된 것들 중에서 가장 많이 사용하고 있는 것을 토대로 접하게 된다면,

다른 나머지들도 비슷한 맥락으로 구조가 되어 있기 때문에, 배움에 있어 어렵지는 않을 것입니다.

라라벨이나 코드이그나이터 정도를 습득하시게 된다면 나머지들도 쉽게 접근이 가능할 것입니다.

프로그램의 세계는 늘 새로운 것들이 생겨나기 때문에 그 원리를 이해하는 게 중요하다고 봅니다.

'프로그램 > PHP' 카테고리의 다른 글

PHP 파일 복사 COPY 함수  (0) 2022.08.24