>  기사  >  백엔드 개발  >  PHP와 node.js 논쟁에 대한 다각적인 분석

PHP와 node.js 논쟁에 대한 다각적인 분석

伊谢尔伦
伊谢尔伦원래의
2016-11-25 14:00:361018검색

PHP와 Node.js 사이의 논쟁은 오랫동안 계속되어 왔습니다. 전자는 동적 웹 개발에 사용되는 반면 후자는 고성능 웹 서버를 작성하는 데 사용되는 JavaScript 툴킷입니다. InfoWorld Test Center의 Peter Wayner는 최근 두 가지의 장점을 지적하는 기사를 작성했습니다.

PHP와 node.js 논쟁에 대한 다각적인 분석

번역은 다음과 같습니다.

이것은 전형적인 할리우드 플롯입니다. 헤어진 두 친구의 싸움입니다. . 마찰은 종종 한 사람이 다른 사람이 자명한 영역에 관심을 가질 때 시작됩니다. 영화의 프로그래밍 언어 버전은 Node.js의 도입으로 친구들의 이야기가 거의 일치하게 변한다는 것입니다. 한때 인터넷을 함께 지배했던 두 파트너인 PHP와 JavaScript는 이제 개발자 마음을 공유하기 위해 경쟁하고 있습니다.

과거 그들의 파트너십은 단순했습니다. JavaScript는 브라우저의 작은 세부 사항을 처리하고 PHP는 포트 80 및 MySQL에 존재하는 모든 서버 측 작업을 처리합니다. 이 행복한 결합은 계속해서 인터넷의 많은 핵심 부분에 힘을 실어주고 있습니다. WordPress, Drupal, Facebook에서는 사람들이 PHP를 잠시도 떠나지 않습니다.

그런데 어떤 똑똑한 아이가 서버에서 JavaScript를 실행할 수 있다는 것을 알아냈습니다. 갑자기 우리는 PHP로 차세대 서버 스택을 구축할 필요가 없다는 것을 깨달았습니다. 하나의 언어로 Node.js와 클라이언트 측에서 실행되는 프레임워크를 구축하는 데 충분합니다. 어떤 사람들에게는 "JavaScript는 어디에나 있다"는 것이 만트라가 되었습니다.

물론 아직 엔딩은 끝나지 않았습니다. Node.js의 순수성과 JavaScript의 편재성을 내세우는 단순한 프로그래머에 비해, 코드 기반의 깊이와 PHP를 이해하는 안정성에 만족하는 프로그래머가 있습니다. 이상한 노인이 서버 측 신생 기업과 싸울 수 있습니까? 자바스크립트가 오랜 친구를 무너뜨리고 세계를 지배할 수 있을까요? 전자레인지에 팝콘을 한 줌 더 집어 들고 앉아서 살펴봅시다.

PHP가 승리하는 곳: 혼합 콘텐츠 코드

입력하는 동안 생각이 웹사이트의 텍스트가 됩니다. URL의 일부 매개변수를 기반으로 프로세스에 분기를 추가하려는 경우 약간의 if-then 문을 사용하면 멋지게 보일 것입니다. 아니면 데이터베이스의 텍스트나 데이터를 추가하고 싶을 수도 있습니다. PHP를 사용하면 PHP 매직 탭을 열고 몇 초 만에 코드 작성을 시작할 수 있습니다. 템플릿이 필요하지 않습니다. 모든 것이 템플릿입니다. 프로그래밍 가능한 논리의 힘을 손쉽게 사용할 수 있으므로 추가 문서나 힘든 아키텍처가 필요하지 않습니다.

노드가 승리하는 곳: 콘텐츠 분리

콘텐츠 코드를 혼합하는 것은 궁극적으로 당신에게 해를 끼치는 버팀목입니다. 물론 HTML 코드를 혼합하는 것은 처음 두세 번은 재미있습니다. 그러나 곧 코드 기반이 엉망이 됩니다. 실제 프로그래머는 구조를 추가하여 장식 레이어를 논리 레이어와 분리합니다. 새로운 프로그래머의 경우 코드를 이해하고 유지 관리하기 쉽습니다. Node.js에서 실행되는 프레임워크는 모델, 뷰 및 컨트롤러가 분리되면 삶이 더 좋아진다는 것을 아는 프로그래머에 의해 구축되었습니다.

 PHP가 승리하는 곳: 심층적인 코드베이스

 웹은 PHP 코드로 가득 차 있습니다. 웹 사이트 구축에 가장 널리 사용되는 플랫폼(WordPress, Drupal 및 Joomla)은 모두 PHP로 작성되었습니다. 이러한 오픈 소스 플랫폼뿐만 아니라 대부분의 플러그인도 PHP로 작성되었습니다. 인터넷 어디에서나 PHP 코드가 있으며, 다운로드하여 수정하고 자신만의 용도로 사용할 수 있습니다.

노드가 승리하는 곳: 새로운 코드는 더욱 현대적인 기능을 의미합니다.

물론, 온라인에는 수천 개의 오픈 소스 PHP 파일이 있지만 일부는 누군가 다운로드하기를 바라고 기도하는 8년 된 WordPress 플러그인입니다. . 몇 년 동안 업데이트되지 않은 코드를 가지고 몇 시간, 며칠, 몇 주를 보내고 싶은 사람이 누가 있겠습니까? Node.js 플러그인은 새로운 플러그인일 뿐만 아니라 최신 아키텍처에 대한 완전한 지식을 바탕으로 구축되었습니다.

 PHP가 승리하는 곳: 단순성(어느 정도)

