저널 ·

변경이 올라간 뒤에 일어나는 일

ipe.rest 의 변경은 GitHub 의 짧은 워크플로를 거쳐 방문자에게 닿습니다. 사이트를 복사하고, 확인하고, 공개하고, 무엇이 새로운지 검색엔진에 알립니다. 대부분의 실행은 40초 안에 끝납니다.

지난 글은 페이지가 만들어지는 과정을 다뤘습니다. 이번 글은 그것이 끝나는 곳, 곧 변경이 저장소의 main 브랜치에 닿는 때부터 시작합니다. 수치는 2026년 11월 10일에 워크플로 파일, 사이트를 내 컴퓨터에서 만든 결과, GitHub 의 최근 실행 여덟 번에서 쟀습니다.

복사

사이트는 평범한 파일이라서 첫 단계는 복사입니다. 워크플로는 저장소를 내려받아, 방문자에게 필요 없는 것을 뺀 나머지를 모두 복사합니다. 뺀 것은 스크립트, 테스트, 워크플로 자신, 버전 관리 데이터, 그리고 모든 Markdown 파일입니다. 저장소의 586개 파일 가운데 329개가 사이트 폴더로 들어가며, 크기는 약 10MB 입니다.

확인

그다음 저장소가 아니라 그 폴더를 대상으로 테스트 일곱 개가 돕니다. 방문자에게 필요한 파일, 곧 robots 파일, 사이트맵, 서비스 워커, 홈페이지가 있는지, scripts 나 tests 같은 폴더가 없어야 하는 자리에 없는지, 그리고 404 페이지가 noindex 이고 홈으로 이어지는지를 봅니다. 실패하면 워크플로는 여기서 멈춥니다. 아무것도 공개되지 않고 이전 버전이 그대로 남습니다.

공개

다음으로 폴더를 올려 GitHub Pages 에 넘기면 그쪽이 서비스합니다. 배포는 한 번에 하나만 돕니다. 하나가 도는 동안 더 새로운 변경이 오면 이전 실행은 취소됩니다. 중간에 우리 서버도, 데이터베이스도 없습니다. 서비스 워커의 버전이 바뀌면, 방문자의 브라우저는 이후 방문 때 새 캐시를 설치하고 옛 캐시를 지웁니다.

알림

공개한 뒤 워크플로는 사이트맵 날짜가 한국 시각으로 오늘인 페이지의 주소를 IndexNow 로 보냅니다. IndexNow 는 Bing, Naver, Yandex 등의 검색엔진이 받는 규약입니다. 필요한 키는 사이트 루트에 있는 공개 텍스트 파일입니다. 이 단계는 실패해도 됩니다. 실패하더라도 배포는 성공으로 칩니다.

그동안의 기록

최근 실행 여덟 번 가운데 일곱 번이 성공했고 한 번이 실패했으며, 22초 뒤의 다음 실행은 성공했습니다. 성공한 일곱 번 가운데 다섯 번은 40초 안에 끝났고, 가장 느린 것은 2분 18초였습니다. 실행이 시작된 때부터 마지막으로 갱신된 때까지를 쟀으니 시간은 대략으로 읽어 주세요.

초록 불이 말하지 않는 것

통과한 실행은 파일이 도착했고 확인 일곱 개를 넘었다는 뜻입니다. 페이지가 작은 휴대폰 화면에서 제대로 보인다는 뜻은 아니며, IndexNow 는 검색엔진에 알릴 뿐 페이지를 언제, 또는 과연 올릴지는 아무것도 약속하지 않습니다.

ipe(); // copy, check, publish, tell

워크플로는 일부러 짧습니다. 단계가 적을수록 조용한 사이트가 깨질 자리도 적습니다.

← 전체 글