제 블로그를 소개합니다!

이 블로그의 구조, 만든 방법 등을 간략히 소개합니다.
2024-06-06 Free
dog2

안녕하세요. 저는 mirusu400이라고 합니다.

저는 현재 컴공에 재학해 다양한 컴퓨터 관련된 지식들을 배우고 있는 대학생입니다.

주로 웹과 보안을 하고 있으며, 이 블로그 또한 제가 직접 만든 페이지입니다.

이번 글에선, 어떻게 이 블로그를 만들었는지 간략히 소개하도록 하겠습니다.


개인 페이지 만들기

사실 제 개인 페이지는 만든지 약간 오래됐습니다.

이 글을 쓰는 시점인 2024년보다 약 5년 전인, 2019년에 처음으로 Django를 공부하여 제 홈페이지를 만들었습니다.

당시엔 도메인도 달라 현재 흔적은 찾아볼 수 없지만, Archive.org 스냅샷 등을 통해 찾아볼 수 있습니다.

당시에는 홈페이지를 만든 이유가 단순히 웹 공부 + 기존 스프레드시트로 작업하던 공개 번역 자료들의 불편함 으로 인하여 만들었던 것이라, UI나 글 작성같은 CMS는 하나도 신경 안썼었습니다.

글을 쓰고 싶었다면, 제 개인 네이버 블로그에 주로 작성했었습니다. Github.io 템플릿 을 이용해 글을 퍼블리싱할려고도 했지만, 여러모로 불편한 점이 있어 차라리 직접 커스터마이징 해보자! 하고 블로그를 만들게 되었습니다.


CMS 비교

종류 애드센스 지원여부 커스텀 여부 구글 SEO 최적화 여부
네이버 블로그 X X X
티스토리 O X O
Github.io O O O
자체 제작 O O O

전반적으로 필요 기능만 정리했을땐 위와 같습니다.

네이버 블로그같은 경우엔, 스마트에디터가 좋다.. 외엔 딱히 쓸필요가 없다고 생각했고

티스토리는 애드센스나 SEO를 기본적으로 잘 제공해주지만, 무엇보다 외부 플랫폼 위에 올라가 언젠가 서비스 종료되면 내 블로그 글들을 백업도 제대로 못할 것이라고 생각했습니다.

Github.io는 대부분 좋지만, 아무래도 편집을 마크다운으로 일일히 작성해야되는, 즉 에디터가 좋지 않아서 고민을 하였습니다.

그리하여, 애드센스 지원 + 커스텀 가능 + 구글 SEO 최적화 가능하면서, 글 쓰기도 편하게 할수 있는 블로그를 직접 만들기로 하였습니다.


사이트 구조

현재 이 블로그는 Django 위에 올라간 Wagtail 웹 앱입니다.

구지구지 Django위에 올라가는 CMS를 선택한 이유는, 첫번째 문단에서 소개했다시피 처음 만든 홈페이지가 Django였고, 현재까지도 운영중이던 홈페이지와 별개로 새로운 사이트를 만들어 배포하고 싶지 않았기 때문입니다.

Wagtail은 CMS의 일종으로, 컨텐츠를 만들기 편하게 해주는 프레임워크입니다.

그누보드나 워드프레스와 같은 것 비슷하다고 생각하면 되는데, 결국 Django 위에 올라가서 모델 하나하나 만들어야 되어 커스터마이징을 해야합니다.

그리하여 태그기능이나 카테고리, 글 모델을 직접 하나하나 정의한 다음, 이를 Wagtail에 적용하였습니다.

홈페이지 퍼블리싱 같은 경우 Bootstrap 5 기본 모듈에 기반해 이것저것 모듈을 붙였습니다.

서버 배포의 경우엔 Docker-compose와 Github Action을 이용해 배포하였고, 실제론 Oracle의 클라우드 서비스를 이용해 웹사이트 배포, 데이터베이스는 제 REDACTED 서버에 올려두었습니다.

현재는 이 글을 Wagtail의 Admin에 붙어있는 Markdown 모듈로 글을 작성하고 있습니다.

제작은 하루 한시간 정도 소요하여 약 2주정도 걸렸습니다. 물론 저는 기존 웹 개발 경험 / 배포 경험이 충분하여 Wagtail을 간략히 공부하여 이부분에만 신경을 썼기에 빠르게 만들었지, 실제로 많은 지식 없이 처음부터 만드는것은 조금 힘들수도 있을 것 같다.. 라고 생각하였습니다.

Wagtail의 장점

위에서 보다시피, 저는 애드센스 지원/구글SEO최적화 등 커스터마이징이 되면서 글쓰기도 편하게 하고 싶었습니다.

Wagtail로 직접 블로그를 만들면서 느낀 장점은 아래와 같습니다

  • HTML, CSS, JS 다 직접 커스터마이징한다
  • 블로그 모델 또한 직접 짠다 (카테고리, 태그, 글, 댓글 등 모델관계를 직접 작성)
  • Self-hosted로 배포가 가능하다.
  • 웹 페이지만 띄울수 있다면 글 작성이 가능하다

등이 있습니다. 별거 아닐수도있지만, 생각보다 여러 플랫폼을 돌아다니며 글을 작성해 본 결과 생각보다 이렇게 제공해주는 플랫폼이 없다는 것을 느꼈고, 결국 직접 만들게 되었습니다.

Wagtail의 단점

물론 장점만 있는 것은 아닙니다. 단점도 있습니다.

  • Django를 숙지하고, HTML, CSS, JS, 백엔드 전부 다 직접 짜야된다.
  • 서버를 직접 배포해야된다.
  • SEO 최적화, 구글 애드센스, 애널리틱스 등록 등도 전부 직접 해야된다.

등이 있습니다. 사실 Wagtail 기반의 많은 오픈소스들을 찾아봤지만, 전부 오래되거나 나사가 하나씩 빠진게 많았고, 제가 원하는 오픈소스를 찾지 못하여 직접 만들게 되었습니다.

사실 따지고 보면 다 직접 ~해야되서 불편하다. 정도라서, 어느정도 시간을 들이면 전부 다 해결될 문제인것 같습니다.

TODOs

아직 덜 구현된 부분이 있어, 추후 개발 예정인 것들이 있습니다.

  • 조회수, 좋아요 기능
  • 댓글 기능

사실 크게 어려운 기능도 아니고, 글을 Publish하는 기능은 이미 다 완성이 되어서, 해당 기능은 아마 필요성을 느끼지 않는 이상 차일피일 미루지 않을까 싶습니다.


이상으로, 제가 이 블로그를 만든 이유와, 어떻게 만들었는지 간략히 소개하였습니다.

제 블로그를 어떻게 찾아왔는진 모르겠지만 (아마 검색엔진이겠죠?) 이 글을 읽으시는 분들이 제 블로그를 좋아해주셨으면 좋겠습니다.

감사합니다.