PHP 로 된 프로젝트는 왜 유독히…
여기는 자바 개발자분들이 많긴한데 요즘엔 종합개발커뮤니티인것같네요.
최근 모 커뮤니티 참여하면서 국내 PHP 생태계에 느낀거 적어봅니다.
PHP 는 처음에 템플릿 스크립트로 시작했습니다. 그래서 html 과 php 를 섞어쓰는것은 당연했지요.
사람들은 PHP 를 쓰며 여러 문제를 겪었습니다.
PHP 가 외면 받는것은 최근 몇년만 보면 비동기 미지원.. 제네릭 미지원 이런게 있겠지만 이건 부차적인 문제입니다.
사실은 PHP 가 처음 나온 방식대로 사용하는 바로 그런 코드들에 환멸 느끼고 사용자가 떠났기 때문입니다.
워드프레스, 제로보드, 그누보드, 그 밖에 EC 큐브 2 등등 공통점은 mvc 가 아니며
인클루드에 인클루드를 반복, 전역변수가 너무나 난무, 함수도 사용안하고 그저 데이터를 html 에 반복하는 코드들입니다.
NextJS 14를 보며 저거 옛날 PHP 잖아? 하는건 조롱입니다. 칭찬이 아니구요.
MVC 패턴은 은탄환이 아닙니다. 하지만 단순 랜딩페이지 이상의 플젝을 진행하기에는
최소한 MVC 구조... 하다못해 템플릿과 데이터 분리가 있어야한다는것입니다.
무작정 복잡한것을 해야한다 주장이 아닙니다. TDD 는 못하더라도 테스트는 가능해야합니다.
include 한 파일안에 include 를 넣고 전역으로 사용하는 코드에서는
전체 페이지 테스트하는 E2E 테스트 말고는 거의 불가능합니다.
레거시의 뜻은 유산입니다. 하지만 이런 코드는 유산이라기 보다는 빚에 더욱 가깝습니다.
빚을 상속받은 겁니다.
최근 모 커뮤니티 사이트 프로젝트에 참여했습니다. 그 사이트는 위에 언급한 cms 중 하나로 되어있구요.
여러 개발자가 모이고 결국은 다른언어 개발자들의 문제 제기가 있더군요.
예상한대로 유지보수가 어려운(거의 불능)한 구조라는 의견이 주류입니다.
결국은 PHP 에 데이고 고랭이라는 언어로 가게되었습니다. (고랭이 웹사이트에 맞느냐는 둘째치고)
그런데 말입니다 제가 봐왔던, 들었던... PHP 프로젝트는 늘 이런식입니다.
프레임워크는 무겁다고, 어렵다고 피합니다. 대체 무엇이 그럴까요?
일부에서는 PHP 프레임워크들 어렵다고는 하지만 자바의 스프링보다 JS 의 NestJS 보다 쉬운것이 진실입니다.
물론 프레임워크 없어도 가능합니다.
인력부족, 참 안타까운 현실입니다.
더 나은 선택지가 되는 프로그램이 있어야합니다.
규모가 커지면 언어를 엎을 수 도 있지요. 하지만 지금 상황은 그게 아닙니다.
이대로는 한국에서 PHP 는 줄어들겠죠. 다른언어를 선택하면 그만이니까요.