"나의 정적 Nuxt 블로그는 초안, 예약된 "드립",... 노트

"나의 정적 Nuxt 블로그는 초안, 예약된 "드립", 자동 재빌드를 스스로 발행합니다"

이 글은 완전한 정적 Nuxt 사이트에 대한 게시물 예약 솔루션을 자세히 설명합니다. 정적 사이트는 본질적으로 서버 측 렌더링 기능을 갖추고 있지 않아, 재빌드 메커니즘 없이는 직접적인 게시물 예약이 불가능합니다. 몰아서 글을 쓰는 저자는 초안, 예약된 큐, 자동 재빌드를 포함하는 시스템을 개발했습니다. 이 설정은 SSG로 사전 렌더링된 Nuxt 4, 헤드리스 CMS로 Storyblok, 그리고 애플리케이션을 항상 실행 상태로 유지하기 위해 PM2로 관리되는 Nitro 서버를 활용합니다. GitHub Actions는 배포 및 사이트 재빌드에 사용됩니다.핵심 아이디어는 SSG에서 게시하는 것이 두 단계로 이루어진다는 것입니다. 첫째, CMS에서 콘텐츠를 업데이트하고, 둘째, 정적 사이트를 재빌드하는 것입니다. 예약은 이 두 단계를 미래의 시간으로 자동화합니다. 초안은 상태와 게시 날짜와 함께 서버 측에 저장되며, 예약될 때까지 라이브 사이트에 영향을 미치지 않습니다. Nitro 예약 작업은 게시 날짜가 과거 또는 현재인 기사를 확인하기 위해 매시간 실행됩니다.기사가 게시될 시간이 되면, 해당 기사는 Storyblok의 richtext 형식으로 변환되어 CMS로 푸시됩니다. 이후 GitHub API를 통해 단일 사이트 재빌드가 트리거되어 새로운 콘텐츠가 라이브 사이트에 나타나도록 합니다. 이 시스템은 Nitro의 내장 예약 작업 기능을 활용하여 별도의 cron box와 같은 서비스를 피합니다. 중요한 점은 예약 작업이 실행되려면 Nitro 서버가 실행 중이어야 하므로, 작은 VPS에 호스팅되고 PM2로 관리된다는 것입니다. 저자는 중복 배포를 피하기 위해 예약된 기사 배치당 단일 재빌드를 최적화하는 것을 강조합니다. 마지막으로, 정확한 예약을 위해 시간대 설정에 세심한 주의를 기울이는 것이 중요합니다. 이 솔루션을 통해 저자는 콘텐츠를 미리 작성하고 자동으로 게시되도록 하여 수동 개입에서 벗어날 수 있습니다.