Hugo와 Blowfish 테마를 사용하여 블로그를 만들 때, 가장 중요하면서도 처음에는 헷갈리는 부분이 바로 콘텐츠를 어떻게 구성하고 정리하는가입니다. 잘 정리된 콘텐츠 구조는 보기에도 좋을 뿐만 아니라, URL 경로, 메뉴 구성, 그리고 장기적인 유지보수에 직접적인 영향을 미칩니다.
오늘은 Hugo의 공식적인 콘텐츠 조직 방법론을 바탕으로, Blowfish 테마에서 이를 어떻게 효과적으로 적용할 수 있는지에 대한 완벽한 가이드를 제시합니다.
Hugo 콘텐츠 구성의 핵심: 섹션(Sections)#
Hugo는 매우 직관적인 방식으로 콘텐츠를 구성합니다. 프로젝트의 content/
폴더 안에 만드는 최상위 폴더가 곧 사이트의 **섹션(Section)**이 됩니다.
예를 들어, 아래와 같은 폴더 구조를 생각해 보세요.
content/
├── posts/
└── projects/
content/posts/
폴더는posts
라는 섹션을 만듭니다. 이 섹션의 URL은https://your-site.com/posts/
가 됩니다.content/projects/
폴더는projects
섹션을 만듭니다. URL은https://your-site.com/projects/
가 됩니다.
이처럼 폴더 구조가 그대로 사이트의 URL 구조로 연결되는 것이 Hugo의 가장 큰 특징입니다. Blowfish 테마 역시 이 기본 구조를 그대로 따릅니다.
두 종류의 index
파일: _index.md
vs index.md
#
Hugo의 콘텐츠 구조를 이해하기 위한 가장 중요한 개념은 바로 _index.md
와 index.md
파일의 차이를 아는 것입니다.
_index.md
: 섹션의 대표 페이지 (List Page)#
_index.md
파일은 특정 폴더(섹션) 자체를 설명하는 대표 페이지를 만들 때 사용됩니다. 예를 들어, content/posts/_index.md
파일은 /posts
라는 URL로 접속했을 때 보이는 게시글 목록 페이지의 제목이나 상단 소개글을 제어합니다.
---
# content/posts/_index.md
title: "나의 기술 블로그"
description: "개발 과정에서 배운 점과 기술적인 고민을 공유합니다."
---
이곳은 저의 개발 블로그입니다. 다양한 주제의 글들을 살펴보세요.
위 내용 중 Front Matter(—로 둘러싸인 부분)는 페이지의 메타데이터를, 그 아래 내용은 게시글 목록 상단에 표시될 콘텐츠를 정의합니다.
index.md
: 개별 페이지와 리소스 묶음 (Leaf Bundle)#
index.md
파일은 하나의 완전한 개별 페이지를 만들 때 사용되며, 특히 해당 페이지에 사용되는 이미지 등의 리소스를 함께 묶어서 관리할 때 매우 유용합니다. 이를 Leaf Bundle 방식이라고 부릅니다.
예를 들어, my-first-post
라는 글을 작성한다고 가정해 봅시다.
content/posts/
└── my-first-post/
├── index.md <-- 글의 실제 내용
└── hero.png <-- 이 글에서 사용할 대표 이미지
이 구조의 가장 큰 장점은 index.md
파일 안에서 이미지를 
처럼 매우 간단하게 참조할 수 있다는 것입니다. 경로가 복잡해지지 않아 관리가 매우 편리하며, 새로운 글을 작성할 때 가장 추천되는 방식입니다.
Blowfish 테마 추천 콘텐츠 구조#
위의 개념들을 바탕으로, 일반적인 Blowfish 블로그에 추천하는 전체적인 콘텐츠 구조는 다음과 같습니다.
.
├── assets
│ └── img
│ └── author.jpg
├── config
│ └── _default
├── content
│ ├── _index.md # 🏠 사이트 전체의 홈페이지 콘텐츠
│ ├── about.md
│ └── posts # 📝 'posts' 섹션
│ ├── _index.md # /posts/ 리스트 페이지의 제목/소개
│ ├── first-post.md # 첫 번째 글 (Page Bundle)
│ └── another-post # 두 번째 글 (Leaf Bundle)
│ ├── aardvark.jpg
│ └── index.md
└── themes
└── blowfish
content/_index.md
: 사이트의 메인 홈페이지(https://your-site.com/
) 내용을 제어합니다. Blowfish의hero
나profile
레이아웃을 설정할 때 사용됩니다.content/posts/
: 모든 블로그 게시글이 위치하는 곳입니다.content/authors/
: Blowfish 테마의 저자별 페이지 기능을 위해 사용되는 특별한 섹션입니다. 각 저자별로 폴더를 만들고 그 안에_index.md
를 두어 저자 소개 페이지를 만들 수 있습니다.
마무리하며#
Hugo의 콘텐츠 구성 방식은 ‘폴더가 곧 섹션’이라는 간단한 규칙에서 시작합니다. 여기에 _index.md
와 index.md
의 역할을 정확히 이해하고, Blowfish 테마가 요구하는 Front Matter를 적절히 활용하면 매우 체계적이고 확장 가능한 블로그를 만들 수 있습니다.
새로운 글을 작성하실 때는 가급적 폴더를 만들고 그 안에 index.md
를 생성하는 Leaf Bundle 방식을 사용해 보세요. 이미지 관리가 훨씬 수월해져 콘텐츠 작성의 즐거움이 배가 될 것입니다.