![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
Node.js
Node.js란 무엇입니까?
Node.js는 클라이언트 브라우저 외부에서 웹 애플리케이션을 실행하기 위한 크로스 플랫폼, 오픈 소스 런타임 환경 및 프레임워크입니다.
표준 웹 사이트 및 백엔드 API 서비스와 같은 이벤트 중심 서버에 주로 사용되는 서버 측 프로그래밍 언어이지만, 이를 만들 때 의도는 실시간 푸시 기반 아키텍처를 개발하는 것이었습니다. 모든 브라우저에는 자체 JS 엔진이 있으며 node.js도 그 중 하나입니다. Google Chrome의 V8 JavaScript 엔진은 Node.js를 구동하는 데 사용됩니다. 좀 복잡하지 않나요?
기본적으로 이는 전체 사이트가 단일 "스택"에서 실행될 수 있으므로 개발 및 유지 관리보다는 프로젝트의 비즈니스 목표 달성에 집중할 수 있음을 의미합니다.
Node.js는 오픈 소스이기 때문에 무료로 사용할 수 있으며 전 세계 개발자 커뮤니티를 통해 지속적으로 업데이트 및 개선되고 있습니다.
Node.js에 대해 이해해야 할 중요한 점은 Node.js가 전통적인 애플리케이션 소프트웨어처럼 프레임워크나 라이브러리가 아니라 런타임 환경이라는 것입니다.
런타임 환경(RTE라고도 함)은 개발자가 코드를 생성하는 데 사용할 수 있는 웹 API 컬렉션과 해당 코드를 구문 분석하는 JavaScript 엔진입니다. 이를 통해 가볍고 다재다능하며 배포가 간편해지며, 이 모든 것이 애플리케이션 프로젝트의 최적화 및 속도 향상에 도움이 됩니다.
기본 Node.js 아키텍처
Node.js의 아키텍처는 프로그래머들 사이에서 꽤 인기가 있습니다. 다중 스레드 처리 모델을 사용하는 대부분의 다른 런타임 환경과 달리 Node.js는 단일 스레드에서 모든 것을 수행합니다.
다중 스레드 처리 구성에서 각 서버에는 액세스할 수 있는 제한된 스레드 풀이 있습니다. 결과적으로 서버는 요청을 받을 때마다 풀에서 스레드를 선택하고 이를 해당 요청에 할당하여 처리를 처리합니다. 이 시나리오에서는 처리가 동기적이고 순차적이므로 한 번에 하나의 작업만 수행됩니다.
다중 스레드 처리를 사용하는 경우 모든 스레드가 사용될 때까지 각 요청에 대해 스레드가 선택됩니다. 이런 일이 발생하면 서버는 현재 너무 바빠서 다시 사용할 수 없는 스레드를 기다려야 합니다. 이로 인해 앱이 느리고 비효율적일 수 있으며, 이는 고객 경험부터 리드 전환까지 부정적인 결과를 초래할 수 있습니다. 프로그램이 많은 수의 동시 클라이언트 요청을 처리해야 하는 경우 특히 문제가 됩니다.
반면 Node.js는 단일 스레드에서 작동합니다. 둘 사이의 차이점은 단일 스레드 아키텍처가 이벤트 루프를 사용하여 비차단 방식으로 차단 입력/출력 활동을 수행할 것으로 예상할 수 있다는 것입니다. 이 문구 중 어떤 것이 당신에게 낯설더라도 걱정하지 마십시오.
원칙적으로 단일 스레드 디자인은 다중 스레드 구성보다 더 빠르고 효과적으로 작동하고 성장할 수 있습니다. 이것이 바로 Ryan Dahl이 Node.js를 만들 때 염두에 두었던 것이며 Node.js가 웹 앱 개발자들 사이에서 인기를 끄는 이유 중 하나입니다.
Node.js를 사용하여 개발된 애플리케이션의 예
다음은 기술의 실제 응용 프로그램과 상용 응용 프로그램을 이해하는 데 도움이 되는 좀 더 심층적인 사례 연구입니다.
넷플릭스
넷플릭스는 세계에서 가장 인기 있는 스트리밍 미디어이자 주문형 비디오 서비스입니다. 광범위한 A/B 테스트를 사용하여 1억 9,500만 명이 넘는 전 세계 구독자에게 풍부한 경험을 제공하는 데이터 기반 플랫폼입니다.
조건부 종속성 및 앱 확장성의 어려움은 푸시 주기마다 출시되는 고유 패키지의 수가 많기 때문에 더욱 가중됩니다. 그 결과 회사는 가볍고 빠른 Node.js를 선택했습니다. 가장 중요한 결과 중 하나는 로딩 시간이 70% 단축되었다는 것입니다.
링크드인
모바일 앱 백엔드를 Ruby on Rails에서 Node.js로 이동할 때 세계 최대 규모의 비즈니스 및 취업 중심 소셜 네트워킹 사이트인 LinkedIn도 Node.js를 신뢰했습니다.
당시에는 아직 상당히 미성숙한 런타임 환경이었음에도 불구하고 이는 현명한 결정임이 입증되었습니다. 새 앱은 이전 앱보다 2~10배 빨랐고, 무게도 꽤 가벼웠습니다. 게다가 개발기간도 짧았습니다.
NASA
예, 맞습니다. Node.js는 NASA에서도 사용됩니다.
이 기술은 위험한 우주 임무 중에 우주비행사를 안전하게 보호하여 생명을 구하기 때문에 다른 응용 분야보다 이 응용 분야에서 훨씬 더 중요합니다.
여러 위치에 저장된 비효율적인 데이터로 인해 치명적인 사고가 발생한 후 NASA는 액세스 시간을 최소화하기 위해 EVA 우주복과 관련된 데이터를 단일 클라우드 데이터베이스로 통합해야 하는 과제에 직면했습니다. 새로운 Node.js 기반 시스템은 프로세스 단계 수를 28단계에서 7단계로 줄였습니다.
월마트
월마트는 세계 최대의 소매업체이며 인터넷 쇼핑 사업에 진출하고 있습니다. 관련된 위험에도 불구하고 회사는 상대적으로 새롭고 매우 인기 있는 기술인 Node.js를 사용하는 데 편승했습니다.
클라이언트 측에서는 복잡한 기능을 포함하도록 모바일 앱을 재설계했습니다. Walmart는 여러 동시 쿼리를 관리할 수 있는 비동기 I/O 및 단일 스레드 이벤트 루프 아키텍처로 Node.js를 높이 평가했습니다.
신뢰할 수있는 실행 환경 (TEES) TEE (Trusted Execution Environments)는 주 프로세서 내의 안전한 영역으로, 외부 세계의 훼손이나 관찰에 대한 두려움없이 민감한 코드 및 데이터가 작동 할 수있는 보호 공간을 제공합니다. |
인간 열쇠 인간 키는 자신의 것, 알고있는 것, 또는 가지고있는 것에서 파생 된 암호화 키입니다. 디지털 자산을 확보하고 개인 정보를 보호하며 분산 웹에 액세스하는 데 사용됩니다. |
개방 금융 (Openfi) "Open Finance"가 짧은 Openfi는 전통적인 금융 (TRADFI)을 분산 금융 (DEFI)과 통합하는 재무 프레임 워크입니다. |
롤업 -A- 서비스 (RAAS) RAAS (Rollups-as-A-Service)를 통해 빌더는 자체 롤업을 신속하게 구축하고 시작할 수 있습니다. RAAS 제공 업체는 기본 기술 스택의 사용자 정의, No 코드 관리 및 핵심 인프라와의 1 클릭 사용자 지정 통합과 같은 엔드 투 엔드 솔루션을 제공합니다. |
데이터 가용성 샘플링 (DAS) 데이터 가용성 샘플링 (DAS)은 분산 된 응용 프로그램이 전체 데이터 세트를 각 참가자가 다운로드 할 필요없이 블록 데이터의 가용성을 확인할 수있는 방법입니다. |
다중 데이터 가용성 (Multida) 이 블록 체인 아키텍처는 둘 이상의 데이터 가용성 (DA) 서비스를 사용하여 데이터 중복을 보장합니다. |