NestJS MongoDB 블로그 API 템플릿- 블로그를 위한 완벽한 기능을 갖춘 REST 백엔드

확장 가능한 블로그 백엔드를 구축하려면 잘 구성된 아키텍처, 인증 시스템, 그리고 제대로 문서화된 API가 필요합니다. NestJS MongoDB Blog API 는 개발자가 NestJS, MongoDB, JWT authentication그리고 Swagger 문서를 활용하여 최신 블로그 플랫폼을 신속하게 구축할 수 있도록 설계된, 바로 사용 가능한 백엔드 템플릿입니다 .

이 프로젝트는 사용자, 게시물, 카테고리, 태그, 댓글, 인증 및 역할 기반 접근 제어를 위한 모듈을 포함하는 완전한 RESTful API를 제공합니다 .

저장소: https://github.com/bfotool/nestjs-mongodb-blog-base

NestJS MongoDB 블로그 API란 무엇인가요?

NestJS MongoDB 블로그 API는 NestJS 11과 MongoDB 로 구축된 오픈 소스 백엔드 템플릿으로, 완벽하게 작동하는 블로그 REST API를 제공합니다.

이는 건설을 위한 기반 역할을 하도록 설계되었습니다.

  • 블로그 플랫폼

  • 헤드리스 CMS 시스템

  • 콘텐츠 게시 API

  • 문서 웹사이트

  • 개발자 포트폴리오 블로그

본 프로젝트는 NestJS에서 권장하는 모듈형 아키텍처를 따르므로 확장성과 유지보수성을 보장합니다.

저장소: https://github.com/bfotool/nestjs-mongodb-blog-base

주요 특징

인증 및 권한 부여

이 API에는 JWT 토큰을 사용하는 안전한 인증 시스템이 포함되어 있습니다.

주요 인증 기능은 다음과 같습니다.

  • JWT 액세스 및 리프레시 토큰

  • 역할 기반 접근 제어(RBAC)

  • bcrypt를 사용한 비밀번호 해싱

  • Guard를 사용한 보호된 API 경로

  • 토큰 갱신 메커니즘

기본적으로 세 가지 사용자 역할이 지원됩니다.

  • 관리자

  • 작가

  • 리더

이를 통해 다양한 API 엔드포인트에 걸쳐 권한을 쉽게 관리할 수 있습니다.

블로그 전체 모듈

이 프로젝트에는 블로그의 모든 핵심 기능을 포괄하는 여러 개의 완벽하게 구현된 모듈이 포함되어 있습니다.

인증 모듈

인증 및 사용자 세션을 처리합니다.

엔드포인트는 다음과 같습니다.

  • POST /auth/register

  • POST /auth/login

  • POST /auth/refresh

  • POST /auth/logout

  • GET /auth/profile

사용자 모듈

사용자 계정 및 프로필을 관리합니다.

엔드포인트:

  • GET /users

  • GET /users/:id

  • PATCH /users/:id

  • DELETE /users/:id

쓰기 작업을 수행하려면 관리자 권한이 필요합니다 .

게시물 모듈

게시물 모듈은 블로그 콘텐츠를 관리합니다.

주요 기능은 다음과 같습니다:

  • 쪽수 매기기

  • 카테고리, 태그 또는 작성자별 필터링

  • 정렬

  • 전문 검색

  • 추천 게시물

엔드포인트:

  • GET /posts

  • GET /posts/featured

  • GET /posts/:slug

  • POST /posts

  • PATCH /posts/:id

  • DELETE /posts/:id

카테고리 모듈

블로그 게시물을 카테고리별로 정리합니다.

엔드포인트:

  • GET /categories

  • GET /categories/:slug

  • POST /categories

  • PATCH /categories/:id

  • DELETE /categories/:id

태그 모듈

블로그 게시물에 유연한 태그 기능을 제공합니다.

엔드포인트:

  • GET /tags

  • GET /tags/:slug

  • POST /tags

  • PATCH /tags/:id

  • DELETE /tags/:id

댓글 모듈

댓글 스레드 및 중첩 답글을 지원합니다.

엔드포인트:

  • GET /comments/post/:postId

  • GET /comments/:id/replies

  • POST /comments

  • PATCH /comments/:id

  • DELETE /comments/:id

API 기능

쪽수 매기기

모든 목록 엔드포인트는 페이지네이션을 지원합니다.

예:

GET /posts?page=1&limit=6

필터링

