>웹 프론트엔드 >JS 튜토리얼 >node.js는 어디에 적합합니까? node.js를 사용하면 어떤 이점이 있나요?

node.js는 어디에 적합합니까? node.js를 사용하면 어떤 이점이 있나요?

寻∝梦
寻∝梦원래의
2018-09-05 15:29:228233검색

이 글에서는 주로 node.js의 적합한 방향에 대해 이야기합니다. node.js는 무엇에 적합한가요? node.js의 이점은 무엇입니까? 구체적인 내용은 기사를 참조해 주세요.

먼저 node.js가 어떤 용도에 적합한지 이야기해 보겠습니다.

우선 nodeJs는 프런트엔드 풀스택의 초석이며, 프런트엔드 도구의 보조 도구와 스캐폴딩을 통해 개발된 애플리케이션 시나리오입니다. API 계층, 프록시 계층 및 전문 백엔드 개발의 중간에 있습니다.

가장 가치 있는 것은 API 중간 레이어입니다. 이제 큰 추세는 점점 더 많은 비즈니스가 프런트 엔드로 밀려나고, 백 엔드는 서비스 제공에만 집중하고 있다는 점입니다. 매우 일반적이고 일반적인 작업 시나리오는 프런트엔드와 백엔드가 공동 작업할 때 진행 상황이 다르기 때문에 프런트엔드가 백엔드 인터페이스를 기다려야 하는 경우가 있다는 것입니다.

이때 nodeJs의 중간 계층 애플리케이션은 이 문제를 매우 잘 해결할 수 있습니다. nodeJ를 통해 프런트 엔드는 데이터 형식에 동의하고, 프런트 엔드의 필요에 따라 자체 인터페이스를 사용자 정의하고, 데이터베이스에 CRUD 작업을 캡슐화하고, 자체 프록시 및 게이트웨이 서버를 생성하는 등의 작업을 수행할 수 있습니다. 과거에는 백엔드가 이러한 작업을 수행할 때까지만 기다릴 수 있었지만 이제는 nodeJs 프런트엔드를 통해 직접 수행할 수 있으므로 작업 프로세스를 보다 쉽게 ​​제어할 수 있습니다.

물론, 이는 프런트엔드 개발자에게 더 높은 요구 사항을 제시합니다. 적어도 데이터베이스, 아키텍처 설계, 시스템 구조 및 네트워크 애플리케이션의 단점은 천천히 채워져야 합니다.

잘 모르겠습니다. NodeJs는 원래 백엔드용으로 개발되었지만 단순성, 비동기성 및 대규모 동시성을 위해 Java 언어를 선택했습니다. 어떤 실수로 인해 프론트엔드에서 발견되어 이월되었습니다.

그래서 프론트 엔드에서 nodeJ를 수행하면 필연적으로 백엔드가 침식될 것입니다. 백엔드의 개발 구조와 기술 스택은 이미 매우 완벽하므로 백엔드는 일반적으로 변경을 꺼려하므로 실제로 nodeJ에 대한 저항이 여러 번 발생합니다. 백엔드의 보수주의에서 비롯됩니다. 물론 백엔드가 주로 서비스, 데이터 및 기본 애플리케이션이기 때문에 이는 의미가 있습니다. 이러한 것에는 안정성과 보안이 필요하고 몇 가지 역사적 문제가 있으므로 새로운 것을 좋아하지 않습니다.

이 단계에서 많은 nodeJ 애플리케이션은 프런트엔드와 백엔드 사이의 다리 역할을 합니다. 일반적으로 말해서, 역사적 수하물이 없는 새로운 회사, 스타트업 및 인큐베이션 프로젝트는 빠르고 효율적이기 때문에 nodeJ를 더 기꺼이 사용합니다.

기본적으로 모든 프런트 엔드 애플리케이션에는 이제 React, vue, angle 등과 같은 nodeJ의 그림자가 있습니다. 애플리케이션 시나리오와 취업 시장도 매우 크기 때문에 nodeJ를 배우는 것은 무엇을 할 수 있는지가 아니라 무엇을 하느냐에 관한 것입니다. 표시할 수 있는 공간이 하나 더 있습니다. (node.js에 대해 더 알고 싶으시면 PHP 중국어 웹사이트의 node.js 비디오 튜토리얼 칼럼을 방문하세요)

두 번째로 node.js 사용의 이점에 대해 이야기해 봅시다:

