sqzer-x
English

이 사이트는 무엇으로 만들어졌나

바이너리 하나, 스타일시트 하나, 스크립트 둘, 그리고 생성기 말고는 빌드 단계가 없다.

이 사이트는 직접 만든 sqzass 가 빌드하고, 바이너리를 설치해서 실행하는 워크플로가 GitHub Pages 로 배포한다. 번들러도, 패키지 매니저도, node_modules 도 없다.

금욕이 아니다. 저 하나하나가 문장을 쓰는 시점과 그 문장이 화면에 뜨는 시점 사이에서 깨질 수 있는 물건이라서다.

전부

스타일시트 하나. 스무 개가 아니라. 이 사이트를 설계하면서 참고한 레퍼런스는 렌더를 막는 스타일시트를 스무 개 내보내는데, 캐시가 비어 있으면 첫 페인트 전에 스무 번 왕복한다. 파일 하나면 생성기가 내용 해시를 붙여 주고, 바뀐 그때만 캐시가 무효가 된다.

스크립트 둘, 둘 다 있어도 되고 없어도 된다. 하나는 검색 팔레트를, 하나는 테마 토글과 스크롤 리빌을 맡는다. JavaScript 를 끄면 팔레트가 없어지고 모든 섹션이 처음부터 드러나 있다. 읽으러 온 것 중에 이 둘에 기대는 건 없다.

한글 웹폰트는 안 받는다. 커버리지가 제대로 있는 한글 웹폰트는 2 MB 쯤 된다. 시스템 스택 — Apple SD Gothic Neo, Noto Sans KR, 맑은 고딕 — 은 이미 그 기계에 있고 이미 맞다. 이 사이트가 내려받는 폰트는 JetBrains Mono 뿐인데 라틴 전용 21 KB 이고, 두 번째 목소리 노릇을 해서 그 값을 한다. 날짜, 배지, 명령, 워드마크가 그 목소리다.

제일 오래 걸린 부분

레이아웃이 아니었다. 날짜였다. 다른 글에 적어 뒀다.

재현되고, 확인한다

같은 입력을 두 번 빌드하면 같은 바이트가 나오고, CI 가 두 번 빌드해서 비교한다. 결벽처럼 들리는데, 설명이 안 되는 차이를 배포에서 처음 마주치는 날 생각이 달라진다. 생성기가 결정적인지를 가장 알아야 할 순간에 알게 된다.