학습 본문으로 건너뛰기
VAIRODE
HTTP API와 자동화60번째 작은 수업
오늘은 질문 하나만 해결해요60 / 68

따라 해보기 · 직접 바꿔보기

회복 가능한 API automation evidence loop를 완성한다

오늘의 질문

PLAN_REQUEST→VALIDATE_DECIDE→COMMIT_CHECKPOINT→REPLAY_PROVE에서 auth/status/rate/pagination/schema/idempotency/redaction 계약을 하나의 bounded run state machine으로 연결한다. transient response·invalid schema·duplicate operation·partial commit을 개별 if와 retry로 처리해 effect와 checkpoint 및 증거가 서로 모순된다.를 방치하면 자동화가 빠르게 반복될수록 잘못된 효과와 비노출 사고도 함께 확대됩니다.

아직 답을 몰라도 괜찮아요. 아래 작은 예시를 보고 먼저 예상해 보세요.

01 · 같이 연습해요

작은 문제부터 하나씩 직접 풀어봐요

먼저 예상하고, 한 단계씩 확인하고, 막힌 곳을 고쳐 봐요. 도움을 열어도 괜찮아요. 도움을 본 문제는 나중에 모양을 바꿔 다시 풀어보면 됩니다.

연습에서 작성 중인 답0 / 8
  1. 01

    찾아보기 · 기초

    aa60 recognize · 회복 가능한 API automation evidence loop를 완성한다: PLAN_REQUEST→VALIDATE_DECIDE→COMMIT_CHECKPOINT→REPLAY_PROVE에서 auth/status/rate/pagination/schema/idempotency/redaction 계약을 하나의 bounded run state machine으로 연결한다.을 지키는 exchange와 위반하는 exchange를 header·body·effect 표식으로 판별한다.

    상황

    동일 endpoint가 401, 403, 200을 반환할 때 인증 갱신 문제와 권한 정책 거부를 구분해 재시도 정책을 선택합니다.

    문제

    각 응답의 의미, 자동 재시도 가능 여부, 사람 또는 credential owner가 수행할 다음 행동을 status-policy 표로 작성하세요.

    제공 자료
    • Input fixture: GET /reports 응답 세 개: 401 invalid_token, 403 insufficient_scope, 200 application/json
    • 401은 요청에 유효한 인증 자격이 없다는 신호이며, 403은 서버가 신원을 이해했어도 해당 작업을 허용하지 않는다는 신호입니다.
    • refresh 절차는 명시적 credential provider 계약과 한 번의 bounded refresh가 있을 때만 별도 상태로 다룹니다.
    • 403을 새 token으로 반복 호출하거나 인증 header를 log에 남기는 것은 해결책이 아닙니다.
    • 판정 경계: method·status·media type·schema verdict·timeout class·attempt·retry budget·idempotency key state·cursor checkpoint·redacted evidence만 채점합니다. 실제 endpoint 성공 여부만으로 정확성을 판정하지 않습니다.
    • Privacy: 실제 서비스·사용자 계정·credential·환경변수·운영 payload를 읽지 않고 synthetic response와 고정된 local fixture만 사용합니다.
    • 공개/비공개 경계: 공개 DTO에는 client-safe self-review 설명만 둡니다. executable oracle·hidden expected protocol·private deterministic seed·secret sentinel·server grader는 production import graph 밖에 둡니다.
    • 검증 조건: HTTP·OAuth·vendor API 동작을 live network로 추정하지 않습니다. 표준 라이브러리 상태 기계는 가용 Python으로 smoke 검증하고, exact Python 3.14.6 release 증거가 없으면 exact-runtime 검증을 주장하지 않습니다.
    • 과장 금지: 한 번의 2xx, 많은 retry, SDK 기본값, AI 생성 client는 안전성·멱등성·무결함·자격 합격을 보증하지 않습니다. live smoke는 결정론적 contract test를 대체하지 않습니다.
    정답 대신 4단계 힌트 보기
    1. 관찰

      aa60에서는 status만 보지 말고 method, normalized target, selected headers, body schema, elapsed budget, attempt와 effect receipt를 분리하세요.

    2. 개념

      PLAN_REQUEST→VALIDATE_DECIDE→COMMIT_CHECKPOINT→REPLAY_PROVE에서 auth/status/rate/pagination/schema/idempotency/redaction 계약을 하나의 bounded run state machine으로 연결한다.

    3. 다음 도움

      내 생각을 먼저 적고 ‘내 답과 맞춰 볼 기준 보기’을 누르면, 풀 순서와 더 자세한 도움을 열어 드려요.

    정답과 비교
  2. 02

    먼저 생각하기 · 기초

    aa60 predict · 회복 가능한 API automation evidence loop를 완성한다: transient response·invalid schema·duplicate operation·partial commit을 개별 if와 retry로 처리해 effect와 checkpoint 및 증거가 서로 모순된다.가 주입된 다음 response·effect·checkpoint 상태를 실행 전에 순서대로 예측한다.

    상황

    429 응답의 Retry-After가 남은 실행 시간과 retry budget보다 짧거나 길 때 다음 실행 시점을 예측합니다.

    문제

    Retry-After 해석값, 남은 budget, 최대 attempt, deadline을 비교해 WAIT_AND_RETRY·DEFER·RATE_LIMIT_STOP 중 하나를 선택하세요.

    제공 자료
    • Input fixture: GET /events: 429 Retry-After=7초, 남은 deadline=10초, attempt 1/3; 대조 case는 Retry-After=15초
    • Retry-After는 delta-seconds 또는 HTTP-date일 수 있으며, 파싱 실패를 0초로 간주하면 안 됩니다.
    • 서버가 제시한 최소 대기와 client backoff 중 더 긴 값을 사용하되 전체 deadline을 넘지 않습니다.
    • 예약 작업에서 현재 실행을 끝내고 다음 trigger로 넘기는 DEFER는 실패 은폐가 아니라 명시적 결과여야 합니다.
    • 판정 경계: method·status·media type·schema verdict·timeout class·attempt·retry budget·idempotency key state·cursor checkpoint·redacted evidence만 채점합니다. 실제 endpoint 성공 여부만으로 정확성을 판정하지 않습니다.
    • Privacy: 실제 서비스·사용자 계정·credential·환경변수·운영 payload를 읽지 않고 synthetic response와 고정된 local fixture만 사용합니다.
    • 공개/비공개 경계: 공개 DTO에는 client-safe self-review 설명만 둡니다. executable oracle·hidden expected protocol·private deterministic seed·secret sentinel·server grader는 production import graph 밖에 둡니다.
    • 검증 조건: HTTP·OAuth·vendor API 동작을 live network로 추정하지 않습니다. 표준 라이브러리 상태 기계는 가용 Python으로 smoke 검증하고, exact Python 3.14.6 release 증거가 없으면 exact-runtime 검증을 주장하지 않습니다.
    • 과장 금지: 한 번의 2xx, 많은 retry, SDK 기본값, AI 생성 client는 안전성·멱등성·무결함·자격 합격을 보증하지 않습니다. live smoke는 결정론적 contract test를 대체하지 않습니다.
    정답 대신 4단계 힌트 보기
    1. 관찰

      aa60에서는 status만 보지 말고 method, normalized target, selected headers, body schema, elapsed budget, attempt와 effect receipt를 분리하세요.

    2. 개념

      PLAN_REQUEST→VALIDATE_DECIDE→COMMIT_CHECKPOINT→REPLAY_PROVE에서 auth/status/rate/pagination/schema/idempotency/redaction 계약을 하나의 bounded run state machine으로 연결한다.

    3. 다음 도움

      내 생각을 먼저 적고 ‘내 답과 맞춰 볼 기준 보기’을 누르면, 풀 순서와 더 자세한 도움을 열어 드려요.

    움직임과 비교
  3. 03

    순서 따라가기 · 익힌 것을 써보기

    aa60 trace · 회복 가능한 API automation evidence loop를 완성한다: request 준비부터 4-phase 48-state matrix의 request plan·policy verdict·attempt/effect ledger·durable checkpoint·redacted replay proof 확정까지 authority·attempt·effect owner를 시간순으로 추적한다.

    상황

    read-only API가 503, 503, 200을 순서대로 반환할 때 attempt별 backoff와 최종 verdict를 추적합니다.

    문제

    각 attempt의 status, retry eligibility, base delay, bounded jitter, 누적 budget, commit 여부를 한 줄씩 추적하세요.

    제공 자료
    • Input fixture: GET /catalog, status sequence 503→503→200, base=1초, cap=4초, 최대 3회, 고정 jitter fixture
    • 503은 일시적일 수 있지만 모든 503이 재시도 성공을 보장하지 않으며 attempt와 elapsed budget이 모두 제한돼야 합니다.
    • GET처럼 안전한 method라도 response 검증 전에는 결과를 commit하지 않습니다.
    • jitter는 재현 가능한 test fixture에서 검증하되 운영에서는 client 간 동시 재시도를 흩뜨리는 역할을 합니다.
    • 판정 경계: method·status·media type·schema verdict·timeout class·attempt·retry budget·idempotency key state·cursor checkpoint·redacted evidence만 채점합니다. 실제 endpoint 성공 여부만으로 정확성을 판정하지 않습니다.
    • Privacy: 실제 서비스·사용자 계정·credential·환경변수·운영 payload를 읽지 않고 synthetic response와 고정된 local fixture만 사용합니다.
    • 공개/비공개 경계: 공개 DTO에는 client-safe self-review 설명만 둡니다. executable oracle·hidden expected protocol·private deterministic seed·secret sentinel·server grader는 production import graph 밖에 둡니다.
    • 검증 조건: HTTP·OAuth·vendor API 동작을 live network로 추정하지 않습니다. 표준 라이브러리 상태 기계는 가용 Python으로 smoke 검증하고, exact Python 3.14.6 release 증거가 없으면 exact-runtime 검증을 주장하지 않습니다.
    • 과장 금지: 한 번의 2xx, 많은 retry, SDK 기본값, AI 생성 client는 안전성·멱등성·무결함·자격 합격을 보증하지 않습니다. live smoke는 결정론적 contract test를 대체하지 않습니다.
    정답 대신 4단계 힌트 보기
    1. 관찰

      aa60에서는 status만 보지 말고 method, normalized target, selected headers, body schema, elapsed budget, attempt와 effect receipt를 분리하세요.

    2. 개념

      PLAN_REQUEST→VALIDATE_DECIDE→COMMIT_CHECKPOINT→REPLAY_PROVE에서 auth/status/rate/pagination/schema/idempotency/redaction 계약을 하나의 bounded run state machine으로 연결한다.

    3. 다음 도움

      내 생각을 먼저 적고 ‘내 답과 맞춰 볼 기준 보기’을 누르면, 풀 순서와 더 자세한 도움을 열어 드려요.

    움직임과 비교
  4. 04

    내 말로 설명하기 · 익힌 것을 써보기

    aa60 explain · 회복 가능한 API automation evidence loop를 완성한다: PLAN_REQUEST→VALIDATE_DECIDE→COMMIT_CHECKPOINT→REPLAY_PROVE에서 auth/status/rate/pagination/schema/idempotency/redaction 계약을 하나의 bounded run state machine으로 연결한다.이 필요한 이유를 network·application·durable-effect 경계로 나눠 설명한다.

    상황

    POST가 서버에서 반영된 직후 응답이 끊겨 client가 timeout만 관찰한 상황에서 중복 생성 없이 결과를 복구합니다.

    문제

    timeout 전후에 client가 아는 사실을 분리하고, idempotency key lookup·동일 key replay·unsafe stop 중 안전한 순서를 설명하세요.

    제공 자료
    • Input fixture: POST /payments, stable idempotency key, 서버 ledger에는 committed operation, client에는 read timeout
    • read timeout은 서버가 요청을 적용하지 않았다는 증거가 아닙니다.
    • 쓰기 retry는 method 이름이 아니라 실제 operation의 멱등 계약과 stable key 처리 여부로 판단합니다.
    • 같은 logical operation은 재실행·process restart 뒤에도 같은 idempotency key를 사용해야 합니다.
    • 판정 경계: method·status·media type·schema verdict·timeout class·attempt·retry budget·idempotency key state·cursor checkpoint·redacted evidence만 채점합니다. 실제 endpoint 성공 여부만으로 정확성을 판정하지 않습니다.
    • Privacy: 실제 서비스·사용자 계정·credential·환경변수·운영 payload를 읽지 않고 synthetic response와 고정된 local fixture만 사용합니다.
    • 공개/비공개 경계: 공개 DTO에는 client-safe self-review 설명만 둡니다. executable oracle·hidden expected protocol·private deterministic seed·secret sentinel·server grader는 production import graph 밖에 둡니다.
    • 검증 조건: HTTP·OAuth·vendor API 동작을 live network로 추정하지 않습니다. 표준 라이브러리 상태 기계는 가용 Python으로 smoke 검증하고, exact Python 3.14.6 release 증거가 없으면 exact-runtime 검증을 주장하지 않습니다.
    • 과장 금지: 한 번의 2xx, 많은 retry, SDK 기본값, AI 생성 client는 안전성·멱등성·무결함·자격 합격을 보증하지 않습니다. live smoke는 결정론적 contract test를 대체하지 않습니다.
    정답 대신 4단계 힌트 보기
    1. 관찰

      aa60에서는 status만 보지 말고 method, normalized target, selected headers, body schema, elapsed budget, attempt와 effect receipt를 분리하세요.

    2. 개념

      PLAN_REQUEST→VALIDATE_DECIDE→COMMIT_CHECKPOINT→REPLAY_PROVE에서 auth/status/rate/pagination/schema/idempotency/redaction 계약을 하나의 bounded run state machine으로 연결한다.

    3. 다음 도움

      내 생각을 먼저 적고 ‘내 답과 맞춰 볼 기준 보기’을 누르면, 풀 순서와 더 자세한 도움을 열어 드려요.

    설명 기준과 비교
  5. 05

    빈칸 채우기 · 익힌 것을 써보기

    aa60 complete · 회복 가능한 API automation evidence loop를 완성한다: 비어 있는 policy·guard·redaction·checkpoint 단계를 채워 local fake server·fixed clock·synthetic credential로 resilient API collection job과 48-state evidence lab model을 구현한다.을 fail-closed로 완성한다.

    상황

    cursor pagination 중 세 번째 page에서 schema 오류가 발생했을 때 검증된 item과 checkpoint만 보존해 안전하게 재개합니다.

    문제

    page별 cursor, item id, schema verdict, dedup 결과, checkpoint commit을 기록하고 오류 뒤 재실행 시작점을 완성하세요.

    제공 자료
    • Input fixture: cursor START→c1→c2, 앞 두 page는 valid item, c2 page는 id field 누락 item과 next cursor 포함
    • checkpoint는 page body 전체가 schema 검증되고 dedup commit이 끝난 뒤에만 다음 cursor로 이동합니다.
    • item id는 page 간 중복 제거 key이며 cursor 자체가 데이터 중복 방지를 보장하지 않습니다.
    • 부분 성공은 실패를 숨기지 않고 last_committed_cursor·accepted_count·rejected_page를 함께 남깁니다.
    • 판정 경계: method·status·media type·schema verdict·timeout class·attempt·retry budget·idempotency key state·cursor checkpoint·redacted evidence만 채점합니다. 실제 endpoint 성공 여부만으로 정확성을 판정하지 않습니다.
    • Privacy: 실제 서비스·사용자 계정·credential·환경변수·운영 payload를 읽지 않고 synthetic response와 고정된 local fixture만 사용합니다.
    • 공개/비공개 경계: 공개 DTO에는 client-safe self-review 설명만 둡니다. executable oracle·hidden expected protocol·private deterministic seed·secret sentinel·server grader는 production import graph 밖에 둡니다.
    • 검증 조건: HTTP·OAuth·vendor API 동작을 live network로 추정하지 않습니다. 표준 라이브러리 상태 기계는 가용 Python으로 smoke 검증하고, exact Python 3.14.6 release 증거가 없으면 exact-runtime 검증을 주장하지 않습니다.
    • 과장 금지: 한 번의 2xx, 많은 retry, SDK 기본값, AI 생성 client는 안전성·멱등성·무결함·자격 합격을 보증하지 않습니다. live smoke는 결정론적 contract test를 대체하지 않습니다.
    정답 대신 4단계 힌트 보기
    1. 관찰

      aa60에서는 status만 보지 말고 method, normalized target, selected headers, body schema, elapsed budget, attempt와 effect receipt를 분리하세요.

    2. 개념

      PLAN_REQUEST→VALIDATE_DECIDE→COMMIT_CHECKPOINT→REPLAY_PROVE에서 auth/status/rate/pagination/schema/idempotency/redaction 계약을 하나의 bounded run state machine으로 연결한다.

    3. 다음 도움

      내 생각을 먼저 적고 ‘내 답과 맞춰 볼 기준 보기’을 누르면, 풀 순서와 더 자세한 도움을 열어 드려요.

    답과 설명 함께 비교
  6. 06

    틀린 곳 고치기 · 익힌 것을 써보기

    aa60 debug · 회복 가능한 API automation evidence loop를 완성한다: transient response·invalid schema·duplicate operation·partial commit을 개별 if와 retry로 처리해 effect와 checkpoint 및 증거가 서로 모순된다.를 local synthetic trace로 재현하고 최초 위반 지점만 수정한다.

    상황

    서버가 200을 반환하지만 HTML body, malformed JSON, 누락 field, 새 schema version을 차례로 보낼 때 최초 계약 결함을 국소화합니다.

    문제

    status→Content-Type→decode→envelope version→required field 순서로 gate를 적용하고 각 fixture의 first failing gate를 표시하세요.

    제공 자료
    • Input fixture: 네 200 response: text/html, application/json malformed, JSON id 누락, version=2 unknown
    • response.json() 성공은 HTTP 성공이나 domain schema 충족의 증거가 아닙니다.
    • Content-Type은 허용 media type과 비교하고 JSON body의 version·required field·type을 별도로 검증합니다.
    • 원문 body는 오류 page 전체를 log로 복사하지 않고 hash·크기·request id 같은 안전한 진단값으로 대체합니다.
    • 판정 경계: method·status·media type·schema verdict·timeout class·attempt·retry budget·idempotency key state·cursor checkpoint·redacted evidence만 채점합니다. 실제 endpoint 성공 여부만으로 정확성을 판정하지 않습니다.
    • Privacy: 실제 서비스·사용자 계정·credential·환경변수·운영 payload를 읽지 않고 synthetic response와 고정된 local fixture만 사용합니다.
    • 공개/비공개 경계: 공개 DTO에는 client-safe self-review 설명만 둡니다. executable oracle·hidden expected protocol·private deterministic seed·secret sentinel·server grader는 production import graph 밖에 둡니다.
    • 검증 조건: HTTP·OAuth·vendor API 동작을 live network로 추정하지 않습니다. 표준 라이브러리 상태 기계는 가용 Python으로 smoke 검증하고, exact Python 3.14.6 release 증거가 없으면 exact-runtime 검증을 주장하지 않습니다.
    • 과장 금지: 한 번의 2xx, 많은 retry, SDK 기본값, AI 생성 client는 안전성·멱등성·무결함·자격 합격을 보증하지 않습니다. live smoke는 결정론적 contract test를 대체하지 않습니다.
    정답 대신 4단계 힌트 보기
    1. 관찰

      aa60에서는 status만 보지 말고 method, normalized target, selected headers, body schema, elapsed budget, attempt와 effect receipt를 분리하세요.

    2. 개념

      PLAN_REQUEST→VALIDATE_DECIDE→COMMIT_CHECKPOINT→REPLAY_PROVE에서 auth/status/rate/pagination/schema/idempotency/redaction 계약을 하나의 bounded run state machine으로 연결한다.

    3. 다음 도움

      내 생각을 먼저 적고 ‘내 답과 맞춰 볼 기준 보기’을 누르면, 풀 순서와 더 자세한 도움을 열어 드려요.

    답과 설명 함께 비교
  7. 07

    직접 만들기 · 새 문제

    aa60 implement · 회복 가능한 API automation evidence loop를 완성한다: local fake server·fixed clock·synthetic credential로 resilient API collection job과 48-state evidence lab model을 구현한다.을 deterministic clock·local fake server·synthetic credential만으로 구현한다.

    상황

    API client의 요청·retry·종료 log에서 credential과 개인정보를 제거하면서 장애 재현에 필요한 context는 유지합니다.

    문제

    허용 field schema를 설계하고 Authorization·API key·query token·email·원문 body가 어느 단계에서 제거되는지 구현 계약을 작성하세요.

    제공 자료
    • Input fixture: request headers, URL query, JSON payload, 429 response, 세 attempt의 synthetic context
    • redaction은 출력 직전 문자열 치환 하나가 아니라 수집 단계 allowlist와 sink 전 검증을 함께 사용합니다.
    • 진단에 필요한 최소 context는 run_id·operation·method·endpoint template·status·attempt·elapsed·request_id·verdict입니다.
    • URL은 query value를 제거한 endpoint template로, payload는 schema verdict·byte size·digest 같은 파생값으로 기록합니다.
    • 판정 경계: method·status·media type·schema verdict·timeout class·attempt·retry budget·idempotency key state·cursor checkpoint·redacted evidence만 채점합니다. 실제 endpoint 성공 여부만으로 정확성을 판정하지 않습니다.
    • Privacy: 실제 서비스·사용자 계정·credential·환경변수·운영 payload를 읽지 않고 synthetic response와 고정된 local fixture만 사용합니다.
    • 공개/비공개 경계: 공개 DTO에는 client-safe self-review 설명만 둡니다. executable oracle·hidden expected protocol·private deterministic seed·secret sentinel·server grader는 production import graph 밖에 둡니다.
    • 검증 조건: HTTP·OAuth·vendor API 동작을 live network로 추정하지 않습니다. 표준 라이브러리 상태 기계는 가용 Python으로 smoke 검증하고, exact Python 3.14.6 release 증거가 없으면 exact-runtime 검증을 주장하지 않습니다.
    • 과장 금지: 한 번의 2xx, 많은 retry, SDK 기본값, AI 생성 client는 안전성·멱등성·무결함·자격 합격을 보증하지 않습니다. live smoke는 결정론적 contract test를 대체하지 않습니다.
    정답 대신 4단계 힌트 보기
    1. 관찰

      aa60에서는 status만 보지 말고 method, normalized target, selected headers, body schema, elapsed budget, attempt와 effect receipt를 분리하세요.

    2. 개념

      PLAN_REQUEST→VALIDATE_DECIDE→COMMIT_CHECKPOINT→REPLAY_PROVE에서 auth/status/rate/pagination/schema/idempotency/redaction 계약을 하나의 bounded run state machine으로 연결한다.

    3. 다음 도움

      내 생각을 먼저 적고 ‘내 답과 맞춰 볼 기준 보기’을 누르면, 풀 순서와 더 자세한 도움을 열어 드려요.

    정답과 비교
  8. 08

    새 문제에 써보기 · 새 문제

    aa60 transfer · 회복 가능한 API automation evidence loop를 완성한다: 업무용 public/partner API를 주기적으로 수집·검증·publish하는 production-shaped job에 계약을 이식하고 달라진 trust·quota·schedule 경계를 방어한다.

    상황

    예약 실행되는 수집 작업을 인증·rate limit·일시 장애·pagination·쓰기 replay가 포함된 48-state evidence loop로 검증합니다.

    문제

    네 scene×세 contract case×네 phase를 모두 채우고 각 state에서 input, decision, commit, redacted evidence, 최종 verdict를 연결하세요.

    제공 자료
    • Input fixture: synthetic API job: manual/scheduled trigger, 401·403·429·503·pagination schema drift·ambiguous write timeout fixture
    • scene은 auth-status-policy, rate-limit-retry-budget, pagination-schema-checkpoint, idempotency-redaction-evidence입니다.
    • 각 scene은 narrow success, transient recoverable, unsafe or invalid case를 PLAN→EXECUTE→CLASSIFY/COMMIT→REPLAY 순서로 평가합니다.
    • 동일 fixture를 다시 실행했을 때 accepted item set과 side-effect count가 같고 secret sentinel이 모든 output에서 0건이어야 VERIFIED입니다.
    • 판정 경계: method·status·media type·schema verdict·timeout class·attempt·retry budget·idempotency key state·cursor checkpoint·redacted evidence만 채점합니다. 실제 endpoint 성공 여부만으로 정확성을 판정하지 않습니다.
    • Privacy: 실제 서비스·사용자 계정·credential·환경변수·운영 payload를 읽지 않고 synthetic response와 고정된 local fixture만 사용합니다.
    • 공개/비공개 경계: 공개 DTO에는 client-safe self-review 설명만 둡니다. executable oracle·hidden expected protocol·private deterministic seed·secret sentinel·server grader는 production import graph 밖에 둡니다.
    • 검증 조건: HTTP·OAuth·vendor API 동작을 live network로 추정하지 않습니다. 표준 라이브러리 상태 기계는 가용 Python으로 smoke 검증하고, exact Python 3.14.6 release 증거가 없으면 exact-runtime 검증을 주장하지 않습니다.
    • 과장 금지: 한 번의 2xx, 많은 retry, SDK 기본값, AI 생성 client는 안전성·멱등성·무결함·자격 합격을 보증하지 않습니다. live smoke는 결정론적 contract test를 대체하지 않습니다.
    정답 대신 4단계 힌트 보기
    1. 관찰

      aa60에서는 status만 보지 말고 method, normalized target, selected headers, body schema, elapsed budget, attempt와 effect receipt를 분리하세요.

    2. 개념

      PLAN_REQUEST→VALIDATE_DECIDE→COMMIT_CHECKPOINT→REPLAY_PROVE에서 auth/status/rate/pagination/schema/idempotency/redaction 계약을 하나의 bounded run state machine으로 연결한다.

    3. 다음 도움

      내 생각을 먼저 적고 ‘내 답과 맞춰 볼 기준 보기’을 누르면, 풀 순서와 더 자세한 도움을 열어 드려요.

    설명 기준과 비교

