TIL_210405

멜로디·2021년 4월 6일
0

Today I Learned

목록 보기
15/30
post-thumbnail

오늘 배운 것

  • nvm, node.js
  • git workflow for Pair Programming

NVM, Node.js

homebrew - macOS Package Manager

루비와 git으로 개발된 macOS용 패키지 매니저를 말한다. 개발이나 기타 환경에서 macOS에서 필요하지만 애플에서 번들로 제공하지 않는 소프트웨어를 제공한다.
애플에서 호스팅하는 MacPorts와 다르게 오픈소스 개발자들이 github을 기반으로 하여 개발되고 있으며, 설치 방법도 URL이 포함된 명령어를 copy & paste하면 끝나기 때문에 편리하다 (xcode가 설치되지 않은 환경이라면 자동으로 xcode를 설치한 뒤 homebrew 설치를 이어나간다)

JS runtime

런타임은 프로그래밍 언어가 구동되는 환경을 뜻한다.
웹 브라우저도 런타임의 한 종류이다.

Node.js를 설치하고 사용하는 이유

이전에는 자바스크립트 런타임이 웹브라우저밖에 없었기 때문에 웹브라우저를 제외한 환경에서는 자바스크립트를 활용할 수 있는 사용처가 극히 제한되어왔다. 하지만 Node.js라는 런타임의 등장으로 자바스크립트가 브라우저가 아닌 곳에서도 실행될 수 있게 되었다. 따라서 다른 프로그램을 만들거나 서버에도 사용할 수 있게 되어 활용도가 극대화되었다.

git workflow for Pair Programming

페어 프로그래밍을 위해 git을 페어링 해야 하는데, 그 과정은 아래와 같다.

  1. Project의 main repo에서 개인 repo로 fork한다.
    github

  2. 개인 repo에서 로컬로 clone한다. git clone [Repo URL]

  3. github의 각 개인 repo와 로컬을 페어링한다
    git remote add pair [Repo URL for pairs fork] > git remote -v

  4. 작성한 코드를 커밋한다
    git add [changed file name] > git commit -m "[changed information]"

  5. 개인 repo로 push한다
    git push origin master(or other branch name)

  6. (넘겨받은 프로그래머) 페어 repo에서 정보를 받아온다 git pull pair master(or other branch name)

  7. (넘겨받은 프로그래머의 코딩이 완료된 경우) 작성한 코드를 커밋한다
    git add [changed file name] > git commit -m "[changed information]"

  8. (넘겨받은 프로그래머) 개인 repo로 push한다
    git push origin master(or other branch name)

  9. (기존 프로그래머) 페어가 작성한 마지막 버전 코드 정보를 받아온다
    git pull pair master(or other branch name)

  10. 필요 시 Project의 main repo로 PR한다.

충돌이 발생할 경우

같은 줄의 내용을 각각 다르게 변경하여 push한 경우 터미널에서 git push를 하게 되면 rejected 오류를 내뿜는다(fetch first)
이 때에는 git pull하여 정보를 받아오게 되면 아래와 같은 오류를 알려준다

Auto-merging [file name]
CONFLICT (content): Merge conflict in [file name]
Automatic merge failed; fix conflicts and then commit the result

git이 자동으로 코드를 병합하려고 하였으나, 실패하였다는 오류이다.
이 파일을 VSC로 열게 되면 내가 작성한 Current Change와, 페어가 작성한 Incoming Change가 비교되어 보여지게 되는데, 이 때 실제 반영할 코드를 선택하여 입력하고 원래 하던 대로 git addgit commit을 해주면 merge 작업을 완료한 것으로 간주한다. 이후 git push하면 repo에 업로드되게 된다.

이후 github을 확인하게 되면 push된 모든 기록을 확인할 수 있다. (충돌이 일어났던 버전, merge를 완료한 버전 모두 조회 가능)

profile
하루하루 배울때마다 기록하는 일기장

0개의 댓글