1. Node.js: 자바스크립트의 실행 환경
- 한마디 정의: 원래 웹 브라우저 안에서만 동작하던 자바스크립트를, 브라우저 밖(예: 내 컴퓨터, 서버 등)에서도 실행할 수 있게 해주는 환경입니다.
- 핵심 역할:
- 자바스크립트 런타임(Runtime): 자바스크립트 코드를 컴퓨터가 이해하고 실행할 수 있도록 해줍니다. (내부적으로는 Google Chrome의 V8 엔진을 사용)
- 서버 구축: 자바스크립트로 웹 서버(백엔드)를 만들 수 있습니다. (Express.js 같은 프레임워크와 함께 사용)
- 프론트엔드 개발 도구의 기반: 가장 중요한 역할 중 하나로,
Vite,Webpack,Babel,ESLint등 수많은 프론트엔드 개발 도구들이 Node.js 환경 위에서 동작합니다. 즉, Node.js가 설치되어 있어야 이런 도구들을 사용할 수 있습니다.
비유: Node.js는 자바스크립트라는 언어를 위한 ‘운영체제(OS)’ 또는 ‘작업장’ 과 같습니다. 자바스크립트 코드가 실제로 실행되고, 다른 도구들이 설치되어 돌아갈 수 있는 기반 환경을 제공합니다.
2. npm (Node Package Manager): 자바스크립트의 패키지 관리자
- 한마디 정의: 전 세계의 자바스크립트 개발자들이 만든 유용한 코드 조각(라이브러리, 프레임워크 등)인 ‘패키지’를 쉽게 설치하고 관리하게 해주는 도구입니다.
- 핵심 역할:
- 패키지 설치: 필요한 라이브러리(예:
React,Vue,axios)를 명령어 한 줄로 설치할 수 있습니다.npm install react - 의존성 관리: 내 프로젝트가 어떤 패키지들을 필요로 하는지
package.json이라는 파일에 목록으로 기록하고 관리합니다. 다른 개발자가 이 프로젝트를 받아서npm install명령어만 실행하면,package.json에 기록된 모든 패키지들이 자동으로 설치됩니다. - 스크립트 실행:
package.json파일에 자주 사용하는 명령어(예: 개발 서버 실행, 빌드)를 등록해두고 간단하게 실행할 수 있습니다.
- 패키지 설치: 필요한 라이브러리(예:
React,Vue,axios)를 명령어 한 줄로 설치할 수 있습니다.npm install react - 의존성 관리: 내 프로젝트가 어떤 패키지들을 필요로 하는지
package.json이라는 파일에 목록으로 기록하고 관리합니다. 다른 개발자가 이 프로젝트를 받아서npm install명령어만 실행하면,package.json에 기록된 모든 패키지들이 자동으로 설치됩니다. - 스크립트 실행:
package.json파일에 자주 사용하는 명령어(예: 개발 서버 실행, 빌드)를 등록해두고 간단하게 실행할 수 있습니다.
- 패키지 설치: 필요한 라이브러리(예:
React,Vue,axios)를 명령어 한 줄로 설치할 수 있습니다.npm install react - 의존성 관리: 내 프로젝트가 어떤 패키지들을 필요로 하는지
package.json이라는 파일에 목록으로 기록하고 관리합니다. 다른 개발자가 이 프로젝트를 받아서npm install명령어만 실행하면,package.json에 기록된 모든 패키지들이 자동으로 설치됩니다. - 스크립트 실행:
package.json파일에 자주 사용하는 명령어(예: 개발 서버 실행, 빌드)를 등록해두고 간단하게 실행할 수 있습니다.
- 패키지 설치: 필요한 라이브러리(예:
- 설치:
npm은 Node.js를 설치하면 자동으로 함께 설치됩니다. 따로 설치할 필요가 없습니다.
Bash
|
1 |
<span class="line"><span style="color: #DCDCAA">npm</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">install</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">react</span></span> |
JSON
|
1 2 3 4 5 |
<span class="line"><span style="color: #6A9955">// package.json의 scripts 부분 </span></span> <span class="line"><span style="color: #CE9178">"scripts"</span><span style="color: #D4D4D4">: { </span></span> <span class="line"><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">"dev"</span><span style="color: #D4D4D4">: </span><span style="color: #CE9178">"vite"</span><span style="color: #D4D4D4">, </span><span style="color: #6A9955">// 'npm run dev'를 실행하면 'vite' 명령어가 실행됨 </span></span> <span class="line"><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">"build"</span><span style="color: #D4D4D4">: </span><span style="color: #CE9178">"vite build"</span><span style="color: #D4D4D4"> </span></span> <span class="line"><span style="color: #D4D4D4">}</span></span> |
비유: npm은 ‘앱 스토어’ 또는 ‘공구함 관리인’ 과 같습니다. 내가 필요한 앱(패키지)을 검색해서 설치해주고, 내가 어떤 앱들을 설치했는지 목록을 관리해주는 역할을 합니다.
3. Vite: 차세대 프론트엔드 개발 도구 (빌드 툴)
- 한마디 정의: 매우 빠른 속도를 자랑하는 최신 프론트엔드 개발 서버 및 빌드 도구입니다.
- 핵심 역할:
- 초고속 개발 서버 (Dev Server):
- 코드를 수정하고 저장하면, 거의 즉시 브라우저에 변경 사항이 반영됩니다.
- 기존의
Webpack같은 도구들은 코드를 수정할 때마다 관련된 모든 파일을 다시 묶는(Bundling) 과정 때문에 시간이 오래 걸렸습니다. - Vite는 브라우저가 기본적으로 지원하는 **ESM(ES Modules)**을 활용하여, 수정된 파일만 즉시 전송하기 때문에 매우 빠릅니다. (No-bundle 개발 서버)
- 프로덕션 빌드 (Production Build):
- 개발이 끝나고 실제 서비스에 배포할 때는, 여러 개의 자바스크립트/CSS 파일들을 하나 또는 몇 개의 파일로 합치고, 코드를 압축(Minify)하여 최적화하는 ‘빌드’ 과정이 필요합니다.
- Vite는 이 빌드 과정을 매우 효율적으로 처리해줍니다. (내부적으로는
Rollup이라는 검증된 번들러를 사용)
- 다양한 기능 내장:
- TypeScript, JSX(React),
.vue(Vue) 파일 등을 별도의 복잡한 설정 없이 바로 지원합니다. - Hot Module Replacement (HMR) 기능이 매우 빠르고 안정적이어서, 페이지 전체를 새로고침하지 않고 변경된 부분만 교체해줍니다.
- TypeScript, JSX(React),
- 초고속 개발 서버 (Dev Server):
비유: Vite는 ‘최첨단 스마트 작업대’ 와 같습니다. 개발할 때는 내가 필요한 부품(코드)을 즉시 가져다주고, 완성품을 포장(빌드)할 때는 가장 효율적이고 가볍게 포장해주는 역할을 합니다.
세 가지의 관계 정리
이 세 가지 도구는 프론트엔드 개발에서 다음과 같은 흐름으로 함께 작동합니다.
- 설치:
- 먼저 내 컴퓨터에 Node.js를 설치합니다. (그러면 npm도 자동으로 설치됩니다.)
- 프로젝트 시작:
- npm을 사용하여 Vite 프로젝트 생성 도구를 실행합니다.Bash
# npm을 이용해 Vite 프로젝트를 생성 npm create vite@latest my-vue-app -- --template vue - 이 명령어를 실행하면, Vite는 Vue.js 개발에 필요한 기본 파일 구조와 설정(
package.json포함)을 자동으로 만들어줍니다.
- npm을 사용하여 Vite 프로젝트 생성 도구를 실행합니다.Bash
- 개발 과정:
- 프로젝트 폴더로 이동하여
npm install을 실행합니다. npm은package.json을 읽고 프로젝트에 필요한 모든 의존성 패키지(예:vue,vite자체 등)를node_modules폴더에 설치합니다. 이 과정은 Node.js 환경 위에서 일어납니다. npm run dev명령어를 실행합니다. npm은 이 명령을 받아 Vite의 개발 서버를 실행시킵니다.- Vite 개발 서버는 코드를 수정할 때마다 번개 같은 속도로 변경 사항을 브라우저에 반영해주어 개발 경험을 극대화합니다.
- 프로젝트 폴더로 이동하여
- 배포:
- 개발이 완료되면
npm run build명령어를 실행합니다. - Vite는 프로젝트의 모든 코드를 실제 서비스 환경에 맞게 최적화된 파일들로 묶어서
dist폴더에 생성해줍니다. - 이
dist폴더 안의 파일들을 웹 서버에 올리면 사용자들이 서비스를 이용할 수 있게 됩니다.
- 개발이 완료되면