댓글 검색 목록

[Nodejs] NodeJS의 모든 것

페이지 정보

작성자 운영자 작성일 20-09-18 17:06 조회 1,090 댓글 0

"NodeJS가 인기 있는 주된 이유 중 하나는 새로운 응용 프로그램을 만드는 데 JavaScript를 주 응용 프로그램으로 사용하기 때문입니다. 또한 JavaScript는 새로운 웹 응용 프로그램을 개발하는 개발자의 첫 번째 선택입니다. 새롭고 강력한 프레임 워크가 많은 새로운 개발자에게 도입되었습니다. 와우 팩터를 만들 수 있습니다. WOW 팩터가 무엇인지 알고 싶습니다. 그렇다면 이 기사는 당신을 위한 것입니다… "


https://dev.to/ozakaran/it-s-all-about-nodejs-37k4


NodeJS 


NodeJS의 역사 


Download nodejs 


NodeJS는 정확히 무엇인가요? 


what is nodejs? 


NodeJS = 런타임 환경 + JavaScript 라이브러리


  • Node.js는 Chrome의 V8 JavaScript 엔진을 기반으로 구축 된 오픈 소스 서버 측 런타임 환경입니다. JavaScript를 사용하여 고도로 확장 가능한 서버 측 애플리케이션을 구축하기 위한 이벤트 중심의 비 차단 (비동기) I / O 및 크로스 플랫폼 런타임 환경을 제공합니다.
  • Node.js는 오픈 소스이며 완전 무료이며 전 세계 수천 명의 개발자가 사용합니다.
  • NodeJS의 경우 JavaScript에 대한 기본적인 이해가 있어야 합니다. Node.js를 사용하여 웹 기반 애플리케이션을 개발할 때 HTML, CSS 및 기본 JavaSscript와 같은 다른 웹 기술에 대해 어느 정도 이해하고 있다면 좋을 것입니다.

"단순히 백엔드 개발에 JavaScript를 사용할 수 있음을 의미합니다."


왜 NodeJS인가? 


Alt Text 


NodeJS의 멋진 기능에 대해 자세히 살펴 보겠습니다.


1. NON-BLOCKING : 


비 차단은 실행 체인 외부에 대한 응답을 기다리는 동안 예를 들어 일부 데이터를 로드하거나, 데이터베이스에서 읽거나, 원격 서비스를 폴링하고, 스택에서 다음 작업을 계속 실행합니다. 이 개념은 혁신적이며 NodeJS를 매우 빠르고 효율적으로 만듭니다.


2. SINGLE THREADED 


NodeJS는 백그라운드에서 여러 스레드를 사용하여 비동기 코드를 실행하는 단일 스레드 언어입니다. 모든 함수 또는 콜백이 이벤트 루프에 위임되고 다른 스레드에 의해 실행될 수 있습니다 (또는 실행될 수 있음). 이는 NodeJS 런타임에 의해 처리됩니다.


3. ASYNCHRONOUS AND EVENT DRIVEN 


Node.js 라이브러리의 모든 API는 비동기, 즉 비 차단입니다. 본질적으로 Node.js 기반 서버는 API가 데이터를 반환 할 때까지 기다리지 않습니다. 서버는 호출 후 다음 API로 이동하며, Node.js의 이벤트 알림 메커니즘은 서버가 이전 API 호출에서 응답을 받을 수 있도록 도와줍니다.


동기식과 비동기식의 차이점은 무엇입니까?

동기식 : 무언가를 동기식으로 실행하고 완료 될 때까지 기다렸다가 다른 작업으로 이동합니다.

비동기식 : 일어날 일을 요청하고, 일이 발생하면 알림을 받습니다. 그 동안 다른 작업을 수행하십시오.


Async NOdejs 


서버는 한 번에 여러 요청에 응답 할 수 있습니다. API 요청을 중지하거나 차단하지 않으며 그에 따라 응답을 보낼 준비가 되면 모두에 응답합니다.


모든 것은 이벤트 기반입니다. 이러한 종류의 접근 방식은 이벤트가 발생 (상태 변경) 할 때 콜백 (대부분의 경우 기능)을 발생 시킵니다. 이벤트 기반 시스템은 책임을 실행하기 위해 항상 순환 루프에 있습니다.


