LabHub

CI/CD 파이프라인 · 빌드 자동화 · 퀴즈

퀴즈: 재현 가능한 빌드

LabHub 에서 이어서 보기

문항 6개. 정답과 해설은 풀어 본 뒤에 보여 드립니다.

  1. 액션이나 베이스 이미지를 태그가 아니라 커밋 SHA·다이제스트로 고정하는 가장 큰 이유는?

    1. 태그는 나중에 다른 커밋을 가리키도록 옮길 수 있지만 커밋 SHA 는 변경이 불가능하기 때문
    2. SHA 표기가 짧아 파이프라인 로그가 깔끔해지기 때문
    3. 태그를 쓰면 캐시가 동작하지 않기 때문
    4. SHA 로 고정하면 빌드가 빨라지기 때문
  2. 프로덕션 배포에 `latest` 태그를 쓰면 생기는 문제로 가장 정확한 것은?

    1. 어떤 버전이 배포됐는지 추적할 수 없고 사고가 나도 되돌릴 대상이 없다
    2. 레이어가 쌓여 이미지 용량이 커진다
    3. 레지스트리 비용이 올라간다
    4. 빌드 캐시가 매번 무효화된다
  3. 캐시 키에 락 파일 해시를 넣는 이유는?

    1. 의존성이 바뀌면 키가 저절로 달라져 캐시가 자동으로 무효화되도록
    2. 키 길이를 늘려 충돌을 막으려고
    3. 락 파일을 커밋하지 않아도 되게 하려고
    4. 캐시 저장소 한도를 늘리려고
  4. 매트릭스 빌드의 `fail-fast` 기본값과 그 의미로 옳은 것은?

    1. false — 하나가 실패해도 전부 끝까지 돈다
    2. true — 실패한 잡만 자동 재시도한다
    3. false — 실패한 잡을 건너뛰고 성공으로 기록한다
    4. true — 하나가 실패하면 나머지 잡이 취소된다
  5. CI 의 의존성 설치에 `npm ci`, `--frozen-lockfile`, `-lockfile=readonly` 를 쓰는 이유는?

    1. 의존성의 항상 최신 버전을 당겨 오기 때문
    2. 락 파일을 갱신하지 않고 적힌 그대로 설치해 어디서 돌려도 같은 트리가 나오기 때문
    3. 락 파일이 없어도 동작하기 때문
    4. 캐시를 무시하고 새로 받기 때문
  6. 캐시 스코프를 커밋 단위로 아주 잘게 쪼갰더니 히트율이 오히려 떨어졌다. 가장 그럴듯한 원인은?

    1. 캐시 키에 OS 이름이 빠졌다
    2. 캐시 저장소당 한도(10GB)를 넘겨 오래된 것부터 축출되면서 캐시끼리 서로를 밀어냈다
    3. restore-keys 를 너무 많이 넣었다
    4. 캐시는 원래 브랜치별로만 동작한다