1. 프로젝트 기본 정보
항목 | 내용 |
프로젝트명 | DocuFlow |
목표 | PDF 파일 처리 기능을 REST API로 제공하는 SaaS |
기술 스택 | Spring Boot 3.x, Java 17+, PostgreSQL,
JUnit, Mockito, React, TypeScript, Tailwind CSS, AWS S3, Docker, Swagger (API) |
개발 방법론 | TDD (Red → Green → Refactor) |
목표 기간 | 3개월 (MVP) |
2. 기능 범위 정의 (간략)
우선순위 | 기능 | 설명 |
P0 | PDF → 이미지 변환 | PDF 각 페이지를 PNG/JPG로 변환 |
P0 | PDF 병합 | 여러 PDF를 하나로 합치기 |
P0 | PDF 분할 | 특정 페이지 추출 또는 분리 |
P1 | PDF 텍스트 추출 | PDF에서 텍스트만 추출 |
P1 | PDF 압축 | 파일 크기 최적화 |
P2 | PDF 워터마크 | 텍스트/이미지 워터마크 삽입 |
P2 | 이미지 → PDF | 이미지들을 PDF로 변환 |
3. 기능 범위 재정의
API 서비스로 수익화를 한다고 하면 “회원 시스템 + 과금 체계”가 필수.
1. 회원 도메인 (Member)
우선순위 | 기능 | 설명 |
P0 | 회원가입 | 이메일 + 비밀번호 기반 |
P0 | 로그인 | JWT 토큰 발급 |
P0 | 로그아웃 | 토큰 무효화 |
P1 | 이메일 인증 | 가입 시 이메일 검증 |
P1 | 비밀번호 재설정 | 이메일 통한 재설정 |
P2 | 소셜 로그인 | Google, GitHub 등 |
P2 | 회원 탈퇴 | 계정 삭제 처리 |
P3 | 내 정보 조회 | 이메일, 가입일, 현재 요금제 확인 |
P3 | 내 정보 수정 | 이름, 연락처 등 기본 정보 변경 |
2. API Key 도메인 (ApiKey)
우선순위 | 기능 | 설명 |
P0 | API Key 발급 | 회원당 Key 생성 |
P0 | API Key 조회 | 본인 Key 목록 확인 |
P1 | API Key 재발급 | 기존 Key 폐기 + 신규 발급 |
P1 | API Key 비활성화 | 일시중지 기능 |
3. PDF 처리 도메인 (Pdf)
우선순위 | 기능 | 설명 |
P0 | PDF → 이미지 변환 | 각 페이지를 PNG/JPG로 |
P0 | PDF 병합 | 여러 PDF를 하나로 |
P0 | PDF 분할 | 특정 페이지 추출 |
P1 | PDF 텍스트 추출 | 텍스트만 추출 |
P1 | PDF 압축 | 파일 크기 최적화 |
P1 | PDF 메타정보 조회 | 페이지 수, 크기 등 |
P2 | PDF 워터마크 | 텍스트/이미지 삽입 |
P2 | 이미지 → PDF 변환 | 이미지들을 PDF로 |
P2 | PDF 암호화/해제 | 비밀번호 설정/제거 |
4. 사용량/과금 도메인 (Usage & Billing)
우선순위 | 기능 | 설명 |
P0 | API 호출 횟수 기록 | 요청마다 카운트 |
P0 | 사용량 조회 | 일별/월별 통계 |
P1 | 요금제 관리 | Free / Basic / Pro 티어 |
P1 | 호출 제한 | 요금제별 일일/월간 한도 |
P2 | 결제 연동 | 카드 결제 (Stripe 등) |
P2 | 청구서/인보이스 | 월별 청구 내역 |
5. 공통/인프라
우선순위 | 기능 | 설명 |
P0 | 전역 예외 처리 | @ControllerAdvice |
P0 | 공통 API 응답 | 통일된 Response 형식 |
P0 | API 인증 미들웨어 | API Key 검증 |
P1 | 요청 로깅 | 요청/응답 로그 |
P1 | Rate Limiting | 과도한 요청 차단 |
P2 | API 문서화 | Swagger/OpenAPI |
6. 관리자 도메인 (Admin)
우선순위 | 기능 | 설명 |
P1 | 회원 목록 조회 | 전체 회원 리스트 + 검색/필터 |
P1 | 회원 상세 조회 | 특정 회원 정보 + 사용량 |
P1 | 회원 상태 변경 | 정지/활성화 처리 |
P2 | 통계 대시보드 | 총 회원 수, API 호출량, 매출 등 |
P2 | API Key 관리 | 특정 Key 강제 비활성화 |
P2 | 공지사항 관리 | 서비스 공지 CRUD |
7. 알림 도메인 (Notification)
우선순위 | 기능 | 설명 |
P1 | 사용량 한도 경고 | 80%, 100% 도달 시 이메일 |
P1 | 이메일 발송 | 공통 이메일 발송 기능 |
P2 | 결제 알림 | 결제 성공/실패 알림 |
P2 | 알림 설정 | 회원별 알림 수신 여부 설정 |
P3 | 알림 내역 조회 | 발송된 알림 히스토리 |
8. 파일 저장소 도메인 (Storage)
우선순위 | 기능 | 설명 |
P1 | 파일 업로드 | S3에 PDF/이미지 업로드 |
P1 | 파일 다운로드 | 처리 결과 파일 다운로드 |
P1 | 임시 파일 관리 | 일정 시간 후 자동 삭제 |
P2 | 저장소 용량 관리 | 회원별 저장 용량 제한 |
P2 | 파일 목록 조회 | 본인이 업로드한 파일 히스토리 |
전체 도메인 요약
번호 | 도메인 | 핵심 역할 |
1 | Member | 회원가입, 로그인, 내 정보 관리 |
2 | ApiKey | API Key 발급 및 관리 |
3 | Pdf | PDF 변환/병합/분할 등 핵심 기능 |
4 | Usage | API 호출 기록 및 통계 |
5 | Billing | 요금제, 결제, 청구 |
6 | Admin | 관리자 전용 기능 |
7 | Notification | 이메일 알림 |
8 | Storage | 파일 업로드/다운로드 (S3) |
4. 주요 화면 목록 (초안)
화면 | 설명 | 우선순위 |
랜딩 페이지 | 서비스 소개, 요금제 안내 | P0 |
회원가입/로그인 | 인증 화면 | P0 |
대시보드 | 사용량 요약, 빠른 작업 | P0 |
API Key 관리 | Key 발급/조회/삭제 | P0 |
PDF 도구 | 웹에서 직접 PDF 처리 | P1 |
사용량 통계 | 일별/월별 API 호출 그래프 | P1 |
요금제/결제 | 플랜 변경, 결제 정보 | P2 |
관리자 페이지 | 회원 관리, 전체 통계 | P2 |

