The Blue Elephant in the Room: Why PHP Should Not Be Ignored Now or Ever

웹을 탐색할 때, “PHP는 과거의 그 것만이 아닌 것”이라고 주장하는 의견을 자주 만날 수 있습니다. 그리고 2000년대의 최고 자리는 회복할 수 없게 되었다고 합니다. “PHP는 죽었는가?”는 이 프로그래밍 언어에 관한 또 다른 기사의 가장 유명한 헤드라인 중 하나입니다. 사실, 현대의 현실은 새로운 도구들을 요구하지만, 일부 것들은 진정한 대안이 없으며, PHP는 그 중 하나입니다. 과거에 리더였던 그것은 여전히 자리를 지키고 있습니다.

이 기사에서는, 오래된 PHP가 새로운 기술들의 증가하는 수에 맞서 여전히 자리를 지키는 이유를 설명하겠습니다. 또한, 다양한 복잡성의 웹 프로젝트를 개발자들이 만들 때 최고의 비서로 남아있습니다.

근원 thereof

목적이 수단을 정의하듯이, 그것도 수단을 결정합니다. PHP의 전체 진화는 처음부터 만들어진 목적과 직접적으로 관련이 있습니다. PHP가 웹 개발에서 왜 인기가 있었고, 여전히 인기가 남아 있는지 이해하기 위해, 그 기원으로 돌아가 그 근원을 이해해 보겠습니다.

PHP는 1994년에 덴마크 프로그래머 Rasmus Lerdorf가 자신의 이력서를 관리하고 웹사이트 방문을 추적하기 위해 C 언어로 프로그램 세트를 만들기로 결정할 때 첫 번째 생일을 축하했습니다. 이것이 그 이름의 기원이 되었으며, 처음에는 Personal Home Page Tools, 이었지만, Rasmus가 코드를 공개하고 공중에 알려지면서, 세계적으로 PHP: Hypertext Preprocessor.으로 알려지게 되었습니다.

PHP는 그 창립当初부터 웹 프로젝트의 기반으로 개발되었습니다. 연간의 시간 동안 PHP는 많은 변화를 겪으며, 단순한 웹 페이지 관리 스크립트에서 복잡한 웹 프로젝트에 사용되는 전형적인 프로그래밍 언어로 진화했습니다. 그러나 그 본질은 30년 전과 같습니다: 웹을 위해 태어났고, 웹에 머물러

있습니다. 간단하고 유연한 언어로서 PHP는 수천 명의 프로그래머들을 끌어들였고, 그들은 빠르고 수월하게 동적 웹 사이트를 만들 수 있었습니다. 코드를 HTML 마크업에 직접 삽입할 수 있는 능력은 동적 웹 페이지 생성에서 전所未有的한 간편함과 유연함을 제공했습니다. Laravel, Symfony, WordPress, Drupal과 같은 인기 있는 프레임워크와 콘텐츠 관리 시스템의 등장은 PHP의 시장 지위를 더욱 강화했습니다.

이러한 도구는 초보자와 경험 많은 개발자 모두에게 매우 인기가 있으며, PHP의 명성에 또 다른 (미소하지 않은) 점수를 더합니다.

경쟁자? 정말?

