ONE QUESTION AT A TIME.

천천히 생각하고, 분명하게.

TODAY’S QUESTION1417 / 1500

두 CI가 같은 state에 apply할 때 state locking이 막는 것과 막지 못하는 것은 무엇인가요?

잠깐, 답변을 보기 전에
먼저 내 말로 설명해 볼까요?

답변과 점검 포인트 펼치기답변 접기
01

구두 답변

정의를 외우기보다, 원리와 조건을 연결해 설명해 보세요.

backend state locking은 같은 state를 두 CI가 동시에 읽고 갱신하는 경쟁을 줄이지만 cloud API 전체를 all-or-nothing transaction으로 만들지는 않습니다. CI-1이 lock을 보유한 동안 CI-2가 기다리거나 실패할 수 있어 state 기록의 덮어쓰기는 줄어듭니다. 그러나 다른 workspace, console, provider 밖 script가 같은 resource를 바꾸는 일은 각자의 lock 범위 밖입니다.

CI-1이 VPC 생성은 성공시켰지만 state write 전 process가 죽었다고 하겠습니다. lock이 풀린 뒤 CI-2가 같은 plan을 재실행하면 이미 있는 VPC를 또 만들 수 있으므로, 먼저 cloud 목록과 provider ID를 조회하고 refresh-only 또는 새 plan을 만듭니다. A는 성공하고 B에서 권한 오류가 난 partial apply도 A의 변경이 자동 rollback되지 않으므로 import·정리·재계획을 선택합니다. lock ID와 provider 응답, 원격 object, state 기록을 대조하며, lock 해제만 확인한 뒤 재실행하지 않습니다. 부분 적용 뒤에는 resource별 상태를 success/unknown/failed로 나누어 unknown을 재시도 대상으로 바로 넣지 않습니다. API 조회로 identity를 확정한 뒤 import 또는 cleanup을 고르고, state lock 복구와 remote reconciliation을 별도 단계로 기록합니다.

02

득점 포인트

이해가 드러나는 지점을 확인해 보세요.

  • backend lock과 cloud side effect의 원자성 차이를 설명합니다.
  • process crash 뒤 remote/state 대사 후 새 plan을 만드는 순서를 제시합니다.
03

감점 포인트

놓치기 쉬운 조건과 오해를 짚어 보세요.

  • lock이 모든 resource의 rollback을 보장한다고 합니다.
  • lock 해제만 확인하고 같은 plan을 재실행합니다.
04

더 파고들 거리

하나 더 질문하며 이해의 범위를 넓혀 보세요.

  • stale lock을 force-unlock하기 전에 어떤 실행자와 backend evidence를 확인하나요?
  • 생성 여부가 모호한 object를 import할지 정리할지 어떻게 결정하나요?

득점·감점 포인트는 학습용 자기 점검 기준이며, 특정 회사의 실제 채점표가 아닙니다.

← 전체 질문 보기