CI/CD 파이프라인 · 빌드 자동화 · 퀴즈
퀴즈: 재현 가능한 빌드
문항 6개. 정답과 해설은 풀어 본 뒤에 보여 드립니다.
액션이나 베이스 이미지를 태그가 아니라 커밋 SHA·다이제스트로 고정하는 가장 큰 이유는?
- 태그는 나중에 다른 커밋을 가리키도록 옮길 수 있지만 커밋 SHA 는 변경이 불가능하기 때문
- SHA 표기가 짧아 파이프라인 로그가 깔끔해지기 때문
- 태그를 쓰면 캐시가 동작하지 않기 때문
- SHA 로 고정하면 빌드가 빨라지기 때문
프로덕션 배포에 `latest` 태그를 쓰면 생기는 문제로 가장 정확한 것은?
- 어떤 버전이 배포됐는지 추적할 수 없고 사고가 나도 되돌릴 대상이 없다
- 레이어가 쌓여 이미지 용량이 커진다
- 레지스트리 비용이 올라간다
- 빌드 캐시가 매번 무효화된다
캐시 키에 락 파일 해시를 넣는 이유는?
- 의존성이 바뀌면 키가 저절로 달라져 캐시가 자동으로 무효화되도록
- 키 길이를 늘려 충돌을 막으려고
- 락 파일을 커밋하지 않아도 되게 하려고
- 캐시 저장소 한도를 늘리려고
매트릭스 빌드의 `fail-fast` 기본값과 그 의미로 옳은 것은?
- false — 하나가 실패해도 전부 끝까지 돈다
- true — 실패한 잡만 자동 재시도한다
- false — 실패한 잡을 건너뛰고 성공으로 기록한다
- true — 하나가 실패하면 나머지 잡이 취소된다
CI 의 의존성 설치에 `npm ci`, `--frozen-lockfile`, `-lockfile=readonly` 를 쓰는 이유는?
- 의존성의 항상 최신 버전을 당겨 오기 때문
- 락 파일을 갱신하지 않고 적힌 그대로 설치해 어디서 돌려도 같은 트리가 나오기 때문
- 락 파일이 없어도 동작하기 때문
- 캐시를 무시하고 새로 받기 때문
캐시 스코프를 커밋 단위로 아주 잘게 쪼갰더니 히트율이 오히려 떨어졌다. 가장 그럴듯한 원인은?
- 캐시 키에 OS 이름이 빠졌다
- 캐시 저장소당 한도(10GB)를 넘겨 오래된 것부터 축출되면서 캐시끼리 서로를 밀어냈다
- restore-keys 를 너무 많이 넣었다
- 캐시는 원래 브랜치별로만 동작한다