PHP 에서 그나마 괜찮은것은 심포니와 라라벨이다


그중에서 라라벨은  그저 마케팅빨이다.
레딧에 이런댓글이 있는데 의견에 동의한다.


언어를 개선하는데는 조금도 관심없고 마치 js 와 제이쿼리같은 꼴이나고 있다.

----------------


저는 라라벨이 PHP에 대한 인식을 해치고 더 나은 소프트웨어 엔지니어링을 촉진하는 데 도움이 되지 않는다고 생각합니다.

이 기사는 라라벨의 뛰어난 마케팅 전략을 정확하게 지적했습니다. 하지만 라라벨이 정말 훌륭한 걸까요?
기술적인 관점에서 보면 그렇지 않습니다. 심지어 라라벨의 파사드가 파사드 패턴의 올바른 구현이라고 생각하는 개발자들도 있는데,
그들이 패턴에 대해 조금이라도 안다면 말이죠. 파사드는 파사드 패턴이 아니라
DI 컨테이너에 대한 정적 프록시일 뿐입니다. 제 개인적인 생각으로는 정말 형편없는 설계 결정입니다.

제 생각에는 이 프레임워크의 설계 목표는 좋은 프레임워크를 만드는 것이 아니라
개발자들이 최대한 쉽게 프로젝트를 만들 수 있도록 단순화하는 데 있었던 것 같습니다.
숙련도가 낮은 개발자들도 빠르게 프로젝트를 완성할 수 있도록 하면서도,
동시에 수많은 서비스와 Laravel 라이브러리를 제공했는데, 이 라이브러리들은 대부분 Laravel 개발자들을 위한 것이었습니다.
그런데 Laravel 개발자들은 보통 Laravel스러운 코드만 다룰 줄 아는 경우가 많죠.
저도 이런 경우를 본 적이 있습니다. 프로젝트들이 Laravel 관련 기능에 지나치게 의존하는 경우 말입니다.
제 생각에는 애초에 이런 전략이 있었던 것 같습니다. 최대한 많은 개발자들을 끌어들인 다음,
그 서비스를 판매하는 것이죠. 그리고 그 전략은 완벽하게 성공했습니다. 그 점에 대해서는 진심으로 존경을 표합니다.

Laravel만의 문제는 아니지만, 프레임워크에만 의존하는 개발자라면 누구나 겪을 수 있는 공통적인 문제점이 있습니다.
바로 프레임워크 없이 언어 자체만 사용해야 할 때 어려움을 겪는다는 것입니다.
제가 경험한 한 사례에서는 사소한 문제로 수천 건의 쿼리가 발생했습니다.

문제의 원인 중 하나는 개발자가 `insertOrUpdate()` (정확한 명칭은 기억나지 않지만)
함수를 루프 안에서 무작정 사용하면서 각 호출이 SELECT 쿼리를 실행한다는 사실을 전혀 이해하지 못했던 것입니다.
이 개발자는 자신이 뛰어난 (Laravel) 개발자라고 자만했습니다. 전체 ETL 프로세스는 Laravel에 지나치게 의존하여 만들어진 거대한 재앙이었습니다.

소프트웨어 엔지니어링에 대한 지식이 없다면 Laravel은 도움이 되지도 않고 마법처럼 더 나은 결과를 가져다주지도 않습니다.
하지만 Laravel은 "멋지고" "힙한" "장인"처럼 보이도록 포장되어 판매되고 있습니다.

재밌는 점은, 라라벨에서 많이 사용되는 "장인"이라는 단어의 의미가 많은 라라벨 개발자들의 실제 모습과는 정반대라는 것입니다.

장인은 전통적인 기술과 전문 지식을 활용하여 손으로 기능적이거나 장식적인 물건을 만드는 숙련된 작업자입니다 .

전통적인 기법, 예를 들어 순수 PHP나 디자인 패턴 같은 것들이요? 그런데 PHP는 전혀 못 쓰고 Laravel만 쓸 수 있는 사람들도 있죠.

물론 그걸로 훌륭한 걸 만들 수 있지만, 상당한 기술이 필요합니다. 하지만 만약 그런 기술을 가진 사람이라면,
왜 굳이 초보자를 위한 프레임워크를 쓰겠어요?

차라리 스프링 플로우의 많은 개념을 훌륭하게 차용한 심포니를 바로 사용하는 게 낫지 않을까요?
심포니는 잘 설계되었고 결합도가 낮지만, 라라벨보다 진입 장벽이 높습니다.
아니면 직접 미니 MVC 프레임워크를 만들어 보는 것도 좋은 방법입니다. 그런 학습 과정을 통해 많은 경험을 얻을 수 있을 겁니다.

수년 또는 수십 년 동안 유지 관리해야 하는 중요하고 규모가 큰 프로젝트의 경우,
저는 절대 라라벨을 선택하지 않고 항상 심포니를 기반으로 구축하되 프레임워크에 얽매이지 않는 방식을 사용할 것입니다.

PHP가 기본적으로 Laravel처럼 된다면, PHP를 떠난 것을 절대 후회하지 않을 겁니다.
물론 PHP의 간결함과 프레임워크 없이도 빠르게 무언가를 만들 수 있다는 점은 여전히 제가 좋아하는 부분이지만요.

제 의견에 대한 배경 설명을 드리자면, 저는 CakePHP 프레임워크의 핵심 개발자였으며
PHP로 구축된 대규모 전자상거래 플랫폼의 아키텍트로 일했고 , PHP 관련 경력이 20년이 넘습니다.