[Node.js_4기] TIL : 주특기 심화 팀프로젝트 Day1 개발일지 (24/03/18)

2024. 3. 18. 21:03공부/내배캠 TIL

목차

 

1. 문제

2. 시도

3. 결과

4. 배운점

 

1. 문제 

 

git colne 했을 때 설치되는 의존성의 버전이 달라짐.

-> 큰 문제는 없었지만, 통일하고 싶었다.(만약에 큰 변화가 있는 버전으로 다르게 설치된다면?)

 

2. 시도 

 

package.json과 package-lock.json만 git clone 받아 설치 install.

여전히 동일한 결과...

 

3. 결과 

 

조장님이 튜터님께 질문하러 가셨고, 답을 받아오셨다.

 

의존성 관리 = 필요한 의존성을 한번만 설치하게 하는 것

Q. package-lock.json때문에 git 협업 과정에서 충돌이 너무 났다.

1. package-lock.json을 .gitignore해서는 안됨. 얘는 해당 프로젝트를 위해 [정확히 어떤 종속성]이 설치돼야 하는지 지시해주는 역할을 하는 파일임

2. package.json은 프로젝트에 필요한 라이브러리의 대략적인 버전만 알려줌 (ex) nest ^ =4 는 'nest 4~5 사이 버전이면 된다'라는 식, 그래서 이 파일 gitignore해버려서 다른사람이 못받으면, 다른 사람은 저 범위의 버전 중 적당한게 깔리게 되면서 서로 다른 의존성을 갖게 되는거임.

package-lock.json 은 '여기 설치된 의존성은 nest = 4 다!' 라고 확실하게 못을 박아줌

3. npm ci는 package.json을 무시하고 package-lock.json만을 참조해서 의존성을 설치해줌, 즉 한 개의 package-lock.json 파일을 받아 설치한 사람들은 모두 같은 sync의 의존성을 갖게 되는거임 * 참고로 npm install은 내장 npm을 무시하지 않는데, 이럴 경우 내장 npm에 설치돼있는 의존성은 node_modules로 가지 않게 됨(npm ci필요한 이유)

 

Q. 그럼 Nest.js 프로젝트에선 어떻게 npm ci를 쓰나

1. nest new project를 하면 directory building과 npm install이 다 실행되기 때문에 클린한 의존성 설치가 되지 않음(내장 npm의 영향을 받음)

2. nest new project를 한 뒤에 node_modules를 삭제하고, npm ci를 함

3. 그러면 pacakge-lock.json에 설치된 모든 의존성이 정확하게 정리됨

4. 이 package-lock.json과 package.json을 다른 팀원들에게 공유해서 루트 디렉토리에 받게한 다음 npm ci를 하면 됨(참고로 이건 npm install과 비슷한 역할을 하는 애라 directory 빌딩은 되지 않음)

 

4. 배운점

 

이전에는 문제 없겠지 라는 생각으로 느슨하게 git을 사용했던것 같다.

최종 프로젝트에서 문제가 없도록 엄격하게 git을 사용하기로 했다.

 

 

첫날은 API 명세서, ERD, SA작업에 힘을 썼다. 

6시쯤 부터 작업을 시작해서, 엔티티를 만들고, 대략적인 틀을 만든 상황

목표는 수요일까지 기초 구현을 끝내고, 나머지 작업과 수정(try catch 붙여주기, swagger, testcode ... )을 진행하는것이다.

그와중에, 발표준비로 내가 빠지기 때문에 늦어도 목요일 까지는 마무리해야할듯 하다.