게시물은 카테고리, 태그 또는 작성자별로 필터링할 수 있습니다.

예:

GET /posts?category=web-development

전문 검색

게시물에 검색 기능이 구현되어 있습니다.

예:

GET /posts?search=nestjs+mongodb

정렬

API 응답은 다양한 기준으로 정렬할 수 있습니다.

예:

GET /posts?sortBy=createdAt&sortOrder=desc

자동 슬러그 생성

게시글을 작성할 때 시스템은 slugify를 사용하여 제목에서 URL에 적합한 슬러그를 자동으로 생성합니다 .

예:

Building REST APIs with NestJS 
→ building-rest-apis-with-nestjs 

독서 시간 계산

API는 게시물의 내용 길이를 기반으로 예상 읽기 시간을 자동으로 계산합니다.

일관된 API 응답 형식

모든 답변은 표준 구조를 따릅니다.

{ 
  "success": true, 
  "data": {}, 
  "timestamp": "2026-01-01T10:00:00Z" 
} 

이를 통해 프런트엔드 통합 및 디버깅이 향상됩니다.

기술 스택

백엔드는 최신 Node.js 스택을 사용하여 구축되었습니다.

기술
뼈대 NestJS 11
언어 타입스크립트 5.7
데이터 베이스 MongoDB 8
ODM 몽구스 8
입증 Passport.js + JWT
확인 클래스 유효성 검사기
API 문서 스웨거 오픈 API
비밀번호 보안 bcrypt
슬러그 생성기 슬러그화
테스트 농담

프로젝트 구조

이 프로젝트는 모듈식 아키텍처를 따릅니다.

src/ 
├── auth/ 
├── users/ 
├── posts/ 
├── categories/ 
├── tags/ 
├── comments/ 
├── common/ 
└── seed/ 

주요 구성 요소는 다음과 같습니다.

  • DTO 유효성 검사

  • Mongoose 스키마

  • 전역 예외 필터

  • 응답 차단기

  • JWT 경비원

  • 역할 장식가

이러한 구조는 코드베이스를 체계적으로 유지하고 확장성을 높여줍니다.

프로젝트 설치 및 실행 방법

필수 조건

설치하기 전에 다음 사항을 확인하십시오.

  • Node.js 18.17 이상

  • MongoDB 6+

  • npm, yarn 또는 pnpm

저장소를 복제하세요

git clone https://github.com/bfotool/nestjs-mongodb-blog-base 
cd nestjs-mongodb-blog-base 

필수 구성 요소 설치

npm install

환경 변수 구성

예제 환경 파일을 복사하세요:

cp .env.example .env

다음 값을 업데이트하세요:

MONGODB_URI= 
JWT_ACCESS_SECRET= 
JWT_REFRESH_SECRET= 

데이터베이스에 시드

데이터베이스에 샘플 데이터를 입력합니다.

npm run seed

재설정 및 시드 재설정:

npm run seed:refresh

개발 서버를 시작하세요

npm run start:dev

API 기본 URL:

http://localhost:3000/api/v1

Swagger 문서:

http://localhost:3000/api/docs

기본 시드 데이터

시드 스크립트는 테스트를 위한 샘플 데이터를 생성합니다.

실재 세다
사용자 5
카테고리 5
태그 28
게시물 10
댓글 6

기본 로그인 자격 증명

모든 시드 사용자 비밀번호:

admin123

계정:

역할 이메일
관리자 [email protected]
작가 [email protected]
작가 [email protected]
작가 [email protected]
리더 [email protected]

Swagger API 문서

대화형 API 문서는 다음에서 확인할 수 있습니다.

http://localhost:3000/api/docs

Swagger는 다음을 제공합니다.

  • 대화형 엔드포인트 테스트

  • JWT authentication지원하다

  • 요청 및 응답 스키마 문서

이 저장소를 사용해야 하는 이유

NestJS MongoDB 블로그 API는 최신 블로그 백엔드를 구축하는 개발자에게 강력한 출발점을 제공합니다.

장점은 다음과 같습니다.

  • 깔끔한 NestJS 모듈형 아키텍처

  • 내장 인증 및 RBAC

  • 바로 사용 가능한 Swagger API 문서

  • Mongoose를 사용한 MongoDB 통합

  • 데이터베이스 시드 시스템

  • 생산 준비가 완료된 프로젝트 구조

저장소: https://github.com/bfotool/nestjs-mongodb-blog-base