본문 바로가기

STUDY/# Node.js

Back-End API 서버 구현을 위한 Node.JS 선택의 이점과 단점 # 1

반응형

by commin

 

Back-End API 서버 구현을 위한 Node.JS 선택의 이점과 단점

요 약

해당 문서에서는 Node.js의 만들어진 배경에 대해서 먼저 조사하고, Node.js를 알기 위한 기본 구조 및 주요 개념들에 대해 서술합니다. 또한 장점과 단점을 정리하고 Spring Framework와 비교를 통해 앞으로 Back-End 프레임워크 선택 시 도움이 되고자 합니다.

목차

#1 --------------------------- 1  Introduction
#2 --------------------------- 2  Node.js Main Concept
#2 --------------------------- 2.1   Single Thread로 동작하는데 어떻게 동시성을 가질 수 있을까? (이벤트 기반 비동기 방식)
#2 --------------------------- 2.2   Libuv.
#2 --------------------------- 2.3   Event Loop.
#2 --------------------------- 2.4   이벤트루프 실행단계
#2 --------------------------- 2.5   Nonblocking I/O
#3 --------------------------- 3  Advantages and Disadvantages Node.js
#3 --------------------------- 3.1   Node.js 의 장점
#3 --------------------------- 3.2   Node.js 의 단점
#3 --------------------------- 4  Spring과  Node.js 비교
#3 --------------------------- 4.1   Spring vs Node.js
#3 --------------------------- 5  Conclusion.

1      Introduction

1.1       Node.JS ?

확장성 있는 네트워크 애플리케이션 개발에 사용되는 소프트웨어 플랫폼이며, 자바스크립트로 작성하고 논 블로킹(Non-blocking) I/O와 단일 스레드 이벤트 루프를 통한 높은 처리 성능을 가지는 프레임 워크 [위키백과]

Node.JS는 고속 자바스크립트 엔진인 V8 위에서 동작하는 이벤트 처리 I/O 프레임워크입니다. 대부분의 자바스크립트가 웹 브라우저에서 실행되는 것과는 다르게 Node.js는 서버 측에서 실행됩니다.

MIT 라이선스로 누구나 쓸 수 있는 오픈 소스로 공개되어 있습니다.

1.1       Node.JS 역사 및 개발 목적

Ryan Dahl이라는 개발자가 플리커의 파일 업로드 진행 표시줄을 보았을 때, 파일이 얼마나 업로드 되었는지 알기 위해 서버에 쿼리를 전송해야 한다는 점을 보고 쉬운 방법을 찾다가 고안한 것이 Node.js 입니다.

최근에는 새로운 벤더(Android, Apple, 브라우저 등)들의 원할 한 웹 사이트 이용을 위해서 전체적인 경량화가 필요하였고, 웹사이트 경량화를 위해서는 데이터 통신의 비용을 줄여야 할 필요성이 있었습니다.

서버 사이드에서 새로 등장한 기술인 Node.JS는 다른 서버사이드 기술과는 다르게 자바스크립트로 구현되었고, 이때문에 기존 클라이언트와 통신할 때 변환 작업이 필요 없을 뿐 아니라 그 자체가 스크립트 언어라서, 매우 경량화된 기술이라고 할 수 있습니다.

, 자바스크립트로 구현된 클라이언트와 함께 사용하면 하나의 언어로 서버 사이드와 클라이언트 사이드 개발이 가능하므로 개발의 전문성 및 효율이 올라갑니다.

 

 

 

-    [Node.js vs Spring boot :: 아는개발자] (https://syundev.tistory.com/229)

-    [Java Spring 과 Node.js 비교](https://selfish-developer.com/entry/Nodejs-vs-Spring-Boot)

-    [블로킹 vs 논블로킹](https://ju3un.github.io/network-basic-1/)

-    [NodeJS는 Single-Thread가 아니다](https://medium.com/@rpf5573/nodejs-nodejs%EB%8A%94-single-thread%EA%B0%80-%EC%95%84%EB%8B%88%EB%8B%A4-f02b0278c390)

-    [Blocking vs Nonblocking](https://medium.com/@rpf5573/nodejs-blocking-vs-non-blocking-8f92f2b522a7)

-    [Node.js는 싱글 스레드?](https://velog.io/@daeseongkim/Node.js-Node.js%EB%8A%94-%EC%8B%B1%EA%B8%80-%EC%8A%A4%EB%A0%88%EB%93%9C)

참고문헌

-    위키백과

-      Node.js를 활용한 웹 서버 성능 분석 (광운대학교 정보콘텐츠대학원 이형근)

-      모바일 웹 어플리케이션을 구현하기 위한 Node.js 파일에 대한 조사 (동의대학교 장종욱)

 

반응형