폴더 이름 하나 바꾸고 홈페이지가 11일 멈춘 일
광고 심사에서 콘텐츠를 보완하라는 통보를 받았는데, 심사 대상이 루트 도메인이라 처음에는 글이 모자라서 그런 줄 알았습니다. 새 글을 더 쓰기 전에 홈페이지부터 열어 보니 예상과 달랐습니다. 자체 글 목록이 한동안 그대로였습니다.
원인은 글의 양이 아닙니다. 폴더 이름을 log에서 guide로 바꾼 뒤 홈페이지를 갱신하는 깃허브 액션이 마지막 커밋 단계에서 죽고 있었는데, 빌드는 초록색으로 끝나 있었기 때문에 처음에는 실패한 줄도 몰랐습니다. 멈춘 기간은 11일.
먼저 결론부터
- 폴더 이름을 바꾼 뒤 홈페이지 갱신 액션의
git add경로는 옛 이름을 계속 가리키고 있었습니다. - 없는 경로를
git add에 넘기면exit 128로 끝납니다. 이 경우 빌드가 성공했어도 생성물은 커밋되지 않습니다. - 실패 지점은 로그 아래쪽인데, 위쪽의 빌드 성공 표시만 보고 액션 전체가 끝난 것으로 판단했습니다.
- 홈페이지에는 404 링크가 9개 있었고, 링크의 75%는 다른 호스트를 향하고 있었습니다.
- 고친 뒤 깨진 링크는 0개가 됐고, 자체 글 링크는 11개로 전체의 28%, 서브도메인 링크는 46%로 정리했습니다.
- 사이트맵은 고정 목록이 아니라 빌드할 때 실제 폴더를 훑어 다시 만들도록 바꿨습니다.
git add guide
빌드는 성공했는데 커밋에서 멈췄습니다
처음 액션 로그를 열었을 때는 문제가 없어 보였고, 정적 사이트 빌드가 끝났고 생성된 결과도 있었으니 심사 결과와 배포 과정은 관계없다고 생각했습니다.
그런데 로그 끝부분에 exit 128. 홈페이지 결과물을 추가하는 줄이 예전 폴더 이름을 그대로 쓰고 있었고, 이름을 바꾼 뒤로는 존재하지 않는 경로를 git add하려다 멈춰 있었습니다.
git add log
빌드와 커밋은 다른 단계입니다. 빌드가 통과하면 화면에는 초록색 출력이 길게 쌓이고, 그 아래에서 커밋이 실패하면 결과물은 저장소에 들어가지 않은 채 홈페이지도 이전 상태에 머뭅니다. 실패 알림을 따로 보고 있지 않으니 멈춘 날도 알 수 없었습니다.
홈페이지가 멈춘 이유는 배포 서버나 생성기 문제가 아니었습니다. 마지막에 남은 경로 하나였습니다.
이름을 바꾼 뒤 남은 참조를 찾았습니다
log를 guide로 바꿀 때 글 파일은 옮겼고 홈페이지에서도 새 위치를 읽는다고 생각했지만, 실제로는 폴더 이름이 여러 설정에 흩어져 있었고 액션의 경로 목록과 git add, 사이트맵 생성 쪽에는 옛 이름이 남아 있었습니다.
처음에는 홈페이지 템플릿만 살폈습니다. 그곳에서는 새 경로가 보였기 때문입니다. 하지만 액션은 빌드 뒤에 별도 명령으로 결과를 추가하고 있었고, 화면에 보이는 페이지와 저장소에 반영하는 명령은 서로 다른 파일입니다.
그래서 폴더 이름 자체로 저장소 전체를 검색했습니다.
git grep "log"
이 검색에서 남은 참조를 찾았습니다. 이름을 바꾼 날 파일 이동만 확인한 것이 문제였는데, 경로 이름은 코드 안에서 링크가 되기도 하고 생성기 입력이 되기도 하며 자동 커밋 대상이 되기도 합니다. 이번에는 그중 자동 커밋 대상이 홈페이지를 멈췄습니다.
멈춘 홈페이지 뒤에서 링크 문제도 나왔습니다
액션을 고치고 홈페이지를 다시 만들자 그동안 쌓여 있던 문제가 함께 보였는데, 사이트맵에는 없는 주소가 들어 있었고 실제 폴더는 빠져 있었으며 목록을 직접 적어 두는 방식이라 폴더 이동과 생성 시점이 어긋난 상태였습니다.
홈페이지 링크도 확인했습니다. 9개가 404였습니다. 만들다 만 페이지를 링크만 먼저 걸어 둔 경우였는데, 브라우저에서 눌러 보기 전까지는 목록에 제목이 나온다는 이유로 정상이라고 생각했습니다.
더 불편했던 것은 링크 비율이었습니다. 홈페이지 링크의 75%가 다른 호스트로 나가고 있었고 자체 글은 9월 21일에 멈춘 10편뿐이었으니, 홈페이지를 처음 보는 쪽에서는 이 사이트 안에 읽을 글이 거의 없는 것처럼 보일 수 있었습니다.
심사 통보에서 말한 콘텐츠 보완을 글을 더 쓰라는 뜻으로만 읽었지만, 실제로는 홈페이지가 새 글을 보여 주지 못했고 남아 있는 링크도 다른 곳으로 빠지고 있었습니다. 증상과 원인이 멀었습니다.
생성 결과와 링크를 같이 고쳤습니다
먼저 액션의 경로를 새 폴더 이름으로 바꾸고 빌드가 끝난 뒤 생성된 파일이 실제로 추가되고 커밋되는 로그까지 확인했는데, 초록색 빌드 출력이 아니라 마지막 명령의 종료 상태를 보게 된 계기입니다.
사이트맵은 빌드할 때 실제 폴더를 훑어 다시 만듭니다. 주소 목록을 따로 유지하지 않으니 폴더 이름을 옮겨도 예전 주소만 남는 일이 줄어듭니다. 홈페이지에서는 404 링크를 걷어 내고 존재하는 자체 글을 우선 배치했습니다.
고친 뒤 깨진 링크는 0개, 자체 글 링크는 11개로 전체의 28%가 됐고 서브도메인 링크는 46%입니다. 숫자만 바꾼 작업은 아닙니다. 홈페이지가 마지막 갱신 시점에 멈춰 있지 않은지 확인하고, 링크가 실제 페이지로 가는지도 같이 보는 흐름이 생겼습니다.
광고 심사 결과를 받고 글부터 늘리지 않은 것이 다행이었고, 글을 더 썼어도 홈페이지 갱신 액션이 멈춘 상태였다면 새 글은 계속 보이지 않았을 겁니다. 이번에는 폴더 이름 하나를 바꾼 뒤 남은 경로가 배포 끝단에서 어떤 실패를 만드는지 확인했습니다.