확장 가능한 블로그 백엔드를 구축하려면 잘 구성된 아키텍처, 인증 시스템, 그리고 제대로 문서화된 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/registerPOST /auth/loginPOST /auth/refreshPOST /auth/logoutGET /auth/profile
사용자 모듈
사용자 계정 및 프로필을 관리합니다.
엔드포인트:
GET /usersGET /users/:idPATCH /users/:idDELETE /users/:id
쓰기 작업을 수행하려면 관리자 권한이 필요합니다 .
게시물 모듈
게시물 모듈은 블로그 콘텐츠를 관리합니다.
주요 기능은 다음과 같습니다:
쪽수 매기기
카테고리, 태그 또는 작성자별 필터링
정렬
전문 검색
추천 게시물
엔드포인트:
GET /postsGET /posts/featuredGET /posts/:slugPOST /postsPATCH /posts/:idDELETE /posts/:id
카테고리 모듈
블로그 게시물을 카테고리별로 정리합니다.
엔드포인트:
GET /categoriesGET /categories/:slugPOST /categoriesPATCH /categories/:idDELETE /categories/:id
태그 모듈
블로그 게시물에 유연한 태그 기능을 제공합니다.
엔드포인트:
GET /tagsGET /tags/:slugPOST /tagsPATCH /tags/:idDELETE /tags/:id
댓글 모듈
댓글 스레드 및 중첩 답글을 지원합니다.
엔드포인트:
GET /comments/post/:postIdGET /comments/:id/repliesPOST /commentsPATCH /comments/:idDELETE /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 통합
데이터베이스 시드 시스템
생산 준비가 완료된 프로젝트 구조



