Development

블로그

Minseok Doo 2026. 7. 26. 20:37
반응형

블로그

Photo by Suzy Hazelwood from Pexels: https://www.pexels.com/photo/a-vintage-typewriter-3601081/

 

github-page (al-folio), tistory, ghost를 다 쓰자

 

Tistoty를 쓰지 않게 됬던 이유 중 하나는 해외에서 접속했을 때 레이턴시가 극심하다는 것이 가장 큰 이유였다. 그럼에도 불구하고 지금 다시 Tistory를 쓰려고 하는 이유는 역시 managed 서비스가 가장 편하기 때문이다.

 

개인 홈페이지를 운영하는 것은 홈페이지 코드를 작성, 업데이트, 운영하는 작업들이 필요하다. 운영을 해보면 알겠지만, 이 홈페이지를 업데이트한다는 것이 여간 귀찮은 일이 아니다.

 

여기서 self-host로 가게 되면, 운영을 위한 난이도가 상승한다. Apache 내지는 Nginx를 통한 호스팅 관리, 작게는 pm2, docker 또는 k3s(k8s)를 운영하는 업무가 발생한다.

Web Page (Self Host)

우선 웹페이지를 서비스 하기 위해서는 서비스를 구동할 bare metal 또는 virtual machine instances 가 필요하다. bare metal 은 개인 홈페이지 서버로는 과분하니 우선 제외하고, 아래 서버들 중에 어떤 것이 좋을지 고민해 보자.

 

AWS EC2/Lightsail, Azure VM, GCP Compute Engine, OCI Instance... 이 외에도 많은 서비스들이 존재하지만, 나는 OCI를 선호하기 때문에 OCI를 사용해서 구축하려 한다.

Just Code

HTML5, CSS3, JS 뿐만 아니라, 최근에는 React, NextJs, VueJs 등 다양한 full-stack framework 가 존재하는 만큼 원하는 모습의 홈페이지를 빠르고 쉽게 구현할 수 있게 되었다.

 

처음 내가 홈페이지를 만들 때에는, Jenkins을 패키지 매니저로 깔고, github webhook을 묶어서 CI/CD를 구성하고, git에서 코드로 페이지를 업데이트했었다.

 

그런데 웹페이지로 글을 정리하는 건 생각보다 매우 복잡하고, 귀찮은 작업이다.

 

앞서 언급한 frontend 기반의 full-stack 만으로는 구현의 한계가 존재하고, 억지로 DB를 붙이고, 필요한 기능들을 붙이다 보면, 이 짓을 내가 왜 하고 있지라는 고민을 하고 있게 된다.

 

개발자가 꾸준히 개발 블로그를 관리하는 것 자체만으로도 상당한 시간과 노력이 할애되는데, 저걸 운영까지 직접해야 한다?

 

글 쓰는 것을 먼저 그만둘 것이다.

WordPress

WordPress는 오랜 시간 동안 사랑받은 프로젝트이다. 수많은 회사의 홈페이지들이 wordpress로 작성되어 운영되고 있고, AWS Lightsail 콘솔에 들어가 보면, WordPress 가 pre-install 되어있는 인스턴스를 버튼 한 번이면 만들 수 있다.

 

하지만, 나는 PHP를 싫어하기 때문에 패스.

 

잡설이지만, 인터넷에 웹서버를 개방하고나면 수많은 `/wp-login.php`, `/wp-admin/`, `/xmlrpc.php`, `/wp-content/plugins/...` 긁는 요청이 며칠 안에 쌓이는 것을 로그에서 볼 수 있는데, 워드프레스로 작성되어 있는 홈페이지를 털어보려는 공격이 많다.

Ghost

처음에는 Ghost 블로그를 self hosting 하는 것으로 정착하려 했다.

 

처음에는 정말 만족스러운 오픈소스 프로젝트였는데, 글을 쓰다 보니 내가 하고 싶은 것들에 제약이 발생하기 시작했다.

 

비공개 글을 특정 사람에게만 공개하고 싶다거나, 데이터를 백업하기 위한 것들을 설정하는 것들, 다국어 지원, 이 외에도 ghost 철학에서 발생하는 기술적 제약들이 거슬렸다.

 

이후 Ghost를 self host로 운영하다 몇 번의 통수를 겪은 뒤 — AWS always free 수준의 인스턴스 메모리 제약상에서는 구동하다가 꺼진다던가 — swap 추가해서 구동하면 구동되기는 한다... NodeJs 버전 바뀌니까 깨진다던지... 이미지와, 파일은 DB를 쓰는 게 아니라 인스턴스 블록데이터를 사용하기 때문에, 초기화하면 날아간다던지...

 

NVM에 20부터 24까지 다 깔아 둔 탓에, 이 pm2인가 저 pm2인가 하며 btop을 켜고 PID를 뒤지고 있었다. 글을 쓰려고 접속했다가 프로세스를 찾고 있으면, 그날 글을 쓸 시간은 증발한 거다.

Managed Services

GitHub Page

처음 내가 Tistory를 썼던 시절, GitHub의 Private Repo는 유료계정 전용이던 시절이 있었다.

 

GitHub Page 도 좋은 서비스...

Tistory

Tistory를 처음 본 게 언제였을까, 과거 Tistory 가 독립 서비스로 Tistory 아이디를 통해 사용되던 때가 생각난다. 지금도 그렇고, 과거에도 그랬고, Tistory는 수많은 개발자들의 일기장이었다.

 

이렇게 말하니 진짜 늙크크 인 거 같네.

 

당시 Tistory는 기존 블로거의 초대장이 있어야 가입을 할 수 있었고, 커스텀 테마를 제작하여 적용하고 개발자스러운 본인만의 색을 보여줄 수 있는 놀이터였다. 하나 문제가 있다면, 커스텀 테마를 만들고 싶다면 XML을 써야 했다는 것 정도였을까.

 

미국에서 거주하던 당시에 Gabia, Tistory를 사용하는 데에 있어서 불편을 겪었었는데, Gabia DNS 설정 페이지를 들어갈 때면, 정말 속 터지곤 했다.

 

텍스트 위주의 페이지도 저런데 블로그는 오죽했을까.

 

Tistory는 Kakao 사의 CDN을 사용하는데, 페이지 로딩이 뭐가 이렇게 느려터졌는지, 글만 있는 글을 조회하려고 해도 로딩에 걸리는 시간이 한세월이었다.

Medium

브런치

브런치는 카카오에서 운영하는...

 

다 쓰지 뭐

결론은...

반응형