SSG에서 "3시간 전"은 낡는다 — 상대 시각을 클라이언트에 맡기는 패턴
정적 사이트에서 "3시간 전" 같은 상대 시각은 빌드 순간에 굳어 시간이 흐를수록 거짓이 된다. 원본 시각은 time 요소의 datetime 속성에 실어 보내고 표시는 보는 순간 클라이언트가 다시 계산하는 패턴 — 폴백을 남기는 progressive enhancement 방식과 트레이드오프까지, 이 블로그의 실제 구현으로 정리한다.
9개의 글
정적 사이트에서 "3시간 전" 같은 상대 시각은 빌드 순간에 굳어 시간이 흐를수록 거짓이 된다. 원본 시각은 time 요소의 datetime 속성에 실어 보내고 표시는 보는 순간 클라이언트가 다시 계산하는 패턴 — 폴백을 남기는 progressive enhancement 방식과 트레이드오프까지, 이 블로그의 실제 구현으로 정리한다.
GitHub Pages에 Astro로 직접 지은 블로그를 velog와 항목별로 비교했다. 직접 구축이 실제로 주는 것(디자인·읽기 경험·기능의 제어권)과 구조적으로 포기하는 것(독자 유입·통계·편의), 그리고 그 격차를 좁히는 현실적 보완책을 정리한다.
프리렌더링은 빌드 시점에 각 페이지를 완성된 HTML로 미리 만들어 두는 것이다. vite-ssg가 Node 안에서 Vue 앱을 실행해 라우트를 돌고, 동적 경로까지 HTML로 뽑아 파일로 저장하는 과정을 단계별로 짚는다.
SSR·CSR·SSG는 결국 "완성된 HTML을 누가, 언제 만드는가"라는 한 질문에 대한 세 가지 대답이다. 브라우저에 도착하는 것의 차이부터 트레이드오프, 하이드레이션, 페이지 단위 선택 기준까지 비교해 정리한다.
뉴스레터도 알고리즘도 없이 새 글을 독자에게 알리는 가장 오래된 방법, RSS. 정적 블로그와 RSS가 왜 잘 맞는지 짚고, @astrojs/rss로 피드 엔드포인트를 실제 코드로 만들어본다.
SSG는 요청이 올 때마다 페이지를 만드는 대신, 빌드 때 HTML을 미리 다 찍어두는 방식이다. SSR·CSR과 뭐가 다른지 정리하고, Astro가 왜 기본을 SSG로 잡는지까지 짚는다.
페이지 전체를 자바스크립트로 되살리는 대신, 상호작용이 필요한 조각만 섬처럼 띄우는 Astro의 아일랜드 아키텍처. client:* 지시어의 의미부터 섬 사이 상태 공유까지 정리한다.
마크다운 폴더를 스키마가 붙은 타입 안전한 데이터로 바꾸는 Astro Content Collection. 컬렉션 정의부터 목록·상세 페이지 렌더링까지 블로그 한 채를 통째로 만들어본다.
개인 블로그의 글을 데이터베이스가 아니라 마크다운 파일과 git으로 관리하면 무엇이 좋은가. 저장소 선택이 프로젝트의 성격을 어떻게 바꾸는지 짚는다.
정적 사이트에서 "3시간 전" 같은 상대 시각은 빌드 순간에 굳어 시간이 흐를수록 거짓이 된다. 원본 시각은 time 요소의 datetime 속성에 실어 보내고 표시는 보는 순간 클라이언트가 다시 계산하는 패턴 — 폴백을 남기는 progressive enhancement 방식과 트레이드오프까지, 이 블로그의 실제 구현으로 정리한다.
GitHub Pages에 Astro로 직접 지은 블로그를 velog와 항목별로 비교했다. 직접 구축이 실제로 주는 것(디자인·읽기 경험·기능의 제어권)과 구조적으로 포기하는 것(독자 유입·통계·편의), 그리고 그 격차를 좁히는 현실적 보완책을 정리한다.
프리렌더링은 빌드 시점에 각 페이지를 완성된 HTML로 미리 만들어 두는 것이다. vite-ssg가 Node 안에서 Vue 앱을 실행해 라우트를 돌고, 동적 경로까지 HTML로 뽑아 파일로 저장하는 과정을 단계별로 짚는다.
SSR·CSR·SSG는 결국 "완성된 HTML을 누가, 언제 만드는가"라는 한 질문에 대한 세 가지 대답이다. 브라우저에 도착하는 것의 차이부터 트레이드오프, 하이드레이션, 페이지 단위 선택 기준까지 비교해 정리한다.
뉴스레터도 알고리즘도 없이 새 글을 독자에게 알리는 가장 오래된 방법, RSS. 정적 블로그와 RSS가 왜 잘 맞는지 짚고, @astrojs/rss로 피드 엔드포인트를 실제 코드로 만들어본다.
SSG는 요청이 올 때마다 페이지를 만드는 대신, 빌드 때 HTML을 미리 다 찍어두는 방식이다. SSR·CSR과 뭐가 다른지 정리하고, Astro가 왜 기본을 SSG로 잡는지까지 짚는다.
페이지 전체를 자바스크립트로 되살리는 대신, 상호작용이 필요한 조각만 섬처럼 띄우는 Astro의 아일랜드 아키텍처. client:* 지시어의 의미부터 섬 사이 상태 공유까지 정리한다.
마크다운 폴더를 스키마가 붙은 타입 안전한 데이터로 바꾸는 Astro Content Collection. 컬렉션 정의부터 목록·상세 페이지 렌더링까지 블로그 한 채를 통째로 만들어본다.
개인 블로그의 글을 데이터베이스가 아니라 마크다운 파일과 git으로 관리하면 무엇이 좋은가. 저장소 선택이 프로젝트의 성격을 어떻게 바꾸는지 짚는다.
비공개로 의견 보내기
작성자에게만 전달돼요. 이름·이메일을 비우면 완전 익명입니다.