8개 답이 남았습니다.

02 · 막힌 곳을 찾아요

틀린 답에서 생각이 갈라진 첫 지점 찾기

헷갈림 01

transient response·invalid schema·duplicate operation·partial commit을 개별 if와 retry로 처리해 effect와 checkpoint 및 증거가 서로 모순된다.

겉으로 보이는 막힘
회복 가능한 API automation evidence loop를 완성한다의 성공·실패·재시도 판정이 provider 응답과 어긋나 외부 효과 상태가 모호해진다.
막힌 까닭
PLAN_REQUEST→VALIDATE_DECIDE→COMMIT_CHECKPOINT→REPLAY_PROVE에서 auth/status/rate/pagination/schema/idempotency/redaction 계약을 하나의 bounded run state machine으로 연결한다.을 request 전·response 후 guard로 실행하지 않았다.
다시 해보는 방법
local fake server·fixed clock·synthetic credential로 resilient API collection job과 48-state evidence lab model을 구현한다.에 fail-closed guard를 넣고 동일 synthetic 사건을 replay한다.
헷갈림 02

회복 가능한 API automation evidence loop를 완성한다의 network receipt와 durable commit 사이에서 process가 중단된다.

겉으로 보이는 막힘
재시작 뒤 이미 처리한 효과를 반복하거나 처리하지 않은 항목을 완료로 표시한다.
막힌 까닭
attempt·effect·checkpoint의 owner와 commit 순서가 하나의 상태 machine으로 정의되지 않았다.
다시 해보는 방법
stable run identity와 idempotent commit 경계를 추가하고 crash-before/after 변형을 모두 재생한다.
헷갈림 03

