LabHub

GitLab CI/CD · 실행 모델 — 순서·조건·전달 · 퀴즈

퀴즈: 순서·조건·전달

LabHub 에서 이어서 보기

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

  1. 잡에 `needs: []` 를 적은 것과 `needs` 키를 아예 적지 않은 것의 차이는?

    1. 빈 목록은 아무것도 기다리지 않고 키가 없으면 앞 스테이지 전부를 기다린다
    2. 빈 목록은 앞 스테이지 전부를 기다리고 키가 없으면 즉시 출발한다
    3. 둘 다 앞 스테이지가 끝나기를 기다리며 표기만 다른 같은 설정이다
    4. 빈 목록은 설정 오류라 파이프라인이 아예 만들어지지 않는다
  2. 잡을 전부 DAG 로 묶은 파이프라인에서 러너를 아무리 늘려도 줄지 않는 시간은?

    1. 가장 오래 걸리는 잡 하나의 실행 시간
    2. 잡 개수를 러너 수로 나눈 평균 대기 시간
    3. 웨이브를 순서대로 이은 가장 긴 경로의 시간
    4. 스테이지 개수에 잡 개수를 곱한 시간
  3. `rules` 목록 가운데에 조건 없는 `when: never` 항목을 두면?

    1. 조건 없는 항목은 무시되고 나머지 규칙이 정상 평가된다
    2. 그 항목이 항상 걸려서 아래에 적은 규칙은 영영 읽히지 않는다
    3. 목록 전체가 무효가 되어 잡이 항상 실행된다
    4. 설정 검증 단계에서 오류로 걸려 파이프라인이 거부된다
  4. 운영 배포 잡을 `when: manual` 로 두었는데 아무도 누르지 않은 파이프라인이 성공으로 끝났다. 원인은?

    1. needs 를 적지 않아 잡이 앞 스테이지와 함께 건너뛰어졌다
    2. rules 가 파이프라인 생성 시점이 아니라 잡 시작 시점에 평가됐다
    3. stage 이름이 stages 목록에 없어 잡이 목록에서 빠졌다
    4. allow_failure 가 true 라 누르지 않아도 파이프라인이 성공 처리된다
  5. `artifacts` 와 `cache` 의 차이를 가장 정확히 짚은 것은?

    1. 아티팩트는 없으면 뒤 잡이 실패해야 맞고 캐시는 없어도 잡이 그냥 돌아야 맞다
    2. 아티팩트는 러너 안에만 남고 캐시는 서버에 올라가 오래 보관된다
    3. 아티팩트는 압축되지 않고 캐시는 압축되어 전송량이 줄어든다
    4. 아티팩트는 같은 잡에서만 쓰이고 캐시는 다른 잡으로 건너간다
  6. 캐시 키를 고정 문자열 대신 `key: {files: [requirements.txt]}` 로 두는 이유는?

    1. 키 이름이 길어져 다른 프로젝트와 충돌할 확률이 줄기 때문
    2. 캐시 저장 공간의 한도가 파일 개수만큼 늘어나기 때문
    3. 의존성이 바뀌면 키가 저절로 달라져 캐시가 자동으로 무효화되기 때문
    4. 잠금 파일을 커밋하지 않아도 캐시가 동작하게 되기 때문