💸 청년들의 효과적인 자산 운용을 위한 웹 서비스
| Frontend | |
| Backend | |
| AI | |
| Database | |
| Tool | |
정부 혹은 지자체에서 청년층에게 자산을 마련하거나 경제적으로 도움을 주는 여러 청년 정책을 시행하고 있습니다. 하지만 청년층은 청년 정책에 대해 잘 알지 못할 뿐만 아니라 본인에게 필요한 정책을 쉽게 알 수 없다고 합니다. 또한, 정부에서 지원하는 청년 희망 적금 서비스를 중도 해지한 사람이 청년층 4명 중 1명 꼴이라고 합니다.
즉, 현재 청년층은 다양한 청년 정책을 효율적으로 이용하지 못하고 예적금 만기까지 달성하지 못하는 비율이 적지 않음을 알 수 있습니다.
따라서 청년층에게 필요한 청년 정책을 쉽게 찾을 수 있고 현재 본인의 자산을 기반으로 적합한 금융 상품을 추천하고 지속할 수 있도록 돕는 서비스, 스타로드를 기획하게 되었습니다.
국민 은행 내의 금융 상품 중 사용자의 우대 조건을 포함한 최대 이율 및 월 수입과 저금 목표치를 고려하여 상품 만기 시 받을 수 있는 최대 금액을 계산하여 제공합니다.
현재까지 KB국민은행과 거래한 내역을 토대로 구성한 자산 차트를 제공합니다. 매달 적금 납입 시 제공하는 별을 모두 모으면 리워드(포인트리)를 지급합니다. 또한, 커뮤니티에서 사람들과 금융 정보를 공유하고 챌린지를 독려합니다.
관심 있는 정책을 '즐겨찾기'할 수 있습니다. 관심 정책의 마감 날짜가 임박 시 홈 화면에서 알림을 제공합니다.
등록된 청년정책·예적금 상품 데이터에서 근거를 찾아 답변하는 챗봇입니다.
일반적인 챗봇은 모르는 것을 그럴듯하게 지어냅니다. 금융 정책은 숫자 하나가 틀리면 사용자가 실제로 손해를 보기 때문에, 환각상태를 방지하는 RAG기반 ChatBot을 개발했습니다.
| 방어 | 동작 | |
|---|---|---|
| L1 | 검색 게이트 | 유사도가 기준(0.83) 미만이면 LLM을 호출조차 하지 않고 답변을 거부합니다. 묻지 않으면 지어낼 기회가 없습니다. |
| L2 | 컨텍스트 한정 | 검색된 자료 밖의 지식 사용을 프롬프트로 금지합니다. |
| L3 | 인용 검증 | 답변의 [n] 인용번호를 파싱해 실제 DB 레코드와 연결합니다. 범위를 벗어난 번호는 버리고, 하나도 인용하지 않으면 화면에 경고를 띄웁니다. |
| L4 | 숫자 비위임 | 금리·기간은 DB 원본값을 출처 카드에 그대로 실어, LLM이 쓴 숫자와 화면에서 대조되게 합니다. |
L1의 임계값 0.83은 짐작이 아니라 실측값입니다. RagRetrievalCalibrationTest로 측정한 결과
관련 질문은 0.8720.911, 무관한 질문은 0.7780.797이 나왔습니다.
임베딩 모델 특성상 무관한 문장도 0.78 근처가 나오기 때문에, 임계값을 낮게 잡으면
"오늘 날씨 어때?"(0.797) 같은 질문이 게이트를 통과해 L1이 무력해집니다.
실측 동작
| 질문 | 결과 |
|---|---|
| "서울 사는 청년인데 월세 지원 받을 수 있는 정책 있어?" | 13.2초 · 근거 자료의 조건을 정확히 인용해 답변 |
| "KB청년희망적금 최고 금리가 몇 퍼센트야?" | 연 5.00% / 최소 10,000원 — DB 원본과 일치 |
| "부산시 월세 지원 정책 조건이 어떻게 돼?" | 자료에 없다고 답하고 지어내지 않음 (L1 통과 → L2가 차단) |
| "오늘 서울 날씨 어때?" | 0.069초 — L1에서 차단, LLM 미호출 |
Oracle 없이 인메모리 H2와 샘플 데이터로 바로 띄울 수 있습니다.
# 1) 로컬 LLM — API 키 불필요, 인터넷 없이 동작
# https://ollama.com/download 설치만 하면 모델(기본값 exaone3.5:2.4b)은 기동 시 자동으로 받습니다
mvnw spring-boot:run -Dspring-boot.run.profiles=dev,ollama
# 2) Google Gemini — AI Studio 무료 키 (결제수단 등록 없음)
set GEMINI_API_KEY=...
mvnw spring-boot:run -Dspring-boot.run.profiles=dev,gemini
# 3) Anthropic Claude
set ANTHROPIC_API_KEY=...
mvnw spring-boot:run -Dspring-boot.run.profiles=dev생성 모델은 spring.ai.model.chat 하나로 갈아끼웁니다. 임베딩은 어느 쪽이든 JVM 내장
ONNX(multilingual-e5-small)를 쓰므로 외부 API를 타지 않습니다. 따라서 ollama 프로필은
검색·생성 양쪽 모두 로컬에서 돌아 외부 의존이 0입니다.
회원 가입
청년 금융 정책
KB 예적금 상품 추천 및 자산 차트 및 적금 챌린지
커뮤니티



