기존 글 4,570편을 지우지 않고 공개 구성을 바꾼 기록

실제 콘텐츠 서비스의 원문 보존 작업을 백업과 운영 데이터로 재검증했습니다. 전체 4,570편과 당시 공개 12편을 구분하고, 네 상태 필드를 제외한 원문 대조와 실패 조건을 설명합니다.

실제 프로젝트 기록 기반 · AI 작성·검수 · 익명화 자료 포함 · 검수·수정 내용 보기

작성 방식과 자료 확인 기록
작성
Startup Korea 편집팀
최초 발행
2026.09.12
최종 수정
2026.09.12
자료 검토
Codex AI 검수 · 2026.09.12
재확인 권장일
2026.12.11
2026.09.12 - 00:26

익명 콘텐츠 서비스 A는 2026년 9월 9일 공개 글 구성을 바꾸면서 기존 자료를 보관하기로 했습니다. 9월 12일 백업과 운영 데이터를 다시 비교한 결과, 기존 4,570편 모두에서 비교 대상 원문 필드가 유지됐고 모두 비공개 상태였습니다. 이 글은 Codex AI가 실제 작업 코드·백업·측정 기록을 읽어 작성한 사례입니다. 사람 인터뷰, 사업 성과 조사나 독립적인 제3자 감사가 아닙니다.

문제: 전체 보관량과 당시 공개량이 달랐습니다

변경 전 데이터베이스에는 글 4,570편이 있었지만 그때 공개 조건을 만족한 글은 12편이었습니다. 따라서 ‘공개 글 4,570편을 내렸다’고 쓰면 출발점부터 틀립니다. 과제는 기존 글의 내용과 식별자를 남기고, 새 가이드 10편이 공개되는 상태로 전환하는 것이었습니다. 10편은 이 작업에서 정한 발행 범위입니다.

행 수만 같아도 보존됐다고 볼 수는 없었습니다. 같은 개수의 다른 글로 교체하거나 본문을 빈 문자열로 바꾸면 총수는 그대로입니다. 반대로 공개 상태까지 변경 전과 같아야 한다고 검사하면 의도한 비공개 전환 자체를 실패로 처리합니다. 무엇을 유지하고 무엇을 바꿀지 필드 단위로 나누는 것이 먼저였습니다.

판단: 원문과 공개 상태의 변경 범위를 분리했습니다

기존 글에서는 공개 여부, 게시 상태, 예약 여부와 수정 시각의 네 필드만 비교 예외로 정했습니다. 제목·본문 등 나머지 기존 필드는 글의 식별자별로 이전 값과 대조합니다. 공개 상태는 별도 검사에서 비공개·초안·예약 해제로 확인합니다. 원문 보존과 노출 전환은 서로 다른 검사를 통과해야 하는 조건이 됐습니다.

작업 코드는 관련 테이블이 트랜잭션을 지원하는 InnoDB인지 확인하고, 대상 행을 잠근 상태에서 변경 계획을 다시 계산하도록 구성됐습니다. 이후 비공개 위치에 백업을 기록하고 변경을 실행합니다. MySQL 트랜잭션 문서는 COMMIT을 변경 확정, ROLLBACK을 현재 트랜잭션 취소로 설명합니다. 이 원리는 변경을 묶는 근거이며, 이번 사이트의 보존 결과를 대신 증명하지는 않습니다.

과정: 백업이 있다는 사실 다음으로 비교를 설계했습니다

백업 파일에는 테이블 구조와 행 자료를 남겼고, 파일을 디스크에 반영한 뒤 SHA-256 값을 기록했습니다. 재검증에서는 이 기록과 현재 백업 파일의 해시부터 비교했습니다. PHP의 hash_file 문서는 파일 내용의 해시 계산을 설명합니다. 파일명이 같다는 확인보다 구체적이지만, 해시 일치만으로 운영 데이터가 보존됐다는 결론을 내리지는 않았습니다.

그다음 변경 전 백업의 글을 한 편씩 읽어 같은 식별자의 운영 행을 찾았습니다. 앞서 정한 네 필드를 제외한 모든 기존 필드의 값이 같은지 비교하고, 행 누락과 비공개 상태를 따로 셌습니다. 이번 사례를 작성하면서도 이 대조를 읽기 전용으로 다시 수행해 4,570편 보존, 누락 0편을 확인했습니다.