4. Node Package Manager - NPM 


  • npm은 세계에서 가장 큰 소프트웨어 레지스트리입니다.
  • 레지스트리에는 700,000 개 이상의 코드 패키지가 포함되어 있습니다.
  • 오픈 소스 개발자는 npm을 사용하여 소프트웨어를 공유합니다.
  • 또한 많은 조직에서 npm을 사용하여 개인 개발을 관리합니다.
  • npm은 무료로 사용할 수 있습니다.

module counts 


등록이나 로그인 없이 모든 npm 공용 소프트웨어 패키지를 다운로드 할 수 있습니다.


C:\>npm install <package>


모든 npm 패키지는 package.json이라는 파일에 정의됩니다.


package.json 


5. No Buffering 


Node.js 애플리케이션은 데이터를 버퍼링 하지 않습니다. 이러한 애플리케이션은 단순히 데이터를 청크로 출력합니다. 따라서 사용자는 중단 없이 쉽게 비디오를 보거나 스트리밍할 수 있습니다.


streaming 


6. Easily Scalabale and Light weight : 


경량 기술 도구이므로 마이크로 서비스 아키텍처에 Node.js를 사용하는 것이 좋은 선택입니다. 따라서 애플리케이션 로직을 단일 대형 모 놀리 식 코어를 생성하는 대신 더 작은 모듈, 마이크로 서비스로 나누면 유연성을 높이고 추가 성장을 위한 토대를 마련 할 수 있습니다. 결과적으로 추가 기능을 기본 앱 기능과 통합하는 것보다 기존 서비스 위에 더 많은 마이크로 서비스를 추가하는 것이 훨씬 쉽습니다.


NodeJS는 어디에서 사용할 수 있나요? 


NodeJS가 실시한 최근 ​​설문 조사에 따르면 웹 애플리케이션이 85 %의 점유율로 가장 높은 사용 사례입니다. 이 JS 런타임 환경의 모든 강점과 약점을 고려하여 기술을 활용할 수 있는 실습 솔루션 목록을 작성했습니다.


web dev 


1. 단일 페이지 애플리케이션 


단일 페이지 앱 (SPA)은 전체 애플리케이션을 한 페이지에 할당하는 것을 포함합니다. 이 경우 Node.js 앱 개발은 백엔드의 비동기 데이터 흐름으로 인해 SPA를 만드는 데 적합합니다. 이벤트 루프는 원활한 데이터 업데이트를 제공하는 동시 클라이언트의 요청을 "잡습니다". 실제로 새 데이터를 얻기 위해 매번 페이지를 새로 고칠 필요가 없습니다.


2. 스트리밍 애플리케이션 


스트림은 Node.js 애플리케이션을 지원하는 기본 개념 중 하나입니다.


stream 


  • 매일 우리는 음악을 듣거나 비디오를 보기 위해 스트리밍 서비스를 사용합니다. 콘텐츠를 다운로드하지 않고도 인터넷에서 좋아하는 TV 시리즈를 가져올 수 있습니다.
  • 그렇다면 Nodejs는 데이터 스트리밍에 좋은 선택입니까? 물론이야! 스트림 모듈이 내장되어있어 대량의 데이터를 청크 단위로 순차적으로 전송할 수 있습니다. 덕분에 애플리케이션 메모리에 데이터를 임시로 저장하거나 캐시 할 필요가 전혀 없습니다. 또한 스트리밍 하는 동안 청크 작업을 할 수 있습니다. 비디오 인코딩은 더 이상 문제가 되지 않습니다.

3. Chat Application 


chat app 


  • Node.js는 복잡한 실시간 채팅을 구축하기 위한 모든 기본 기능을 제공합니다. 특히, Node는 이벤트 핸들러에 의해 "수신"되는 명명 된 이벤트를 주기적으로 내보내는 특정 종류의 객체 ( "이미 터")를 쉽게 생성 할 수 있는 강력한 이벤트 API를 가지고 있습니다.
  • 이 기능 덕분에 Node.js는 인스턴트 메시징 및 기타 실시간 애플리케이션에서 널리 사용되는 서버 측 이벤트 및 푸시 알림을 쉽게 구현할 수 있습니다.


4. REST APIs 


REST (Representational State Transfer) 기반 API (Application Programming Interface)는 현대적인 엔터프라이즈 소프트웨어 아키텍처를 구축하는 데있어 근본적인 위치를 차지합니다.


