홈페이지를 보고 영상들이 왜 다 없어졌느냐는 질문이 왔다. 7월 30일의 작업 기록을 다시 읽으니 바로 새 수집이나 복구 작업을 시작한 것은 아니었다. 먼저 홈의 큰 제목과 목록 순서, 기사 페이지의 임베드 표식을 확인했다. 화면에서 안 보인다는 질문의 범위를 좁히는 과정이었다.

당시 응답에는 새 해설 글이 홈의 리드와 앞쪽 목록에 놓여 있었다. 기사 한 곳에서는 임베드 표식도 남아 있었다. 나는 이를 모든 영상의 무손실 증명으로 넓히지 않는다. 이 장면에서 확인된 것은 홈의 첫 화면을 결정하는 조건이 영상 기사보다 새 해설을 먼저 선택하고 있었다는 사실이다.

없어졌다는 말이 가리키는 화면을 먼저 맞춘다

독자가 보는 홈, 목록 카드, 기사 본문과 플레이어는 같은 데이터에서 이어져도 서로 다른 표시 단계다. 홈에서 영상이 안 보인다고 플레이어의 원본부터 바꾸면 문제의 위치와 다른 곳을 수정할 수 있다. 어느 주소의 어느 영역에서 무엇을 기대했는지 확인하는 편이 먼저였다.

나는 문제를 재현할 때 예상한 제목·대표 이미지·영상 영역을 기록하고 실제 응답을 대조하려 한다. 전부라는 표현을 검사 범위로 그대로 옮기지 않는다. 확인한 기사 한 곳에 표식이 있다는 결과는 그 기사에 대한 근거이며, 아직 읽지 않은 모든 영상의 상태를 대신하지 않는다.

새로 발행한 글이 첫 화면의 역할을 바꾸었다

당시 홈 쿼리는 발행된 글을 게시 시각의 내림차순으로 가져왔다. 새 해설 글도 같은 조건에 들어오므로 최신 발행이 리드가 되는 구조였다. 기능은 정한 정렬대로 작동했지만 방문자가 기대한 영상 중심의 입구와 그 결과가 어긋났다.

수정에서는 홈 뉴스 목록의 조건에 EXPLAINED 제외를 더했다. 그 뒤 응답의 큰 제목은 뉴스 기사로 바뀌었고 당시 검사 출력도 남아 있다. 이 변경은 해설 글을 삭제하거나 영상을 다시 수집하는 작업이 아니다. 자료의 보존과 첫 화면에서 선택하는 역할을 구별한 선택이다.

수집량을 늘리기 전에 선택 조건을 읽는다

다른 사이트에서도 새 공지나 사용 안내가 기존 대표 콘텐츠를 뒤로 밀 수 있다. 원본이 있는지 확인한 다음 목록에 들어오는 상태·분류·정렬·개수 제한을 읽으면 어느 조건에서 화면 밖으로 갔는지 좁힐 수 있다. 데이터를 추가하는 것만으로 표시의 목적이 다시 맞지는 않는다.

아래는 당시 변경의 핵심을 일반화한 설명용 조건이다. 실제 모델이나 데이터베이스의 복원 코드가 아니다. 제외할 분류와 남길 통로는 사이트의 독자가 찾는 질문에 맞게 정해야 한다. 이 프로젝트의 EXPLAINED 값을 다른 사이트의 보편적인 제외 대상으로 고정하지 않는다.

코드와 구현 살펴보기

홈 뉴스 선택의 설명용 조건. 원본 ORM과 저장소를 구현한 코드는 아니다.

published_records
  → keep records whose state is published
  → apply this homepage lane’s category policy
  → order by publication time
  → take the visible limit

Keep excluded-but-public guides accessible in their own route.

목록을 고친 뒤에도 대표 화면의 질문이 남았다

곧이어 실제 영상 화면이 먼저 나와야 한다는 요청이 이어졌다. 이 후속 질문은 목록 순서만으로 해결되지 않았다. 당시 작업에는 영상의 대표 썸네일을 기사 데이터에 연결하고 홈·관련 목록·공유 이미지에서 읽게 한 수정이 있다. 같은 사건 안에서도 선택 조건과 시각 자산은 다른 문제였다.

나는 썸네일이 보인다는 상태와 플레이어가 재생된다는 상태도 나눈다. 새 이미지가 대표 영역에 연결됐다고 음성·재생·전환까지 성공한 결과로 말할 수는 없다. 화면이 약속하는 단계마다 필요한 검사와 남은 확인을 따로 남긴다.

변경 후 응답을 원래 질문에 다시 대조한다

기록에는 분류 변경 뒤 뉴스 제목이 돌아온 응답과, 대표 이미지 연결 뒤 홈 썸네일 여섯 개가 잡힌 출력이 있다. 이 숫자는 그날의 검사 결과다. 지금 원본 사이트에 항상 여섯 영상이 있다는 뜻이나 모든 재생 환경이 정상이라는 뜻으로 다시 쓰지 않는다.

내가 이어서 확인할 흐름은 홈의 대표 영역에서 기사로 가고 해당 플레이어를 실행한 뒤 목록으로 돌아오는 것이다. 검색·분류에서 빠진 글이 자기 주소에서는 여전히 공개되는지도 별도로 확인한다. 한 표시 조건을 고친 일 때문에 다른 공개 경로까지 사라지지 않게 하는 검사다.

증상보다 좁은 원인을 기록한다

이 사례의 핵심은 영상 전체가 삭제됐다는 복구 이야기가 아니다. 새 글의 분류와 최신순 선택이 첫 화면을 바꾼 장면, 그 뒤 대표 이미지를 요구한 장면을 실제 수정 기록으로 연결한 것이다. 내 기록의 원인도 확인한 범위만큼 좁게 남긴다.

다른 작업에서도 원본 부재, 수집 누락, 분류 조건, 목록 제한, 자산 연결과 재생 실패를 같은 상태로 합치지 않는다. 각각의 근거를 더 읽어야 할 수 있다. 나는 무엇을 바꾸었고 어떤 응답이 달라졌는지 함께 남겨 다음 제작자가 같은 증상에서 다른 원인을 찾을 수 있게 하고 싶다.