Docgen
DocGen — AI 기반 프로젝트 문서 자동 생성 및 관리 플랫폼
프로젝트 관리, 타임라인 추적, 요구사항 문서 생성, 공지사항 관리 등을 통합한 문서 자동화 플랫폼
DocGen은 프로젝트 문서 자동 생성 및 관리 플랫폼으로, 프로젝트 관리, 타임라인 추적, 요구사항 문서 생성, 공지사항 관리 등의 기능을 제공합니다. AI 기반 문서 자동 생성 시스템을 통해 개발 프로세스의 문서화 작업을 효율화합니다.
시스템 아키텍처
DocGen은 3개의 독립적인 서버로 구성된 마이크로서비스 아키텍처입니다:
- Backend (NestJS): 프로젝트 관리, 회원 관리, 타임라인, 공지사항 등 메인 비즈니스 로직
- FastAPI (Python): AI 기반 문서 자동 생성 (요구사항 정의서, 기능 명세서, 정책 정의서)
- Frontend (React): 사용자 인터페이스 및 상태 관리
주요 기능
프로젝트 관리
- 프로젝트 CRUD 작업
- 해시태그 기반 프로젝트 분류
- 프로젝트별 문서 및 타임라인 관리
- 프로젝트 열람 권한 부여
AI 문서 자동 생성
- 요구사항 정의서 (PRD): 질문 생성 → 목록 생성 → 상세 내용 생성 → 요약 생성
- 기능 명세서 (FSD): 기능 목록 생성 → 상세 기능 명세 생성
- 정책 정의서 (SPD): 역할 정의 → 목록 생성 → 상세 내용 생성
- Excel 파일 자동 생성 및 다운로드
- 비동기 문서 생성 (백그라운드 태스크)
타임라인 관리
- 프로젝트별 타임라인 생성 및 관리
- 이벤트 기반 프로젝트 진행 추적
회원 관리
- 회원가입, 로그인, 로그아웃 (JWT 기반 인증)
- Access Token (10분) + Refresh Token (6시간)
- 역할 기반 접근 제어 (RBAC): ADMIN / USER
- 비밀번호 변경, 회원 탈퇴
공지사항 관리
- 공지사항 CRUD 작업
- 페이지네이션 지원
기술 스택
Backend (NestJS)
- Core: Node.js, NestJS v11.0.1, TypeScript v5.7.3
- Database: PostgreSQL v8.16.3, TypeORM v0.3.26
- Authentication: Passport.js, JWT, bcryptjs, class-validator
- API Documentation: Swagger v11.2.0
- Utilities: exceljs, axios, class-transformer
FastAPI (AI 문서 생성)
- Core: Python v3.11, FastAPI v0.104.1, Uvicorn v0.24.0
- AI/ML: LangChain v0.1.0, CrewAI v0.28.8, OpenAI v1.3.0
- LLM Models: GPT-3.5/GPT-4o, Gemini 2.0/2.5 Flash, Claude 3 Haiku/Sonnet
- Database: MongoDB, Motor v3.3.2 (비동기 드라이버)
- File Processing: openpyxl v3.1.2, python-multipart
Frontend
- Core: React v19.1.1, TypeScript v5.8.3, Vite v7.1.2
- Routing: React Router DOM v7.8.2
- State Management: Zustand v5.0.8, Redux Toolkit v2.8.2 (레거시)
- UI/Styling: Tailwind CSS v3.4.0
- Data Table: Handsontable v16.0.1
- HTTP Client: Axios v1.11.0
- File Processing: ExcelJS v4.4.0, XLSX v0.18.5
AI 문서 생성 시스템
멀티 에이전트 아키텍처 (CrewAI)
- QuestionGenerator: 초기 질문 생성 에이전트
- ListGenerator: 요구사항/기능 목록 생성 에이전트
- DetailGenerator: 상세 내용 생성 에이전트
- SummaryGenerator: 요약 생성 에이전트
- RoleGenerator: 역할 정의 에이전트 (정책 문서용)
지원하는 LLM 모델
- OpenAI: GPT-3.5 Turbo, GPT-4o
- Google Gemini: Gemini 2.0 Flash Lite, Gemini 2.5 Flash, Gemini 2.5 Flash Lite
- Anthropic Claude: Claude 3 Haiku, Claude 3.7 Sonnet
문서 생성 플로우
사용자 요구사항 입력 → QuestionGenerator (초기 질문 생성) → ListGenerator (목록 생성) → DetailGenerator (상세 내용 생성) → SummaryGenerator (요약 생성) → RoleGenerator (역할 정의) → 최종 문서 생성 및 저장 → Excel 파일 생성 (선택사항)
인증 시스템
- JWT 기반 인증: Access Token (10분) + Refresh Token (6시간)
- 토큰 갱신: Refresh Token을 통한 자동 토큰 갱신
- 역할 기반 접근 제어: ADMIN (전체 관리) / USER (개인 프로젝트, 문서 생성)
- 보안: bcryptjs 비밀번호 해싱, CORS 정책, class-validator 입력 검증
데이터베이스 구조
PostgreSQL (NestJS Backend)
- member, project, timeline, document, notice, hashtag, project_hashtag, refresh_token
MongoDB (FastAPI AI 서버)
- requirement_document, functional_document, policy_document
프론트엔드 주요 기능
- 상태 관리: Zustand를 활용한 도메인별 상태 분리 (인증, 프로젝트, 타임라인, 공지사항, 모달)
- 인증 보호 라우트: ProtectedRoute 컴포넌트를 통한 인증 필요 페이지 접근 제어
- 문서 뷰어: Handsontable을 활용한 스프레드시트 형태 문서 편집 및 조회
- Excel 처리: ExcelJS를 통한 Excel 파일 생성 및 다운로드
- API 클라이언트: Axios 인터셉터를 통한 자동 토큰 관리 및 에러 처리
프로젝트 특징
- 마이크로서비스 아키텍처: NestJS (비즈니스 로직) + FastAPI (AI 처리) 분리
- 하이브리드 데이터베이스: PostgreSQL (정형 데이터) + MongoDB (비정형 문서 데이터)
- 타입 안정성: TypeScript를 전면 적용하여 타입 안전성 확보
- AI 멀티 에이전트: CrewAI를 활용한 전문 에이전트 협업 시스템
- 다중 LLM 지원: OpenAI, Google Gemini, Anthropic Claude 모델 지원
- 비동기 문서 생성: 백그라운드 태스크로 문서 생성 진행 상황 추적
협업 방식
- 모든 팀원 (4명): 프론트엔드 / 백엔드 개발 참여
- GitHub Flow 기반 브랜치 전략 (main / dev / feature)
- 구글드라이브로 일정 및 문서 공유
- 회의 주기: 주 1회 (스프린트 리뷰)
프로젝트 경험
풀스택 개발자로서 3개의 서버를 설계하고 개발했습니다. NestJS를 활용한 RESTful API 서버 구축, JWT 기반 인증 시스템 구현, TypeORM을 활용한 데이터베이스 설계 및 최적화 경험을 쌓았습니다. FastAPI를 활용한 AI 문서 생성 서버 구축, LangChain과 CrewAI를 활용한 멀티 에이전트 시스템 구현, 다양한 LLM 모델(OpenAI, Gemini, Claude) 연동 경험을 얻었습니다. 프론트엔드에서는 React 19와 TypeScript를 활용한 타입 안전한 개발, Zustand를 활용한 경량 상태 관리, Vite를 활용한 빠른 개발 환경, Handsontable을 활용한 스프레드시트 컴포넌트 구현 경험을 쌓았습니다.
Project information
- Category AI 웹 애플리케이션 (풀스택)
- Client 팀 프로젝트
- Project date 2025.07 – 2025.08 (약 2개월)
- 팀 구성 총 4인 (모두 Backend + Frontend 개발 참여)
- 역할 백엔드, 프론트엔드 개발 / DB 설계 / AI 문서 생성
- GitHub Project URL
- 배포 사이트