모든 것의 디지털화는 웹 개발이 더욱 필수적인 것으로 만들었습니다. 인터넷은 일상 생활의 필수적인 부분이 되었고, 웹사이트, 블로그, 온라인 상점은 모든 기업가에게 필수입니다. 그들 없이 고객을 찾는 것은 매우 어렵습니다. 따라서 PHP 외에도 다른 프로그래밍 언어들이 시장에서 경쟁하고 있습니다. 하지만 그들은 웹 개발에서 동일한 성공을 이루었을까요? 좀 더 깊이 조사해 보겠습니다.

  1. 파이썬
    파이썬의 인기는 비밀이 아닙니다: 널리 홍보되고 많은 사람들에 의해 개발의 금标准으로 인식되고 있습니다. 네, 많은 분야에서(백엔드 웹 개발을 포함하여) 사용되며, 다이jango와 플라스크와 같은 강력한 프레임워크를 가지고 있습니다. 또한 학습하기 쉬우며 개발자로부터 최소한의 노력을 요구합니다. 그러나 파이썬이 복잡한 애플리케이션에 적합하고 대규모 데이터셋을 처리할 수 있는 데도 불구하고, PHP는 웹 프로젝트 개발에서 그 성능과 기능에서 크게 앞섭니다. 이는 PHP가 이 목적을 위해 특별히 만들어졌기 때문에 놀라운 일이 아닙니다. 파이썬의 주요 도메인은 현재 데이터 과학과 분석으로, 이 분야에서는 아마도 비등한 것이 없을 것입니다. 하지만 우리는 웹 개발에 대해 이야기하고 있습니다.

  2. 자바스크립트/타입스크립트 (그리고 노드.js)
    전통적으로 클라이언트 측 개발에 사용되던 자바스크립트는 노드.js의 등장과 함께 서버 측 개발에도 적용 가능하게 되면서 인기가 급상승했습니다. 이로 인해 사용자 기반과 인기가 크게 증가하였으며, 개발자들은 프론트엔드와 백엔드 개발 모두 동일한 언어를 사용할 수 있게 되었습니다. 이는 기업들이 프로그래밍 직원 예산을 절감할 수 있게 하고, JS 개발자들은 자신의 기술을 크게 확장할 수 있게 합니다. 노드.js는 높은 성능과 비동기 연산이 필요한 애플리케이션에 적합하지만, 백엔드 인기에서 PHP를 크게 따르지 못하고 있습니다. 이는 결국 PHP로 작성된 웹 프로젝트는 유지보수가 훨씬 쉬우며 비용이 적게 든다는 것을 의미합니다. 또한, 이 프로그래밍 언어와 작업하는 데 대한 문서/가이드가 훨씬 더 많이 찾아볼 수 있어, 이러한 웹 프로젝트는 생존 가능성이 높아Someone이 계속 개발할 수 있을 것입니다.

  1. Go (또는 Golang)
    Google의 제품인 Go는 성능면에서 점점 더 인기를 끌고 있습니다. Go는 고부하 웹 서비스에 적합하며, 이를 부러워할 정도로 효율적으로 처리합니다. 또한, 그 문법은 매우 쉽게 배울 수 있으며, 초보자가 Go를 사용하여 30일 만에 상급 개발자가 될 수 있다는 소문도 있습니다. 하지만 Go는 아직 PHP의 채택 수준에 도달하지 않았으며, 어느 정도는 관심 밖에 머물고 있습니다: Go로의 개발은 훨씬 더 느리며, 복잡한 프로젝트를 만들기 위한 도구와 라이브러리의 수는 상당히 적습니다. 많은 개발자들은 오늘날 Golang을 PHP와 함께 효과적으로 사용하고 있으며, 이를 대체하는 것보다는 보완하는 방식으로 활용하고 있습니다.

  1. 자바
    자바는 Spring과 Apache Struts와 같은 강력하고 확장 가능한 프레임워크를 통해 오랫동안 신뢰할 수 있는 프로그래밍 언어로 입지를 다져왔습니다. 충분한 재정적 및 시간적 자원을 가진 기업의 기업 웹 애플리케이션을 구현하는 데 적합합니다. 그러나 개발에 필요한 높은 예산과 많은 시간으로 인해 소기업과 중기업, 특히 자금이 제한된 스타트업에게는 적합하지 않습니다. 이들에게는 관리가 용이하고 빠르게 배포할 수 있는 PHP가 훨씬 더 적합한 선택입니다.

  1. C#
    자바와 유사하게, C#은 확장 가능한 웹 애플리케이션을 만들기 위한 많은 강력한 도구와 라이브러리를 갖추고 있습니다. 그러나 PHP는 더 다재다능하며 특정 생태계에 대한 의존도가 낮습니다. PHP는 많은 개발자에게 접근성이 높고, 배우기와 설정하기 쉬우며, 지나치게 긴 프로젝트 완료 시간이 필요하지 않습니다. 이것이 그것의 슈퍼파워입니다.

