[Nodejs] Nodejs 란?

송현·2021년 12월 5일
0

Node.js

목록 보기
1/4
post-thumbnail

Node.js란?

확장성 있는 네트워크 애플리케이션 개발에 사용되는 소프트웨어 플랫폼이다. 작성 언어로 javascript를 활용하여 non-blockingI/O와 단일 스레드 이벤트 루프를 통한 높은 처리 성능을 가지고 있다. 내장 http 서버 라이브러리를 포함하고 있어 웹 서버에서 아파치등 별도의 소프트웨어 없이 동작하는 것이 가능하며 이를 통해 웹 서버의 동작에 있어 더 많은 통제를 가능하게 한다.

Node.js 장점

  1. javascript를 동일하게 사용해서 서버단 로직을 처리할 수 있다는점, 새로운 언어를 습득하지 않아도 javascript를 활용해서 서버 기술을 빨리 개발 / 응용할 수 있다.

  2. 개발이 빠르고 쉽다. 서버 설치부터 화면 띄우는 것까지 금방 처리할 수 있다.

  • 스프링과 비교했을 경우 환경 설정, 개발환경 세팅, 컨트롤러, view를 제어해줘야만 화면을 띄울 수 있는 반면에 Node.js는 간단하게 로직 작성 후 로컬에서 서버만 켜봐도 얼마나 가볍게 돌아가는지 알 수 있다.
  1. NPM이다. node package manager의 약자이며 npm을 통한 다양한 모듈을 제공한다.
    3-1) npm을 이용해 자신이 필요한 라이브러리와 패키지를 검색해서 설치하고 사용할 수 있기 때문에 개발 속도와 효율성이 크게 향상된다.
    3-2) javascript 프로그래밍 언어를 위한 패키지 관리자이다. Node.js의 가장 강력한 장점이자 npm을 통해 이미 만들어진 공유 라이브러리를 다양하게 설치해서 개발기간을 줄일 수 있다.

Node.js 단점

  1. 이벤트 기반 비동기 방식이라 로직이 복잡한 경우 콜백 함수의 늪에 빠질 수 있다.
    1-1). 하나의 비동기 요청이 완료된 뒤, 완료로 인해 얻어진 값을 사용해 다음 비동기 요청이 이루어진다.
    1-2). 여러 번의 비동기 호출이 이루어지는데 각 처리는 비동기 방식으로 이루어지나, 각 비동기 호출간의 실행순서는 동기적이었으면 한다.

  2. 코드를 순차적으로 실행하는 것이 아니라 비동기 방식으로 이벤트를 보내고, 응답이 오면 처리하는 방식이기 때문에 java 개발을 했던 방식으로 설계하고 프로그래밍하면 문제가 발생한다.

  3. 단일 쓰레드(single-thread)이기 때문에 하나의 작업 자체가 많이 걸리는 웹 서비스에 어울리지 않는다.
    ex) 게시판형태와 같이 가벼운 I/O가 많은 웹 서비스에 어울린다.

  4. 코드가 수행되어야 코드가 에러가 있는지 알 수 있으며, 에러가 날 경우 프로세스가 내려가기 때문에 테스트가 중요하며 반드시 모든 케이스에 대해 소스코드를 검증해야 한다.

Node.js 사용하는 회사

간단한 로직, 대용량, 빠른 응답시간 요구, 빠른 개발요구, 채팅서비스, 네트워크 스트리밍 서비스에 잘어울리며 대표적으로는 Facebook, Netflix, paypal, Linked in이 있다.

profile
송린이

0개의 댓글