VICTOR LOG

About

Post

lock 파일(= 패키지 잠금 파일)

2022-08-01

Development
lock 파일(= 패키지 잠금 파일) 히어로 이미지.jpeg

들어가며

프로젝트를 진행하면서 백엔드 팀원이 ‘lock 파일이 무엇이며, git을 통해 관리해야하나?'라고 물었다.

지금까지 lock 파일도 git을 통해 관리하긴 했지만, 파일의 역할에 대해서는 고민해 본 적이 없다😣

따라서 이번 글에서는 lock 파일에 대해서 알아본 내용에 대해서 정리할 것이다. 또한 끝에서는 lock 파일을 git을 통해 관리해야할 지 판단할 것이다.


lock 파일이란?

npm 또는 yarn을 통해 패키지을 설치하면 공통으로 package.json 파일이 생성된다. 그리고 사용하는 패키지 매니저에 따라 package-lcok.json 또는 yarn.lock 파일이 생성된다. 이 파일들을 패키지 잠금 파일이라 한다.


package.json의 dependencies(또는 devDependencies)는 현재 프로젝트에서 사용하는 패키지들의 버전이 명시돼 있다.

보통 패키지들의 버전은 특정 버전을 정확히 명시하기 보다는 버전 범위를 통해 유연하게 패키지를 설치할 수 있게 한다. 하지만 이는 패키지 설치 시점에 따라 다른 버전이 설치될 수 있음을 의미한다.

가령, A와 B가 함께 프로젝트를 진행하고 있다. A가 오늘 패키지를 설치하고 package.json이 포함된 프로젝트를 B에게 공유했다. 그리고 B가 다음날 프로젝트에 필요한 패키지들을 설치하는데, A가 설치한 프로젝트의 버전과 다를 수 있다.


팀원 별로 버전이 다른 패키지를 사용할 때 잠재적으로 문제가 생길 수 있다. 따라서 처음 패키지를 설치할 때 버전의 유연하게 설치를 하되, 이후에는 동일한 버전의 패키지를 설치할 수 있어야한다. 이런 역할을 수행하는 것이 패키지 잠금 파일이다.


lock 파일을 git을 통해 관리해야 하는가?

패키지 잠금 파일이 필요한 이유에 대해서 정리하면서 이미 답이 나왔다. 팀원들이 모두 동일한 패키지 버전을 사용하기 위해서 package.json과 함께 패키지 잠금 파일도 공유돼야 한다. 즉, lock 파일도 git을 통해 관리돼야 한다.


참고 자료

패키지 잠금 파일 (package-lock.json, yarn.lock)

들어가며

lock 파일이란?

lock 파일을 git을 통해 관리해야 하는가?

참고 자료

Victor

© Victor. All Rights Reserved.