🚀 DocuMind 프로젝트 시작
안녕하세요! 오늘부터 AI 기반 기술 문서 검색 시스템을 개발하며 과정을 기록하려고 합니다.
📌 프로젝트 개요
DocuMind는 PDF, Markdown 등의 기술 문서를 업로드하면 자연어로 질문할 수 있는 RAG(Retrieval Augmented Generation) 기반 검색 시스템입니다.
왜 이 프로젝트를 시작했나요?
- 실제 인프라 구축 경험 필요
- 포트폴리오 강화 - 중견 IT기업 취업 목표
- 최신 기술 학습 - OpenAI API, Vector DB 등 트렌디한 기술 습득
🛠️ 기술 스택
Backend
- Java 17 + Spring Boot 3.2
- PostgreSQL (pgvector extension)
- Redis (캐싱)
- LangChain4j (LLM 통합)
Frontend
- React 18 + TypeScript
- Redux Toolkit
- Tailwind CSS
AI/ML
- OpenAI GPT-4 API
- Vector Embeddings (text-embedding-ada-002)
Infrastructure
- AWS (EC2, RDS, S3, Lambda, CloudFront)
- Docker & Docker Compose
- Terraform (IaC)
- GitHub Actions (CI/CD)
🎯 주요 기능
- 📄 문서 업로드 및 자동 파싱
- PDF, Markdown, TXT 형식 지원
- Lambda를 통한 비동기 처리
- 🔍 자연어 검색
- Vector DB 기반 의미론적 검색
- "Spring Boot에서 Redis 캐싱 어떻게 구현해?" 같은 질문 가능
- 💬 AI 답변 생성
- GPT-4가 관련 문서를 참고하여 답변 생성
- 출처 문서 표시
- 🗂️ 대화 히스토리 관리
- 이전 대화를 기억하고 연속 질문 가능
🏗️ 시스템 아키텍처
[사용자]
↓
[CloudFront] ← React 앱 배포
↓
[EC2 - Spring Boot]
↓
├─→ [RDS PostgreSQL + pgvector] ← 벡터 임베딩 저장
├─→ [Redis] ← 캐싱
└─→ [S3] → [Lambda] → [OpenAI API] ← 문서 처리
📋 개발 계획 (약 2개월)
Week 1-2: 인프라 및 백엔드 기초
- [o] 프로젝트 기획 및 기술 스택 선정
- [o] GitHub 저장소 생성
- [o] Spring Boot 초기 세팅
- [o] Docker로 로컬 DB 구축
- [ ] AWS 인프라 설계 (Terraform)
- [ ] 데이터베이스 스키마 설계
Week 3-4: 핵심 기능 개발
- [ ] 문서 업로드 API
- [ ] Vector DB 연동 및 임베딩
- [ ] RAG 검색 엔진 구현
- [ ] OpenAI GPT-4 통합
Week 5-6: 프론트엔드 및 고도화
- [ ] React UI 개발
- [ ] 실시간 답변 스트리밍
- [ ] 대화 히스토리 UI
Week 7-8: 배포 및 최적화
- [ ] AWS 인프라 구축
- [ ] CI/CD 파이프라인
- [ ] 성능 테스트 및 최적화
- [ ] 문서화
💰 비용 관리 전략
AWS 프리티어를 최대한 활용하여 월 $5 이하로 운영할 계획입니다.
서비스 예상 비용
| EC2 t3.micro | $0 (프리티어) |
| RDS db.t3.micro | $0 (프리티어) |
| S3 (5GB) | $0 (프리티어) |
| Lambda | $0 (월 100만 요청) |
| CloudFront | $0 (월 1TB) |
| 총합 | $0~5 |
🎓 학습 목표
기술적 목표
- AWS 실무 경험 (SAA 자격증 준비)
- RAG 시스템 구현 이해
- Vector Database 활용법
- 대규모 언어 모델(LLM) 통합
비기술적 목표
- 체계적인 프로젝트 관리
- 기술 문서화 능력 향상
- 포트폴리오 완성도 향상
📝 오늘 작업 내용 (Day 1)
완료한 작업
- ✅ GitHub 저장소 생성 및 README 작성
- ✅ IntelliJ에서 Spring Boot 프로젝트 생성
- ✅ application.yml 설정 (PostgreSQL, Redis)
- ✅ Docker Compose로 로컬 DB 환경 구축
- ✅ HealthCheck API 구현 및 테스트
프로젝트 구조
DocuMind/
├── backend/
│ └── documind-backend/
│ ├── src/
│ │ └── main/
│ │ ├── java/com/documind/backend/
│ │ │ ├── config/
│ │ │ ├── controller/
│ │ │ │ └── HealthController.java ✨
│ │ │ ├── service/
│ │ │ ├── repository/
│ │ │ ├── domain/
│ │ │ ├── dto/
│ │ │ └── exception/
│ │ └── resources/
│ │ └── application.yml
│ └── build.gradle
├── infrastructure/
│ └── docker/
│ └── docker-compose.yml
└── README.md
실행 결과
서버 실행:
Started DocumindBackendApplication in 9.777 seconds
Tomcat started on port 8080
API 테스트:
GET http://localhost:8080/api/v1/health
{
"status": "UP",
"timestamp": "2025-12-27T16:56:18",
"service": "DocuMind Backend",
"version": "0.0.1"
}
🔥 배운 점
1. Docker Compose의 편리함
PostgreSQL과 Redis를 Docker로 관리하니 로컬 환경 설정이 매우 간편했습니다.
services:
postgres:
image: ankane/pgvector:latest # pgvector extension 포함!
redis:
image: redis:7-alpine
2. application.yml의 가독성
.properties보다 .yml 형식이 복잡한 설정에 훨씬 유리하다는 것을 체감했습니다.
3. HealthCheck API의 중요성
서버 상태를 쉽게 확인할 수 있는 API는 개발/운영 모두에서 필수입니다.
🚀 다음 단계 (Day 2 예정)
- AWS 인프라 설계
- VPC, Subnet, Security Group 설계
- Terraform 코드 작성
- 비용 알람 설정
- 데이터베이스 스키마 설계
- Document, Embedding, ChatHistory 테이블 설계
- ERD 작성
- Swagger/OpenAPI 문서 자동 생성
- API 문서화 설정
💬 마무리
오늘은 프로젝트의 기초를 다지는 날이었습니다. 간단한 HealthCheck API 하나지만, 이것이 앞으로 만들 거대한 시스템의 첫 걸음이라고 생각하니 뿌듯합니다.
앞으로 이 프로젝트를 통해 실무에서 바로 쓸 수 있는 기술을 습득하고, 좋은 포트폴리오를 만들어나가겠습니다!
다음 포스팅에서는 AWS 인프라 설계 과정을 공유하겠습니다. 🚀
'DocuMind (RAG 검색 시스템)' 카테고리의 다른 글
| [DocuMind Day 4] Spring ↔ Python 연동 완성 - 자동 임베딩! (0) | 2025.12.30 |
|---|---|
| [DocuMind Day 3] 문서 업로드 & 파싱 - "청크"가 뭐길래? (0) | 2025.12.30 |
| [DocuMind Day 3-2] Python 임베딩 서비스 구축 - 마이크로서비스의 시작 (0) | 2025.12.30 |
| [DocuMind Day 2-2] Flyway 마이그레이션 트러블슈팅 (0) | 2025.12.28 |
| [DocuMind Day 2] OpenAI에서 Groq로 전환 - 무료 LLM API 연동 성공 (0) | 2025.12.28 |