빌드는 초록불이었는데 그 라이브러리는 누가 넣었나 · 직접 고른 건 일곱 개, 설치된 건 스물다섯 개 · 퀴즈
퀴즈: 무엇이 들어 있는지 세는 법
문항 6개. 정답과 해설은 풀어 본 뒤에 보여 드립니다.
package.json 대신 package-lock.json 을 세어야 하는 이유는?
- 잠금 파일이 더 최근에 만들어진 파일이라서
- 실제로 설치된 것은 잠금 파일에만 적혀 있고 선언 파일에는 우리가 고른 것만 있어서
- 잠금 파일에만 라이선스 정보가 들어 있어서
- 선언 파일은 빌드할 때 읽히지 않아서
lockfileVersion 3 의 packages 맵에서 루트 프로젝트는 어떤 열쇠로 들어가는가?
- 프로젝트 이름을 그대로 쓴 열쇠
- node_modules 로 시작하는 상대 경로 열쇠
- 빈 문자열로 된 열쇠
- package.json 이라는 이름의 열쇠
CycloneDX JSON 문서에서 bomFormat 값이 "CycloneDX" 하나로 못박혀 있는 이유는?
- 파일 이름 규칙이 없고 JSON 스키마에 네임스페이스가 없어 파일만 보고 형식을 알아야 해서
- 다른 값을 넣으면 서명 검증이 실패하도록 설계돼서
- SPDX 문서와 열쇠 이름이 겹치는 것을 막기 위해서
- 도구가 문서를 압축할 때 사전으로 쓰기 위해서
잠금 파일 항목의 dev 플래그가 true 라는 것은 무엇을 뜻하는가?
- 그 패키지가 아직 정식 판이 아니라는 뜻
- 그 패키지를 개발 기계에서만 내려받는다는 뜻
- 그 패키지에 디버그 심볼이 들어 있다는 뜻
- 그 패키지가 오직 개발 의존 트리에만 속한다는 뜻
의존 그래프 없이 평평한 목록만 있는 SBOM 의 가장 큰 한계는?
- 파일 크기가 커져 저장 비용이 늘어난다
- '이 패키지가 왜 여기 있는지' 에 답할 수 없다
- 라이선스를 표기할 수 없다
- 서명을 붙일 수 없다
릴리스마다 SBOM 을 만들면서 지난 판과 견주지 않으면 무엇을 놓치게 되는가?
- 빌드 시간이 얼마나 늘었는지
- 라이선스 문구가 바뀌었는지
- 아무도 추가하지 않았는데 목록에 새로 들어온 패키지
- 어느 개발자가 의존을 추가했는지