-
2020/10/19 - TIL (Node.js와 관련도구, git workflow)Develop/Node.js 2020. 10. 19. 19:56
오늘 했던 일
- Node.js와 관련 도구
- git workflow
Node.js
Node.js는 개발자가 서버 측과 네트워크 응용 프로그램을 만들 수 있도록 지원하는 크로스 플랫폼 JavaScript 런타임 환경입니다.
런타임이란?
- 프로그램이 실행되고 있는 동안의 동작
- 프로그램이 실행되고 있는 때 존재하는 곳, 프로그래밍 언어가 구동되는 환경
- 프로그램이 실행되는 동안의 시간.
JavaScript라면 Web Browser에서 작동하는 JavaScript 측면이 있고, Node.js라는 환경에서 구동되는 측면이 존재한다.
여기에서 Browser와 Node.js를 런타임이라고 볼 수 있다.
NVM
NVM(Node Version Manager)은 Node.js의 버전을 관리하기 위한 도구이다. 개발 툴들이 다양해질수록 경우에 따라서 Node.js의 버전을 달리 사용해야 할 필요성이 생겼다.
NPM
NPM(Node Package Manager)은 자바스크립트 패키지 매니저이다. Node.js에서 사용할 수 있는 모듈을 패키지화하여 모아둔 저장소 역할과 패키지 설치 및 관리를 위한 CLI를 제공한다. 자신이 작성한 패키지를 공개할 수도 있고, 필요한 패키지를 검색하여 사용할 수도 있다.
패키지 설치
Node.js에서 사용할 수 있는 모듈인 패키지를 설치할 때에는 npm install 명령어 뒤에 설치할 패키지 이름을 지정한다.
package.json
package.json에는 이 프로그램을 실행시키기 위해 필요한 모듈들이 무엇인지, 프로그램을 실행시키는 방법, 프로그램을 테스트하는 방법 등이 명시되어 있습니다.
npm을 이용하여 해당 package.json에 명시된 모듈들을 다운로드합니다.
1.dependencies
이 프로젝트가 돌아가기 위해 반드시 필요한 모듈들이 무엇인지가 적혀있습니다.
"dependencies" : { "react" : "^16.8.6", }
2. devDependencies
이 프로젝트를 개발하는 환경에서 필요한 모듈들이 무엇인지가 적혀 있습니다. 예를 들면 코드 모양을 잡아주는 lint나 테스팅 모듈처럼, 실제 프로젝트 동작에 직접적으로 영향을 주지 않는 모듈들을 명시합니다.
"devDependencies": { "jest": "^2.3.0", "eslint" : "^2.0.0" }
3. scripts
npm으로 실행시킬 수 있는 명령어를 정의합니다. 명령어를 입력하면 어떤 동작을 해야 하는지가 적혀 있습니다
"scripts": { "start": "node app.js", "test": "node test.js", }
simple git workflow
git fork 후 나의 local에 clone 하여 프로젝트를 생성한 뒤 나의 git과 페어의 git을 연결한다.
- git remote add pair <Repo URL for pairs fork>
- git remote -v
드라이버가 코드를 수정한 뒤 자신의 repository에 push 한다
- git push origin master
상대방은 드라이버의 push가 완료되면 드라이버의 repository에서 pull 한다.
- git pull pair <pair branch name>
branch
브랜치란 독립적으로 어떤 작업을 진행하기 위한 개념입니다. 필요에 의해 만들어지는 각각의 브랜치는 다른 브랜치의 영향을 받지 않기 때문에, 여러 작업을 동시에 진행할 수 있습니다.
또한 이렇게 만들어진 브랜치는 다른 브랜치와 병합(Merge)함으로써, 작업한 내용을 다시 새로운 하나의 브랜치로 모을 수 있습니다.
브랜치 생성
git checkout -b <branch name>
git work flow
- 개발하게 될 프로젝트의 master repository를 fork 하여 나의 repository에 복사해온다.
master repository는 upstream 이라고도 한다. - 복사해온 프로젝트를 clone을 통하여 local에 생성한다.
- master repository와 local을 서로 연결한다.
- master repository는 계속 업데이트가 될 것이고 local과 싱크를 항상 맞추어야 한다.
- pull을 이용하여 local의 dev 브랜치를 항상 최신화한다.
- dev를 기준으로 새로운 기능을 개발할 feature 브렌치를 생성한다.
- 새로운 기능을 개발하고 해당 브렌치를 나의 repository에push한다.
- 해당 브렌치를 프로젝트의 master 브렌치에 pull request 요청을 보낸다.
- master 브렌치 관리자는 요청된 pr을 확인하여 merge 한다.
'Develop > Node.js' 카테고리의 다른 글
2020/12/10 - TIL (Express Cookie 생성) (0) 2020.12.11 2020/11/17 - TIL(Express Module) (0) 2020.11.17 2020/11/16 - TIL(Common JS - require/exports) (0) 2020.11.16 2020/11/13 - TIL (node.js / HTTP Module Post요청) (0) 2020.11.14 2020/10/21 - TIL(ESLint) (0) 2020.10.21