본문 바로가기

프로그래밍

Framework in PHP

 현재 어플리케이션 개발뿐만 아니라 웹 개발에서도 프레임워크의 활용에 대해 많은 의견이 오가고 있다.

자바에 이미 많은 기능을 제공하는 성숙한 프레임워크가 존재하여 사람을 뽑을때도 자바언어보다는 프레임워크를 써본 사용자를 찾는 경향이 있다.

또한 루비(Ruby) 를 휙기적인 언어로 자리매김한 일등공신이 Ruby on the rails 라는 프레임워크라는 것은 이제 웹 개발쪽에 있는 사람이라면 대부분 알고 있는 사실일것이다.

하지만 유난히 PHP 쪽에는 그렇다할 프레임워크가 나오지 않고 있다.
가장 다양하게 이용되고, 많은 사이트에서 이용되고 있는 php가 프레임워크는 존재 하지 않는것일까?

검색결과 php에 프레임워크가 70개 이상 존재 한다. 헉.. 엄청나다..
오히려 그 개방성의 성격답게 많은 양의 프레임워크가 존재 했던것이다.

각종 php 포럼 사이트등에도 프레임워크에 대한 글이 요즘 자주 올라오며, 다양한 토론을 벌이는 모습을 심심치 않게 볼 수 있다.

그렇다면 프레임워크는 무엇일까?

혹자는 그냥 다양하게 쓸수 있는 라이브러리의 집합, 함수의 집합이라하고,
다른이는 품질을 급격하게 상승 시킬수 있는 툴이라고 한다.

음..
모 두 맞는 말이라 생각한다. 프렘임워크를 들여다 보면 개발에 필요한 다양한 함수들이 존재하고 그 함수들이 용도에 맞게 잘 클래스화되어 정리 되어있다. 또한 요즘 개발 트렌드인 MVC 구조를 기본으로 하고 있어서 개발및 수정, 업데이트가 아주 편리하게 되어있다. 기본적인 기능들이 라이브러리화 되어있고, 핵심적인 비즈니스 로직만 개발을 하기 때문에 특히 여러명이 한꺼번에 개발을 해야할때 각자 다른 개발 스킬을 어느정도 통일시켜 추후 다른 사람이 봐도 수정을 용이하게 만든다.

또한 가장 중요한점이 소스의 재사용성이다. 이미 개인 개발자들은 자신들만의 라이브러리를 만들어 재사용을 하고 있지만.. 이건 순전히 자신만의 라이브러리다. 다른 사람이 보면 또 분석하고 테스트 해봐야하고.. 시간이 걸린다. 한 프레임워크에 익숙해지면 그에 관련된 라이브러리는 여러사람이 알고 있을것이고 또한 더욱 빠르게 개발이 진행될것은 뻔하다.

그래서 뭐라는건가?
이글의 목적은 아직 그렇다할 프레임워크가 존재하지 않는 php의 프레임워크를 간단히 소개 할려고 한다.

너무 다양해 다 볼수 없지만 그중 가장 많이 쓰인다는 4가지를 소개할까 한다.


젠드 프레임워크
젠드 프레임워크
php계의 거의 유일한(?) 수익을 내는 업체로 젠드 옵티마이져로 유명한 업체에서 내놓은 프레임워크이다. 많은 이들이 앞으로 php 프레임워크의 대세가 될것이라는 예상을 하고 그에 못지 않게 다양한 DB및 기능을 지원하고 있다.
Pear 를 베이스로 사용하고 있어, 기본적으로 안정적이지만 우리나라에서는 pear를 싫어하는 사람이 생각외로 많아서 어떨지는 모르겠다.

개 인적은 테스트를 해봤는데.. 유난히 용량이 크고 그래서 무겁게 느껴지며, 속도도 약간 처지는 느낌이 든다. 또한 한 서버에 여러명이 사용하는 호스팅 환경이 발달한 우리나라에서는 젠드를 쓰기위해서는 루트가 각 웹서버 설정을 해줘야하기 때문에 사용에 제약이 많다.
앗 그리고 php 5에서만 돌아간다.
cakephp
cakePHP
cakePHP 는 루비온더레일즈를 기본틀로 만든 프레임워크다. 때문에 레일즈를 써본 사람은 딱 그 구조를 알고 익숙하게 사용할수 있을것같다. 홈페이지에서 제공하는 각종 강좌도 레일즈랑 비슷하게 블로그 만들기나 플릭커사이트 만들기가 제공되고 제작 방법도 아주 비슷하다.

개인적으로 맘에 드는 프레임워크다. 이유는 용량이 아주 가볍다. 또한 굳이 최고 관리자가 설치할 필요없이 개인 유저가 바로 업로드하여 설치 사용이 가능하다.
속도면에서도 그나마 php 용에서는 빠른편이다. 또한 php4, 5 모두 돌아간다.
하지만 아직 문서가 많치 않아 개발에 약간의 어려움이 따른다.
zoop framework
Zoop
역시나 가볍게 쓸수 있는 괜찮은 프레임워크다. 다양한 UI 라이브러리를 제공하는게 구미가 간다.
하지만 설치시에 몇가지 Pear 모듈을 기본적으로 설치 해야 하기에 개인 사용자가 설치를 못하는 단점이 있다. 물론 pear 화일을 직접 업로드해 설치 할 수 있지만..약간 불편한게 사실이다.
역시나 문서화가 안된게 많아 힘들다.
symfony
symfony
cakePHP 다음로 인기 있는 프레임워크다. 문서화도 꽤 잘되어있고, 다양한 예제도 있다. 거의 기본적인 프레임워크 기능은 다 들어 있지만 큰 단점으로는 PHP5에서만 돌아간다. 또한 설치도 최고 관리자가 설치해야하고, pear를 이용해야한다.
아직 php4주류인 한국에서는 사용이 힘들지 않을까 한다.

이상 몇가지 프레밍워크를 테스트 해본후 개인 느낌을 적어 봤는데..
cakePHP가 웬지 정이 간다.