PHP에는 문자열과 숫자를 처리하기 위한 몇 가지 변수와 기본 함수만 있습니다. 포트 80에서 데이터베이스로 데이터를 이동하는 것 외에는 많은 작업을 수행하지 않습니다. 이것이 이루어져야 할 일입니다. 최신 데이터베이스는 무거운 부하를 줄여주는 놀라운 도구입니다. PHP는 복잡해서는 안 되는 작업에 적합한 정도의 복잡성을 가지고 있습니다.

Node가 승리하는 곳: 클로저와 복잡성

JavaScript에는 일부 사람들을 미치게 만드는 작은 특징이 많이 있을 수 있습니다. 그러나 대부분의 경우 재미있는 현대 구문을 갖춘 현대 언어이며 클로저와 같은 몇 가지 유용한 기능을 갖추고 있습니다. 쉽게 재구성하고 확장하여 jQuery와 같은 강력한 라이브러리를 만들 수 있습니다. 객체처럼 함수를 전달할 수 있습니다. 왜 자신을 제한합니까?

PHP가 승리하는 곳: 클라이언트 애플리케이션이 필요하지 않습니다

브라우저와 서버에서 동일한 언어를 사용하는 것에 대한 이 모든 이야기는 좋지만, 브라우저에서 어떤 언어도 사용할 필요가 없다면 어떻게 될까요? HTML 형식으로 데이터를 보내면 어떻게 될까요? 20개가 넘는 웹 서비스 호출을 통해 브라우저에 페이지를 생성하려고 시도하는 비활성화된 JavaScript로 인해 발생하는 골치 아픈 문제나 결함이 없는 브라우저 팝업. 순수 HTML은 다른 어떤 것보다 더 자주 작동하는 반면, PHP는 HTML 생성에 최적화되어 있습니다. 브라우저에서 JavaScript를 사용해야 하는 이유는 무엇입니까? 소형 휴대폰에서 작은 브라우저를 다시 로드하는 것을 방지하려면 서버에서 모든 작업을 구축하세요.

Node가 승리하는 곳: 씬 서비스 호출과 HTML-fat PHP 호출

AJAX에 열광하는 HTML5 웹 애플리케이션에는 움직이는 부분이 많지만 멋지고 매우 효과적입니다. JavaScript 코드가 브라우저 캐시에 있으면 새 데이터가 아래로 이동합니다. 여기에는 많은 HTML 마크업과 전체 페이지를 반복적으로 다운로드하는 작업이 포함되지 않습니다. 데이터만 변경되었습니다. 멋진 브라우저 측 웹 애플리케이션을 만드는 데 시간을 투자할 의향이 있다면, 그만한 가치가 있을 것입니다. Node.js는 웹 서비스를 통해서만 데이터를 전송하도록 최적화되어 있습니다. 애플리케이션이 복잡하고 데이터가 풍부한 경우 이는 효율적인 전달을 위한 좋은 기반이 될 것입니다.

PHP가 승리하는 곳: SQL

PHP와 MySQL 및 MariaDB와 같은 다양한 변형. MySQL이 제대로 작동하지 않는다면 Oracle과 Microsoft의 다른 훌륭한 SQL 데이터베이스가 있습니다. 코드를 거의 변경하지 않고도 쿼리로 변환할 수 있습니다. SQL의 광대한 세계에는 경계가 없습니다. SQL 데이터베이스와의 가장 안정적이고 성숙한 코드 인터페이스 중 일부는 모든 기능을 PHP 프로젝트에도 쉽게 통합할 수 있음을 의미합니다. 완벽하고 행복한 가족은 아닐 수도 있지만 규모가 큽니다.

 Node.js가 승리하는 곳: JSON

 SQL에 액세스해야 한다면 Node.js의 함수 라이브러리가 이를 수행할 수 있습니다. 하지만 Node.js에는 최신 NoSQL 데이터베이스와 상호작용하기 위한 공통 언어인 JSON도 있습니다. 그렇다고 PHP 스택을 위한 JSON 라이브러리를 얻을 수 없다는 말은 아니지만, JavaScript를 사용할 때 JSON의 단순성을 사용하여 처리할 수 있는 몇 가지 유동적인 부분이 있습니다. 이는 브라우저에서 웹 서버, 데이터베이스까지의 구문입니다. 콜론과 중괄호는 어디에서나 동일하게 작동하므로 시간이 절약됩니다.

PHP가 승리하는 곳: 코딩 속도

대부분의 개발자에게 PHP 웹 애플리케이션 작성은 더 빠르게 느껴집니다. 컴파일러도, 배포도 없고, JAR 파일이나 전처리기도 없습니다. — — 좋아하는 편집기와 다음 디렉토리만 있으면 됩니다. PHP 파일. 속도는 다양하지만 함께 프로젝트를 신속하게 마무리한다는 측면에서 PHP는 사용하기에 훌륭한 도구입니다.

 Node.js가 승리하는 곳: 원시 속도

JavaScript 코드를 작성할 때 중괄호와 괄호를 셀 때 조금 어렵지만 성공적으로 작성하고 나면 Node.js 코드 날 수 있습니다. 콜백 메커니즘은 스레드 실행 시간을 절약하는 데 도움이 되므로 매우 영리합니다. 코어는 당신을 위해 모든 것을 하도록 만들어졌습니다. 모두가 원하는 것이 아닌가요?


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.