4-phase 48-state matrix의 request plan·policy verdict·attempt/effect ledger·durable checkpoint·redacted replay proof를 만들면서 URL query·Authorization·cookie·body의 민감 값을 그대로 직렬화한다.

겉으로 보이는 막힘
학습 artifact와 CI log에 secret 또는 private payload가 남고 증거를 안전하게 공유할 수 없다.
막힌 까닭
관찰 후 마스킹하는 방식에 의존했고 수집 전 allowlist·synthetic sentinel scan을 두지 않았다.
다시 해보는 방법
redaction을 관찰 경계 앞에 배치하고 금지 sentinel negative control로 bundle을 다시 검증한다.

03 · 내게 맞는 도움 고르기

같은 목표를 원하는 도움만큼 연습해요

안내 받으며

안내형

request plan → policy decision → effect commit → checkpoint 순서로 request plan·response facts·effect state·next action·redacted evidence 칸을 채운다.

회복 가능한 API automation evidence loop를 완성한다의 request 계획, local response, policy 결정, durable effect와 redacted receipt를 번호와 선 종류로 구분한 도식에서 색상 외에도 request·response·attempt·effect·checkpoint·verdict label과 선 종류를 함께 표시한다.
혼자 해보기

내 힘으로

aa60 회복 가능한 API automation evidence loop를 완성한다: PLAN_REQUEST→VALIDATE_DECIDE→COMMIT_CHECKPOINT→REPLAY_PROVE에서 auth/status/rate/pagination/schema/idempotency/redaction 계약을 하나의 bounded run state machine으로 연결한다.의 처음 보는 synthetic fixture를 먼저 판정한 뒤 exact Python 3.14.6·Requests 2.34.2·HTTPX 0.28.1 local harness에서 replay하고 불일치만 공식 계약으로 교정한다.

공식 문서·문법·library API는 열 수 있지만 해당 변형의 exact response sequence·retry verdict·effect state·hidden grader 판정은 먼저 제공하지 않는다.
더 도전하기

심화형

업무용 public/partner API를 주기적으로 수집·검증·publish하는 production-shaped job의 quota·schedule·partial failure 축을 하나 추가하고 같은 contract와 checkpoint를 deterministic replay한다.

회복 가능한 API automation evidence loop를 완성한다에서 throughput보다 bounded latency·중복 효과 방지·비노출·복구 가능성·운영 설명력을 우선하고 비용을 기록한다.