You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- trigger-deploy.yml 추가 (content push 시 main 배포 트리거)
- 고아 브랜치 블로그 글에 트리거 워크플로우 설명 추가
- 프로젝트 소개 업데이트
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
`content` 브랜치에 push하면 배포가 트리거되도록 설정했다. 이 경우 Next.js 소스 코드는 바뀌지 않았으므로, 캐시를 최대한 활용하고 싶었다.
124
124
125
-
### 두 브랜치 모두 트리거
125
+
### content 브랜치에서 배포 트리거
126
+
127
+
처음에는 단순히 `branches: ["main", "content"]`로 두 브랜치 모두 트리거하려 했지만, 작동하지 않았다. GitHub Actions의 `push` 트리거는 **push된 브랜치에 워크플로우 파일이 있어야** 작동하기 때문이다. `content` 브랜치는 Markdown만 있고 `.github/workflows/`가 없으니 트리거되지 않는다.
128
+
129
+
해결 방법은 `content` 브랜치에 작은 트리거 전용 워크플로우를 두는 것이다. `content` 브랜치에 push하면 이 워크플로우가 `gh workflow run`으로 `main`의 배포 워크플로우를 호출한다.
공부한 것들을 기록하고 정리하기 위해 직접 만든 블로그예요. 벨로그나 티스토리 같은 플랫폼도 있지만, 내 손으로 만들고 원하는 대로 고칠 수 있는 블로그를 갖고 싶어서 처음부터 직접 만들었어요. 지금 보고 계신 이 사이트가 바로 그 결과물입니다.
20
+
공부한 것들을 기록하고 정리하기 위해 직접 만든 블로그입니다. 벨로그나 티스토리 같은 플랫폼도 있지만, 직접 만들고 원하는 대로 수정할 수 있는 블로그를 갖고 싶어서 처음부터 개발했습니다. 지금 보고 계신 이 사이트가 그 결과물입니다.
21
21
22
22
## 어떻게 만들었나요?
23
23
24
-
Next.js 16의 App Router와 정적 빌드(`output: "export"`)를 사용해서, 서버 없이 GitHub Pages에서 바로 돌아가요. 글은 Markdown으로 작성하고, Velite가 이걸 JSON으로 변환해서 Next.js가 빌드할 때 사용합니다. 별도의 데이터베이스나 CMS 없이 Markdown 파일만으로 모든 콘텐츠를 관리할 수 있어요.
24
+
Next.js 16의 App Router와 정적 빌드(`output: "export"`)를 사용하여, 서버 없이 GitHub Pages에서 동작합니다. 글은 Markdown으로 작성하고, Velite가 JSON으로 변환하여 Next.js 빌드 시 사용합니다. 별도의 데이터베이스나 CMS 없이 Markdown 파일만으로 모든 콘텐츠를 관리할 수 있습니다.
25
25
26
-
스타일링은 Tailwind CSS 4와 Shadcn/ui를 사용했고, 코드 블록은 Shiki로 하이라이팅해요. 라이트/다크 테마 둘 다 지원하고, 코드 블록도 테마에 맞게 자동으로 색상이 바뀝니다.
26
+
스타일링은 Tailwind CSS 4와 Shadcn/ui를 사용했고, 코드 블록은 Shiki로 하이라이팅합니다. 라이트/다크 테마를 모두 지원하며, 코드 블록도 테마에 맞게 자동으로 색상이 전환됩니다.
27
27
28
28
## 주요 기능
29
29
30
-
-**카테고리 · 태그 · 시리즈** — 글을 다양한 기준으로 분류하고 탐색할 수 있어요
31
-
-**전문 검색 (`⌘K`)** — Fuse.js 기반 퍼지 검색으로, 제목과 본문에서 원하는 글을 빠르게 찾을 수 있어요
32
-
-**활동 히트맵** — GitHub 잔디처럼 글 작성 활동을 한눈에 볼 수 있어요
33
-
-**다크 모드** — 시스템 설정에 따라 자동 전환되고, 수동으로도 토글할 수 있어요
34
-
-**코드 하이라이팅** — Shiki의 듀얼 테마(github-light / github-dark)로 깔끔하게 코드를 보여줘요
35
-
-**목차(TOC)** — 게시글 옆에 자동 생성되는 목차로 긴 글도 쉽게 탐색할 수 있어요
36
-
-**댓글** — Giscus를 연동해서 GitHub Discussions 기반으로 댓글을 남길 수 있어요
30
+
-**카테고리 · 태그 · 시리즈** — 글을 다양한 기준으로 분류하고 탐색할 수 있습니다
31
+
-**전문 검색 (`⌘K`)** — Fuse.js 기반 퍼지 검색으로, 제목과 본문에서 원하는 글을 빠르게 찾을 수 있습니다
32
+
-**활동 히트맵** — GitHub 잔디처럼 글 작성 활동을 한눈에 확인할 수 있습니다
33
+
-**다크 모드** — 시스템 설정에 따라 자동 전환되며, 수동으로도 토글할 수 있습니다
34
+
-**코드 하이라이팅** — Shiki의 듀얼 테마(github-light / github-dark)로 코드를 표시합니다
35
+
-**목차(TOC)** — 게시글 옆에 자동 생성되는 목차로 긴 글도 쉽게 탐색할 수 있습니다
36
+
-**댓글** — Giscus를 연동하여 GitHub Discussions 기반으로 댓글을 남길 수 있습니다
37
37
38
38
## 콘텐츠 관리 방식
39
39
40
-
재미있는 점은 블로그 코드와 콘텐츠를 같은 리포지토리에서 관리하면서도 완전히 분리했다는 거예요. Git의 고아 브랜치(orphan branch)를 활용해서, `main` 브랜치에는 앱 코드가, `content` 브랜치에는 Markdown 게시글이 들어있어요. 로컬에서는 `git worktree`로 두 브랜치를 동시에 작업할 수 있고, 어느 브랜치에 push하든 GitHub Actions가 자동으로 빌드하고 배포합니다.
40
+
블로그 코드와 콘텐츠를 같은 리포지토리에서 관리하면서도 완전히 분리한 것이 특징입니다. Git의 고아 브랜치(orphan branch)를 활용하여, `main` 브랜치에는 앱 코드를, `content` 브랜치에는 Markdown 게시글을 두었습니다. 로컬에서는 `git worktree`로 두 브랜치를 동시에 작업할 수 있습니다. `main`에 push하면 직접 배포가 실행되고, `content`에 push하면 트리거 워크플로우가 `main`의 배포를 호출하여 자동으로 빌드하고 배포합니다.
41
41
42
42
## 배포
43
43
44
-
`main` 또는 `content` 브랜치에 push하면 GitHub Actions가 자동으로 정적 사이트를 빌드해서 GitHub Pages에 배포해요. 소스 코드만 바뀌었을 때는 Velite 캐시를, 콘텐츠만 바뀌었을 때는 Next.js 컴파일 캐시를 활용해서 빌드 시간을 줄였어요.
44
+
`main` 또는 `content` 브랜치에 push하면 GitHub Actions가 자동으로 정적 사이트를 빌드하여 GitHub Pages에 배포합니다. 소스 코드만 변경되었을 때는 Velite 캐시를, 콘텐츠만 변경되었을 때는 Next.js 컴파일 캐시를 활용하여 빌드 시간을 최소화했습니다.
0 commit comments