[ReactJS] Node.js란?

IRISH·2024년 5월 7일

ReactJS

목록 보기
4/5
post-thumbnail

Node.js란?

  • Node.js : Chrome V8 JavaScript 엔진으로 빌드된 JavaScript 런타임
  • 주로 서버 사이드 애플리케이션을 개발할 때 사용되며, 비동기 이벤트 구동 방식을 통해 높은 성능을 제공
  • Node.js는 JavaScript를 사용하여 서버 사이드 스크립트를 작성할 수 있게 해주어, 웹 페이지 콘텐츠를 생성하기 전에 서버에서 스크립트를 실행할 수 있음

런타임이란?

  • 런타임 : 특정 언어로 만든 프로그램들을 실행할 수 있는 환경

Node.js는 프레임워크일까? 라이브러리일까?

  • Node.js는 프레임워크나 라이브러리가 아님
    • 대신, JavaScript 코드를 서버 사이드에서 실행할 수 있게 하는 런타임 환경임
  • 하지만 Node.js 생태계에는 다양한 프레임워크와 라이브러리가 존재하여, 웹 애플리케이션, API 서버, 실시간 애플리케이션 등을 더욱 쉽게 개발할 수 있게 도와줌
    • 예를 들어, Express.js는 Node.js를 위한 가장 인기 있는 웹 애플리케이션 프레임워크 중 하나에 해당함

Node.js의 주요 특징

  • 비동기 및 이벤트 구동
    • Node.js의 모든 API는 비동기적으로 작동하며, 이벤트 기반 모델을 사용함
    • 이는 Node.js가 높은 처리량과 확장성을 가진 애플리케이션 개발에 적합하게 만듦
  • 단일 스레드
    • Node.js는 단일 스레드 모델을 사용하지만, 백그라운드에서 다수의 작업을 처리할 수 있는 능력으로 인해 성능 저하 없이 여러 요청을 처리할 수 있음
  • npm
    • Node.js는 npm(Node Package Manager)을 통해 다양한 오픈 소스 라이브러리 및 툴을 손쉽게 설치하고 관리할 수 있습음
    • npm은 세계에서 가장 큰 소프트웨어 레지스트리

Node.js의 장점

  • SNS나 채팅서비스에 많이 사용
  • Node.js 서버로 구현하면 요청이 많거나 오래걸리는 요청이 있어도 멈추거나 요청 대기 시간이 발생하지 않음
    • 이런 Non-blocking 덕분에 채팅이나 SNS에 자주 사용됨
  • Node.js는 코드가 매우 짧고 쉬워서 빠른 개발 가능(Pivoting이 잘됨)
  • 안정성과 보안성 측면의 문제도 충분히 검증됨

Node.js의 단점

  • Node.js는 모두 스레드 하나에서 처리됨
    • 코드가 CPU 연산을 많이 요구하면 스레드 하나가 감당하기 어려움
  • 따라서 이미지나 비디오 처리, 대규모 데이터 처리 같이 CPU를 많이 사용하는 작업을 위한 서버로는 권장되지 않음

참고

profile
#Software Engineer #IRISH

0개의 댓글