블로그 디로그 서비스 개발 리뷰
블로그 개발을 시작한 이유
기존에 GitHub Pages 기반으로 운영하던 개발 블로그가 있었지만, 직접 블로그를 만들어보기로 했다. GitHub에 코드를 푸시하는 방식으로 글을 업로드하는 것이 번거로웠기 때문이다. 직접 개발하면 블로그를 관리하면서 겪었던 불편함을 효과적으로 개선할 수 있을 것이라 생각했다.
예를 들어, 방문자의 언어에 따라 블로그 콘텐츠를 다르게 제공하는 기능을 구현할 수 있다. 영어권 사용자에게는 영어로, 한국 사용자에게는 한글로 자동 번역된 콘텐츠를 보여주는 방식이다. 이전에는 번역 API의 품질이 만족스럽지 않아 어려움이 있었지만, ChatGPT의 발전으로 이제는 높은 품질의 번역이 가능해졌다.
또한, 직접 개발하고 운영하는 서비스의 즐거움도 큰 이유 중 하나다. 소프트웨어는 완성된 형태로 머무르지 않고, 계속해서 개선되는 과정 속에 있다. 직접 개발해두면 사용하면서 느낀 불편함을 즉시 해결하고, 필요한 기능을 자유롭게 추가하며 발전시킬 수 있다. 이런 점에서 블로그를 직접 만들고 운영하기로 결정했다.
개발 일정
개발 시작부터 마무리까지 총 2주가 소요되었다. 서비스 규모에 비해 빠르게 개발을 완료할 수 있었던 가장 큰 이유는 AI의 도움이다. CURSOR IDE의 Composer 기능을 활용하여 코딩의 방향을 지시하는 방식으로 진행하니 개발 시간이 크게 단축되었다.
CURSOR IDE API 사용 비용으로 약 40달러(기본 구독료 20달러 + 추가 비용 20달러)를 지출했지만, 절약된 시간을 고려하면 충분히 가치 있는 투자였다.
기술 스택
SEO가 중요한 블로그 서비스인 만큼, SSR이 강력하게 지원되는 Next.js를 프론트엔드 프레임워크로 선택했다. 또한, TypeScript와 TailwindCSS를 함께 적용해 개발 생산성을 극대화했다.
백엔드는 가볍고 성능이 뛰어난 Go와 MongoDB를 조합해 구축했으며, 향후 Redis를 도입해 더욱 효율적으로 개선할 계획이다.
CI/CD는 GitHub Actions를 활용해 Docker 이미지를 빌드하고, 개인 Harbor 도커 레지스트리에 업로드한 뒤, 이를 집에 설치한 로컬 서버에서 실행하도록 구성했다. AWS를 사용하면 더 편리하겠지만, 비용 부담이 커서 기존 게임용 PC를 초기화한 후 Proxmox 위에 Ubuntu를 설치하고, UPS를 연결해 운영하고 있다.
이미지 리소스는 AWS CloudFront와 S3를 연동해 서빙하고 있다.
사용한 주요 라이브러리
-
TipTap (오픈소스 에디터 라이브러리)
일반적인 마크다운 에디터는 왼쪽에서 마크다운을 입력하고, 오른쪽에서 미리보기를 제공하는 방식이다. 하지만 TipTap을 사용하면 노션(Notion)처럼 스타일을 바로 적용하며 편집할 수 있어 더욱 직관적인 사용자 경험을 제공한다. -
next-i18next (다국어 지원 라이브러리)
Next.js에서 다국어 기능을 쉽게 구현할 수 있도록 도와주는 대표적인 라이브러리이다. 현재 프로젝트에서는 구글 스프레드시트에서 번역 데이터를 관리하여 사용하고 있다.
서비스 기능 소개
-
스타일이 적용된 편집 기능
블로그 서비스의 핵심은 콘텐츠이므로, 콘텐츠 작성 및 수정 기능이 직관적이고 사용하기 편리해야 한다. 개발자뿐만 아니라 일반 사용자도 쉽게 사용할 수 있도록 TipTap 라이브러리를 활용해 스타일이 적용된 에디터를 지원한다. 또한, 단축키 기능을 추가하여 예를 들어 Confluence처럼 E 키를 누르면 편집 페이지로 이동하는 등의 편리한 기능을 제공해 사용자 경험을 향상시켰다.
-
자동 번역 수준
하나의 글을 여러 언어로 자동 번역할 수 있다면, 작성자는 더 쉽게 다양한 국가의 사람들과 소통할 수 있다. 이를 통해 글 작성자의 편의성을 높이는 것이 목표다. 각 게시글 상단에는 지원하는 언어 목록이 표시되며, 사용자가 원하는 언어를 선택하면 미리 번역된 콘텐츠가 제공된다.
-
사용자 이름 기반 주소 설정
유튜브처럼 <https://blog.danver.io/@0921pig> 형태로 각 블로그에 사용자 이름(username)으로 접근할 수 있도록 설정했다. 이를 통해 더 직관적이고 이해하기 쉬운 URL 구조를 제공하려고 노력했다. 향후에는 사용자가 직접 커스텀 도메인을 설정할 수 있는 기능도 지원할 계획이다.
마무리하며
2주라는 짧은 시간 동안 혼자 개발한 프로젝트인 만큼 아직 부족한 점이 많다. 직접 사용하면서 발견한 개선 포인트를 정리하고, 꾸준히 보완해 나갈 계획이다.
다만, 관리해야 할 프로젝트가 많아지면서 놓치는 부분이 생길까 걱정도 된다. 이를 보완하기 위해 ClickUp을 활용해 프로젝트 일정을 체계적으로 관리해보려 한다. 효율적으로 진행하면서, 블로그를 더욱 발전시켜 나가는 과정 자체를 즐기고 싶다. 🚀
