174줄의 '임시' PHP 코드가 2천만 건 설치 후 지원 중단 배경
My temporary PHP fix from 2014 has nearly 20M installs. Today I'm deprecating it
Hacker News2014년에 작성된 PHP '임시 패치' 코드가 무려 2천만 번 이상 설치되었음에도 불구하고, 원작자가 공식적으로 지원을 종료한다고 발표했습니다.
- 이 코드는 본래 임시 방편이었으며, 현재는 PHP 8.5의 표준 API 및 우수한 커뮤니티 라이브러리 덕분에 더 이상 유지보수가 필요하지 않기 때문입니다.
- 오랜 기간 방치된 임시 패치는 미처 발견하지 못한 버그나 심각한 보안 취약점을 내포할 수 있어 시스템 안정성을 위협합니다.
- 패키지는 계속 설치되더라도 수정이 중단되므로, 사용자들은 반드시 PHP 8.5 등 공식적이고 검증된 대안으로 즉시 마이그레이션해야 합니다.
본래 AOL의 콘텐츠 관리 시스템(CMS) 업그레이드 과정에서 임시 방편으로 작성된 174줄 분량의 PHP 코드입니다. 이 패치는 당시 `pecl_http` 확장 기능이 제공하던 `http_build_url()` 함수를 대체하기 위해 만들어졌으며, 원작자는 이를 Packagist에 공유했습니다. 해당 코드는 원래 임시적인 해결책이었으나, 이후 수많은 개발 환경에서 사용되면서 그 영향력이 커지게 되었습니다.
이 패키지는 현재까지 약 2천만 건 가까이 설치되었으며, 매월 40만 건 이상의 설치를 기록하고 있습니다. 이 코드는 Composer 외에도 WPML(워드프레스 다국어 플러그인)이나 SPIP 같은 다른 CMS의 라이브러리 내부 코드에 직접 포함되어 사용되고 있는 것으로 확인되었습니다. 이는 해당 패키지가 광범위한 웹사이트 인프라에 깊숙이 자리 잡았음을 의미합니다.
원작자는 이 코드가 본래 임시적이었기 때문에 공식적으로 지원을 중단한다고 발표했습니다. 그 이유는 PHP 8.5에서 표준 규격의 URI 가 언어 자체에 탑재되었고, 이미 커뮤니티 차원의 우수한 대안 라이브러리들이 존재하기 때문입니다. 오래된 패치를 유지하는 것은 개발자들이 필수적인 마이그레이션을 지연시킬 뿐만 아니라, 미처 발견되지 못한 버그나 보안 취약점을 내포할 위험을 안고 있습니다.
용어 풀이
- API
- 프로그램끼리 기능을 주고받는 약속된 창구. AI 모델은 보통 API로 불러 써요.