Node.js는 웹 서버 프레임워크 개발 및 실시간 애플리케이션 구현, 프론트엔드 빌드 등 다양한 분야에서 활용되는 자바스크립트 런타임 환경입니다. Node.js의 필요성과 등장 배경, Node.js 개발 환경이 지닌 특징에 대해 알아보겠습니다.
Node.js 란?
Node.js 웹 페이지에는 다음과 같은 문구로 소개하고 있습니다.
Node.js® is a free, open-source, cross-platform JavaScript runtime environment that lets developers create servers, web apps, command line tools and scripts.
(Node.js는 개발자가 서버와 웹앱, 명령줄 도구(Command Line Tools) 및 스크립트를 제작 가능한 무료 오픈소스, 크로스 플랫폼을 지원하는 자바스크립트 런타임 환경입니다.)
Node.js(노드 JS)는 자바스크립트를 실행할 수 있는 환경입니다. "자바스크립트 런타임"이 왜 중요한지, 그리고 왜 개발되었는지에 대한 몇 가지 배경에 대해 살펴보겠습니다.
브라우저 외부에서 동작
자바스크립트(JavaScript)는 1995년 웹 브라우저 내에서의 실행을 위해 고안되었습니다. 초기의 웹 페이지는 모두 정적(static)이었고, 한번 로드된 페이지는 내용이 변하지 않았습니다. 따라서, 동적으로 웹 브라우저 내에서 실행될 수 있는 스크립트 언어를 만들고자 하였고, 자바스크립트는 사용자와 웹 페이지가 상호작용할 수 있게 하였습니다.
자바스크립트는 클라이언트, 즉 웹 브라우저 내부에서만 실행되는 제한적인 역할을 하였습니다. 2009년, Node.js가 개발되며 자바스크립트는 브라우저 외부에서 실행할 수 있는 환경을 갖추게 되었습니다. 이는 자바스크립트가 서버 측 개발에도 활용될 수 있음을 의미합니다.
Node.js의 장점
Node.js를 백엔드 환경으로 채택하는 가장 큰 이유는 바로 실시간 애플리케이션 구현에서의 높은 성능 때문입니다.
Node.js는 단일 스레드에서 이벤트 기반, 비동기 I/O(async I/O)를 처리합니다. 대부분의 서버 프레임워크는 멀티스레드 모델을 사용하여 여러 요청을 병렬 처리하지만, Node.js는 모든 요청을 단일 스레드에서 처리하면서 비동기적으로 동작합니다. 덕분에 낮은 대기 시간과 빠른 입출력을 지원하며, 실시간 애플리케이션에서 유리한 특성을 보입니다.
프론트엔드 개발에서의 Node.js
Node.js는 주로 백엔드에서 사용되지만, 프론트엔드 개발에서도 중요한 역할을 합니다. npm(node package manager)을 통해 다양한 개발 툴과 라이브러리를 관리하고, Webpack 등의 빌드 도구를 지원하여 효율적인 개발 환경을 제공합니다. 또한, 서버사이드 렌더링(SSR)과 정적 사이트 생성(SSG)을 위한 런타임을 제공해 React, Next.js 등의 프레임워크에서 중요한 역할을 합니다.
Node.js를 사용하는 프레임워크
- Express.js
Node.js 웹 애플리케이션 프레임워크로, 서버 사이드 구현에 사용됩니다. - Next.js 및 Nuxt.js
Node.js를 사용하여 서버사이드 렌더링(SSR)을 지원하며, SEO(검색 최적화) 성능을 높입니다. - Nest.js
Node.js 및 TypeScript를 사용하는 백엔드 프레임워크입니다.
'Dev Environment' 카테고리의 다른 글
VSCode를 이용한 GitHub 연동하기 (0) | 2024.11.20 |
---|---|
백준허브로 GitHub와 백준 BOJ 연동하기 (자동 커밋) (0) | 2024.11.13 |
IntelliJ 자바 알고리즘 문제풀이 환경 구축하기 (AutoCP) (3) | 2024.11.10 |
PyCharm 알고리즘 문제풀이 환경 구축하기 (AutoCP) (3) | 2024.11.09 |