본문 바로가기
개발/라라벨 Laravel

라라벨 Laravel 에 대해서 알아보기

by 언제나초심. 2021. 9. 20.
반응형

Laravel 라라벨

라라벨과 내가 기억하는 PHP 진영의 역사

'라라벨 프레임워크'는 PHP 진영에서 마지막 보루라고 볼 수 있는 프레임워크이다. 기존에 여러 프레임워크가 등장하고 소멸했지만, PHP쪽에서는 그럴싸한 물건이 없었다.

먼저 이유를 알아야할 필요가 있는데, php 진영에서는 프레임워크보다 웹 사이트를 빠르게 구축할 수 있는 일종의 빌드 도구 또는 웹사이트 도구같은 것들이 많이 있었기 때문이다.

그래서인지, 웹 프레임워크의 성장에 동력이 다른 언어보다 약한 점이 있었다. 옛날에 외국인에게 들었던 얘기가 줌라 Zoomla가 좋다던가 하는 얘기를 들은 적이 있다. 혹은 누군가는 wordpress 를 꼽기도 한다. 이 도구들은 웹사이트를 만드는 도구이지 프레임워크가 아니다...

이게 이유가 있기는 한 것이, PHP 는 처음부터 홈페이지를 만들기 좋은 언어로써 개발된 것이기 때문이다. 다른 언어처럼 프로그래밍을 목적으로 만들어졌다가 웹 어플리케이션으로 발전한 것과는 반대의 경우이다. (현재의 PHP 는 어느 정도는 스크립트로써 사용하거나 프로그래밍적 사용이 가능하다. 어느 정도는 머신러닝도 되는 것으로 알고 있다)

그런 와중에 PHP 프레임워크 시장에서도 각축전이 벌어지는데, CodeIgniter, Yii, Cake PHP 등등이 있어왔다. 여기에 Laravel 도 등장하게 된다.

국내에서의 상황은 초기부터 짚어보면,

PHP 직접 구현 > Zeroboard 이용 (현 XE) > 기업 자체 솔루션 > CodeIgniter > Laravel 의 흐름으로 보면 얼추 맞다.

현재는 Laravel이 가장 낫다고 보여지고 있다.

라라벨의 특징

어쨌건 Laravel 은 웹 프레임워크로써 다른 언어의 프레임워크를 능가할 만큼 좋다. 이유를 아주 간단히 요약하자면,
* Django (Python), Spring (Java)의 장점을 모두 다 스까놓은 듯한 느낌을 받을 수 있다.

Django(Python), Spring(Java), Struts(Java), CodeIgniter(PHP) 를 다뤄본 개발자인 내 입장에서 보자면, Laravel을 만드는 개발자는 나와 마찬가지로 다른 언어의 프레임워크를 써 본적이 있다 라는 느낌을 준다. 그래서 막 섞어넣는 듯한 느낌을 준다. 가끔 '어 라라벨에도 이 기능이 있네?' 같은 감상을 줄 때가 많다. (예를 들어 2단계 인증이라거나, 클라우드 스토리지 연계라거나)

Laravel의 장점은 아주 한 줄로 설명이 가능하다.

Laravel 프레임워크를 만드는 개발자들의 실력이 좋다. 로 요약이 가능하다.

단점은

이제는 단점에 대해서 얘기해볼 수 있는데, 단점은 어찌보면 간단하다. PHP의 한계이다. Python 기반의 Django는 Laravel을 써봤던 유저로써는 욕 나오는 경험이 많이 발생된다. '어 이게 왜 안 돼? 이것도 안 돼? 이건 왜 없어? 이건 공식 설명에도 없고?' 이런 상황이 무한 반복이 된다. 그런데 장점이 그걸 무력화시키게 되는데. Python 기반이라서.. '어? 그냥 구현하니까 되네. 어 이거 그냥 만들까?' 같은 상황이 발생된다. Python은 결국은 단독적으로 수행이 가능한 언어여서, Django 프레임워크의 기능과 python 자체의 기능으로 상호 커버되면서 어찌어찌 해결되는 경우가 많기 때문이다.

Laravel은 PHP 기반이기 때문에, PHP에서 안 되는 기능이 있으므로 전부 Laravel 프레임워크에 의존해야 하는 면이 강하다. 설명하기가 어려운데.. 만약에 예를 들어서, 웹 프레임워크에서 클릭 한 번으로 안드로이드 앱을 만들고 싶다고 하자. (네?) 아니면 더 극단적으로, 웹 프레임워크에서 클릭 한 번으로 윈도우 프로그램을 하나 새로 만들고 거기에다가 build 까지 시켜서 exe 파일로 만들어서 클라우드에 올리고, 사용자에게 다운로드 받게 만들게 하자. (네?) 아니면 클릭 한 번으로 AI를 학습해서 모델을 생성해서 클라우드에 올리고, 학습된 AI를 토대로 예측 결과를 사용자에게 보여주도록 하자. (네?) 이런 것은 PHP에서는 많이 어려워진다. (불가능하다는 얘기는 아니다... 불가능은 아닌데 하고 싶지가 않다)

종합

즉, 정리하자면. Laravel 은 웹 프레임워크로 매우 우수하며 많은 기능이 포함되어 있고, PHP의 구세주이며, 웹을 전제로 하는 프레임워크를 구현하고, 그 와중에 메모리 사용량도 최소화하면서 구현해내는 목적에 매우 적합하고 좋은 프레임워크이다. 단점은 Laravel에 대해서 깊숙히 이해를 하고 있어야 한다는 점이다. PHP에 기대어서는 안 되기 때문이다.

다르게보면 프레임워크라는 말 자체가 딱 들어맞는다고 볼 수 있다. 거기다 장점은 PHP가 과거에도 무료이고 현재도 무료이며 미래에도 무료일 것이기 때문에, 걱정없이 20여년 유지될 사이트를 구축하고자 하는 목적에 좋다는 점이다.

단점은 그냥 PHP이기 때문에 단점. 만약 Python으로 Laravel을 만들었다면.. 엄청난 시너지가 나왔을 지도 모른다는 생각이 든다. 그러나 그 자체도 그러면 목적에 안 맞기 때문에.. PHP는 어찌보면 웹만 된다는 점이 또한 장점이기 때문이다. (스크립트로 실행이 가능하긴 한데.. 제대로 만들지 않는다면, 스크립트로는 별로 실행되는 것이 없기 때문에... )

개인적으로는 Laravel은 매우 좋아한다. 이걸 만든 개발자들은 상당한 녀석들일 거야 라는 느낌을 주기 때문이다.

반응형