
댓글 하나 받으려고 서버를 한 대 켰습니다
블로그를 만들고 다섯 편쯤 쓰고 나니 이런 생각이 들었습니다. 누가 이걸 읽고 뭔가 말하고 싶어지면, 지금은 방법이 없구나.
메일 주소는 적어뒀습니다. 하지만 “이 부분 저도 겪었어요” 정도를 말하려고 메일함을 여는 사람은 없습니다.
저장할 데가 없다는 문제
댓글은 겉보기와 달리 성가신 기능입니다. 누가 뭘 썼는지 어딘가에 남겨두고, 다음 사람이 왔을 때 그걸 다시 꺼내줘야 하니까요.
그런데 제 블로그에는 그 “어딘가”가 없습니다. Astro로 빌드해서 나온 건 HTML 파일 뭉치고, Cloudflare는 그 파일을 가져다 보여주기만 합니다. 받아서 저장하는 쪽 일을 할 놈이 아무도 없습니다.
그래서 선택지는 셋입니다. 남의 서버를 빌리거나, GitHub을 서버처럼 쓰거나, 내가 한 대 띄우거나.
1. 남의 서버를 빌린다
제일 쉬운 길입니다. 스크립트 한 줄 붙이면 끝나고, 대표주자는 Disqus입니다.
여기서 요금제를 봤습니다. Basic이 무료인데 조건이 붙어 있습니다.
Free, ads-supported with a Top ads placement required
무료 요금제는 광고가 선택이 아니라 조건입니다. 광고를 끄려면 Plus로 올라가야 하고, 월 12달러부터 시작합니다. 트래픽이 늘면 35달러까지 갑니다.
저는 애드센스를 준비하는 중입니다. 광고 자리를 잡아둔 곳에 남의 광고가 먼저 들어오는 구조는 앞뒤가 안 맞습니다.
무게도 걸렸습니다. Alex MacArthur가 자기 블로그에서 재본 수치가 있습니다. Disqus를 붙이자 요청이 3개에서 51개로 늘고, 압축하지 않은 자바스크립트 1.5MB가 내려오고, 브라우저가 막아준 서드파티 요청이 7개, 로그인하면 10개였습니다. Lighthouse 점수는 100에서 71로 떨어졌습니다.
저는 앞의 글에서 구글 애널리틱스를 무게 때문에 접었습니다. 그래놓고 이걸 붙이면 그 글이 거짓말이 됩니다.
2. GitHub을 서버처럼 쓴다
giscus라는 게 있습니다. 댓글을 GitHub Discussions에 저장합니다. 서버도 DB도 필요 없고, 공짜고, 가볍습니다. 개발자 블로그에서 자주 보입니다.
조건이 둘 있습니다.
저장소가 공개여야 합니다. 비공개면 방문자가 그 Discussion을 볼 권한이 없어서 댓글이 안 보입니다. 제 블로그 저장소는 비공개입니다. 여기서 이미 걸립니다.
방문자에게 GitHub 계정이 있어야 합니다. 댓글을 쓰려면 GitHub으로 로그인하고 giscus 앱에 권한을 줘야 합니다.
두 번째가 더 큽니다. 제 글은 개발 이야기가 대부분이라 GitHub 계정이 있는 사람이 읽을 확률이 높긴 합니다. 그래도 “한마디 남기려고 OAuth 승인 화면까지 통과하시겠습니까”를 묻는 셈입니다. 저라면 그냥 닫습니다.
3. 내가 한 대 띄운다
집에 시놀로지 NAS가 굴러다닙니다. 여기에 댓글만 받는 작은 서버를 하나 올리는 방법입니다.
이쪽의 대가는 명확합니다. 제가 서버 관리자가 됩니다. 정전이 나면 댓글이 안 보이고, 인증서가 만료되면 제가 갱신해야 하고, 스팸이 오면 제가 지웁니다.
그런데 대신 얻는 게 있습니다. 로그인을 강제하지 않아도 됩니다. 이름만 적고 바로 쓸 수 있게 만들 수 있습니다. 광고도 없습니다. 댓글 데이터가 제 손에 있습니다.
저는 이쪽을 골랐습니다.
고르고 나서 한 번 갈아탔습니다
처음에 고른 건 Cusdis였습니다. 가볍고, Docker 이미지 하나면 되고, 화면도 깔끔했습니다.
설치 문서를 쓰려고 저장소를 열어봤다가 손을 멈췄습니다. 마지막 릴리스가 2021년 11월이었습니다. 그리고 README 위쪽에 이런 줄이 있었습니다.
Contact me if you want to buy/acquire this project 💖
만든 사람이 프로젝트를 팔겠다고 올려둔 상태였습니다. (그 뒤 2026년 7월에 저장소가 보관 처리됐고, 지금 README에는 “Cusdis is deprecated now.”라고 적혀 있습니다.)
댓글은 한 번 붙이면 몇 년을 굴리는 기능입니다. 그 사이에 보안 문제가 하나라도 나오면 고쳐줄 사람이 있어야 합니다. 화면이 깔끔한 것보다 이게 훨씬 중요합니다.
Remark42로 갈아탔습니다. 지금도 릴리스가 나오고 있고, 로그인 없는 댓글을 지원하고, 별도 DB 없이 파일 하나에 쌓입니다.
오픈소스를 고를 때 별 개수와 화면 스크린샷을 먼저 보게 되는데, 릴리스 탭을 먼저 여는 습관을 들이는 게 낫습니다. 마지막 커밋이 언제인지가 기능 목록보다 정확한 정보입니다.
그래서 얼마나 무거워졌나
붙여놓고 제 블로그에서 직접 재봤습니다.

