학습 공간 개념 · 판단 · 실험

Fanta Lab

질문 164 · 실전 면접 답변

package.json의 private: true 설정은 무엇을 막아주나요?

이렇게 답해 보세요 (핵심 답변)

package.json에 "private": true를 설정하면 작업자가 실수로 npm publish 명령을 실행하더라도 npm 레지스트리에 해당 패키지가 공개 게시되는 것을 차단해 줍니다. 따라서 외부로 배포할 라이브러리가 아닌 일반 프론트엔드 웹 서비스나 모노레포의 루트 패키지에는 기본적으로 설정해 두는 안전장치입니다. 다만 이 설정은 오직 'npm 레지스트리 게시 거부'만 담당할 뿐이므로, Git 저장소의 공개 여부나 배포된 웹 사이트의 접근 제어, 번들 파일 안의 환경 변수 노출까지 막아 주는 보안 기능은 아닙니다.

함께 설명하면 좋은 이유 (꼬리질문 대비)

  1. 사내 비즈니스 로직이 담긴 애플리케이션 패키지가 실수로 퍼블릭 npm에 올라가는 사고를 간단하고 확실하게 예방할 수 있습니다.
  2. 모노레포 환경에서는 루트와 내부 앱에는 private: true를 걸고, 실제로 외부에 배포할 공통 UI 패키지에만 게시 설정을 열어 두는 식으로 경계를 나눕니다.

면접에서 자주 하는 실수

package.json에 private: true를 적었다고 해서 클라이언트 번들에 포함된 API 키가 숨겨지거나 GitHub 저장소가 비공개로 바뀐다고 오해하면 안 됩니다.

원리와 예제까지 읽기

공식 참고 자료

질문 목록 출처 ↗ · 원본 164번을 바탕으로 질문과 답변을 새로 정리했습니다.

← 프론트엔드 설계