1. NVM
Node Version Manager라고 한다.
NVM을 통해 간단한 명령어로 node를 설치하고, 다양한 node version을 손쉽게 옮겨 다닐 수 있다.
NVM 역시 하나의 프로그램이므로 설치해야 한다.
1 - 1) NVM version 확인
$ nvm ls
1 - 2) NVM으로 원하는 버전의 node.js 다운로드하기
$ nvm install 10.13.0
1 - 3) 다른 노드 버전 사용하기
$ nvm use (사용하고 싶은 node version : use 명령어 전에 해당 node version이 설치되어있어야 합니다.)
ex) nvm use 12.13.0
2. package.json
2 - 1) NPM
package.json에 들어가기에 앞서 NPM이 무엇인지 간단하게 알아보자.
NPM은 Node Package Manager로 필요한 모듈을 다운로드할 수 있는, 모듈들이 모여있는 모듈 스토어다.
모듈은 직접 만들 수도 있지만 NPM에 상당한 고수들이 이미 잘 만들어놓은 모듈들이 있다.
그리고 그러한 모듈은 실력이 부족한 개발자가 직접 만든 모듈보다도 더 성능이 우수하고 버그가 적게 일어날 가능성이 높다.
내가 잘 만들어 놓은 모듈이 매주 몇 백만의 다운로드를 기록한다면 개발자로서 얼마나 뿌듯할까..
어쨌거나 그러한 모듈들이 모여 하나의 프로젝트가 만들어지게 된다.
또한 NPM은 node 모듈을 사용하는 프로젝트에서 npm이라는 키워드는 하나의 명령어처럼 사용되기도 한다.
npm start처럼, 프로젝트를 실행시킬 때 npm 키워드를 사용하기도 한다.
2 - 2) package.json
package.json에는 이 프로그램을 실행시키기 위해 필요한 모듈이 무엇인지, 프로그램을 실행시키는 방법, 테스트하는 방법 등이 명시되어 있다.
그러나 이 프로그램을 실행시키기 위해 필요한 실제 모듈은 node_modules이라는 폴더에 다 들어가 있다.
package.json에는 어떤 모듈인지만 적혀 있다. 즉, 전자제품을 보러 갔을 때 제품 카탈로그가 바로 package.json이다.
카탈로그만 보면 어떤 제품이 있는지 파악할 수 있는 것처럼 package.json만 보면 어떤 모듈이 들어가 있는지를 알 수 있다.
즉, A가 B가 만든 모듈을 사용하려고 하는데 B가 만든 모듈에 있는 파일을 전부다 전달받는 게 아니라 B는 단지 package.json에
해당 모듈에 필요한 모듈만 적어주고 A는 npm install 명령어를 통해 package.json에서 필요하다고 하는 모듈을 다운로드하면 되는 것이다.
필요한 모듈까지 모두 넘겨주는 것은 전달해야 하는 파일도 너무 많거니와 필요가 없는 일이다.
사용하는 사람이 직접 다운로드하여서 쓰라고 하면 되기 때문이다.
3. Simple Git work flow
페어와 공통 과제를 fork -> clone 하여 각자 GitHub에 있는 원격 저장소와 로컬 저장소를 생성했다.
먼저 git remote add 명령어를 통해 서로의 로컬 저장소를 상대방의 원격 저장소와 연결했다.
그 후 각자 한 번씩 git add, commit 명령어를 통해 새로운 버전을 만들고 상대방은 해당 버전을 pull 명령어를 통해 최신 버전을
각자의 로컬 저장소로 당겨왔다.
여기서 주의할 점은 나의 원격 저장소의 별명이 아니라 remote add를 했을 때 설정했던 상대방의
원격 저장소의 별명을 적용해야 한다. 왜냐하면 상대방의 원격에서 pull을 해야 하기 때문이다.
또한 서로 똑같은 파일의 똑같은 코드 라인을 수정하여 각자의 원격에 push 하고 그 후 pull 명령을 통하여 일부러 conflict가 나는
상황도 만들어보았다. 그 후에 VS code에서 수동으로 conflict를 해결해 주었다.
마지막으로 git branch를 만들고 해당 브랜치로 checkout을 통해 이동을 시도했으며 내가 만든 브랜치를 페어가 pull 하는 것까지
해보았다. 마찬가지로 주의할 점은 상대방의 master branch가 아니라 다른 branch를 pull 해야 해당 브랜치가 받아와 진다.
끝으로 혼자 공부하면서는 SourceTree를 많이 사용했는데 페어를 하면서는 CLI로 git을 활용하면서 깃과 조금 더 친해진 거 같다!
앞으로도 되도록이면 CLI를 사용해야겠다.
'CodeStates' 카테고리의 다른 글
IM 4일차 (Pesudoclassical) (0) | 2021.01.15 |
---|---|
IM 4일차 (자바스크립트에서 객체의 작동 원리) (0) | 2021.01.14 |
IM 4일차 (OOP와 4가지 특징) (0) | 2021.01.14 |
IM 3일차 (ESLint와 rules) (0) | 2021.01.13 |
IM 2일차 (ES6 문법) (0) | 2021.01.12 |