ougi FE

package.json? package-lock.json? 무슨 차이일까? 본문

JavaScript

package.json? package-lock.json? 무슨 차이일까?

ougi 2024. 11. 10. 22:50
728x90

개발하다가 보면 이 아마 두가지 파일을 본 적이 있을 것입니다
이름도 비슷한 두가지 대체 무슨 차이가 있을까요?

오늘은 package.json과 package-lock.json의 차이를 알아보겠습니다


❓ 그 파일들이 뭔데?

먼저 package.json은 npm 패키지 설치를 위해서 존재하는 파일로 일반적으로 프로젝트의 이름, 버전, 설명, 프로젝트 실행에 필요한 의존성 목록들을 포함하고 있습니다

가끔 정확히 명시하지 않아서 팀원과 버전 문제가 발생할 수 있습니다..


package-lock.json은 패키지들의 정확한 버전 정보를 명시하고 있는 파일입니다 


 ❓그래서 둘이 무슨 차이?

package.json는 version range를 사용합니다

쉽게 말하자면 18.2.0버전을 사용합니다 라고 명시하는 것이 아닌 

 ^18.2.0 이런 식으로 명시 해주는데 ^ 부호는 18.2.0버전이상 이라는 뜻입니다

~18.2.0은 18.2.x까지만 업데이트한다는 뜻입니다

 

하지만 package-lock.json는 정확한 버전을 명시해줍니다


❓ 왜 굳이 두개를 나눈거야?

그렇다면 여기서 드는 생각이 있을 것입니다 왜 굳이 정확한 버전을 명시하지 않고 version range를 사용하여 명시할까?

version range를 사용하면 의존성이 자동으로 최신 버전으로 업데이트될 수 있게 하려는 목적이 있습니다
이렇게 하면 버그 수정이나 성능 개선이 이루어진 최신 버전을 쉽게 가져올 수 있죠

이는 개발자의 관리 부담을 줄이고 새로운 기능을 빠르게 적용할 수 있도록 도와줍니다

 

이처럼 package.json과 package-lock.json은 서로 보완적인 역할을 합니다
package.json은 유연한 의존성 관리를 package-lock.json은 안정적인 환경을 되게 합니다


✨ 글을 마치며

오늘은 두 파일에 대해서 알아보고 차이점을 알아보고 왜 그렇게 하는지 까지 알아보았는데
평소 궁금했던 점을 알게 되어 좋았습니다 
글을 읽어주셔서 감사합니다

728x90