본문 바로가기
온라인 멘토와 함께하는 공부/JS

웹 서버 개발에도 쓰이는 Node.js

by 열공노년 2024. 5. 14.
반응형

Node.js

Node.js는 오픈 소스, 크로스 플랫폼 JavaScript 런타임 환경으로, 주로 서버 사이드 애플리케이션 개발에 사용됩니다. 웹 브라우저 밖에서 JavaScript를 실행할 수 있게 해 주며, 특히 비동기 이벤트 구동 방식의 애플리케이션을 구축하는 데 적합합니다. 여기서 Node.js의 주요 역할과 특징을 몇 가지 살펴보겠습니다.

Node.js 설치

  1. 비동기 및 이벤트 구동: Node.js는 비동기적인 이벤트 구동 아키텍처를 사용하여, I/O 작업(파일 시스템 접근, 네트워크 통신 등)을 효율적으로 처리합니다. 이는 서버가 동시에 많은 연결을 받아들이고, 각 연결에서 입출력 작업이 완료되기를 기다리지 않고 즉시 다음 작업을 수행할 수 있게 해 줍니다.
  2. 단일 스레드 모델: Node.js는 기본적으로 단일 스레드 모델을 사용합니다. 즉, 하나의 메인 스레드가 모든 클라이언트 요청을 처리합니다. 이는 자원을 효율적으로 사용할 수 있게 하고, 콘텍스트 전환의 오버헤드를 줄여 줍니다. 그러나 CPU 집중적 작업에는 적합하지 않을 수 있습니다.
  3. 논블로킹 I/O: Node.js에서는 I/O 작업이 논블로킹(non-blocking)으로 실행됩니다. 즉, 파일 읽기/쓰기, 네트워크 요청 등의 I/O 작업이 백그라운드에서 진행되며, 해당 작업이 완료되면 콜백 함수가 호출되어 결과를 처리합니다.
  4. NPM(Node Package Manager): Node.js는 강력한 패키지 관리자인 NPM을 사용하여, 다양한 라이브러리와 도구를 손쉽게 설치하고 관리할 수 있습니다. 이는 개발자가 필요한 기능을 빠르게 추가할 수 있도록 지원하며, 전 세계 많은 개발자들이 만든 모듈을 사용할 수 있습니다.
  5. 확장성: Node.js 애플리케이션은 쉽게 확장할 수 있습니다. 작은 서비스로 시작하여 필요에 따라 더 많은 인스턴스로 확장하여 부하를 분산시킬 수 있습니다.
  6. 크로스 플랫폼: Windows, Linux, Unix, Mac OS X 등 다양한 운영 체제에서 실행될 수 있습니다.

정리

이러한 특성으로 인해 Node.js는 데이터 집약적이고 실시간 작업이 요구되는 대규모 웹 애플리케이션 개발에 특히 유용하며, 웹 서버, API 서버, 실시간 통신 서버 등 다양한 서버 사이드 애플리케이션을 구축하는 데 널리 사용됩니다.

반응형