블로그를 시작하는 방법은 이미 충분히 많다.
WordPress.com에서는 테마를 고른 뒤 바로 글을 쓸 수 있고, Substack은 글과 뉴스레터, 구독자 관리를 하나의 서비스에서 제공한다. Ghost를 이용하면 독립적인 블로그와 멤버십 기반 미디어도 비교적 간단하게 운영할 수 있다.
빠르게 글을 발행하는 것이 목적이라면 이런 서비스를 이용하는 편이 합리적이다. 서버나 배포, 보안 인증서 같은 기술적인 문제를 직접 관리하지 않아도 되기 때문이다.
그런데 나는 블로그 빌더를 선택하는 대신 도메인을 직접 구매하고 웹사이트를 만들었다. 운영비를 줄이려는 이유도 있었지만, 그것만이 전부는 아니었다.
단순한 블로그를 만들고 싶지는 않았다
내가 원한 것은 글만 쌓이는 블로그가 아니었다.
경제, 투자, AI와 새로운 기술을 공부한 내용을 기록하면서 경력과 프로젝트도 함께 소개하고 싶었다. 장기적으로는 개인 홈페이지, 포트폴리오, 지식 아카이브의 역할을 모두 할 수 있는 공간을 원했다.
처음부터 모든 기능을 구현할 필요는 없다. 다만 나중에 필요해졌을 때 영어와 한국어 페이지, 검색과 태그, 프로젝트 소개, 뉴스레터나 광고 같은 기능을 직접 추가할 수 있어야 했다.
기존 플랫폼에서도 이 중 일부는 가능하다. 하지만 제공되는 테마와 요금제, 플러그인과 플랫폼 정책 안에서 구현해야 한다.
플랫폼의 제약은 생각의 범위도 바꿀 수 있다
이 결정을 정리하면서 참고한 「Ghost 연장 결제를 누르려다 멈췄다: 블로그 제작기」에는 흥미로운 관점이 있었다.
플랫폼에서 원하는 기능을 구현하지 못하는 경험이 반복되면 기능 하나를 포기하는 데서 끝나지 않을 수 있다. 어느 순간부터는 그 기능을 만들고 싶다는 생각 자체를 하지 않게 된다는 것이다.
처음에는 주어진 선택지 안에서 가장 적절한 디자인을 고른다. 그러나 운영 기간이 길어지면 다국어 페이지를 만들거나 글의 구조를 다르게 표현하고, 프로젝트를 새로운 방식으로 소개하고 싶어질 수 있다.
그때마다 플랫폼에서 지원하는지 먼저 확인해야 한다면 사이트를 원하는 방향으로 발전시키기보다 플랫폼이 허용하는 범위에 맞춰 운영하게 된다.
내가 원한 것은 완성된 블로그 상품보다 오랫동안 직접 발전시킬 수 있는 기반에 가까웠다.
주소와 콘텐츠를 직접 관리하고 싶었다
개인 도메인을 구매한 것도 같은 이유다.
무료 블로그 주소를 사용하면 편리하지만 다른 서비스로 이동할 때 주소가 바뀔 수 있다. 이전에 공유한 링크와 검색 결과, 외부에서 연결된 주소도 함께 영향을 받는다.
개인 도메인을 사용하면 내부의 기술이나 호스팅 서비스를 변경하더라도 방문자가 접속하는 주소는 유지할 수 있다.
https://hekate.work
글은 특정 서비스의 데이터베이스에만 저장하지 않고 Markdown 파일로 관리하기로 했다. GitHub에 글과 코드를 함께 보관하면 호스팅 서비스를 바꾸더라도 원본을 가지고 이동할 수 있다.
주소: 개인 도메인
콘텐츠: Markdown 파일
사이트 코드: GitHub 저장소
낮은 운영비와 높은 자유도
선택한 구조는 Astro, GitHub, Cloudflare Pages의 조합이다.
Astro는 Markdown을 웹페이지로 변환하고, GitHub는 코드와 글의 변경 이력을 저장한다. Cloudflare Pages는 GitHub의 변경사항을 감지해 웹사이트를 자동으로 배포한다.
GitHub와 Cloudflare Pages의 무료 범위를 활용하면 트래픽이 크지 않은 개인 사이트를 낮은 비용으로 운영할 수 있다. 정기적으로 발생하는 주요 비용은 사실상 도메인 비용에 가깝다.
동시에 사이트의 디자인과 기능을 직접 변경할 수 있다. 영어와 한국어 페이지를 별도 주소로 만들거나 홈페이지를 포트폴리오 형태로 구성하는 것도 가능하다.
물론 자유도가 높아지는 만큼 직접 확인해야 할 것도 늘어난다. 배포와 도메인 연결 상태, 추가한 기능이 정상적으로 작동하는지를 확인해야 한다. 기존 플랫폼이 대신 처리하던 일부 책임이 사이트 소유자에게 돌아오는 것이다.
따라서 직접 구축은 유료 서비스를 무료 서비스로 바꾸는 선택만은 아니다. 플랫폼이 제공하는 편의 일부를 포기하는 대신 사이트의 구조와 발전 방향을 직접 결정하는 선택이다.
AI가 직접 구축의 진입장벽을 낮췄다
과거라면 필요한 시간과 기술적인 부담 때문에 기존 플랫폼을 선택했을 가능성이 높다. 하지만 생성형 AI가 등장하면서 상황이 달라졌다.
웹사이트를 만드는 과정에는 코드를 작성하는 일만 있는 것이 아니다. 어떤 사이트를 만들지 정의하고, 기능의 우선순위를 정하고, 결과가 의도한 방향과 일치하는지 판단하는 일도 필요하다.
나는 IT 업계에서 제품과 사업을 다루며 해왔던 방식으로 요구사항을 정리하고 결과를 검토했다. ChatGPT는 이를 코드와 명령어로 구체화하고 오류가 발생했을 때 가능한 원인과 해결 순서를 제안했다.
AI가 구현을 보조하더라도 무엇을 만들 것인지, 어떤 기능이 필요한지, 결과가 목적에 맞는지를 결정하는 것은 여전히 사용자의 몫이다.
첫 번째 기반을 만들었다
이 방식이 모든 사람에게 가장 좋은 선택이라고 생각하지는 않는다. 글을 최대한 빨리 시작하고 싶다면 기존 블로그 서비스가 더 적합할 수 있다.
하지만 블로그를 개인 홈페이지와 포트폴리오, 지식 아카이브로 발전시키고 싶다면 직접 구축하는 방식도 검토할 수 있다.
내가 중요하게 생각한 기준은 명확했다.
낮은 운영비
높은 자유도
개인 도메인
콘텐츠 소유권
장기적인 확장 가능성
현재 hekate.work에는 영어와 한국어 홈페이지, 경력 소개와 블로그 구조가 만들어져 있다. 앞으로 이곳에 경제, 투자, AI와 새로운 기술을 탐구한 기록을 쌓아갈 예정이다.
다음 글에서는 Node.js 설치부터 Astro 프로젝트 생성, GitHub 연결, Cloudflare Pages 배포와 개인 도메인 연결까지 실제 제작 과정을 단계별로 정리한다.