학습 본문으로 건너뛰기
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 · 혼자 확인해요

연습한 문제를 다시 풀며 혼자 확인하기

지금은 방금 연습한 문제를 다시 보는 시간이에요.아직 “완전히 익혔다”고 기록하지 않아요. 나중에 모양이 다른 문제도 도움 없이 풀면 그때 다시 확인할 수 있어요.

답과 과정 확인
80% 이상
내 말로 설명
80% 이상
막힌 곳 고치기
80% 이상
다른 문제에 써보기
80% 이상
스스로 확인하며 작성 중인 답0 / 4
  1. 01

    먼저 생각하기 · 기초

    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를 대체하지 않습니다.

    연습과 같은 문제를 다시 풀어 보는 시간이에요. 힌트 없이 먼저 생각해 보세요. 지금 적은 답은 바로 합격으로 기록되지 않아요.

    움직임과 비교
  2. 02

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

    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를 대체하지 않습니다.

    연습과 같은 문제를 다시 풀어 보는 시간이에요. 힌트 없이 먼저 생각해 보세요. 지금 적은 답은 바로 합격으로 기록되지 않아요.

    설명 기준과 비교
  3. 03

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

    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. 04

    새 문제에 써보기 · 새 문제

    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개 답이 남았습니다.

02 · 나중에 한 번 더

모양이 다른 문제에서도 같은 생각을 써봐요

aa60 회복 가능한 API automation evidence loop를 완성한다: PLAN_REQUEST→VALIDATE_DECIDE→COMMIT_CHECKPOINT→REPLAY_PROVE에서 auth/status/rate/pagination/schema/idempotency/redaction 계약을 하나의 bounded run state machine으로 연결한다.의 미공개 local failure variant에서 AI 없이 request plan·policy verdict·effect/checkpoint 순서와 redaction receipt를 만들고 clean replay한다.

검증 과제

AI가 제안한 회복 가능한 API automation evidence loop를 완성한다 구현에 wrong authority, timeout confusion, unsafe retry, schema bypass, duplicate effect, cursor loop, secret leak 중 하나 이상을 주입해 deterministic contract test로 찾아 수정한다.