REST 서버는 리소스에 대한 액세스를 제공하고 REST 클라이언트는 HTTP 프로토콜을 사용하여 리소스에 액세스하고 수정합니다. 여기서 각 리소스는 URI / 글로벌 ID로 식별됩니다. REST는 다양한 표현을 사용하여 텍스트, JSON, XML과 같은 리소스를 나타내지 만 JSON이 가장 많이 사용됩니다.


Node.js는 가볍고 빠른 REST API를 빌드하기 위한 Express.js 프레임 워크를 제공합니다.


5. Real Time Applications 


실시간 협업 애플리케이션은 공동 탐색, 프로젝트 관리, 비디오 및 오디오 회의를 위한 다양한 소프트웨어 솔루션을 제공합니다.


socket.io 


Node.js는 많은 I / O 작업을 처리하는 데 매우 능숙합니다.이를 사용하여 실시간 애플리케이션을 구축 할 수 있습니다 (예 : 사람들이 실시간으로 서로 대화 할 수 있는 채팅방). 또는 동료가 같은 문서에서 동시에 작업하는 공동 작업 도구 일 수도 있습니다. 화상 회의 앱을 구축하는 것도 문제가 되지 않습니다. Node의 Events API와 WebSockets 덕분에 가능합니다.


실시간 채팅의 경우와 마찬가지로 Node의 비동기식 이벤트 기반 아키텍처는 협업 앱에 매우 적합합니다. 이러한 응용 프로그램에서 많은 이벤트와 I / O 요청이 동시에 발생합니다. 예를 들어 여러 사용자가 동일한 단락을 편집하고, 댓글을 달고, 메시지를 게시하고, 미디어를 첨부 할 수 있습니다. 하나의 콘텐츠에 대한 변경 사항은 각 단계가 이전 단계에 따라 달라지는 일련의 이벤트 이후에만 적용될 수 있습니다.


6. Application Monitoring 


웹 소켓이 완벽하게 맞는 또 다른 일반적인 사용 사례 : 웹 사이트 방문자를 추적하고 실시간으로 상호 작용을 시각화 할 수 있습니다. 사용자로부터 실시간 통계를 수집하거나 방문자가 사이트의 특정 지점에 도달 할 때 커뮤니케이션 채널을 열어 표적화 된 상호 작용을 도입하여 다음 단계로 이동할 수도 있습니다.


방문자의 상호 작용을 시각화 할 수 있다면 방문자가 실시간으로 무엇을 하는지 안다면 어떻게 비즈니스를 개선 할 수 있을지 상상해보십시오. Node.js의 실시간 양방향 소켓으로 이제 가능합니다.


NodeJS 스택 


stacks 


  • MERN Stack : MongoDB + ExpressJS + React+ NodeJS
  • MEAN Stack : MongoDB + ExpressJS + Angular + NodeJS
  • MEVN Stack : MongoDB + ExpressJS + VueJS+ NodeJS


누가 NodeJS를 사용하나요? 


Node.js는 전 세계 여러 회사에서 점점 더 많이 사용되는 기술이 되고 있습니다. Node.js가 웹 소켓을 통한 푸시 기술과 함께 동시성, 속도 및 집약적 인 데이터 교환을 강조함에 따라 회사는 소셜 미디어 앱, 비디오 및 텍스트 채팅 엔진, 실시간 추적 앱, 온라인과 같은 다양한 애플리케이션을 구축 할 수 있었습니다. 게임 및 협업 도구. NodeJ를 신뢰하는 글로벌 거대 기업은 다음과 같습니다.


companies 


NodeJS에 의존하는 10 개의 글로벌 기업 


  1. NASA
  2. Netflix
  3. PayPal
  4. Uber
  5. Linkedin
  6. Medium
  7. Trello
  8. eBay
  9. Groupon 
  10. Walmart

배울 자원 


Tutorials 

Videos 

Courses 

nodejs impact on career 


결론 : 


"이것은 간단합니다. Node.js는 분명한 시장 승자입니다. 이제 NodeJS가 웹 개발 세계를 지배하는 방법, 왜 그렇게 인기가 있고 어디에 구현 될 수 있는지 알게 되었습니다. Node.js가 적합한 지 결정할 수 있습니다. 그리고 NodeJS로 첫 번째 웹 앱을 시작하십시오. "


참조 : nodejs.org, 소프트웨어 하우스, netguru

"코드를 작성하려면 NODE를 배우십시오 ...!"



댓글목록 0

등록된 댓글이 없습니다.

웹학교 로고

온라인 코딩학교

코리아뉴스 2001 - , All right reserved.