프로그래밍 언어를 비교할 때, 많은 사람들이 조사 데이터를 인용합니다. 우리도 그렇게 하죠. PYPL 인덱스에 따르면, Stack Overflow의 개발자 조사 2024TIOBE 인덱스에 따르면, PHP는 7위에서 10위 사이에 랭크되어 있습니다. 이러한 결과는 PHP가 백엔드 개발 언어 중에서 자리를 잃었다는 오해를 줄 수 있지만, 이는 단순히 사실이 아닙니다. 더 높은 랭크를 차지한 언어들은 PHP와는 달리 더 넓은 범위의 작업을 위해 설계되었습니다.

예를 들어, Python은机器学习와 데이터 분석에서 널리 사용되지만, 백엔드 웹 애플리케이션 개발에 사용되는 것은 항상 정당화되지 않는다. JavaScript는 주로 클라이언트 측 웹 개발에 사용되며, 거의 대안이 없다. PHP를 능가한 다른 언어들은 많은 다른 분야에서 사용되며, 이는 반드시 웹 백엔드와 관련된 것만은 아니다.

따라서, 2025년, 2026년 그리고 아마도 2027년에도 PHP는 여전히 많은 간단하고 중간 복잡도의 웹 애플리케이션의 백엔드 개발에 특히 우수한 프로그래밍 언어로 불릴 수 있으며, 이는 그 주요 목적이다.

왜 PHP인가: 과거에 대한 내 생각

처음 프로그래밍을 배우기 시작할 때, 항상 궁금한 한 가지 질문이 있었다: 루프, 함수, 변수, 모듈로 이루어진 쓰여진 코드를 실질적인 것으로 어떻게 바꾸는지, 또는 다른 사람들에게 유용하고 시각적으로 아름다운 기능적 애플리케이션을 어떻게 만드는지였다. 그 시절의 많은 학생들처럼, 나는 파스칼과 C++로 프로그래밍의 기초를 배웠다. 가끔은 일曜일 설교만큼 지루했을 때도 있었다. 우리는 알고리즘과 수학적 계산에 집중했으며, 이는 자주 주제를 지루하고 흥미롭지 않게 만들었다. 그러나 웹 개발을 발견한 순간, 모든 것이 달라졌다.

코스 중 하나에서, 우리는 선택한 프로그래밍 언어로 온라인 상점을 개발하는 과제를 맡았습니다. 우리에게는 프로젝트를 완료하기 위해 6개월의 시간이 주어졌습니다. 그때 저는 최초로 HTML을 만났습니다. 웹 페이지 마크업을 위한 가장 간단한 언어인 HTML이 어떻게 브라우저에 무언가를 만들어내고, 바로 제 작업 결과를 볼 수 있게 해주는지 놀라웠습니다. 이는 인상적이었지만, HTML만으로는 복잡한 논리나 동적인 요소를 구현할 수 없다는 것을 빠르게 깨달았습니다. 그때 PHP를 발견했습니다. 서버 측 프로그래밍 언어인 PHP는 복잡한 트릭 없이 표준 HTML 페이지에 생명을 불어넣을 수 있는 언어입니다. 그 문법은 저에게 편안했고, 이미 익숙한 C와 같은 언어를 닮았습니다. PHP의 작동 방식도 마음에 드는 점이 많았습니다. 요청을 처리하기 위해 스크립트를 시작하고, 필요한 일을 하고, 그 다음 작업을 마친 후 끝납니다. 이는 서버 측 애플리케이션을 만드는 것을 크게 단순화합니다.

