Node.js란?
Node.js는 서버 측 애플리케이션 개발을 위한 오픈 소스 자바스크립트 런타임 환경입니다.
구글 V8 JavaScript 엔진을 기반으로 하며, 빠르고 확장 가능한 네트워크 애플리케이션을 구축하기 위해 설계되었습니다.
Node.js는 이벤트 기반, 비동기 I/O 모델을 채택하여 높은 성능과 효율성을 제공합니다.
특징
- 비동기 및 이벤트 기반 아키텍처
- Node.js는 이벤트 루프를 통해 비동기 I/O 작업을 처리하므로, 작업이 완료될 때까지 기다리지 않고 다른 작업을 계속 진행할 수 있습니다.
- 이를 통해 대규모 트래픽을 처리하거나 고성능 애플리케이션을 개발하는 데 적합합니다.
- 단일 스레드 모델
- Node.js는 단일 스레드에서 실행되지만, 비동기 작업 처리와 이벤트 루프를 통해 많은 요청을 동시에 처리할 수 있습니다.
- 스레드 간 컨텍스트 스위칭이 없으므로 효율적입니다.
- 크로스 플랫폼
- Windows, macOS, Linux 등 다양한 플랫폼에서 실행 가능합니다.
- 플랫폼 간 애플리케이션 개발이 용이하며, Docker 등과의 통합도 용이합니다.
- npm (Node Package Manager)
- Node.js는 세계 최대 규모의 오픈 소스 라이브러리 레지스트리인 npm과 함께 제공됩니다.
- 개발자는 다양한 패키지와 모듈을 활용하여 개발 속도를 크게 향상할 수 있습니다.
- 빠른 실행 속도
- 구글 V8 엔진으로 빌드된 Node.js는 자바스크립트 코드를 매우 빠르게 실행합니다.
- 고속의 비동기 이벤트 처리가 이를 뒷받침합니다.
주요 사용 사례
- 웹 서버 및 API
- RESTful API, GraphQL 서버, 실시간 데이터 전송 애플리케이션 개발에 자주 사용됩니다.
- 실시간 애플리케이션
- 채팅 애플리케이션, 실시간 알림 시스템, 온라인 게임 서버 등.
- 마이크로서비스
- Node.js는 경량이고 빠른 시작 시간을 제공하므로 마이크로서비스 아키텍처에서 널리 사용됩니다.
- IoT 애플리케이션
- 낮은 메모리 소비와 빠른 성능 덕분에 IoT 장치에서의 애플리케이션 개발에도 적합합니다.
- 도구 및 자동화 스크립트
- 빌드 도구(예: Webpack), 테스트 프레임워크, 자동화 스크립트 개발에 활용됩니다.
장점
- 빠른 개발 및 배포 속도.
- 코드의 재사용과 공유가 용이.
- 큰 커뮤니티와 풍부한 모듈 제공.
- 풀스택 자바스크립트 개발 가능(프론트엔드와 백엔드 모두 자바스크립트를 사용).
단점
- CPU 집약적인 작업에 부적합(단일 스레드 제한).
- 콜백 지옥(Callback Hell) 문제 발생 가능(이를 해결하기 위해 Promise와 async/await 사용).
정리
Node.js는 그 경량성과 비동기 처리 능력을 통해 현대 웹 개발 및 애플리케이션 설계에서 중요한 기술로 자리 잡았습니다.
Generated by GPT-4o
Node.js 설치
위 사이트에서 Node.js를 다운로드 하고 설치한다.
나는 `v20.18.0` 버전이 필요해서 이전 버전을 설치했다.
나처럼 다른 버전이 필요하다면 Download 메뉴에 들어가서 필요한 버전을 찾아 받으면 된다.
약관 동의를 해주고 옵션 원하는 대로 설정~~
Install 까지 눌러주기~~
잘 설치됐는지 확인하기 위해 명령 프롬프트를 켜고 버전을 확인해보자
잘 설치 됐당
버전 확인이 안될 때!! PATH 확인하기
다른 환경에서 설치 했을 때 `node` 명령어를 인식하지 못했는데 PATH 가 설정이 안되어있었던 이슈였음
해결 방법
검색으로 '시스템 환경 변수 편집'을 찾아 열기
환경 변수 클릭
환경 변수에서 Path 클릭해서 새로 만들기
node.js 설치된 경로 입력하기
보통 `C:\Program Files\nodejs` 에 저장 된다.
경로 안먹히면 재부팅 후 시작해보기
자주 쓰는 npm 명령어
Node.js와 함께 설치되는 npm은 Node.js 패키지를 관리하는 도구입니다.
패키지 설치 및 관리
- `npm init`
- 프로젝트 초기화를 위한 package.json 파일 생성.
- 옵션: `npm init -y` (기본값으로 자동 생성)
- `npm install <패키지명>`
- 특정 패키지 설치.
- 예: npm install express
- `npm install <패키지명> --save`
- dependencies에 추가하여 설치(현재 기본값).
- 예: npm install lodash --save
- `npm install <패키지명> --save-dev`
- devDependencies에 추가하여 설치(개발 환경용).
- 예: npm install nodemon --save-dev
- `npm install`
- package.json의 dependencies에 명시된 패키지 설치.
유용한 npm 명령어
- `npm start`
- package.json의 scripts에 정의된 start 명령 실행.
- `npm run <스크립트명>`
- package.json의 scripts에 정의된 사용자 스크립트 실행.
- 예: npm run build
- `npm cache clean --force`
- npm 캐시를 강제로 삭제.