발행 상태 검증, 재발행 버튼을 누르기 전에 확인할 4가지

AI에게 발행을 맡겼다면 보고를 읽은 뒤 실제 공개 상태를 따로 확인해야 한다. 공개 URL, 화면의 공개 상태, 게시 시각, 중복 URL이 맞는지 보고 나서 재시도를 결정한다. 2026년 10월 13일에는 중간에 멈춘 발행 작업이 발행 진행 중이라고 남긴 글이 후속 확인에서 이미 공개돼 있었다.

이 확인은 블로그 제작과 발행을 자동화하는 개발자를 위한 절차다. 목표는 완료 문구를 받는 데 있지 않다. 의도한 글이 의도한 상태로 남아 있고, 같은 글을 다시 올릴 필요가 없는지 판단하는 데 있다.

아직 발행하지 않았다는 보고를 받으면 바로 다시 올려도 될까?

당시 앞 작업은 실행 중간에 중단됐다. 마지막 보고는 앞선 시도가 발행에 도달하지 않았고, 발행은 진행 중이라는 내용이었다.

몇 분 뒤 시작한 후속 작업은 중복 확인부터 했다. 그 글은 이미 공개돼 있었고, 후속 작업은 공개 페이지에서 정확한 제목을 확인한 뒤 새 글을 만들지 않고 멈췄다.

여기서 확인한 결과는 단순하다. 재발행이 필요하다는 전제로 시작해도 실제 글이 공개돼 있으면 멈춰야 한다. 보고를 기준으로 새 글을 만들었다면 필요 없는 실행으로 이어질 상황이었다.

발행 버튼이 언제 눌렸는지, 어떤 시도가 공개를 끝냈는지는 남은 영수증만으로 확정할 수 없다.

그래도 다음 행동을 정하는 데 필요한 사실은 남아 있다. 마지막 보고는 완료가 아니라 진행 중이었고, 실제 상태는 공개였다.

최소 증거는 네 가지로 나눈다

공개 URL은 결과물을 찾는 기준으로 남긴다. 주소만 복사하지 말고 그 주소에서 의도한 제목과 본문이 보이는지 확인한다. 다른 글을 열어 놓은 채 성공으로 처리하지 않도록 대상 원고와 함께 대조한다.

화면의 상태는 별도 항목이다. 관리 목록에서 공개인지 예약인지 초안인지 적고, 공개가 목표라면 독자가 보는 페이지도 확인한다. 편집 화면에서 원고가 보이는 것과 공개 페이지에서 글이 보이는 것을 같은 증거로 취급하지 않는다.

게시 시각에는 날짜와 시간대를 같이 남긴다. 예약이 목표라면 요청한 예약 시각과 비교하고, 즉시 공개가 목표라면 공개된 글의 표시와 관리 화면 설정을 대조한다. 시각을 읽지 못했다면 빈칸을 성공으로 바꾸지 말고 미확인으로 둔다.

마지막은 중복 URL이다. 같은 제목의 후보가 있으면 각각 열어 본문과 시각을 대조한다. 서로 다른 주소에서 같은 발행 대상이 발견되면 완료로 닫지 않는다. 이번 작업의 목표는 글 하나를 공개하는 것이지 후보 주소 중 하나를 골라 성공이라고 쓰는 것이 아니다.

재시도 전에 따라 할 확인 순서

다음은 보고를 받은 뒤 적용할 권장 절차다. 새 글을 만들거나 발행 버튼을 누르기 전에 조회부터 끝낸다.

  1. 목표를 적는다. 원고 제목과 본문의 식별 가능한 구간, 즉시 공개인지 예약인지, 요청한 시각과 시간대를 기록한다. 기존 글 수정이면 대상 URL도 함께 적는다.
  2. 보고를 따로 보관한다. 완료, 미완료, 진행 중이라는 문구를 실제 상태 항목에 복사하지 않는다. 보고는 비교할 입력으로 남긴다.
  3. 관리 목록과 공개 URL을 읽는다. 제목으로 후보를 찾고 각 글의 상태를 기록한다. 공개 URL에서는 제목과 본문을 대조한다. 예약 글은 예정 시각의 설정을 확인하되 현재 공개됐다고 쓰지 않는다.
  4. 게시 시각과 중복을 대조한다. 날짜·시각·시간대를 목표와 비교하고, 같은 원고의 다른 URL이 있는지 확인한다. 후보를 찾은 조회 범위도 적는다.
  5. 판정한 뒤 행동한다. 목표 상태가 확인되면 멈춘다. 보고와 실제 상태가 다르고, 필요한 발행 단계가 아직 끝나지 않았다는 근거가 있을 때만 재시도를 검토한다.