이 프로젝트를 완료하는 것은 저에게 큰 돌파구였습니다. 많은 새로운 기술을 접하며, 애플리케이션의 클라이언트 측을 더 활기를 주기 위해 JavaScript와 JQuery를 조금 배우고, 웹 서버가 어떻게 작동하는지 배우며 네트워킹 기술의 기초를 마스터했습니다. 그러나 PHP가 제게 가장 깊은 인상을 남기고 특별한 자리를 차지했습니다. PHP는 백엔드 개발에 대한 제 인식을 바꿔주었고, 복잡한 서버 측 논리를 가진 동적인 웹 애플리케이션을 만드는 것이 직관적이고 접근 가능한 작업임을 보여주었습니다. 많은 개발자들이 저와 같은 느낌을 공유할 것이라고 확신합니다.

PHP는 백엔드 개발 과정을 단순화하는 것뿐만 아니라 창의성과 혁신의 광대한 기회를 열어줍니다. 그 유연성과 간결함은 항상 PHP를 어떤 복잡도의 웹 애플리케이션을 만드는 데 완벽한 도구로 만들어왔고, 시대를 통해 그 중요성을 정의해왔습니다.

PHP의 장점

제 이야기는 PHP가 웹 개발자에게 얼마나 편리하고 계속해서 편리한 이유를 분명히 보여줍니다. 이제 PHP의 장점을 더 자세히 설명하겠습니다. 그러면 분명히 PHP의 지지자가 될 것입니다.

  1. PHP는 C와 비슷한 문법을 가지고 있습니다
    이 문법은 C와 같은 프로그래밍 언어에 익숙한 사람들(이这样的人들이 많습니다) számára PHP를 배우는 데 쉽게 만듭니다. 조건문과 루프와 같은 익숙한 제어 구조, 함수 선언 형식, 코드 블록을 정의하는 데 사용되는 중괄호 등이 포함됩니다.

  1. PHP는 빠른 웹 애플리케이션 개발에 적합합니다
    프로그램을 실행하기 위해 코드 컴파일이 필요하지 않습니다. 해석된 프로그래밍 언어 그룹에 속하며, 이는 개발 속도를 크게 빠르게 합니다. 스크립트의 작동에 대한 많은 변경 사항은 즉시 확인할 수 있습니다. 예를 들어, 브라우저에서 페이지를 간단히 새로고침하면 됩니다. F5를 단순히 누르세요!

  1. PHP는 오류를 인내합니다
    그래서 PHP는 초보자뿐만 아니라 다른 이들에게도 이상적입니다. 중요한 특징은 거의 모든 스크립트가 생명을 얻어 요청을 처리한 후, 평화롭게 소멸합니다는 점입니다 (RoadRunner와 같은 기술에 대해 이야기하고 있는 것이 아닙니다; 거기서는 이야기가 약간 다릅니다). 이 접근 방식은 메모리 누수와 다른 서버 측 프로그래밍 언어에서 발생할 수 있는 많은 병목 현상과 관련된 위험을 크게 줄입니다. 따라서 PHP는 저수준 리소스 관리 측면을 항상 염두에 두지 않고 프로그램의 논리와 기능에 집중할 수 있게 해줍니다.

  1. PHP에서 객체지향 프로그래밍(OOP)은 쿨해요
    모든 것이 있습니다: 추상 클래스, 인터페이스, 상속 메커니즘, 트레이트, 최종 클래스나 메서드, 읽기 전용 속성/클래스 등 등등. 모두 나열하려면 시간이 너무 오래 걸리므로 이렇게 말씀드리겠습니다: PHP는 awesome입니다.

  1. 디버깅은 빠르고 쉽게 작업 프로세스에 통합될 수 있습니다
    예를 들어, 이 언어와 관련된 모든 사람은 인기 있는 도구 Xdebug를 들어봤을 것입니다. 이 도구는 오류 추적 및 코드 실행 분석에 대한 广泛한 기능을 제공합니다. 그리고 강력한 도구를 사용하는 것에 대해 게을러 있다면, 항상 var_dump이 도와줍니다. 어떤 PHP 개발자라도 내가 뭘 의미하는지 이해할 것입니다.

  1. PHP는 방대한 데이터 타입 처리 기능을 제공합니다
    초반부터 PHP는 엄격한 타입 지정 규칙을 따르지 않으며, 개발자들에게 상당한 자유를 제공합니다. PHP에서는 변수를 사용하여 지원되는 모든 타입의 데이터를 저장할 수 있으며, 이 변수를 사용하여 어떤 연산을 수행할 때 타입이 가능하다면 필요한 타입으로 자동으로 변환됩니다. 그러나 타입 변환 로직이 항상 개발자들에게 명확하지는 않아, 시간이 지남에 따라 더 엄격한 타입 지정의 가능성이 더 많이 나타났습니다. 예를 들어, 최신 버전의 PHP에서는 속성 타입, 상수 타입, 함수 인수 타입, 반환 타입을 지정하고 엄격한 타입 지정 모드(declare(strict_types=1) 지시자를 통해)를 활성화할 수 있습니다. 엄격한 타입이 활성화되면, PHP는 함수나 메서드의 기대치를 충족하지 않는 타입을 자동으로 변환하지 않고 대신 타입 불일치를 나타내는 오류를 발생시킵니다. 이는 strict_type을 사용하면 프로젝트 개발 단계에서 초기에 오류를 식별하는 데 도움이 된다는 의미입니다. 그리고 strict_type은 활성화된 파일에서만 작동하기 때문에, 프로젝트에서 이 기능을 점진적으로 활성화할 수 있으며 기존 기능을 깨뜨리지 않습니다. 따라서 PHP는 빠르게 무언가를 해야 할 때 필요한 유연성과 오류 비용이 높은 더 심각한 프로젝트에 대한 엄격성을 결합합니다.

  1. PHP의 배열은 특별한 주목을 받아야 합니다
    그들은 동시에 숫자 인덱스를 가진 간단한 동적 배열, 문자 키를 가진 연관 배열(또는 해시 테이블), 컬렉션, 벡터 등으로 기능할 수 있습니다. 따라서 PHP에서는 많은 웹 개발 요구를 쉽게 충족할 수 있습니다.
  1. PHP는 가장 효율적인 스크립트 프로그래밍 언어 중 하나입니다
    특히 웹 개발의 맥락에서 그렇습니다. Zend Engine 인터프리터의 최적화로 인해 버전 7에서 성능이 크게 향상되었습니다: PHP는 더 최적화된 메모리 관리와 작동 실행 속도의 큰 향상을 받았습니다. PHP 8에서의 JIT 컴파일 도입은 특히 계산 집중적인 작업에서 성능을 더욱 향상시켰습니다. PHP를 더 빠르게 만드는 다른 요소는 무엇인가요? 물론, 버전 5.5부터 포함된 OpCache입니다. 이 PHP 확장은 사전 컴파일된 바이트코드 스크립트를 메모리에 캐싱하여 언어를 더 빠르게 만듭니다. 또한, Swoole와 ReactPHP와 같은 PHP의 새로운 발전은 비동기 프로그래밍 기능을 제공하여 많은 애플리케이션의 성능을 특히 빈번한 I/O 연산을 처리하는 애플리케이션의 성능을 크게 향상시킬 수 있습니다.

