몇년 전까지만 해도 PHP의 개발은 중소 규모의 개발이 많아 프레임워크가 화제가 되거나 한것은 거의 없었습니다. PHP의 프레임워크가 관심을 받게 된 것은 2003년경 보급된 Phrame부터 였습니다. Phrame는 Java언어의 프레임워크인 Struts에 강한 영향을 받은 프레임워크로 최소구조의 MVC(Model-View-Controller)를 갖고 있었습니다.
그후, 2004년 하반기에 Mojavi가 유행하기 시작합니다. 이 때부터 MVC구조의 프레임워크가 성장을 하기 시작하지만 결국 실제 구현은 독자적으로 해야 하거나, 보다 높은 퍼포먼스를 원하게 됩니다.
2005년에 들어서 Mojavi를 사용하면서 나온 불만을 해소하기 위해 많은 프레임워크가 등장하기 시작합니다. 여기서부터는 프레임워크의 전국시대라고도 할 수 있습니다. Mojavi의 후속 Mojavi2, Mojavi3를 시작으로 Agavi나 Ethna등의 Mojavi류의 MVC 프레임워크라든지 DI (Dependency Injection) 컨테이너베이스의 프레임워크인 Maple과 같은 독자경로의 프레임워크도 등장하기 시작합니다. 현재 Maple은 개발자가 개발을 중지한 상태지만 Ethna는 현재에도 개발이 진행되고 있어 이용자는 조금씩 늘고 있습니다.
2006년 Ruby언어의 프레임워크인 Ruby on Rails의 등장에 강하게 영향을 받아 RAD (Rapid Application Development)의 기능을 가진 프레임워크가 등장합니다. PHP판 Ruby on Rails라고도 불리우는 CakePHP, Mojavi의 흐름을 받아 들임과 동시에 Rails의 사상을 심은 symfony등이 각광을 받게 됩니다. CakePHP는 심플함과 동시에 작은 어플리케이션개발에도 사용할 수 있는 점에 인기를 받게 됩니다.
이러한 프레임워크의 포인트는 '얼마나 최소한의 소스코드로 어플리케이션을 만들 수 있나', '얼마나 귀찮은 작업을 하지 않고 프레임워크를 만들 수 있나' 라는 점에서 코드의 상품과 지원만이 아닌 RAD개발을 하기 위해 없어서는 안되는 툴이 되어 버렸습니다.
또한 이 시기에 등장한 PHP 프레임워크의 특징으로서 프레임워크의 개발이 지금까지 주류였던 개인위주 개발에서 개발의 스폰서로서 기업이 서포트를 하는 점도 주목되었습니다.
세계적으로 가장 널리 보급되어 있다고 알려진 CakePHP와 symfony를 예로 들면, CakePHP의 개발은 미국의 기업, sysfony의 개발 스폰서는 프랑스기업이 하고 있습니다. symfony에 대해서는 핵심 개발자가 하루종일 개발을 담담하고 있습니다. 이처럼 프레임워크 개발에 기업이 관계되어 진행 속도가 빨라지고 충실도도 높아지고 개발이 중지되는 위험도는 낮아졌습니다.
또한 2007년 7월에는 Zend Technologies사를 중심으로 한 커뮤니티에 의해 Zend Framework의 정식판이 릴리즈 되었습니다.
이러한 이유로 최근 프레임워크를 이용하는 개발이 급속도로 진행되고 있다는걸 알 수 있습니다.
대표적인 프레임워크 | 설명 | |
2003년 | phrame | PHP 프레임워크의 초창기 |
2004년 | Mojavi | MVC프레임워크의 기반 |
2005년 | Agavi, Ethna, Maple | 프레임워크의 전국시대 |
2006년 | CakePHP | Ruby on Rails의 RAD기능을 가진 프레임워크 등장 |
2007년 | symfony, Zend Framework | 기업이 개발한 프레임워크 등장 |
'Dev > PHP' 카테고리의 다른 글
Linux 리눅스 PHP 버전 확인 및 업그레이드 방법 (0) | 2021.02.21 |
---|---|
[PHP] error_log 함수 사용시 한글 깨짐 문자가 제대로 보이지 않는 문제 해결 (0) | 2018.04.11 |
[PHP] 문자열에서 글자수를 기준으로 자르기 (영어 한글) (0) | 2018.03.27 |
[PHP] 배열 삭제 방법 array_splice array_values array_diff unset (0) | 2017.06.22 |
[PHP] Array 배열 요소 추가 삭제 값 구하기 합치기 결합하기 다차원 사용 방법 정리 (1) | 2017.06.14 |
[PHP] rmdir 로 디렉토리 폴더 내부의 파일들과 같이 삭제를 하고 싶을 때 (0) | 2016.08.25 |
PHP Fatal error: Cannot redeclare 에러 해결 방법 (0) | 2016.07.26 |
CentOS 7에 yum으로 PHP 5.6을 설치하는 방법 (0) | 2016.07.18 |
php에서 간단히 mail 함수로 메일 보내기 (1) | 2014.03.13 |
PHP isset, empty, is_null의 상관 관계와 정보 요약 (0) | 2010.12.22 |