반복 실행의 실패 조건도 코드에 들어 있습니다. 기존 주소가 다른 글에 속하거나, 새 발행 묶음 중 일부만 존재하거나, 이미 발행한 입력과 본문이 달라지면 그대로 덮어쓰지 않고 중단합니다. 한 번 성공한 뒤 다시 실행할 때 새 글이 중복 생성되는 문제를 막기 위한 조건입니다. 나중에 본문을 고칠 일은 원래 발행 입력을 바꾸는 작업과 분리했습니다.

실측 결과: 4,570편의 보존과 비공개를 각각 확인했습니다

확인 항목결과분모·시점
변경 전 전체 글4,570편9월 9일 최초 백업
변경 전 공개 글12편동일 백업의 공개 조건 충족
원문 필드 보존4,570/4,570편네 변경 필드를 제외한 대조
기존 글 비공개4,570/4,570편9월 12일 재검증
처음 새로 발행한 가이드10편9월 9일 발행 기록
익명 서비스 A의 기존 글 4570편 보존과 비공개 전환 측정 요약
실제 측정값으로 재구성한 요약 이미지입니다. 과거 관리자 화면을 촬영한 자료는 아닙니다.

익명 측정 JSON 내려받기에는 9월 12일 00:10:41 한국 시간의 관측 시각, 비교 예외 필드와 한계가 있습니다. 원문과 계정 정보가 담긴 전체 백업은 공개하지 않았습니다.

다른 팀이 재사용할 순서와 남은 한계

  1. 전체 저장량과 현재 공개량을 따로 집계하고, 보존할 필드와 변경할 필드를 적습니다.
  2. 대상 식별자·주소 충돌·이미 실행된 범위를 확인한 뒤, 같은 변경 기준 시점의 백업을 남깁니다.
  3. 행 수와 함께 식별자별 필드 값, 누락 여부, 목표 공개 상태를 각각 검증합니다.
  4. 본문 보존 검사와 별도로 실제 URL, 목록, 검색과 피드에서 의도한 공개 상태인지 확인합니다.

트랜잭션이 끝난 뒤 캐시나 사이트맵 갱신이 실패하는 경우도 있습니다. 그때 데이터베이스 변경까지 취소됐다고 생각하고 처음부터 재실행하면 상태 판단이 어긋납니다. 이 작업 코드는 확정 후 후속 조치 실패를 별도로 알리도록 되어 있습니다. 이 사례의 실측은 원문 필드와 비공개 상태의 대조이며, 서버 전체를 잃은 상황의 복구 훈련이나 검색 유입·광고 승인 효과를 측정한 결과는 아닙니다.

REVIEW & REVISION

검수와 수정 기록

아래는 실제로 수행한 AI 검수 기록입니다. 사람 검수자의 확인이나 현장 취재로 표시하지 않습니다. 출처의 설명, 자체 제안, 관측한 결과의 범위를 나누어 확인했습니다.

2026-09-12 00:26:08 · Codex AI 검수

실제 최초 백업의 SHA-256과 전체 4,570행·당시 공개 12행을 확인하고 현재 DB의 기존 4,570행을 직접 비교했습니다. 예외 4개 필드 외 원문값 4,570/4,570 보존, 비공개 4,570/4,570, 누락 0을 재확인했습니다. 공개 측정 JSON과 작업 코드의 트랜잭션·중복 방지·확정 후 후속 실패 범위를 대조한 AI 작성 사례이며, 사람 인터뷰·독립 감사·성과 측정은 아닙니다.

확인한 항목

  • 실제 작업 증거통과

    최초 백업과 결과 파일, 현행 발행 코드 및 archive-data-v2.json을 읽었습니다. 코드의 동작 설명과 실제 결과 수치를 구분했습니다.

  • 원문 보존 재대조통과

    SELECT로 운영 글을 읽고 최초 백업의 기존 4,570개 식별자별 필드값을 비교했습니다. visibility/status/is_scheduled/updated_at을 제외한 원문은 4,570행 보존, 행 누락 0, 비공개 4,570, 당시 공개 12였습니다.

  • 수치·분모통과

    보존과 비공개는 각각 4,570/4,570입니다. 신규 10편은 9월 9일 첫 발행 범위로 표시했으며 현재 전체 공개 글 수가 영구히 10이라는 주장으로 쓰지 않았습니다.

  • 자료 한계명시

    PNG는 측정 요약 재구성임을 설명하고 비공개 원본 백업을 공개하지 않았습니다. 서버 전체 복구 시험·검색 유입·광고 승인 성과를 측정했다고 주장하지 않습니다.

수정 내용

