현재까지 세계적으로 가장 인기 있는 서버 사이드 프로그래밍 언어인 PHP. PHP의 꾸준한 인기는 강력하고 다양한 PHP 프레임워크들이 있기에 가능한 일이었습니다.
PHP 개발자는 최고의 PHP 프레임워크를 함께 사용함으로써 더 복잡하고 더 보안성이 우수하고 균형잡힌 웹 어플리케이션을 개발할 수 있습니다.
각각의 PHP 프레임워크는 그 자체의 크기, 동작 시 차지하는 메모리의 양, 동작 성능, 개발 편의성, 기능, 그리고 그것을 사용하는 개발자의 숙련도 요구 수준도 다릅니다.
2018년을 빛낸 최고의 PHP 프레임워크 10개에 대한 각각의 특징 및 장단점에 대해 정리하였습니다.
Laravel (라라벨)
라라벨은 상대적으로 최근에 나온 PHP 프레임워크이지만, 논쟁의 여지 없이 현재 가장 인기있는 PHP 프레임워크이며, 거대한 생태계를 갖고 있습니다. 라라벨은 매 릴리즈마다 문서화되고 다수의 비디오, 튜토리얼, 블로그가 있기 때문에 쉽게 배울 수 있습니다.
라라벨은 많은 기능들로 빠른 어플리케이션 개발을 가능하게 합니다. Artisan 컴맨드 라인 인터페이스를 통해 개발 중 유용하게 쓰일 수 있는 명령어를 제공합니다. 또한, 라라벨은 강력한 템플릿 엔진을 통해 일상적인 인증이나 캐싱, 세션, RESTful 라우팅, 큐잉을 쉽게 처리할 수 있게 합니다.
라라벨은 여타 PHP 프레임워크에 비해 프레임워크 자체 오버해드가 매우 큰 편입니다. 매우 간단한 작업을 하는 요청의 경우, 실제 요청 처리에 걸리는 시간보다 프레임워크 및 내부 모듈의 초기화에 걸리는 시간이 더 많습니다. 개발자가 실제 사용하지 않는 모듈까지 불필요하게 모두 로드됩니다. 따라서 클라이언트로부터 빈번하게 대량의 요청이 들어오는 서비스의 경우, 프레임워크의 오버해드가 눈덩이처럼 커집니다.
Phalcon (팔콘)
팔콘은 C/C++에 기반하여 개발되었다는 점에서 여타 PHP 프레임워크들과는 확연히 구분되는 풀스택 PHP 프레임워크입니다. 팔콘은 웹 어플리케이션이 실제 구동하게 될 서버에 딱 맞는 프로세서 명령어로 최적화 빌드되고, 웹서버에 동적 C 모듈로 단 한번만 로드됩니다. 이미 빌드된 상태로 메모리에 로드되어 있기에, 다른 PHP 프레임워크보다 더 적은 메모리를 소모하며 더 적게 CPU를 사용하므로 프레임워크 자체의 오버해드가 매우 낮습니다.
팔콘은 에셋 관리, 유니버셜 오토로더, 다국어 지원, 캐싱, 보안 등의 독특한 기능과 함께 로드됩니다. phalcon-devtools 컴맨드 라인 인터페이스를 통해 개발 중 유용하게 쓰일 수 있는 명령어를 제공합니다. 팔콘은 사용하기 편한 프레임워크이고 문서화도 잘 되어 있습니다. 진정 사용할 가치가 있는 프레임워크입니다.
매 요청 시 마다 로드되는 프레임워크 내 파일의 개수
(팔콘은 단 4개의 파일만 로드되는 반면, 라라벨의 경우 224개의 파일이 로드됨.)
개별 요청에 대하여 순간적으로 증가하는 메모리의 양
(팔콘은 26KB이며, 라라벨의 경우 1.36MB로 100개의 요청이 순간적으로 몰리는 경우 프레임워크 자체에서만 136메가의 메모리가 필요하게 됨.)
같은 조건에서 1초 동안 처리 가능한 요청의 개수
(팔콘은 1403개, 라라벨은 208개로 팔콘은 동일한 시간동안 라라벨보다 6~7배 많은 요청을 처리할 수 있음.)
같은 조건에서 1000개의 요청을 처리하는데 걸리는 시간
(팔콘은 0.7초, 라라벨은 6.8초)
Symphony (심포니)
심포니는 개발자들에게 재사용 가능한 PHP 컴포넌트와 코드 세트를 제공하는 또 하나의 PHP 프레임워크입니다. 심포니는 활동적인 개발자 커뮤니티에 의해 지원되는 거대한 생태계를 갖고 있습니다.
심포니는 규모가 큰 엔터프라이즈급 프로젝트에 가장 적합한 PHP 프레임워크입니다. 심포니의 컴포넌트는 Drupal, PHPBB, PIWIk, OROCRM과 같은 다양한 컨텐츠 관리 시스템에서 사용되며 심지어 라라벨 프레임워크에서도 사용합니다.
Zend (젠드)
젠드는 사용자에게 친숙한 드래그-앤-드롭 편집기, 암호화 코딩 도구, 데이터베이스 연결 마법사 및 즉석 온라인 디버깅 도구와 같은 다양한 기능을 제공합니다. 젠드 편집기는 HTML, CSS 및 JavaScript와 같은 프론트 엔드 기술을 지원합니다.
확장 가능한 프레임워크는 다양한 구성 옵션을 제공하므로 복잡한 웹 사이트에 이상적입니다. 그러나, 젠드는 다른 프레임워크에 비해 배우기가 어렵습니다.
CodeIgniter (코드이그나이터)
코드이그나이터는 가장 오래된 프레임워크 중 하나이지만 심플하고 강력합니다. 설치가 쉬우며, 최소한의 환경 설정만 하면 됩니다. 거의 모든 공유 및 전용 호스팅 서버에서 완벽하게 작동합니다.
코드이그나이터는 전적으로 MVC 아키텍처에 기반하여 구성되어 있지는 않습니다. 컨트롤러 클래스는 필수이지만 모델과 뷰는 선택적입니다. 코드이그나이터의 또 다른 강점은 속도입니다. 다른 프레임워크와 비교하여 데이터베이스 작업이 더 빠르게 실행됩니다. 문서화가 잘 되어 있으며 PHP 초보자를 위한 훌륭한 프레임워크입니다.
CakePHP (케익PHP)
케익PHP는 이미 10년이 넘었지만 여전히 가장 대중적인 PHP 프레임워크 중 하나입니다. 케익PHP는 속도와 안정성 및 보안성이 우수합니다. 개발자 커뮤니티로부터 큰 지원을 받아 기술적인 트랜드를 잘 따릅니다.
케익PHP는 상용 웹 어플리케이션 개발에 적합한 현대적인 프레임워크로서 잘 문서화 되어 있으며, 폼 입력 양식 검사와 SQL 주입 방지, CSRF (Cross-site Request Forgery) 보호, XSS (Cross-Site Scripting) 방지 기능이 훌륭합니다.
FuelPHP (퓨얼PHP)
퓨얼PHP는 모듈화 되어 있으며 확장이 가능한, 유연한 풀스택 PHP 프레임워크입니다. MVC 패턴을 지원할 뿐만 아니라, 진화된 형태의 HMVC(Hierarchical Model-View-Controller)를 아키텍쳐 차원에서 지원합니다. 입력 필터링, URI 필터링 및 출력 인코딩 등의 기능을 제공하여 보안 문제를 해결합니다.
퓨얼PHP는 자체의 인증 프레임워크와 함께 많은 정교한 기능들을 갖고 있으며, 문서화도 잘 되어 있습니다. 퓨얼PHP는 다양한 형태의 엔드-투-엔드(End-to-End) 웹 솔루션을 개발하는데 적합합니다.
Yii 2
Yii는 가장 오래된 PHP 프레임워크 중 하나이며, 최신 버전인 Yii 2를 통해 많은 인기를 얻고 있습니다. Yii 2는 완전히 객체지향적이며 DRY(Do not Repeat Yourself) 코딩 개념을 기반으로 합니다. Yii 2는 강력한 레이지(Lazy) 로딩 기술을 통해 다른 프레임워크 보다 빠르게 동작하도록 만들어졌습니다.
AJAX 및 JQuery와 통합 될 수 있으므로 대규모 웹 사이트 개발에 좋습니다. 또한 개발자가 Gii라는 웹기반의 인터페이스를 갖춘 강력한 클래스 코드 생성기를 사용하여, 필요한 코드를 대화식으로 생성할 수 있도록 합니다. Gii를 사용하면 객체지향 프로그래밍과 빠른 어플리케이션 프로토타입 개발이 가능합니다.
Slim (슬림)
슬림은 일반적으로 RESTful API 및 RESTful 서비스를 개발하는 데 사용되는 경량의 마이크로 프레임워크입니다. 슬림은 미니멀하게 디자인된 프레임워크임에도 불구하고, 클라이언트 사이드 HTTP 캐싱, 세션 및 쿠키 라우팅, URL 라우팅, HTTP 요청을 통한 플래시 메시지 지원과 같은 다양한 기능을 제공합니다.
슬림은 풀스택 PHP 프레임워크가 꼭 필요하지 않은, 소규모의 웹 애플리케이션 개발에 탁월합니다.
PHPixie
PHPixie는 읽기전용 웹 사이트를 위한 고성능 프레임워크를 만드는 것을 목표로, 2012년에 최초 릴리즈된 상대적으로 최신의 프레임워크입니다. PHPixie는 퓨얼PHP와 유사한 HMVC(Hierarchical Model-View-Controller) 디자인 패턴을 구현하고 있으며, 프레임워크 없이도 독립적으로 사용할 수 있는 컴포넌트로 구성되어 있습니다. PHPixie의 컴포넌트들은 모두 유닛 테스트를 거쳤으며, 최소한의 의존성만을 요구합니다.
일반적인 ORM(Object-Relational Mapping), 캐싱, 입력 유효성 검사, 인증 및 권한 부여 기능을 제공합니다. PHPixie는 개발자가 HAML 마크업 언어를 사용하여 스키머 마이그레이션을 할 수 있도록 해주며, 정교한 라우팅 시스템을 만들 수 있도록 합니다.
출처 : https://www.coovil.net/php-rank-best10-2018/
'백엔드 개발 놀이터 > PHP' 카테고리의 다른 글
PHP - 분기 , 반복 (0) | 2020.05.17 |
---|---|
PHP - 날짜관련 함수모음 (0) | 2020.05.17 |
PHP - 수학함수 (0) | 2020.05.17 |
PHP - 스트링처리 , 함수모음 (0) | 2020.05.17 |
PHP - type juggling , 0과null (0) | 2020.05.17 |