당신처럼 예, Node는 클라이언트에 응답하기 전에 트래픽이 많을 것으로 예상되는 상황에 적합하지만 필요한 서버 측 논리 및 처리가 반드시 많지는 않습니다. 뛰어난 성능의 대표적인 예라고 할 수 있는 Node의 장점 세 가지를 정리해보았습니다.

1.RESTful API

RESTful API를 제공하는 웹 서비스는 여러 매개변수를 전달받아 파싱하고, 응답을 결합하고, 그리고 사용자에게 A 응답(보통 텍스트가 적음)을 반환합니다. 이는 수만 개의 연결을 처리하도록 노드를 구축할 수 있기 때문에 이상적인 상황입니다. 여전히 많은 논리가 필요하지 않습니다. 기본적으로 일부 데이터베이스에서 일부 값을 찾아 응답으로 구성합니다. 응답은 소량의 텍스트이고 인바운드 요청은 소량의 텍스트이므로 트래픽이 높지 않으며 단일 시스템으로 가장 바쁜 회사의 API 요구 사항도 처리할 수 있습니다.

2.Twitter Queue

트윗을 받아 데이터베이스에 기록해야 하는 Twitter와 같은 회사를 상상해 보세요. 실제로 초당 거의 수천 개의 트윗이 도착하므로 데이터베이스가 피크 시간대에 필요한 쓰기 수를 적시에 처리하는 것은 불가능합니다. 노드는 이 문제를 해결하는 데 중요한 부분이 됩니다. 보시다시피 Node는 수만 개의 인바운드 트윗을 처리할 수 있습니다. 별도의 프로세스가 이를 데이터베이스에 쓸 수 있는 메모리 내 대기열 메커니즘(예: memcached)에 빠르고 쉽게 기록합니다. 여기서 Node의 역할은 트윗을 빠르게 수집하고 이 정보를 작성을 담당하는 다른 프로세스에 전달하는 것입니다. 대체 설계(일반 PHP 서버가 데이터베이스 자체에 대한 쓰기를 처리하려고 시도하는 경우)를 상상해 보십시오. 데이터베이스 호출이 채널을 차단하기 때문에 각 트윗이 데이터베이스에 기록되는 데 짧은 지연이 발생합니다. 이러한 방식으로 설계된 시스템은 데이터베이스 대기 시간으로 인해 초당 2000개의 인바운드 트윗만 처리할 수 있습니다. 초당 1백만 개의 트윗을 처리하려면 500개의 서버가 필요합니다. 대신 Node는 채널을 차단하지 않고 각 연결을 처리하므로 최대한 많은 트윗을 캡처할 수 있습니다. 50,000개의 트윗을 처리할 수 있는 노드 시스템에는 20개의 서버만 필요합니다.

3. 비디오 게임 통계

Call of Duty 온라인 게임을 플레이해 본 적이 있다면 게임 통계를 보면 즉시 깨닫게 될 것입니다. 그 정도 수준의 통계를 생성하려면 엄청난 양의 정보를 추적해야 한다는 것입니다. 이런 방식으로 동시에 온라인에서 플레이하는 수백만 명의 플레이어가 있고 게임에서 서로 다른 위치에 있다면 엄청난 양의 정보가 매우 빠르게 생성될 수 있습니다. 노드는 게임에서 생성된 데이터를 수집하고 데이터 병합을 최소화한 다음 데이터베이스에 기록될 수 있도록 데이터를 대기열에 넣기 때문에 이 시나리오에 적합한 솔루션입니다. 게임에서 플레이어가 발사하는 총알 수를 추적하기 위해 전체 서버를 사용하는 것은 어리석은 것처럼 보입니다. Apache와 같은 서버를 사용하는 경우 몇 가지 유용한 제한이 있을 수 있지만 대신 전용 서버를 사용하여 게임에 대한 모든 통계를 추적하는 경우; Node를 실행하는 서버에서와 마찬가지로 데이터는 현명한 움직임처럼 보입니다.

위는 node.js의 용도와 장점에 대한 소개입니다.(자세한 내용을 보려면 PHP 중국어 웹사이트 node.js 중국어 참조 매뉴얼 칼럼을 참조하세요.) 궁금한 점이 있으면 문의하세요. 아래

[에디터 추천]

node.js를 어떻게 사용하나요? 일반인의 관점에서 node.js의 애플리케이션 프로세스에 대해 이야기해 보겠습니다.

node.js는 무엇을 합니까? node.js의 10가지 응용 시나리오 소개

위 내용은 node.js는 어디에 적합합니까? node.js를 사용하면 어떤 이점이 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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