Giscus로 댓글 기능 구현하기

2024년 2월 9일

이틀 전에 utterances를 사용해서 블로그 댓글 기능을 추가했었다. 그런데 테스트 댓글을 작성해보고 자기 전에 다시 한 번 생각해보니 GitHub의 Issues 탭에 댓글 내용이 추가된다는 점이 마음에 걸렸다. Issues는 말 그대로 코드에 문제가 있거나 에러가 발생하였을 때 사용되는 공간이어야 할 것이다.


그래서 utterances 이외에 댓글이 오류 없이 잘 추가되고, 빠르고, 가볍고, Issues 탭을 사용하지 않는 라이브러리가 있는지 찾아봤다. 처음 utterances를 추가하기로 결정했을 때 비교 대상이었던 것은 Disqus였는데 관련 블로그 글을 보고 Disqus를 사용해야겠다는 마음이 싹 없어졌다. 디자인도 내 블로그와는 어울리지 않았다.


마침내 발견한 것이 giscus이다. giscus는 댓글 기능에 꼭 필요한 기능만 있었고, 빠르고 가벼웠으며, 댓글 관리를 Discussions 탭을 사용하여 할 수 있었다. 추가로 댓글이 로딩될 때 로딩 애니메이션이 있다는 점도 좋았다. utterances의 경우에는 로딩 없이 댓글 창이 나타나 사용자 경험에 좋지 못했다.


마이그레이션 과정에서 나의 경우 댓글이 아직은 내가 추가한 테스트 댓글만 있어서 댓글 데이터를 옮기는 수고가 없었지만, 이 글에서처럼 댓글이 많아도 금방 옮길 수 있을 듯 하다.


utterances에서 giscus로 옮기는 작업은 시간이 얼마 걸리지 않았다. 하지만 실제 업무에서 만약 A를 사용해서 기능 구현을 다 해놨는데, B로 마이그레이션 하게 된다면, A를 제거하고, A와 의존성이 있는 코드를 수정하고, B를 설치하고 이를 다시 구현하는 과정에 생기는 시간과 비용은 큰 손해일 것이다. 처음 선택할 때 신중히 많은 상황을 고려해야겠다.