기획부터 배포까지: NestJS 마이크로서비스 + Next.js 관리자 페이지 (AI 풀스택 실전)

본 기사는 AI의 지원을 받아 NestJS 11 기반 마이크로서비스와 Next.js 16 프론트엔드로 구성된 B端(B2B) 관리자 페이지를 구축하고 배포한 실전 개발기입니다. 텐센트 클라우드 경량 서버 환경에서 Docker Compose와 Nginx를 활용해 HTTPS 및 이중 도메인(www.admin.chenchar.com, api.chenchar.com) 구조의 풀스택 아키텍처를 완벽히 구현했습니다.

AI 요약

본 프로젝트는 개발자가 AI 협업을 통해 독립적으로 설계, 구현 및 배포를 완료한 B2B 관리자용 풀스택 시스템입니다. 백엔드는 NestJS 11과 pnpm Monorepo를 기반으로 설계되었으며, API 게이트웨이(3010 포트)를 중심으로 유저 서비스(3001 포트)와 주문 서비스(3002 포트)가 분리된 마이크로서비스 아키텍처를 갖추고 있습니다. 데이터의 독립성을 보장하기 위해 각 서비스는 전용 데이터베이스인 nest_user_servicenest_order_service를 각각 참조하는 '1 서비스 1 DB' 원칙을 적용했습니다. 프론트엔드는 차세대 Next.js 16(App Router)과 React 19, Tailwind CSS 및 shadcn/ui 기반으로 빌드되어 반응성이 뛰어나고 현대적인 UX를 제공합니다. 또한 JWT 인증 체계를 쿠키와 Bearer 토큰의 이중 채널 구조로 최적화하여 마이크로서비스 환경에서 발생하기 쉬운 세션 만료 및 라우팅 가드 문제를 말끔히 해결했습니다. 마지막으로, 단 한 번의 명령어로 로컬 개발 환경과 도커 DB 서버를 완전 초기화할 수 있는 scripts/db-init.sh 셸 스크립트를 도입해 신규 개발자 진입 장벽을 낮추는 등 프로덕션 수준의 디테일을 더했습니다.

핵심 인사이트

  • 이중 도메인 기반의 Nginx 구조: 정적 리소스 및 SSR 페이지 요청은 www.admin.chenchar.com 도메인으로, 모든 백엔드 API 요청은 api.chenchar.com 도메인으로 Nginx가 분리 전달하여 부하와 역할을 최적화했습니다.
  • 엄격한 데이터 분리 (1 서비스 1 DB): 마이크로서비스 간 데이터베이스 공유로 발생하는 데이터 꼬임 현상을 원천 차단하기 위해 유저 서비스는 nest_user_service, 주문 서비스는 nest_order_service 데이터베이스를 완전히 별도로 운용합니다.
  • 미들웨어 기반 라우트 가드 및 세션 안전장치: Next.js 미들웨어에서 쿠키 내 JWT 만료 여부를 상시 검증하며, 토큰 불일치나 화면 무한 로딩(소프트 내비게이션 오류) 발생 시 location.assign을 활용한 하드 리다이렉션을 도입해 로그인 이탈을 방지했습니다.
  • DB 일괄 초기화 스크립트 제공: scripts/db-init.sh 스크립트를 개발해 pnpm db:init 명령어 하나로 Docker 내의 MySQL 8 데이터베이스 인스턴스 생성부터 기본 스키마 적용 및 seeds 폴더의 테스트 데이터 삽입까지 일괄 자동화했습니다.

주요 디테일

  • API 게이트웨이의 고도화: 게이트웨이 서비스는 단순히 API 요청을 전달하는 것 외에 POST /auth/login 처리와 JWT 토큰 발급, 분당 최대 5회 제한의 요청 한계 설정(Rate Limiting), 하위 서비스 마이크로 장애 시 시스템 전체 다운을 막기 위한 서킷 브레이커 기능을 통합 구현했습니다.
  • 백엔드 기술 스택: NestJS 11, TypeScript, TypeORM, MySQL 8, Redis 및 비동기 작업 큐 제어를 위한 BullMQ를 조합하여 확장성 있는 데이터 파이프라인을 구축했습니다.
  • 프론트엔드 최신 아키텍처: Next.js 16(App Router)과 React 19 버전을 중심으로 작성되었으며, 데이터 관리를 위해 Axios와 TanStack Query를 혼용하여 빠른 데이터 렌더링 및 캐싱 메커니즘을 지원합니다.
  • 주문 서비스 비동기 기능: order-service 내부에서는 재고 변동 내역 추적용 로그(stock_adjustment_logs) 관리와 함께 비동기 배치 처리를 수행하고, Bull Board 웹 대시보드를 통해 실시간 큐 동작 흐름을 추적할 수 있도록 설계했습니다.
  • Docker Compose 단일 서버 오케스트레이션: 텐센트 클라우드 경량 서버 환경에서 Nginx(80 및 443 포트 포워딩), API 게이트웨이, 유저 서비스, 주문 서비스, 프론트엔드 웹 컨테이너를 Docker Compose 파일 하나로 일괄 배포 및 관리합니다.

향후 전망

  • AI 코딩 보조 도구의 발전 덕분에 인프라 구성, 다중 DB 매핑, 보안 설정(JWT, HTTPS) 등 진입 장벽이 높았던 복잡한 영역을 1인 풀스택 개발자가 신속하게 설계하고 배포까지 원스톱으로 처리하는 개발 패러다임이 확고히 자리 잡을 것으로 보입니다.
  • 향후 신규 서비스 필요시, API 게이트웨이 경로 설정 파일(proxy-routes.config.ts)에 프리픽스(prefix) 매핑 정보만 추가해주면 유연한 수평 확장이 즉시 가능하여 대규모 서비스로 확장하기 용이합니다.
Share

이것도 읽어보세요

댓글

이 소식에 대한 의견을 자유롭게 남겨주세요.

댓글 (0)

불러오는 중...