세 가지를 무한히 할 수 있습니다: 불 타는 것을 보는 것, 다른 사람이 일하는 것을 보는 것, 그리고 PHP의 모든 장점을 나열하는 것. 이 장점들은 매우 많아서 이러한 기사 몇 개 분량으로 나열하기에도 부족할 정도입니다. 또한, 모든 장점이 기능적 능력에 의해 단독으로 정의되는 것은 아닙니다: 생태계도 매우 중요하며, PHP는 프로그래밍 언어 중 가장 풍부하고 다양한 생태계 중 하나를 가지고 있습니다.

범위가 매우 넓은 확장 모듈, 도구, 라이브러리, 프레임워크가 존재합니다. Symfony만을 언급해도 충분히 αξίζει 언급이며, 주로 많은 개별 라이브러리로 구성되어 있습니다! 각각은 모든 프로젝트에서 사용할 수 있으며, 모두 공동체에 공개되어 있습니다. 예를 들어, 매우 인기 있는 다른 PHP 프레임워크인 Laravel은 Symfony 컴포넌트를 크게 기반으로 합니다. PHP에서 라이브러리나 패키지로 이미 구현되지 않은 웹 프로젝트를 만들기 위해 필요한 것을 찾는 것은 매우 어려운 일입니다: 많은 것이 이미 제공되어 있으며, 선택의 폭도 정말로 방대합니다.

