← 아티클 목록

개발일지WhoAmI — 공부 기록을 발행 가능한 형태로 좁힌 파이프라인 →

관리자 저장에서 오탈자까지 「업데이트」로 표시되지 않게 했다

관리자 편집 저장에서는 공개 상태·내용 변경·게시일 이후라는 세 조건으로 수정일을 갱신한다. 볼트 재반입은 별도 규칙이라는 경계와 수정 크기별 공개 원칙을 함께 정리했다.

목차 3

2026-08-09 정정 — 세 가지 자동 갱신 조건은 관리자 편집 저장에만 적용된다. 강제 재반입은 별도 규칙으로 수정일을 갱신하며, 두 경로의 날짜 기준과 BOM이 있는 글의 사이트맵 수정일 처리도 바로잡았다.

게시한 글은 계속 고치게 된다. 오탈자를 발견하고, 링크가 죽어서 갈고, 문장을 다듬는다. 관리자 편집기에서 수정일을 자동으로 올리게 만들었더니, 며칠 써 보니 글 목록이 온통 「업데이트」 표시로 덮였다. 실제로 바뀐 것은 조사 하나였다.

이 날짜는 화면의 표시 하나로 끝나지 않는다. 이 사이트의 사이트맵 lastmod와 글 상세의 구조화 데이터 dateModified는 updatedAt을 쓰고, 값이 없으면 publishedAt으로 돌아간다. 그러니까 조사 하나를 고칠 때마다 수정일 신호도 함께 바꾸고 있었던 셈이다. 반대로 updatedAt을 빼 두면 실제로 결론이 바뀐 글도 게시일을 마지막 날짜로 내보낸다.

관리자 저장에서는 세 가지를 모두 만족할 때만 올린다

관리자 편집 저장의 자동 갱신은 켜 두되 조건을 걸었다. 세 가지를 모두 만족할 때만 한국 표준시 기준 오늘 날짜가 들어간다.

  1. 저장 전후 모두 공개 상태다. 초안을 처음 공개하는 저장은 「게시」이지 「수정」이 아니고, 공개 글을 초안으로 돌리는 저장도 자동 갱신하지 않는다.
  2. 제목·설명·본문 중 하나가 실제로 달라졌다. 태그를 만지거나 대표글 표시를 바꾼 저장은 해당하지 않는다.
  3. 오늘이 게시일보다 뒤다. 올린 당일 손보는 것까지 업데이트로 표시하지 않는다.

세 번째가 실제로는 가장 자주 걸린다. 글을 올린 날은 렌더링을 확인하면서 서너 번 저장하게 되는데, 그게 전부 수정 이력이 되면 첫날부터 「게시일 ≠ 수정일」인 글이 된다.

조건에 걸려 날짜가 올라가면 저장 결과 줄에 그 사실이 함께 뜬다. 자동으로 처리하되 무엇을 했는지는 매번 말하게 했다. 조용히 바뀌는 값은 나중에 그 값을 믿을 수 없게 된다.

판단을 자동화하지 않고 스위치를 남겼다

자동 판정을 더 똑똑하게 만드는 길도 있었다. 바뀐 글자 수를 세거나, 문단 단위로 비교해서 크기를 재는 식이다. 그 길은 가지 않았다.

기준이 「얼마나 바뀌었나」 하나가 아니라 **「독자에게 새 정보나 달라진 판단을 주는가」**이기 때문이다. 한 문장만 고쳐도 권고가 뒤집히면 알려야 한다. 반대로 여러 문장의 표현만 다듬고 근거와 의미가 그대로라면 날짜를 올릴 필요가 없다. 결론은 같아도 근거나 설명을 보강했다면 수정일은 남긴다. 이 구분은 글자 수만으로 나오지 않는다.

그래서 관리자 편집기의 자동 갱신 옆에 체크박스를 뒀다. 오탈자 수정이면 체크를 끄고 저장한다. 직접 날짜를 정하고 싶으면 체크를 끄고 값을 넣는다. 기본값은 켜져 있어서, 관리자에서 기존 글을 저장하면 위의 세 조건이 판단한다.

볼트 재반입은 이 판단을 공유하지 않는다. scripts/lib/import-core.mjs는 기존 slug를 --force로 덮어쓰면 제목·설명·본문의 차이나 공개 상태를 비교하지 않고 반입일로 updatedAt을 갱신한다. 관리자 편집은 작은 수정을 자주 저장하는 경로이고, 재반입은 노트 전체를 다시 들여오는 명시적 덮어쓰기라서 현재 정책이 다르다.

「변경 이력」 절을 모든 글에 붙이는 방식도 버렸다. 게시된 수정의 세부 diff는 Git에서 확인할 수 있지만, 아직 커밋하지 않은 변경이나 Git 밖의 원본까지 자동으로 보존되는 것은 아니다. 대신 수정의 크기를 네 칸으로 나눠 공개 글에 남길 것을 다르게 정했다. 오탈자는 아무것도 남기지 않고, 내용 보강은 날짜만, 결론이 바뀌면 날짜와 본문 맨 위의 업데이트 노트 한 줄, 주제가 달라질 정도면 새 글로 분리하고 옛 글에서 링크한다.

틀린 내용을 조용히 지우지 않는다

결론이 바뀐 경우에만 쓰는 업데이트 노트에는 규칙을 하나 더 걸었다. 틀린 내용을 조용히 지우지 않는다. 본문의 오류는 바로잡되, 그 글을 이미 읽고 따라 한 사람도 변경 사실을 알 수 있도록 위에 정정 내용을 남긴다. 무엇이 왜 바뀌었는지(버전 변경·재현 실패·공식 문서 갱신)와 영향 범위를 함께 적는다.

같은 주제를 정정하거나 보강할 때는 기존 slug를 유지한다. 주제가 달라질 정도라면 기존 글의 주소를 억지로 바꾸지 않고 새 글로 분리해 서로 연결한다.

2026-08-09 현재 여러 글의 결론과 근거를 고치면서 상단 정정 공지는 실제로 사용하고 있다. 다만 이번 검토에서는 관리자 저장과 볼트 재반입을 실행하지 않았고, 세 조건의 분기별 자동화 테스트도 저장소에 없다. 여기서 직접 확인한 것은 현재 코드의 조건문, 재반입의 별도 갱신 규칙, 화면·사이트맵·구조화 데이터가 updatedAt을 소비하는 연결 관계까지다.

함께 보면 좋은 글

이 기록과 태그가 겹치는 아티클입니다.