[프리코스 1주차] 협업을 위한 git과 nvm

pengooseDev·2023년 10월 26일
0
post-thumbnail

두근두근 프리코스 1주차. 포비는 말했다.

"주어진 문제의 조건을 잘 읽는 것도 개발자에게 중요한 능력이에요."

포비와 우테코 코치님들은 우리에게 어떤 것들을 가르치고 싶었을까.
함께 문제를 읽어보며 우아한 교육 철학을 느껴보자.

> 1주차 미션 : 숫자 야구

우선, 문서다. 문서에서부터 많은 가르침이 들어있었다.


1. git

> 미션 제출 방법

다음 링크를 확인해보자.

결국 핵심은 이 프리코스 과제 제출 링크.

포비가 우리에게 던져준 첫 학습 포인트는 git이다.

- 포비: 
우리는 왜 git을 써야할까요? 🧐

각자의 답은 프리코스 크루들이 스스로 잘 냈을거라 생각한다.

필자들은 포비의 목소리는 다음과 같다.


코드는 함께 작성한다.

- 포비: 
현업에서의 코드는 혼자 작성하는 것이 아니에요.
독학을 하다보면 git을 이용한 branch 관리, fork 및 PR을 써볼 기회가 없었을텐데, 
이번 기회에 잘 배워가세요!

여기서 끝이 아니다.

코드를 작성하기 전 기능 명세서를 작성해볼 것을 권하고 있다.

포비의 목소리가 다시 들린다.

- 포비: 
거기서 멈추지 마세요.
커밋은 협업하는 개발자에게 생각하는 것 이상의 유용함을 제공해요.

기능명세서를 작성하고, commit convention을 적용하여 명세서 단위로 commit을 진행해보세요.
처음엔 더러워져도 괜찮습니다.

다만, 기능 명세서를 계속해서 수정하고 commit convention을 적용하며,
살아있는 커밋 로그를 만들려고 노력하세요.

다른 팀원이 내가 작성한 코드에 대해 에러를 디버깅을 하거나, 리뷰를 할 경우,
커밋 단계에서 명확하고 규칙에 맞는 커밋을 남겨야 읽기 쉬운 커밋로그가 된다는 것이다.

문서에 있는대로 커밋 과정에서 다음의 것을 준수하려 노력했다.

  1. 기능 명세서 단위로 커밋을 관리하려고 노력할 것.
  2. 코드 컨벤션을 지킬 것.
  3. 기능명세서를 간결하게 적고, 기능명세서 기반으로 커밋로그를 작성할 것.
  • 기능명세서를 작성하고, commit convention에 맞춘다. 이를 기반으로 살아있는 commit log를 관리한다.

2. Node version? 왜?

0점 방지 카테고리를 보자.

NodeJS 18.17.1 이상의 버젼을 요구하고있다.
해당 요구사항을 충족하기 위해, NVM을 설치했을 것이다.

- 포비 : NodeJS의 버젼을 왜 관리해야 하며 무슨 의미가 있을까요?

이 부분도 프리코스 크루들의 의견이 궁금하다.
필자가 내린 결론은 의존성 모듈에 있었다.

문제를 잘 읽어보자.

  • 테스트 패키지(의존성 모듈) 설치를 위해 Node.js 버전 18.17.1 이상이 필요하다.
사실 써있다.

우리의 프로그램은 수 많은 의존성 모듈에 의존한다.
즉, 협업 과정에서 서로 사용하는 의존성 모듈의 버젼이 다르다면 예상치 못한 에러나 사이드이펙트라 발생할 수 있다는 것이다.

"dependencies": {
  "pengoose": "^1.2.3"
}

npm install을 할 경우, 패키지매니저는 현재 pengoose의 1.x.x로 되어있는 가장 최신 패키지를 설치한다. NodeJS의 버젼이 다를 경우 서로 다른 패키지가 설치될 수 있다.

물론, npm은 package-lock.json으로 의존성 모듈의 버전을 lock함으로써 이러한 문제를 어느정도 해결한다. 하지만 본질적으로 사용하는 NodeJS의 버전이 다르다는 것은, 내부 API 등의 차이점이 있다는 의미이기에 개발 환경 및 테스팅 환경을 협업자들과 동기화하는 것이 좋다.

에에.. 저 다른 사이드 프로젝트에선 14.20.1 고정이에요..

그런 당신을 위해(사실 필요해서) 준비했다.


.nvmrc을 이용한 NodeJS 동적인 버전 관리

root 파일에 .nvmrc를 생성한 뒤, 필요한 NodeJS 버전을 추가하자.
프로젝트는 동일한 실행 및 테스팅 환경을 설정을 위해 .nvmrc으로 Node.js 버전을 관리할 수 있다.

.nvmrc를 생성하고

18.17.1

프로젝트 실행 전 nvm ls를 이용해 18.17.1 version 설치여부를 확인한다.

설치가 되어있지 않은 경우

터미널에서 다음의 명령어를 입력!

nvm install 18.17.1

설치가 되어있는 경우

nvm use

0개의 댓글