PHP의 미래

또 하나 중요한 점은 PHP가 정체되지 않았다는 점입니다. PHP는 PHP Foundation과 Zend와 같은 주요 개발자 공동체와 조직에 의해 활발히 지원되고 개발되고 있습니다. 그 진화는 인상적입니다: 핵심과 최소 업데이트의 빈번하고 규칙적인 출시가 언어를 지속적으로 개선시키며, 새로운 현실에서의 적합성을 유지합니다. PHP 개발자들은 사용자에게 안정성과 예측 가능성을 보장하기 위해 버전 출시 일정을 따르고 있습니다; 새로운 최소 PHP 버전은 이제 연간으로 출시됩니다. 얼마 전, 8.3 버전이 출시되어 성능과 기능에 중요한 개선이 이루어졌습니다. 주요 새로운 기능으로는 상수 타입 추가로 PHP의 타입 기능을 확장하고, json_validate 함수 추가, 랜덤화 기능 확장 등이 있습니다. 그리고 다음 버전인 8.4는 이미 준비 중이며, 새로운, 더 고급 JIT 엔진, 헤더 작업을 위한 새로운 함수, 날짜/시간 작업을 위한 새로운 메서드, 새로운 MBString 함수, 프로퍼티 훅(매우 중요하고 유용한 변화) 등 매우 많은 유용한 혁신을 추가할 것입니다.

아마 일부 오래된 세대는 PHP가 종종 특정 프로그램의 낮은 품질로 비판받았던 시절을 기억할지도 모릅니다, 하지만 이제 그것은 단순히 과거의 일입니다; 상황은 변하고 있으며, 오직 나아지고 있습니다. 개발자들은 경험을 쌓고 있고, 언어는 더 엄격하고 안전해지고 있습니다. 코딩 중 실수? 안정적인 손으로 일을 하면 그런 일이 없습니다!

물론이지만, PHP에는 여전히 해결되지 않은 문제와 이슈들이 있습니다 – 예를 들어, 역사적으로 일관성이 없는 문법, 함수 이름의 일관성 결여 등이 있습니다. 특히 심각한 단점으로는 함수의 인자 순서가 다르게 나오는 것이 많아 혼란과 실수를 초래하는 점입니다. 많은 개발자들은 새로운 기능의 도입이 느리다는 점에도 불만을 가지고 있으며, 언어 수준에서 제네릭을 지원하는 문제가 특히 시급해졌습니다.

그러나 이러한 이슈들은 모두 극히 중요하지 않으며 PHP를 사용하는 장점과 비교할 수 없습니다. 이 언어는 더 성숙해지고 있으며, 비판은 점차 과거로 사라지고 있으며, PHP는 매년 수百万 개의 웹 프로젝트를 만들어내고 있습니다. 그것을 널리 퍼뜨린 프레임워크와 CMS는 여전히 존재하며 심각한 경쟁을 받지 않고 있습니다. PHP로 작성하는 것은 여전히 쉽고, 품질 좋은 자료의 양은 계속 증가하고 있으므로, 2025년, 2026년 또는 2027년에 PHP가 백엔드 개발에서의 리더십을 흔들 것으로 예상하는 것은 현실적이지 않습니다.

Source:
https://dzone.com/articles/why-PHP-should-not-be-ignored-now-or-ever