Node와 npm
1. Node.js
Node.js는 JavaScript를 이용하여 서버사이드 개발을 가능하게 하는 오픈소스 플랫폼입니다. 기존에 웹 브라우저에서만 실행되던 JavaScript의 영역을 확장시켜주었습니다. Node.js는 JavaScript 코드를 컴파일하고 실행할 수 있는 환경, 즉 런타임을 제공하기 때문에 개발자들은 웹 브라우저의 제약에서 벗어나 서버 측 프로그래밍, 명령줄 도구 개발 등 다양한 영역에서 JavaScript를 활용할 수 있게 되었습니다.
런타임(runtime)이란?
런타임 환경(runtime environment)은 컴퓨터가 현재 실행중인 OS와 별개로 프로세스나 프로그램을 위한 소프트웨어 서비스를 제공하는 가상 머신을 의미합니다. 여기서 가상 머신(Virtual Machine)이란 하나의 물리적 컴퓨터에서 여러 운영체제(OS)를 실행하기 위한 소프트웨어로 가상 머신을 사용하면 하나의 컴퓨터에서 여러 개의 운영체제를 실행할 수 있으며, 특히 서버 운영 등에 유용하게 사용됩니다.


1.1 Node.js 설치하기
- Node.js 공식 웹사이트에 접속합니다.
- 운영 체제에 맞는 버전을 다운로드하고 설치합니다.
- 명령어를 통해 Node.js가 설치 되었는지 확인합니다.
node -v # 노드 버전 확인
1.2 NPM (Node Package Manager)
npm은 Node Package Manager의 약자로, Node.js 환경에서 사용되는 패키지 관리 도구입니다. 개발자들은 이 npm을 사용하여 자바스크립트 패키지를 쉽게 설치, 업데이트, 삭제할 수 있습니다. npm은 세계 최대의 오픈 소스 라이브러리 생태계로 수 많은 패키지가 npm을 통해 배포되고 있습니다. 이러한 패키지를 사용하면 개발자들은 빠르고 효율적으로 자신의 소프트웨어를 개발할 수 있습니다.
여기서 말하는 패키지란?
Node.js 환경에서 실행가능한 소프트웨어를 의미합니다. 쉽게 말해 특정 기능을 수행하는 코드 묶음이라고 생각하면 됩니다. 예를 들어, 날짜를 쉽게 다룰 수 있게 해주는 코드나, 복잡한 수학 계산을 도와주는 코드 등이 패키지로 만들어져 있습니다. React 역시 npm을 통해 다운받아서 설치할 수 있는 라이브러리의 하나입니다.
Node.js와 NPM, iOS와 App Store, Android와 Google Play
Node.js와 npm을 iOS와 App Store에 빗대어 설명해보겠습니다. iOS운영체제의 API를 이용하면 아이폰에서 동작하는 수많은 애플리케이션을 만들 수 있고, 이를 App Store에 올려서 사용자가 다운로드 받을 수 있게 할 수 있습니다. 마찬가지로 개발자는 Node.js 의 API를 이용해 라이브러리를 만들 수 있고 이를 npm에 올려서 다른 개발자들이 자신의 프로젝트를 만드는데 이용할 수 있습니다. 즉 개발자의 App Store라고 보시면 됩니다. App Store가 iOS 생태계에 크게 기여했듯, npm도 Node.js의 영향력을 키우는데 많은 도움을 줬습니다.
1.2.1 Node.js 환경에서 react를 실행시켜야 하는 이유
React를 사용할 때 npm이 필요한 이유는 개발 과정을 훨씬 더 간편하고 효율적으로 만들어주기 때문입니다. npm을 통해 React와 필요한 도구들을 쉽게 설치할 수 있는데 마치 요리할 때 직접 모든 재료를 처음부터 만들지 않고, 일부는 완성된 제품(라이브러리)을 사용하는 것과 비슷합니다. React나 관련 도구들의 업데이트도 npm으로 간단히 처리할 수 있고, Create React App과 같은 프로젝트 시작 도구도 npm을 통해 쉽게 사용할 수 있습니다. 또한 npm은 React 개발에 필요한 환경 설정을 도와주며, 앱을 시작하거나 빌드하는 등의 작업을 간단한 명령어로 수행할 수 있게 해줍니다. 결국 npm은 React 개발 과정 전반을 더욱 수월하게 만들어주는 필수적인 도구라고 할 수 있습니다.
1.2.2 주요 npm 명령어
npm init # 새 프로젝트 시작
npm init -y # 기본 설정으로 새 프로젝트 빠르게 시작
npm install <패키지명> # 패키지 설치
npm install <패키지명> -d # 개발용 패키지로 설치
npm uninstall <패키지명> # 패키지 삭제
npm ls # 설치된 패키지 목록 확인