지난번 계산기 과제제출때도 애를 먹이던 npm!
아직까지 우분투 및 wsl을 이용한 운영체제도 헷갈리는데,
npm nvm 에다가 과제제출매니저를 다운받아서 과제제출하는거 하려니까
뜬구름 잡는 일이 많다. 오늘은 테스트 및 과제제출에 성공했지만,
다음을 위해서 전체적인 과정을 복습해보자.
우선 내가 이해한 흐름부터!
우리는 인터넷을 통해 HTML로 작성한 문서를 웹 상에서 서로 볼 수 있게 되었다.
웹 페이지를 이쁘게 꾸미고 싶었다.
사용자와 커뮤니케이션 할 수 있도록 하고 싶었다.
동적 프로그래밍으로 통해 실시간으로 웹 브라우저를 제어할 수 있다.
크롬 v8 엔진으로 빌드된 js런타임
브라우저 뿐 아니라 서버쪽도 제어하고 싶다.
우리에게 익숙한 js를 통해 제어하면 더 좋겠는데?...
구글에서 제공한 v8엔진을 이용해 서버쪽 어플리케이션을 제어해보자!
컴퓨터 프로그래밍 언어가 구동되는 환경을 의미
자바스크립트 런타임 : 자바스크립트가 구동되는 환경
자바스크립트 런타임의 종류
node.js 환경에서 외부 라이브러리를 다운로드 하는 방법 중 제일 대표적인 것!
Node Package Manager로 일종의 앱 스토어?라도 보면 된다.
필요한 모듈(코드들의 모음)을 다운 받을 수 있는 모듈 스토어
(리눅스 패키지 매니저:apt, macOS의 패키지 매니저:brew 가 있다.)
앞으로 node.js에서 필요한 모듈은 대부분 npm 에서 다운 받으면 된다.
이 프로그램을 실행시키기 위해 필요한 모듈들이 무엇인지, 실행시키는 방법, 프로그램 테스트하는 방법 등을 적어 놓은 설명서이다.
이 프로그램을 실행시키기 위해 필요한 모듈들이 저장되어 있는 파일
모든 프로젝트를 진행할때, package.js파일을 보고 필요하다고 생각되는 모듈만 따로 npm을 이용해서 다운 받으면 된다. 이 때, npm install이라는 명령어를 입력하면 package.json에서 필요하다고 하는 모든 모듈을 자동으로 다운로드 해준다. npm install이 완료되면 프로젝트 내 node_modules 디렉토리가 생긴다!
--save-dev옵션을 추가하면 install 실행시 자동으로 의존성 모듈(dependency)도 설치해준다.
의존성모듈은 이 프로젝트 개발 환경이다. 실제 프로젝트 동작에는 직접적으로 영향을 주지 않지만, 프로그램 설치 및 작동을 위해 필요하다.