그럼 현재 nvm을 통해 설치한 Node.js version들이 나옵니다. 특정 버전의 Node.js를 설치하고 싶으면 다음과 같이 입력합니다.
nvm install 12.18.3
이렇게 하면 이미 설치된 버전을 삭제하지 않고, 우리가 원하는 Node.js version을 설치할 수 있습니다. 사용 중인 Node.js version을 다른 버전으로 변경하고 싶을 때에는 아래의 명령어만 입력하면 됩니다.
nvm use 버전 넘버 # 예를 들어, nvm use 12.18.3, nvm use 14.15.5
nvm으로 Node.js의 버전을 관리하면, Node.js를 설치하고 version을 바꾸는 일이 편리합니다.
정리하면 nvm은 다양한 Node.js version를 설치하고 관리할 수 있는 프로그램입니다.
npm(Node Package Manager) : 타인이 만든 모듈
우리보다 잘하는 사람들이 만들어 놓은 검증된 코드(모듈)을 가져다가 사용
npm은 Node.js 생태계의 패키지 매니저 중 하나입니다.
프로그램을 실행시키기 위해 필요한 실제 모듈은 package.json이 아닌 node_modules라는 폴더에 저장됩니다.
프로젝트 코드를 서로 주고 받을 때 모든 모듈을 전달하는 것이 아니라 package.json에 있는 정보를 전달합니다. 코드를 전달받은 사람은 package.json에 있는 정보에 따라 npm에서 직접 모듈을 다운받아 사용합니다.
새로운 package.json 파일을 생성하기 위해서는 npm init 명령어를 입력하면 됩니다.
npm init
위 과정을 모두 생략하면서 package.json을 생성하고 싶다면 npm init -y를 입력하면 됩니다.
하나의 프로그램은 다양한 모듈이 합쳐져서 만들어집니다. 프로그래밍 세계에서의 격언 중 "바퀴를 재발명하지 마라"는 말이 있습니다. 즉, 우리가 개발을 할 때 모든 것을 다 만들어서 쓰지는 않습니다. 우리가 다 만들지 않는 이유는 여러 가지가 있습니다.
가장 먼저 시간이 많이 걸리고요, 우리가 만든 것을 100% 신뢰하기가 힘듭니다.
그래서 우리는 우리보다 잘하는 사람들이 만들어놓은 검증된 코드(모듈)를 가져다가 사용합니다.
package.json : npm을 담아둔 곳
깃헙에서 해당레포지토리에 package.json에서 필요하다고 하는 모듈을 npm을 이용해서 다운한다!
script : CLI에서 사용 가능한 명령어들을 실행시키기!
devDependency ⇒ 오로지 개발을 위해서 필요한 의존성 모듈 (모듈이라고 생각하자) ⇒ npm사용시 —save-dev 옵션과 함께 설치하면 devDependencies에 자동추가
⇒ 실습에서 mocha나 eslint 같은것들을 말함.
dependencies ⇒ 이 프로젝트에서 반드시 필요한 모듈들 ⇒ npm install —save ~~~ 처럼 —save 사용하면 dependencies에 자동추가(—save는 생략가능)
scripts 항목 ⇒ npm run <스크립트이름> 으로 실행
npm run start ⇒ node.js 앱 실행
npm run test ⇒ 테스트실행
npm run lint ⇒ 코드 검사
codestates에선 npm run submit으로 과제제출!
< 짝수생성기 >
package.json 확인 및 패키지 설치
주목해야 할 부분은 dependencies와 devDependencies
짝수 생성기에 필요한 모듈이 무엇인지를 나타내는데, package.json을 잘 살펴보면 개발 도중 테스트를 위한 프로그램(chai, mocha)과, 과제 제출용 프로그램(codestates-assignment-manager,mocha-multi-reporters, @mochajs/json-file-reporter)이 포함되어 있다.
const { range } = require('range'); // range 모듈을 불러옵니다
function getListMultiplesOfTwo(upTo) {
return range(2,upTo+2,2)
}
module.exports = getListMultiplesOfTwo;
package.json에 가서 scripts 부분에 start 를 node index.js로 변경
npm run submit → 과제 제출,,
제출된 거 확인 할려면 → npx codestates-assignment-manager login 하면?
종합문제 중
A. fork는 오픈 소스 코드가 업로드 되어 있는 원격 저장소에서 나의 원격 저장소로 가지고 오는 과정을 의미합니다.
B. clone은 오픈 소스 코드를 원격 저장소에서 내 컴퓨터(Local Repository)로 가지고 오는 과정을 의미합니다.
C. 내 컴퓨터에서 변경한 사항을 원격 저장소에 반영하는 작업을 push라고 합니다. 변경 내용을 commit을 통해 저장한 후, push를 통해 반영합니다.
D. pull은 원격 저장소에서 변경 사항이 생겼을 때, 변경된 사항을 내 컴퓨터에 반영하는 작업입니다.
따라서 틀린 보기는 D입니다. contributors가 되었다고 해서 오픈 소스 코드를 즉시 반영하는 것이 아니라, 변경 사항을 제안하고, 반영을 요청할 수 있습니다. 이를 pull request라고 합니다.
📌 CLI명령어중에 ls -l 을 하면 drwxr-x-wx 라고 나와있는걸 해석하면 d : 폴더를 의미 rwx : 사용자가 읽기 쓰기 실행 가능 r-x : 그룹은 쓰기권한은 없고 읽기 실행 가능 -wx : 다른유저는 읽기권한은 없고 쓰기 실행 가능.
# linux 의 퍼미션 정보# 퍼미션 종류- 읽기 (r) : 파일의 읽기권한- 쓰기 (w) : 파일의 쓰기권한- 실행 (x) : 파일의 실행권한
# 퍼미션의 사용자지정- 소유자 : 소유자에 대한 퍼미션지정- 그룹 : 소유 그룹에 대한 퍼미션 지정 - 공개 : 모든 사용자들에 대한 퍼미션 지정
rwxr-xr-x기호 종류는 3개 인데 퍼미션 정보에는 9개가 보입니다.우선 3개씩 끊어서 다시 보겠습니다.
rwx r-x r-x
소유자 : rwx그룹 : r-x공개 : r-x
해석 : " 이 파일에 대해서는 소유자는 읽기(r),쓰기(w),실행(x) 을 허용하고파일의 소유그룹에 속하고 있는 사용자들은 읽기(r), 실행(x) 만 허용그 외의 나머지 모든 사용자들도 읽기(r), 실행(x) 만 허용된다 "
# 퍼미션 기호를 숫자로 변환 ## r = 4 , w = 2 , x = 1 #예) rwxr-xr-x 이 경우 4 2 1 4 0 1 4 0 1
# 변환한 숫자를 합산해주면예) rwxr-xr-x 이 경우 4 2 1(7) 4 0 1(5) 4 0 1(5)
퍼미션 644대신 rw--r--r 의 의미는각각의 영어 단어의 약호로 (Read 의 R , Write 의 W, Execute 의 E) 표시해주는 겁니다.