npm을 사용한다면 무조건 보게 되는 파일이 있다. 바로 package-lock.json 이다. package.json 에 명시된 의존성 패키지들의 히스토리를 관리해주는 파일 정도로만 인지하고 있었는데, 점점 프로젝트의 복잡도가 높아지면서 package.json을 통해 패키지를 설치하더라도 환경에 따라 빌드 또는 실행이 안 되는 문제가 종종 발생하게 되었다. 패키지 버전을 수정하지 않았는데도 다른 개발자와 package-lock.json 에서 코드 충돌이 나는 경우도 발생했다. 왜 package.json 만으로 의존성 관리가 되지 않는 것일까? package.json의 한계 규모가 큰 프로젝트의 경우, 여러 명의 개발자들이 동일한 개발 환경을 가지는 것이 중요하다. 이때, package.json만으로는 ..