CodeNCash LABCodeNCash ↗

실험 노트

발행 응답을 놓쳤다면, 재시도 전에 확인할 것

성공인지 실패인지 모르는 작업을 다루는 방법. 원격 상태와 재시도를 분리해서 생각하기.

CodeNCash공개 연구 노트

자동화 시스템에서 요청 실패는 작업 실패와 같은 뜻이 아닙니다. 서버가 글을 만든 직후 연결이 끊기면, 클라이언트에는 오류가 보이지만 WordPress에는 이미 글이 있을 수 있습니다.

이 글은 Blog Studio의 발행 흐름을 점검하며 정리한 설계 노트입니다. 모든 운영 장애 시나리오를 실환경에서 검증했다는 뜻은 아닙니다.

먼저 결과가 있는지 확인합니다

바로 새 작업을 만들기보다 기존 작업 식별자로 원격 글을 찾습니다. 원격 글을 찾았다면 제목만 비교하지 않고 해당 작업에서 생성한 글이라는 표시도 확인해야 합니다.

상황 먼저 확인할 것
인증 단계에서 실패 계정과 권한, 게시 요청 실행 여부
발행 응답이 없음 동일 작업의 원격 글 존재 여부
글은 있지만 확인 실패 게시 상태와 작업 표시
일부 이미지 업로드만 성공 남은 단계와 기존 파일 연결

상태와 원고를 함께 봐야 합니다

작업 상태가 재시도 가능하다고 해서 바로 발행할 수 있는 것은 아닙니다. 원고가 있는지, 검수가 끝났는지, 취소된 작업인지 다시 확인해야 합니다.

로컬 재현에서는 취소된 작업의 API 재시도가 원고 없는 발행 경로로 들어갈 수 있었습니다. 이는 UI 버튼을 숨기는 것과 서버의 상태 전이를 제한하는 것이 별개라는 사례입니다. 이 기록을 작성한 분석 시점에는 수정 완료로 판단하지 않았습니다.

계정 변경과 다시 쓰기는 별도 결정입니다

이전 계정으로 글이 만들어졌을 가능성이 있는 상태에서 다른 계정으로 다시 요청하면 원격 중복 방지 범위가 달라질 수 있습니다. 불명확한 발행을 단순한 다시 쓰기로 우회해서는 안 됩니다.

반면 게시 요청 전 인증에 실패했다면 동일하게 취급할 필요는 없습니다. 어떤 단계까지 실행됐는지 기록해야 복구 판단도 구체적으로 할 수 있습니다.

실험에는 기대 결과를 먼저 적습니다

실패를 재현하는 테스트가 통과했다는 것은 결함이 고쳐졌다는 뜻이 아닙니다. 수정 후에는 잘못된 요청이 거부되고, 정상 작업은 진행되는 기대 결과를 별도로 검증해야 합니다.

실험 기록 양식에는 검증 단계, 입력, 예상 결과, 실제 결과, 미확인 항목을 나눠 적을 수 있습니다. 비밀키나 실제 계정 정보는 기록에 포함하지 않습니다.

이 기록은 Blog Studio 프로젝트의 일부입니다.

프로젝트 전체 기록 보기 →