전체 이야기는 헐리우드 블록버스터의 전형적인 줄거리와 같습니다. 두 친구가 이제 헤어졌고, 심지어 강제로 삶을 살아가게 되었습니다. -그리고 죽음의 투쟁. 처음에는 불일치가 심각하지 않았습니다. 단순히 오랜 친구가 다른 파트너가 오랫동안 점유했지만 이야기한 적이 없는 사업 분야에 관심을 갖게 된 것이었습니다. 이 프로그래밍 언어 결투 영화의 실제 버전에서 Node.js는 좋은 형제들이 서로 등을 돌리게 하는 계기가 되었고, 이는 PHP와 JavaScript가 함께 협력하여 전체 인터넷 세계를 지배하는 공평한 전투를 촉발시켰습니다. 하지만 이제는 개발자 지원을 위해 경쟁하기 위해 서로를 죽이고 있습니다.
그때를 생각해보면 협력 관계는 늘 단순하고 순수했습니다. 당시에는 JavaScript가 브라우저의 세부 사항을 처리했고, PHP는 포트 80과 MySQL 사이에 존재했던 모든 서버 측 작업을 관리했습니다. 당시 양 당사자는 행복한 협력 태도를 유지하고 인터넷의 다양한 핵심 구성 요소에 대한 지원을 계속 제공했습니다. WordPress, Drupal, Facebook 등 PHP가 없으면 사람들은 단 1분도 인터넷에 접속할 수 없습니다.
그러나 영리한 기술자는 놀라운 비밀을 발견했습니다. JavaScript는 서버에서도 실행될 수 있다는 것입니다. 거의 하룻밤 사이에 차세대 서버 스택을 구축하는 데 더 이상 PHP의 성능이 필요하지 않은 것처럼 보였습니다. 단 하나의 언어로 우리는 클라이언트에서 실행되는 Node.js와 기타 다양한 프레임워크를 구축할 수 있었습니다. "JavaScript는 어디에나 있다"는 믿음이 일부 개발자들에게는 실제적인 신념이 되었습니다.
물론 이 이야기의 결말은 아직 확정되지 않았습니다. Node.js의 발전과 JavaScript의 편리함을 설교하는 모든 개발자에게는 항상 반대하는 사람들이 있습니다. 그들은 PHP의 깊은 코드 기반과 장기적으로 안정적인 실제 성능을 선호합니다. 그렇다면 이 늙은 통치자는 자신이 수년 동안 점유해 온 서버 홈 코트에서 도전자를 이길 수 있을까요? JavaScript는 오랜 친구를 무자비하게 전복시키고 세계를 통합하려는 야망을 실현할 수 있을까요? 팝콘통과 콜라를 손에 들고 룸메이트들이 함께 섹스하는 흥미진진한 쇼를 시청해 보세요.
PHP의 승리: 코드와 콘텐츠의 혼합
물론 모든 사람은 작업 중에 자신의 아이디어를 표현할 수 있기를 바랍니다. 입력 프로세스 웹 사이트의 텍스트 콘텐츠로 직접 번역할 뿐만 아니라 프로세스에 분기를 추가하고 일부 if-then 문을 추가하여 URL의 특정 매개변수에 따라 사이트가 아름다운 시각적 효과를 갖도록 합니다. 또는 단일 데이터베이스를 사용하여 텍스트나 데이터를 혼합할 수 있기를 원합니다. PHP의 도움으로 마법의 PHP 태그를 열고 몇 초 안에 코드 작성을 시작하기만 하면 됩니다. 예, 템플릿이 필요하지 않습니다. 모든 것이 이미 템플릿으로 작성되어 있습니다! 추가 파일이나 복잡한 구조를 사용할 필요가 없습니다. 프로그래밍 가능한 논리의 힘은 여러분이 사용하기를 기다리고 있습니다.
Node.js의 승리: 우려 사항 나누기
한 줌의 기적의 목발처럼 코드와 콘텐츠를 혼합하세요. 처음에는 사용자를 잘 안내할 수 있었지만 결국에는 큰 부담이 되는 경우가 많습니다. 물론, 코드와 HTML을 혼합하는 것은 꽤 재미있을 수 있습니다. 적어도 처음 몇 번 시도해 보면 그렇습니다. 그러나 우리의 코드 베이스 중 다수는 혼합 논리로 뒤덮여 있습니다. 실제 프로그래머는 여기에 구조를 추가하고 장식 레이어를 논리 레이어와 분리합니다. 분명히 초보 개발자는 프로젝트를 더 명확하게 이해하고 후속 유지 관리 작업을 더 쉽게 완료할 수 있습니다. Node.js에서 실행되는 다양한 프레임워크는 모델, 뷰 및 컨트롤러가 명확하게 분리되면 삶이 더 좋아질 것이라는 것을 알고 있는 프로그래머 그룹에 의해 구축되었습니다.
PHP의 승리: Deep Code Base
온라인 세상 전체가 수많은 PHP로 가득 차 있습니다. 암호. 웹 사이트를 구축하는 데 사용되는 다양한 주류 플랫폼(WordPress, Drupal, Joomla 등 포함)은 PHP 언어로 작성되었습니다. 이러한 플랫폼 외에도 대부분의 관련 플러그인도 오픈 소스 코드 형태로 존재합니다. 전체적으로 PHP 코드는 누구나 쉽게 사용할 수 있으며 필요에 따라 다운로드하고 수정하고 사용할 수 있습니다.
노드의 승리: 초기 코드는 최신 기능을 의미합니다.
수천 개의 오픈 소스 PHP가 있다는 것은 부인할 수 없는 사실입니다. 파일은 실제로 모든 사람이 프로젝트 개발을 더 쉽게 완료하는 데 도움이 될 수 있지만 개발자가 다운로드하여 사용하기를 기다리고 있는 8년 된 WordPress 플러그인도 많이 있습니다. 몇 년 동안 업데이트되지 않은 코드를 디버깅하는 데 몇 시간, 며칠, 심지어 몇 주를 소비하고 싶은 사람이 누가 있습니까? 적어도 나는 원하지 않습니다. Node.js 플러그인은 최신 버전일 뿐만 아니라 최신 아키텍처 솔루션이 제공하는 모든 편리함을 누리고 있습니다. 코드의 이 부분을 개발한 프로그래머는 최신 웹 애플리케이션이 클라이언트에 더 지능적인 요소를 도입해야 한다는 것을 잘 알고 있었습니다.
PHP의 승리: 편의성(다소)
PHP 언어 사용에 대해서는 별로 할 말이 없습니다. 몇 가지 변수와 문자열과 숫자로 구성된 기본 함수가 전부입니다. 이는 매우 집중적인 솔루션이며 모든 사용자는 이를 사용하여 포트 80에서 데이터베이스 및 백엔드로 데이터를 이동하는 것을 기대합니다. PHP에는 큰 야망이 없습니다. 이 작업을 잘 완료하는 것이 의무입니다. 최신 데이터베이스는 기적적인 도구이므로 모든 종류의 과중한 작업 부하를 처리하기 위해 이를 넘겨줄 수 있습니다. PHP는 적당히 복잡한 처리 방법이므로 사용하기 어렵게 만들 필요가 없습니다.
노드 승리: 클로저 복잡성 등
JavaScript 사용 시 약간의 어색함이 있을 수 있습니다. 발생 일부 개발자를 미치게 만들 수도 있지만 전반적으로 이는 많은 현대적인 구문과 클로저로 표시되는 유용한 기능을 많이 갖춘 현대적인 프로그래밍 언어입니다. 쉽게 재구성하고 확장할 수 있어 jQuery와 같은 강력한 라이브러리를 만들 수 있습니다. 객체와 같은 기능에 대해 걱정할 필요가 없습니다. 왜 자기 자신과 싸워야 합니까?
PHP의 승리: 클라이언트 애플리케이션이 필요하지 않습니다
PHP가 다음 환경에서 사용될 수 있다면 누구나 그렇게 말합니다. 브라우저 그리고 서버에서 동일한 언어가 사용된다면 실제 효과는 확실히 최고가 될 것입니다. 하지만 브라우저에서 어떤 언어도 전혀 사용할 필요가 없다면 더 좋지 않을까요? HTML 형식으로 데이터 출력을 직접 구현할 수 있다면 어떨까요? 브라우저는 수십 개의 웹 서비스 호출을 사용하여 브라우저에서 페이지를 생성하려고 시도하는 JavaScript 스레드로 인해 발생하는 번거로움과 결함 없이 이 데이터를 직접 받아들일 수 있습니다. 순수 HTML은 다른 형식보다 더 나은 성능을 발휘하는 경우가 많으며 PHP는 이러한 생성 작업에 완전히 최적화되어 있습니다. 굳이 브라우저에 JavaScript를 도입해야 하는 이유는 무엇입니까? 모든 것을 서버에 구축하고 작은 휴대폰의 작은 브라우저에 너무 무거운 작업을 맡기지 않으려는 것이 올바른 솔루션입니다.
노드 승리: 서비스 호출은 비대해진 PHP HTML 호출보다 가벼움
AJAX는 종종 HTML 5 웹 애플리케이션에는 움직이는 부분이 많이 포함되어 있지만 정말 멋지고 실질적인 이점이 있습니다. JavaScript 코드가 브라우저의 캐시에 있으면 네트워크 회선을 통해 앞뒤로 이동할 수 있는 것은 새로운 데이터뿐입니다. 여기에서는 수많은 HTML 태그를 처리할 필요가 없으며 전체 페이지 콘텐츠를 반복적으로 다운로드할 필요도 없습니다. 그 안의 데이터만 변경됩니다. 시간을 들여 멋진 웹 애플리케이션을 만들 의향이 있다면 확실히 이상적인 수익을 가져다줄 것입니다. Node.js는 데이터 전달 메커니즘에 깊이 최적화되어 있으며 데이터는 웹 서비스에만 제공하면 됩니다. 애플리케이션이 매우 복잡하고 많은 양의 데이터로 가득 차 있다면 Node.js는 의심할 여지없이 효과적인 정보 전송을 위한 좋은 기반을 구축할 것입니다.
PHP의 승리: SQL
PHP의 디자인 아이디어 자체는 MySQL과 그 자체의 통합을 고려합니다. MariaDB와 같은 많은 변형이 공존하고 협력해야 합니다. MySQL이 실제 요구 사항을 충족하기에 충분하지 않은 경우 Oracle과 Microsoft에서 선택할 수 있는 더 우수한 SQL 데이터베이스가 있습니다. 우리의 코드는 간단한 활성화를 통해 쿼리 명령으로 변환될 수 있습니다. SQL의 광대한 세계는 끝이 없으며, 그 영역은 계속 확장되고 있습니다. 가장 안정적이고 고도로 개발된 코드 중 상당수가 SQL 데이터베이스에 연결될 것입니다. 이는 이러한 모든 강력한 기능이 결국 PHP 프로젝트에 쉽게 통합될 것임을 의미합니다. 어쩌면 생태계 전체가 완벽하고 조화로운 가족이라고 할 수는 없지만 그 규모가 상당하다는 점은 부인할 수 없습니다.
Node.js가 승리함: JSON
SQL에 액세스해야 한다면 Node.js 관련 이 작업을 수행하기 위해 라이브러리도 제공됩니다. 하지만 Node.js는 JSON과도 상호 운용할 수 있습니다. 이 범용 솔루션은 많은 최신 NoSQL 데이터베이스와 상호 작용할 수 있습니다. 이는 자체 PHP 스택에서 JSON 라이브러리를 얻을 수 없다는 의미는 아니지만 JavaScript와 함께 JSON을 사용하면 간단하고 편리한 작업 처리 프로세스로 이어질 수 있는 경우가 많습니다. 이러한 방식으로 브라우저에서 웹 서버, 데이터베이스까지 동일한 구문이 사용되도록 보장할 수 있습니다. 여기서 콜론과 괄호는 정확히 동일한 방식과 기능으로 사용됩니다. 이를 통해 모든 사람이 개발 시간을 절약하고 코드 작성 시 좌절감을 크게 줄일 수 있습니다.
PHP의 승리: 코딩 속도
대부분의 개발자에게 PHP 애플리케이션으로 웹을 작성하는 경향이 있습니다. 보다 효율적인 코딩 경험: 컴파일러 없음, 배포 없음, JAR 파일 또는 사전 처리 메커니즘 필요 없음 - 좋아하는 편집기를 사용하고 디렉터리에 있는 일부 PHP 파일을 사용하여 개발하면 됩니다. 실제 개발 프로세스는 다를 수 있지만, 프로젝트를 빠르게 완료하기 위한 마법의 무기에 관해서라면 PHP는 확실히 이 내부 싸움에서 제 역할을 합니다.
Node.js의 승리: 원시 속도
코드 자체에 있는 중괄호와 괄호의 개수를 보면 자바스크립트 코드를 작성하는 것이 사실 더 어렵지만, 개발 작업이 완료된 후에는 Node.js 코드의 실행 속도가 엄청나게 빨라집니다. 놀라운. 콜백 메커니즘의 도입은 천재적인 움직임입니다. 다양한 스레드를 처리하는 데 드는 시간을 크게 절약할 수 있기 때문입니다. 코드의 핵심은 잘 구축되어 있으며 실제로 필요한 것을 달성하도록 특별히 설계되었습니다. 개발자라면 누구나 꿈꾸는 일이 아닐까?
영어: http://www.infoworld.com/article/2866712/php/php-vs-node-js-an-epic-battle-for-developer-mind- share.html
위 내용은 PHP 대 Nodejs를 소개합니다. 다양한 측면을 포함한 개발자 선호도에 대한 장대한 전투가 PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.