한 줄의 Java로 전문 블로그 배포
Source: Dev.to
현 상황의 문제점
Spring Boot 블로그 솔루션을 온라인에서 찾아보면 두 가지 극단이 보입니다. 한쪽에는 Enonic 같은 거대한 CMS 플랫폼이 있어 단순한 “생각” 페이지에 비해 과도합니다. 다른 한쪽에서는 CommonMark를 사용해 파일을 파싱하는 방법만 보여 주어 템플릿, CSS 네임스페이스, RSS 생성, 메타데이터 등을 직접 해결해야 합니다.
그 사이에 “Vertical Slice” 라이브러리라는 중간 단계가 없었습니다. 이 라이브러리는 파서만이 아니라 전체 기능을 제공합니다.
하나의 프로젝트에서 > 1개의 인프라로
devx-spring-blog의 진정한 시험은 새로운 프로젝트를 시작했을 때였습니다. 블로그에 시간을 쓰고 싶지 않았고 핵심 로직에 집중하고 싶었습니다.
공유 라이브러리를 끌어오면 통합은 다음과 같이 보였습니다:
- 메인 애플리케이션에
@Import(BlogConfiguration.class)를 추가합니다. src/main/resources/content/blog/에 몇 개의 마크다운 파일을 넣습니다.- 프로퍼티에
blog.title을 설정합니다.
5분도 안 되어 프로젝트는 /blog 경로에 전문적인 SEO 최적화 블로그와 실시간 RSS 피드, 소셜 공유 버튼을 갖추게 됩니다. 이는 추출이 단순 리팩터링을 넘어 후속 프로젝트에 큰 힘을 주는 요소임을 증명했습니다.
시간 낭비였을까?
단기적으로는 코드를 라이브러리로 추출하는 것이 우회로처럼 느껴질 수 있습니다. “복사‑붙여넣기”하고 넘어가는 것이 더 쉽죠. 하지만 다른 프로젝트의 git 로그를 보면 차이가 밤과 낮처럼 뚜렷합니다. 흩어져 있던 로컬 컨트롤러와 템플릿을 하나의 의존성으로 정리하면서 코드베이스가 깔끔해지고 마케팅 사이트 유지 관리가 훨씬 쉬워졌습니다.
시간 낭비였을까? 다른 앱을 전혀 만들지 않을 때만 그렇습니다. 여러 SaaS 제품을 운영한다면, 휴대 가능한 블로그 엔진은 강력한 슈퍼파워가 됩니다. 전체 생태계에 일관된 UI/UX를 제공하면서 핵심 제품 기능에 집중할 수 있게 해 줍니다.
오픈 소스이며 바로 사용 가능
devx-spring-blog는 오픈 소스이며 무료로 사용할 수 있습니다. Hugo나 Jekyll 같은 정적 사이트 생성기의 단순함을 기존 Spring Boot 환경 안에서 누리고 싶은 개발자를 위해 설계되었습니다.
제공되는 기능:
- Markdown 기반 콘텐츠 (데이터베이스 불필요).
- 자동 RSS 피드는
/blog/rss.xml에서 확인 가능. - 내장 SEO는 Open Graph와 JSON‑LD를 지원.
- 네임스페이스가 적용된 CSS로 메인 앱 스타일과 충돌 방지.
두 번째(또는 열 번째) Spring 프로젝트를 만들면서 블로그 설정이 귀찮다면 한 번 사용해 보세요. 한 번만 작업하면 다시는 할 필요가 없게 해 줍니다.
프로젝트는 GitHub에서 확인할 수 있습니다 – devx-spring-blog.