저널 ·
페이지를 내보내기 전에 테스트가 확인하는 것
ipe.rest 가 바뀌기 전에는 우리 컴퓨터에서 작은 테스트 137개가 먼저 확인합니다. 약 8초가 걸리고, 배포 때마다 함께 도는 것은 그중 일곱 개뿐이며, 어떤 테스트도 보지 못하는 것이 있습니다. 무엇을 보는지 적었습니다.
어제 글은 기계를 위한 파일을 다뤘습니다. 이번 글은 읽는 사람이 만날 일이 없는 것, 페이지가 공개되기 전에 도는 확인을 다룹니다. 수치는 2026년 11월 8일에, 이 글이 더해지기 전의 저장소에서 쟀습니다. 명령은 하나, python3 -m unittest discover tests 이고, 137개가 모두 통과했습니다.
파일 열 개, 명령 하나
테스트는 열 개 파일에 모두 1,850줄로 들어 있습니다. 무게는 저널에 가장 많이 실려서 137개 가운데 56개가 저널 페이지에 관한 것입니다. 23개는 소개, 문의, 개인정보처리방침, 이용약관 같은 나머지 페이지를, 18개는 홈페이지를 다룹니다. 나머지는 작은 묶음입니다. 검색엔진 알림 9개, 구조화 데이터 8개, 배포 7개, 시각 표시 7개, 서비스 워커 4개, 링크와 자산 버전 4개, 공유 이미지 1개입니다.
무엇을 잡아내는가
이곳의 많은 페이지는 우리 원고에서 만들어집니다. 저널 글, 사이트맵, 피드, llms.txt, 홈페이지의 카드가 그렇습니다. 만들어진 파일이 하나라도 최신이 아니면 테스트가 실패하므로, 누군가 손으로 고치고 원고를 잊는 일이 생기지 않습니다.
다른 테스트는 언어를 지킵니다. 모든 글은 열두 언어 각각의 버전이 있어야 하고, 각 페이지는 다른 언어 페이지와 자기 자신을 가리켜야 하며, 사이트맵은 페이지와 같은 연결을 담아야 합니다. 또 어떤 테스트는 우리가 스스로 정한 규칙을 지킵니다. 300단어 미만의 새 글은 거부하고, 400단어 미만이면 경고만 하며, 미래 날짜의 글은 돌려보내고, 페이지 설명은 말줄임표로 잘려서는 안 됩니다.
페이지를 오프라인에서도 열어 주는 서비스 워커의 캐시 이름에는 버전 번호가 붙어 있습니다. 각 페이지의 자산 링크에 적힌 버전이 서비스 워커가 올린 버전과 같은지 테스트가 확인하므로, 바뀐 스타일시트가 낡은 채로 전달되지 않습니다.
배포마다 도는 일곱 개
배포 작업에서 도는 것은 파일 하나, 테스트 7개뿐입니다. 이것은 저장소가 아니라 만들어진 사이트를 확인합니다. 방문자에게 필요한 파일이 있는지, scripts 나 tests 같은 폴더가 올라가지 않았는지, 404 페이지가 noindex 이고 홈으로 이어지는지입니다. 실패하면 아무것도 공개되기 전에 배포가 멈춥니다.
나머지 130개는 관문이 아니라 습관입니다. 커밋 전에 우리가 돌리고, 서버가 우리에게 그것을 강제하지는 않습니다.
보지 못하는 것
통과한 테스트는 페이지들이 서로 맞는다는 뜻이지, 좋다는 뜻이 아닙니다. 기계가 초안을 쓴 열 개 언어의 번역을 뜻으로 읽어 보는 테스트는 없고, 그래서 그 페이지들에는 AI 번역 안내가 붙어 있습니다. 여기 있는 테스트 중에는 브라우저를 여는 것도 없어서, 좁은 휴대폰 화면의 배치는 눈으로 확인합니다. 그리고 이 파일들을 맞춰 두려는 우리의 수고를 크롤러가 알아보는지는 말할 수 없습니다.
ipe(); // check the plain things, every time
조용한 사이트가 조용하도록 지켜 주는 것 대부분은 따분합니다. 맞아떨어지는 숫자, 이어지는 링크, 올라간 버전 같은 것입니다. 우리가 기억하길 바라기보다 기계가 8초 동안 확인하는 쪽이 낫습니다.