중복 글과 빈 글이 올라가지 않게 점검하기
주소 중복·작업 재실행·내용 중복을 나누고 오류 기록에 맞춰 중지와 복구 순서를 정합니다.
자동화는 정상일 때뿐 아니라 같은 작업이 다시 실행될 때의 결과도 확인해야 합니다. 주소 중복과 반복 요청은 코드로 일부 막을 수 있지만, 비슷한 글을 여러 편 쓰는 문제는 내용을 비교해야 합니다. 오류가 생기면 먼저 반복 작업을 멈추고 현재 저장 상태와 실제 공개 결과를 나누어 봅니다.
오늘 확인할 질문
예약 작업이 반복되거나 API가 실패해도 중복 글과 빈 글이 공개되지 않게 무엇을 확인하나요?
서로 다른 세 가지 중복을 구분합니다
첫 번째는 같은 슬러그를 가진 글을 두 번 저장하는 경우입니다. 주소 하나가 두 본문을 가리키면 어떤 글을 보여 줄지 충돌하므로 D1에서 고유값으로 제한합니다. 기존 글을 수정하려는 상황이라면 새 글 입력이 아니라 수정 버튼을 사용합니다. 오류를 없애려고 슬러그 고유 조건을 제거하지 않습니다. 새 글이라면 실제로 다른 질문을 다루는지 확인한 뒤 별도 주소를 정합니다.
두 번째는 같은 글감에 대해 생성 요청을 여러 번 보내거나 같은 예약 작업을 다시 실행하는 경우입니다. 예제는 대기 글감만 처리 중으로 바꾸고, 예약 상태이며 시간이 지난 글만 공개로 바꿉니다. 이미 완료되거나 공개된 항목은 같은 조건에서 다시 처리하지 않습니다. 상태를 확인하며 바꾸는 이유는 버튼이나 서버 일정이 반복되어도 기존 작업 결과를 유지하기 위해서입니다.
세 번째는 제목과 주소는 다르지만 답이 같은 글을 여러 편 만드는 경우입니다. ‘케이블 정리 요령’과 ‘케이블 정리 노하우’가 같은 사진과 순서로 끝난다면 기술적으로는 두 글이지만 방문자에게는 반복일 수 있습니다. 이 예제는 의미 중복을 자동 판정하지 않습니다. 글감의 질문, 핵심 답, 사례와 자료를 나란히 비교해야 합니다. 단어를 바꾸는 것만으로 새 콘텐츠가 되는 것은 아닙니다.
생성 실패와 공개 실패를 같은 방식으로 고치지 않습니다
국내 공개 자동화 실습기에서는 잘못된 Webhook 주소와 비어 있는 중간 결과 때문에 다음 단계가 실패한 사례를 확인할 수 있습니다. 이 예제에는 별도 자동화 도구를 붙이지 않으므로 관리자 실행 기록에서 생성과 발행을 나누어 확인합니다. 발행만 실패했다면 이미 저장된 원고와 사진을 재사용하세요. 실패한 마지막 단계만 고치면 이미 끝난 유료 생성을 반복하는 비용을 줄일 수 있습니다.
| 문제 | 유지할 것 | 고칠 것 |
|---|---|---|
| 초안 응답 오류 | 입력 자료·사용량 기록 | 모델·키·자료 조건 |
| 사진 저장 오류 | 이미 작성한 본문 | 파일 형식·크기 |
| 예약 미발행 | 검수된 글 | 예약·자동화·서버 실행 |
| 잘못된 공개 | 원인 확인용 백업 | 공개 중단 후 내용 수정 |
기본 입력 검사가 막는 범위를 이해합니다
제목이 없거나 주소 형식이 맞지 않으면 저장 단계에서 오류가 납니다. 본문 길이가 지나치게 크거나 요약이 제한을 넘는 경우도 입력을 확인합니다. 이미지 경로는 public/images의 허용된 파일 형식으로 제한하고 실제 파일이 배포되었는지 봅니다. 이는 잘못된 데이터가 들어오는 상황을 줄이는 검사입니다. 글의 주장과 사진 권리를 자동으로 판단하는 검사는 아닙니다.
검수 완료 단계에서는 제목과 본문의 기본 분량, 이미지 설명을 확인합니다. 빈 글에 공백을 많이 넣어도 내용이 있다고 보지 않습니다. 다만 무의미한 문장을 길게 넣으면 단순 길이 검사를 통과할 수 있습니다. 그래서 사람의 검수 단계가 남아 있습니다. 기술 기준과 콘텐츠 품질 기준을 같은 것으로 취급하지 않아야 자동화의 한계를 이해할 수 있습니다.
AI 응답이 미완료이거나 필요한 항목이 없으면 초안을 정상 결과로 저장하지 않습니다. 응답이 거절된 상태도 별도로 처리합니다. JSON 모양이 틀렸는데 빈 문자열로 대체해 공개하는 방식은 사용하지 않습니다. 오류를 드러내고 자료나 설정을 확인하는 편이 빈 글을 발행한 뒤 수습하는 것보다 낫습니다. 실패를 숨기는 것이 안정적인 운영은 아닙니다.
같은 작업을 다시 실행했을 때 기대할 결과
예약 시간이 지난 글 한 편이 공개되었다면 ‘예약 발행 지금 확인’을 다시 눌러도 새 글이 생기지 않아야 합니다. 기존 글의 상태가 이미 published이므로 예약 대상에서 빠집니다. 공개 글 수와 글 id를 비교하면 같은 항목이 유지되는지 볼 수 있습니다. 작업을 다시 눌렀다는 이유로 공개 날짜가 계속 새 날짜로 바뀌는지도 확인합니다. 변경되지 않아야 할 값과 바뀌어야 할 값을 나누어 봅니다.
완료된 글감에서 생성 요청을 다시 보내면 대기 상태가 아니라는 이유로 거절되어야 합니다. 새로운 초안을 원한다면 기존 결과를 왜 사용할 수 없는지 먼저 판단합니다. 문장 몇 개를 고치면 되는 문제라면 직접 수정하는 편이 비용이 적을 수 있습니다. 같은 자료를 새 글감으로 등록하면 추가 요청을 만들 수 있으므로 그 행동은 단순 새로 고침과 다릅니다.
공개 미리보기입니다. 전체 학습은 로그인 후 수강 조건에 따라 이용할 수 있습니다.