백엔드 개발 · 중급
npm과 yarn의 차이점과 package-lock.json의 역할에 대해 설명해주세요.
힌트 · package-lock.json은 정확한 의존성 버전을 고정하여 일관된 설치를 보장합니다.
의존성 관리병렬 설치결정적 의존성package-lock.jsonyarn.lock
모범답안
npm과 yarn은 모두 Node.js 프로젝트의 의존성 관리를 위한 패키지 매니저입니다. 가장 큰 차이점은 내부적인 동작 방식과 속도에 있습니다. Yarn은 병렬 설치를 통해 npm보다 일반적으로 더 빠른 설치 속도를 제공합니다. 또한, Yarn은 보안에 더 중점을 두어 설계되었습니다.
package-lock.json (npm) 또는 yarn.lock (yarn) 파일은 프로젝트의 의존성 트리를 정확하게 기록하는 역할을 합니다. 이 파일은 특정 시점에 설치된 모든 패키지의 정확한 버전과 의존성 관계를 명시합니다. 이를 통해 개발 환경, 테스트 환경, 배포 환경 등 모든 환경에서 동일한 의존성 버전을 설치하여 일관성을 유지하고, 예기치 않은 오류를 방지할 수 있습니다. 즉, package-lock.json은 프로젝트의 의존성을 "고정"시키는 역할을 한다고 볼 수 있습니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.
함께 보는 Node.js 면접 질문
- Promise와 async/await의 차이점과 각각의 사용 시나리오를 비교해주세요.
- Express.js에서 에러 핸들링 미들웨어의 특징과 구현 방법을 설명해주세요.
- Node.js에서 Stream의 종류와 각각의 사용 사례를 설명해주세요.
- Node.js에서 Buffer 객체의 용도와 문자열과의 차이점을 설명해주세요.
- Node.js의 Event Loop가 멀티코어 시스템에서 CPU 집약적 작업을 처리할 때의 한계점과 이를 해결하기 위한 Worker Threads의 내부 동작 원리를 설명해주세요.
- Express.js에서 미들웨어 체인이 비동기 에러를 처리할 때 발생할 수 있는 문제점과 async/await 환경에서의 에러 핸들링 전략을 설명해주세요.