조회 범위를 적는 이유도 있다. 일부 목록만 읽고 중복이 없다고 결론 내리지 않기 위해서다. 확인한 범위를 넘어선 글의 존재 여부는 미확인으로 남긴다. 찾지 못했다는 결과와 존재하지 않는다는 결론을 구분한다.

보고가 다르다고 항상 재발행하는 것은 아니다

보고와 관찰다음 행동
미완료 보고지만 목표한 글의 공개 상태가 확인됨재발행하지 않고 보고를 정정한다.
완료 보고지만 목표한 공개 상태가 확인되지 않음원인과 남은 단계를 확인한 뒤 재시도를 검토한다.
보고와 목표 상태가 일치함상태에 맞춰 종료하거나 기존 작업을 이어 간다.
URL·상태·시각 중 일부가 미확인임조회를 보완한다. 미확인을 실패로 바꿔 재발행하지 않는다.
같은 발행 대상이 다른 URL에서도 확인됨추가 발행을 멈추고 중복 처리 범위를 정한다.
진행 중 보고 뒤 작업이 중단됨미완료로 간주하지 않는다. 공개 목록과 예약 목록부터 조회한다.

미완료 보고와 실제 공개 상태가 다를 때의 수정 대상은 보고일 수 있다. 반대로 완료 보고와 실제 미완료 상태가 다르면 실행을 점검해야 한다. 불일치는 재시도의 출발 조건이지, 버튼을 다시 누르라는 명령이 아니다.

이미 글이 공개돼 있는데 내용만 틀렸다면 새 발행과 기존 글 수정도 구분한다. 먼저 어떤 URL을 고칠지 정한다. 공개됐다는 사실을 지우고 처음부터 실행하는 방식으로 문제를 덮지 않는다.

완료 영수증에는 판단 근거를 남긴다

복잡한 도구부터 만들 필요는 없다. 다음 항목을 같은 기록에 채워 두면 후속 작업이 보고와 관찰을 다시 대조할 수 있다. 아래는 실제 사건의 값이 아니라 기록용 양식이다.

  • 목표: 즉시 공개 또는 예약, 제목, 요청 시각·시간대.
  • 에이전트 보고: 완료·미완료·진행 중 중 실제 보고한 상태.
  • 관찰: 공개 URL, 제목·본문 일치 여부, 관리 화면 상태.
  • 시각: 화면에서 읽은 게시 또는 예약 시각과 시간대.
  • 중복: 조회 범위, 같은 발행 대상의 다른 URL 유무.
  • 판정: 종료·추가 조회·재시도 검토 중 하나와 이유.

모든 항목을 길게 설명할 필요는 없다. 다만 미확인 항목을 숨기지 않아야 한다. 다음 작업이 필요한 것은 자신 있는 완료 문장이 아니라 어느 글을 어디까지 확인했는지 알 수 있는 기록이다.

기존 검증과 어디가 다른가?

텔레그램 중복 실행 글은 메시지 ID와 처리 영수증을 기준으로 같은 전달 건을 다시 실행하지 않는 구조를 다뤘다. SmartEditor 글은 붙여넣은 전체 본문과 저장 뒤 다시 연 결과를 대조했다. 제작·검수 분리 글은 원고와 근거를 읽고 PASS 전 발행을 막는 절차였다.

이번 기준은 그 다음에 둔다. 요청이 한 번 전달됐는지, 원고가 맞는지와 별도로 실제 발행 상태를 읽는다. 앞 단계가 통과했다는 기록을 마지막 단계의 공개 증거로 대신 쓰지 않는 것이 핵심이다.

결론: 보고를 고칠지 실행을 고칠지 먼저 정한다

이번 기록은 중단된 작업의 마지막 보고와 실제 공개 상태가 어긋난 한 사례다. 이 절차로 중복이 얼마나 줄었는지, 확인 시간이 얼마나 들었는지는 측정하지 않았다. 당시 실제 게시 시각도 확보한 영수증만으로 확정하지 않는다.

결국 재시도의 기준은 실패처럼 들리는 문구가 아니라 확인한 실제 상태다. 다음 발행 작업에서는 공개 URL, 화면 상태, 게시 시각, 중복 URL부터 한 기록에 남긴다. 이미 목표한 상태라면 다시 올리지 않고 멈추면 된다.

다음 글

댓글

이 블로그의 인기 게시물

AI 코딩 스킬, 많을수록 좋을까 — 자산이 부채로 바뀌는 손익분기

M4 Max 128GB 로컬 LLM 4종 속도 비교 — 실측 기록과 한계

Opus 5는 더 잘 쓰고, 더 AI답게 쓴다 — 세 모델 첫날 실측