ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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을 연결한다.

    1. git remote add pair <Repo URL for pairs fork>
    2. git remote -v

     

    드라이버가 코드를 수정한 뒤 자신의 repository에 push 한다

    1. git push origin master

    상대방은 드라이버의 push가 완료되면 드라이버의 repository에서 pull 한다.

    1. git pull pair <pair branch name>

     

     

    branch

    브랜치란 독립적으로 어떤 작업을 진행하기 위한 개념입니다. 필요에 의해 만들어지는 각각의 브랜치는 다른 브랜치의 영향을 받지 않기 때문에, 여러 작업을 동시에 진행할 수 있습니다.

    또한 이렇게 만들어진 브랜치는 다른 브랜치와 병합(Merge)함으로써, 작업한 내용을 다시 새로운 하나의 브랜치로 모을 수 있습니다.

     

    브랜치 생성

    git checkout -b <branch name>

     

     

     

    git work flow

    1. 개발하게 될 프로젝트의 master repository를 fork 하여 나의 repository에 복사해온다.
      master repository는 upstream 이라고도 한다.
    2. 복사해온 프로젝트를 clone을 통하여 local에 생성한다.
    3. master repository와 local을 서로 연결한다.
    4. master repository는 계속 업데이트가 될 것이고 local과 싱크를 항상 맞추어야 한다.
    5. pull을 이용하여 local의 dev 브랜치를 항상 최신화한다.
    6. dev를 기준으로 새로운 기능을 개발할 feature 브렌치를 생성한다.
    7. 새로운 기능을 개발하고 해당 브렌치를 나의 repository에push한다.
    8. 해당 브렌치를 프로젝트의 master 브렌치에 pull request 요청을 보낸다.
    9. master 브렌치 관리자는 요청된 pr을 확인하여 merge 한다.

     

     

Designed by Tistory.