질문 164 · 실전 면접 답변
package.json의 private: true 설정은 무엇을 막아주나요?
이렇게 답해 보세요 (핵심 답변)
package.json에 "private": true를 설정하면 작업자가 실수로 npm publish 명령을 실행하더라도 npm 레지스트리에 해당 패키지가 공개 게시되는 것을 차단해 줍니다. 따라서 외부로 배포할 라이브러리가 아닌 일반 프론트엔드 웹 서비스나 모노레포의 루트 패키지에는 기본적으로 설정해 두는 안전장치입니다. 다만 이 설정은 오직 'npm 레지스트리 게시 거부'만 담당할 뿐이므로, Git 저장소의 공개 여부나 배포된 웹 사이트의 접근 제어, 번들 파일 안의 환경 변수 노출까지 막아 주는 보안 기능은 아닙니다.
함께 설명하면 좋은 이유 (꼬리질문 대비)
- 사내 비즈니스 로직이 담긴 애플리케이션 패키지가 실수로 퍼블릭 npm에 올라가는 사고를 간단하고 확실하게 예방할 수 있습니다.
- 모노레포 환경에서는 루트와 내부 앱에는 private: true를 걸고, 실제로 외부에 배포할 공통 UI 패키지에만 게시 설정을 열어 두는 식으로 경계를 나눕니다.
면접에서 자주 하는 실수
package.json에 private: true를 적었다고 해서 클라이언트 번들에 포함된 API 키가 숨겨지거나 GitHub 저장소가 비공개로 바뀐다고 오해하면 안 됩니다.
원리와 예제까지 읽기
공식 참고 자료
질문 목록 출처 ↗ · 원본 164번을 바탕으로 질문과 답변을 새로 정리했습니다.