최초 발행 검수. 위 항목과 공개 증거를 확인했으며 발행 후 수정 기록은 아직 없습니다.

출처와 본문의 대조

  1. MySQL 8.4 Reference Manual — START TRANSACTION, COMMIT, and ROLLBACK 본문 대조 확인

    본문의 주장 트랜잭션의 COMMIT은 변경을 확정하고 ROLLBACK은 현재 트랜잭션 변경을 취소합니다.

    확인 근거 15.3.1의 각 명령 정의와 트랜잭션을 지원하지 않는 테이블의 한계를 직접 읽었습니다.

    적용 범위 이 프로젝트의 백업·4,570편 보존 여부는 별도 작업 증거로 확인했습니다. 문서 자체가 사이트의 복구 가능성을 보증하지 않습니다.

  2. PHP Manual — hash_file 본문 대조 확인

    본문의 주장 파일의 내용을 이용해 선택한 알고리즘의 해시를 계산할 수 있습니다.

    확인 근거 함수 설명·algo 매개변수와 SHA-256 사용 예제를 직접 확인했습니다.

    적용 범위 파일 해시 일치와 운영 행 보존은 서로 다른 검사입니다. 해시가 서버 전체 복구 시험이나 자료의 진실성을 대신 입증하지 않습니다.

  3. 원문 보존 실제 측정 요약 재구성 이미지 본문 대조 확인

    본문의 주장 실제 측정 요약을 화면으로 재구성한 이미지입니다. 과거 운영 화면이나 장애 당시 응답을 촬영한 자료가 아닙니다.

    확인 근거 이미지 파일을 열어 백업·실측 요약과 일치하고 재구성 표시가 있는지 확인했습니다.

    적용 범위 사이트명, 원문 제목·주소, 사용자 식별자와 서버 경로를 제외한 익명 수치만 표시합니다. 독립 감사나 사업 성과를 입증하지 않습니다.

  4. 기존 글 보존·비공개 대조 익명 측정 JSON 본문 대조 확인

    본문의 주장 9월9일 최초 백업과 9월12일 운영 데이터를 비교한 요약. 공개·상태·예약·수정시각 네 필드를 원문 대조에서 제외했습니다. 전체 백업이나 재해 복구 시험은 아닙니다.

    확인 근거 측정 JSON의 관측값과 시각을 본문 수치·설명과 대조했습니다.

    적용 범위 사이트명, 실제 분류명, 원문 본문·제목·주소, 사용자·계정 정보와 비공개 백업 경로를 제외했습니다. 독립 감사나 사업 성과를 입증하지 않습니다.

출처와 확인 자료

아래 자료는 사실 확인과 추가 검토에 사용한 원문입니다. 본문의 해석과 조언은 Startup Korea 편집팀의 견해일 수 있습니다.

  1. MySQL 8.4 Reference Manual — START TRANSACTION, COMMIT, and ROLLBACK 공개 원문 자료

    [원문 확인] 15.3.1의 각 명령 정의와 트랜잭션을 지원하지 않는 테이블의 한계를 직접 읽었습니다. 이 프로젝트의 백업·4,570편 보존 여부는 별도 작업 증거로 확인했습니다. 문서 자체가 사이트의 복구 가능성을 보증하지 않습니다.

  2. PHP Manual — hash_file 공개 원문 자료

    [원문 확인] 함수 설명·algo 매개변수와 SHA-256 사용 예제를 직접 확인했습니다. 파일 해시 일치와 운영 행 보존은 서로 다른 검사입니다. 해시가 서버 전체 복구 시험이나 자료의 진실성을 대신 입증하지 않습니다.

  3. 원문 보존 실제 측정 요약 재구성 이미지 공개 원문 자료

    [원문 확인] 실제 공개 자료를 열어 본문의 수치와 표시 범위를 대조했습니다.

  4. 기존 글 보존·비공개 대조 익명 측정 JSON 공개 원문 자료

    [원문 확인] 실제 공개 자료를 열어 본문의 수치와 표시 범위를 대조했습니다.

Startup Korea 편집팀 Startup Korea 편집팀은 한국 스타트업 생태계의 정책, 투자, 제품, 운영 및 글로벌 진출 주제를 공개 자료와 공식 문서를 바탕으로 정리합니다. 확인 가능한 출처가 없는 투자금, 시장 규모, 인터뷰, 통계는 사실처럼 게시하지 않으며 정정 요청을 접수하면 근거 자료를 확인해 반영합니다.