중복 기사를 하나로 합치면 원고는 정돈된다. 하지만 이전 주소를 저장한 독자는 아직 그 주소로 들어온다. K-POP PULSE의 주소 규칙은 본문을 바꾸어도 공개 주소는 유지하고, 합칠 때는 옛 주소가 정본으로 이어지게 하라고 남겼다.
나는 규칙 문서의 완료 표시만으로 현재 링크까지 모두 살아 있다고 쓰지 않는다. 8월 7일 기록에는 여덟 쌍의 통합과 실제 이동 확인이 있다. 이번에 선택한 주소를 다시 읽었을 때 일부 이동은 남아 있었지만, 당시 통합했던 옛 주소 하나는 404였다. 두 시점의 결과를 함께 설명한다.
제목을 고치는 일과 주소를 바꾸는 일은 다르다
제목과 분류는 독자에게 더 잘 설명하도록 바뀔 수 있다. 주소는 다른 페이지와 피드, 독자가 저장한 링크가 이 글을 찾는 연결이다. 제목을 조금 다듬었다는 이유로 주소도 새로 만들면 이미 알려진 연결을 별도로 처리해야 한다.
초기 문서는 상세 주소에서 날짜와 분류를 강하게 묶지 않으려는 선택을 남겼다. 나는 이를 모든 홈페이지에 같은 주소 모양을 강제하는 법칙으로 쓰지 않는다. 그 사이트에서 재분류와 개정이 어떻게 일어나는지 읽고, 이미 공개한 주소의 책임을 어떤 방식으로 유지할지 정하는 문제다.
통합할 때는 남겨 둘 글과 옛 글을 연결했다
당시 통합 서비스는 자기 자신으로 합치거나 공개되지 않은 대상, 다시 다른 글로 합쳐진 대상을 거부했다. 중복 글의 상태를 통합으로 바꾸고 정본의 식별자를 연결했다. 삭제해 주소가 사라지는 흐름과는 다른 처리를 만들려는 코드였다.
초기 테스트는 맞지 않는 주소 조건으로 404를 받았고, 후속 작업에서 테스트 경로를 고쳤다. 실제 운영 통합 후에는 여덟 옛 주소의 301과 정본의 200을 각각 확인한 출력이 남아 있다. 나는 요청의 성공 상태만 읽는 것과 독자가 들어갈 주소를 확인하는 것을 구별한다.
현재 선택한 응답에는 성공과 끊김이 함께 있었다
이번 읽기에서 정본 하나는 200과 자기 주소의 canonical을 반환했다. 끝 슬래시 변형과 날짜형 옛 주소는 그 정본으로 301을 보내고, 추적 쿼리가 붙은 요청은 쿼리 없는 정본을 선언했다. 선택한 몇 경로에서 어느 연결이 유지되는지 읽은 결과다.
하지만 같은 회차에 읽은 옛 통합 주소 하나는 이동 없이 404였다. 당시 여덟 이동의 성공을 지금 전체 보존의 증거로 옮길 수 없었다. 원인을 조사하거나 원본 사이트를 고친 결과는 아직 아니다. 나머지 일곱 옛 통합 주소의 현재 상태도 이번 검사로 확인했다고 말하지 않는다.
이동 응답과 정본 선언은 서로 다른 출력이다
이동 응답은 다음에 요청할 위치를 전달한다. canonical은 그 문서가 대표로 제시하는 주소이며, 검색 처리는 여러 신호를 함께 사용할 수 있다. 선언을 넣었다는 사실만으로 옛 주소가 실제로 이동하거나 검색 순위가 보장되는 것은 아니다.
나는 옛 요청의 상태와 목적지, 그 목적지의 본문과 정본 선언을 따로 비교하려 한다. 자동 이동을 따라간 최종 200만 읽으면 첫 응답이 무엇이었는지 놓칠 수 있다. 같은 제목이 보인다는 결과보다 기대한 글로 이어지는 경로를 읽을 수 있어야 한다.
계속 확인할 연결을 작게 명시한다
아래는 현재 새로 만든 주소 검토 모델이다. 원본 이동 설정이나 이미 적용한 새 프로그램은 아니다. 남겨 둔 정본과 옛 주소의 실제 응답을 연결하고, 끊김이 있으면 원인을 확인하기 전 완료로 부르지 않도록 남긴다.
다른 홈페이지에서는 통합과 삭제, 정정의 이유를 구별해 기록한다. 옛 주소가 어느 글로 이어져야 하는지, 임시 응답인지 영구 이동인지, 목적지가 실제 공개 상태인지 검사할 목록으로 둔다. 글이 늘고 운영 환경이 바뀔 때도 이전 연결을 다시 찾아갈 수 있어야 한다.
코드와 구현 살펴보기
새 설명용 주소 검토 모델. 운영 이동 설정이나 검색 성과가 아니다.
{
"canonical_record": "the published article being retained",
"old_address": "inspect its actual response without following redirects",
"expected_target": "the reviewed canonical address",
"checks": ["redirect status and location", "target body", "canonical declaration"],
"if_404": "record the gap; investigate before claiming preservation"
}
// New review model, not an implemented redirect map or a search-ranking guarantee.한 번의 확인을 영구적인 성과로 만들지 않는다
이번에 남기는 중요한 노하우는 예전에 확인했으니 지금도 맞다는 가정을 멈추는 것이다. 운영 구조가 바뀌거나 데이터가 정리되면 같은 주소의 응답도 달라질 수 있다. 그 차이를 숨기지 않으면 후속 작업에서 무엇을 다시 확인할지 분명해진다.
나는 주소를 유지한다는 원칙과 실제 현재 응답을 나란히 공개하고 싶다. 원고를 정정하면서 독자의 옛 연결도 생각한 당시 결정, 지금 살아 있는 이동과 남은 끊김을 구별한다. 홈페이지의 신뢰는 새 글을 만드는 일과 이미 건넨 주소를 확인하는 일에서 함께 만들어졌다.