Open WebUI에서 GitHub 프로젝트를 학습시켜 Spring Boot 소스를 기억하게 만드는 방법 (RAG 구축 가이드)

로컬 LLM을 구축한 이후 가장 많이 받는 질문은 다음과 같다.

“내 Spring Boot 프로젝트 전체를 AI가 기억하게 만들 수 없을까?”

단순히 ChatGPT처럼 질문하는 수준을 넘어 프로젝트 소스코드, 설계서, API 명세서, SQL 문서 등을 학습시켜 현재 프로젝트를 이해하는 전용 AI를 만드는 방법을 소개한다.


RAG란 무엇인가?

RAG(Retrieval Augmented Generation)는 모델 자체를 재학습시키는 방식이 아니다.

문서를 벡터 데이터베이스(Vector Database)에 저장한 후 질문 시 관련 내용을 검색하여 LLM에게 함께 전달하는 방식이다.

사용자 질문
 ↓
벡터 검색
 ↓
관련 문서 추출
 ↓
Qwen3
 ↓
답변 생성

즉, 모델이 프로젝트를 암기하는 것이 아니라 필요할 때 문서를 찾아보는 방식이다.


왜 RAG를 사용하는가?

일반 LLM은 다음 내용을 알 수 없다.

현재 프로젝트 구조

실제 Entity 클래스

실제 API URL

실제 DB 테이블

사내 개발 규칙

프로젝트 설계 문서

하지만 RAG를 구축하면 다음과 같은 질문이 가능해진다.

GradeController가 호출하는 Service는 무엇인가?

상품 등록 API 흐름을 설명해줘.

OrderEntity와 OrderHistoryEntity 관계를 설명해줘.

현재 프로젝트에서 Kafka를 사용하는 위치를 알려줘.

학습 가능한 문서

Open WebUI에서는 다음 자료를 등록할 수 있다.

Spring Boot Source

Java Source

React Source

Next.js Source

Markdown 문서

PDF

Excel

API 명세서

ERD

SQL 파일

Swagger Export

권장 디렉토리 구성

project-docs/

├── source
│   ├── backend
│   └── frontend

├── api
│   └── swagger.json

├── sql
│   └── schema.sql

├── architecture
│   └── architecture.md

└── batch
    └── batch-design.md

Open WebUI Knowledge 기능 활용

Open WebUI 로그인 후 다음 메뉴로 이동한다.

Workspace
 ↓
Knowledge
 ↓
Create Knowledge

예시

Knowledge Name

SpringBootProject

문서 업로드

다음 파일들을 업로드한다.

README.md

Architecture.md

API.md

ERD.pdf

Swagger.json

Spring Source Zip

업로드가 완료되면 Open WebUI가 자동으로 벡터화한다.


추천 임베딩 모델

개발 프로젝트 분석 시 다음 조합을 추천한다.

LLM
Qwen3 8B

Embedding
nomic-embed-text

UI
Open WebUI

Vector Store
ChromaDB

실제 질문 예시

1. API 분석

상품 등록 API 호출 흐름을 설명해줘.

2. DB 분석

Order 테이블과 연관된 Entity를 찾아줘.

3. 리팩토링

현재 iBATIS XML을 JPA로 전환한다면 어떻게 해야 하나?

4. 장애 분석

BatchJobExecutor에서 OutOfMemory가 발생할 가능성이 있는 부분을 찾아줘.

Spring Boot 프로젝트에서 효과가 좋은 문서

경험상 다음 자료가 가장 효과적이다.

README

API 명세서

ERD

Entity

Repository

Service

Batch 설계 문서

반대로 로그 파일 전체 업로드는 추천하지 않는다.


주의사항

프로젝트 전체 소스를 업로드할 경우 민감정보는 반드시 제거해야 한다.

DB Endpoint

Access Key

Secret Key

Password

JWT Secret

개인정보

실제 운영 환경 정보는 업로드하지 않는 것이 좋다.


Mac M5 32GB 환경 추천 구성

Ollama
 ├─ Qwen3 8B
 └─ nomic-embed-text

Open WebUI
 └─ localhost:13000

Knowledge Base
 └─ SpringBootProject

Vector DB
 └─ ChromaDB

결론

Open WebUI의 RAG 기능을 활용하면 단순한 챗봇이 아니라 현재 프로젝트를 이해하는 전용 AI를 구축할 수 있다. 특히 Spring Boot, JPA, jOOQ, Kafka, Batch, EKS 환경에서는 프로젝트 문서와 소스를 학습시켜 개발 생산성을 크게 향상시킬 수 있다.

다음 단계에서는 GitHub 저장소를 자동으로 동기화하여 새로운 커밋이 발생하면 RAG 데이터베이스를 자동 갱신하는 방법을 알아보겠다.

관련 글

답글 남기기