글 페이지 자체는 요청 11개에 152KB입니다. 여기서 글만 읽고 나가는 사람에게는 요청이 하나도 안 늘어납니다. 댓글 영역이 화면에 들어올 때까지 스크립트를 부르지 않게 해뒀거든요.
스크롤해서 댓글까지 내려가면 그때 파일 4개가 옵니다.
embed.mjs 5.2 KB
iframe.html 1.8 KB
remark.mjs 249 KB
remark.css 36 KB
압축 전 기준으로 292KB쯤입니다. Remark42는 스스로를 가볍다고 소개하는데, 재보니 그렇게까지 가볍진 않았습니다. Disqus의 1.5MB보다 훨씬 작을 뿐입니다.
대신 확실한 차이가 하나 있습니다. 저 파일들은 전부 제 도메인에서 옵니다. 서드파티 도메인이 0개입니다. 광고 회사도, 추적 스크립트도 안 따라옵니다.
고르는 기준
정리하면 이렇습니다.
| 비교 | 서비스에 맡기기 | GitHub에 얹기 | 직접 띄우기 |
|---|---|---|---|
| 붙이는 시간 | 5분 | 20분 | 반나절 |
| 돈 | 무료(광고) 또는 월 12달러~ | 무료 | 전기값 |
| 방문자 로그인 | 필요 | GitHub 계정 필수 | 안 해도 됨 |
| 관리 부담 | 없음 | 거의 없음 | 전부 내 몫 |
| 저장소 공개 | 상관없음 | 공개여야 함 | 상관없음 |
서비스에 맡기기 — 시간을 돈으로 사는 쪽입니다. 다만 무료 요금제는 광고가 조건이니, 광고를 붙일 계획이 있으면 유료를 전제로 계산해야 합니다.
GitHub에 얹기 — 저장소가 공개고 독자가 개발자라면 이게 제일 합리적입니다. 조건 두 개가 다 맞을 때만요.
직접 띄우기 — 굴릴 하드웨어가 이미 있고, 서버가 잠깐 죽어도 큰일 안 나는 규모일 때. 개인 블로그가 딱 그렇습니다.
마무리
솔직히 말하면 마지막 길은 비효율적입니다. 방문자 몇 명 오는 블로그에 댓글 하나 받겠다고 인증서를 발급하고 역방향 프록시를 설정하고 컨테이너 로그를 15MB 열어보는 건, 시간으로만 따지면 월 12달러를 내는 게 낫습니다.
다만 저는 이 블로그를 만드는 과정 자체가 목적입니다. 그래서 제일 귀찮은 쪽을 골랐고, 그 과정에서 배운 게 이 글이 됐습니다.
설치하다 막힌 지점들은 따로 정리할 생각입니다. 컨테이너가 2,900번 재시작하던 이유, 로컬에서만 댓글이 안 달리던 이유 같은 것들요. 하나같이 “당연히 될 줄 알았는데”에서 시작했습니다.
고친 곳
2026년 9월 29일, 글에 붙일 참고 문서를 하나씩 다시 열어보다가 본문과 어긋나는 곳을 찾아 고쳤습니다.
- Cusdis의 현재 상태를 덧붙였습니다. 제가 볼 때는 판매 안내가 있었고, 지금은 저장소가 보관 처리됐습니다.
참고한 문서
- Disqus 도움말 — 요금제 — 1절. 무료 요금제는 광고 포함
- giscus — 2절. 댓글이 GitHub Discussions에 쌓이고 GitHub 로그인이 필요
- Remark42 README (v1.16.4) — 3절. 익명 댓글, 외부 DB 없이 파일 하나
- Cusdis 저장소 — 갈아탄 이유. 지금은 보관(archived) 상태
- Alex MacArthur — Disqus 무게 측정 (개인 블로그) — 1절에 인용한 요청 수와 JS 크기의 원출처
댓글
로그인도 이메일도 필요 없습니다. 이름만 적고 편하게 남겨주세요.
지금은 댓글을 불러올 수 없습니다. 잠시 뒤에 다시 시도해 주세요. 급한 내용이면 ryuma@kakao.com로 보내주셔도 됩니다.