{
  "id": "53e20029-11db-4d6e-ba14-59f069d81621",
  "slug": "ref/web/blog-bizspring-co-kr/rag를-통한-llm정확도-향상-3-bizspring-blog",
  "doc_type": "ref",
  "title": "RAG를 통한 LLM정확도 향상(3) - BizSpring BLOG",
  "title_en": null,
  "one_liner": "RAG를 통한 LLM정확도 향상(3) 2025년 01월 08일 2025년 01월 08일 테크 지난번 글에서 Vector Database를 활용해 데이터를 임베딩 벡터의 형태로 저장하고 쿼리문과 유사한 데이터를 검색하는 방법에 대해서 알아보았습니다. 이전 글 보기: RAG를 통한",
  "summary_bullets": [
    "RAG를 통한 LLM 정확도 향상 시리즈 3편으로, Spring AI를 이용해 RAG 클라이언트를 스프링에 통합하는 방법을 다룹니다.",
    "파이썬 서버로 코드가 파편화되는 문제를 줄이기 위해 Spring AI라는 통합 프레임워크 사용을 제안합니다.",
    "Spring AI는 Chat Completion, Embedding, Text to Image, Audio Transcription, Text to Speech, Moderation 등의 모델을 지원합니다.",
    "Ollama라는 도구를 통해 오픈소스 LLM(mistral 모델)을 로컬 PC에서 실행하고 Spring AI와 연동하는 설정 방법을 설명합니다.",
    "VectorStore와 Document 클래스를 활용한 add/search 함수 예시로 임베딩 벡터 저장 및 유사도 검색 방법을 보여줍니다."
  ],
  "body_md": "# RAG를 통한 LLM정확도 향상(3)\n\n2025년 01월 08일 2025년 01월 08일\n테크\n\n지난번 글에서 Vector Database를 활용해 데이터를 임베딩 벡터의 형태로 저장하고 쿼리문과 유사한 데이터를 검색하는 방법에 대해서 알아보았습니다.\n\n이전 글 보기: RAG를 통한 LLM 정확도 향상(2)\n\n일반적으로 인공지능 프레임워크는 주로 파이썬에 치중되어 있습니다. 이전 까지는 스프링 프로젝트에서 인공지능의 기능이 필요한 경우 별도의 파이썬 서버를 구축, 파이썬 서버로 요청을 보내는 방식을 사용했습니다. 기능의 구현을 위해 코드가 파편화 될수록 관리에 드는 비용이 증가하기 때문에 효율적인 프로젝트 진행을 위해서 할 수 있다면 통합된 프레임워크를 사용하는 것이 중요합니다.\n\n이번 글에서는 Spring AI를 이용해 RAG 클라이언트를 스프링에 통합하는 방법에 대해서 알아보겠습니다.\n\n### Spring AI\n\nSpringAI는 스프링을 위한 AI 프레임워크 입니다. Antropic, OpenAI와 같은 AI 모델 제공업체의 API를 이용해 AI 서비스를 개발할 수 있습니다.\n\nspring ai\n\nSpring AI는 아래와 같은 모델들을 지원합니다.\n\nChat Completion\n\nEmbedding\n\nText to Image\n\nAudio Transcription\n\nText to Speech\n\nModeration\n\n### Ollama\n\nOllama는 오픈소스 LLM을 로컬 PC에서 실행할 수 있게 해주는 도구입니다. 다양한 모델을 지원하고 Modelfile을 이용해 커스텀 모델을 사용할 수 있습니다.\n\nollama\n\n이번 글에서는 Spring AI와 Ollama를 사용한 LLM 어플리케이션 설정과 간단한 예시를 살펴 보겠습니다.\n\n### Requirements\n\nollama 설치\n\nOllama 사이트에 접속 후 운영체제에 맞는 프로그램을 설치합니다.\n\nSpring AI 설치\n\n<dependency>\n<groupId>org.springframework.ai</groupId>\n<artifactId>spring-ai-ollama-spring-boot-starter</artifactId>\n<version>1.0.0-M4</version>\n</dependency>\n\nConfig\n\n# spring AI\nspring:\nai:\nollama:\nbase-url: http://localhost:11434\n# these are default values\ninit:\npull-model-strategy: never\ntimeout: 5m\nmax-retries: 0\nchat:\ninclude: true\nadditional-models:\n- [ ]\nembedding:\nenabled: true\noptions:\nmodel: mistral\nchat:\nenabled: true\nmodel: mistral\noptions:\nformat: json\nkeep-alive: 5m\ntemperature: 0.1\n\n# chroma DB\nspring:\nai:\nvectorstore:\nchroma:\nclient:\nhost: http://localhost\nport: 8000\ninitialize-schema: true # auto gen collection\ncollection-name: springAi\n\nSpring의 auto-config 기능을 통해 springAi와 ollama가 자동으로 설정됩니다.\n\n### Example\n\nOllama를 통해서 mistral chat, embedding 모델을 사용할 준비가 되었습니다. 간단한 예시를 통해서 Spring AI를 사용해 보겠습니다.\n\npublic List<Document> add(List<Document> documents) {\ntry {\nvectorStore.add(documents);\n} catch (Exception e) {\nthrow new RuntimeException(e);\n}\nreturn documents;\n}\n\npublic List<Document> search(String query) {\nSearchRequest searchRequest = SearchRequest.defaults()\n.withQuery(query);\nreturn vectorStore.similaritySearch(searchRequest);\n}\n\nSpring AI는 VectorStore 클래스와 Document 클래스를 이용해 임베딩 벡터를 관리합니다.\n\nadd 함수는 입력된 데이터를 Document 클래스로 매핑해 저장합니다.\n\nsearch 함수는 사용자의 입력(쿼리문)을 받아 VectorDB에서 입력과 유사하다고 판단되는 데이터를 검색합니다.\n\n검색 예시\n\n이번 글에서는 기존의 파이썬 코드 기반의 LLM 어플리케이션에서 Spring AI를 활용한 스프링 어플리케이션으로의 통합 방법과 예시를 살펴 보았습니다. Spring AI를 이용한 코드의 통합은 파편화된 코드를 줄여 프로젝트 관리의 비용을 감소 시킬 수 있습니다.\n\n## Related Posts via Categories\n\n구글애즈가 정확검색·구문검색 키워드까지 AI 모드에 노출하기 시작했다 — 자동화 상품 없이 AI 답변 화면에 들어가는 첫 실험\nAI가 React 앱을 직접 디버깅 – Agent 기반 디버깅\nChatGPT 광고가 픽셀·전환 API·맞춤 오디언스를 갖췄다 — 답변 화면이 측정 가능한 광고 매체가 되는 순간\nAI 시대, 데이터도 설명이 필요합니다\nMCP 클라이언트는 Authorization Server를 어떻게 찾는가: 공식 MCP TypeScript SDK와 VS Code 구현 비교\nRAG 시대의 GEO: AI가 콘텐츠를 읽는 방식과 스키마의 진짜 역할\nAI 에이전트로 웹 데이터 수집 가능 여부 자동 검증하기\nGA4 Intraday 실시간 테이블, 대시보드 원천 데이터로 바로 사용할 수 있을까?\n워크플로우 오케스트레이션 플랫폼 Temporal 알아보기\niOS 14.5부터 GA4까지, 환경 변화가 가져온 업무 폭증을 해결하는 실무 전략은…?\n\n다음에 대해 검색하기...\n\n최신 글 둘러보기\n\n기존 SEO와 무엇이 같고 무엇이 다른가\n\n콘텐츠가 답인 걸 모르는 사람은 없습니다 — 문제는 지속입니다\n\n광고비를 늘리지 않고 매출을 늘린 회사들은 무엇을 했나\n\n코호트로 비교하면 광고 예산 판단이 달라집니다\n\nGEO를 위한 글쓰기를 위한 작은 노하우\n\n(해외동향) 광고주가 광고플랫폼 리포트에서 자체 측정으로 옮겨가고 있다.\n\n구글애즈가 정확검색·구문검색 키워드까지 AI 모드에 노출하기 시작했다 — 자동화 상품 없이 AI 답변 화면에 들어가는 첫 실험\n\nAI가 React 앱을 직접 디버깅 – Agent 기반 디버깅\n\nChatGPT 광고가 픽셀·전환 API·맞춤 오디언스를 갖췄다 — 답변 화면이 측정 가능한 광고 매체가 되는 순간\n\n마케팅 자동화, 무엇부터 자동화해야 할까?\n\n출처: https://blog.bizspring.co.kr/%ed%85%8c%ed%81%ac/rag%ec%9d%84-%ed%86%b5%ed%95%9c-llm%ec%a0%95%ed%99%95%eb%8f%84-%ed%96%a5%ec%83%813/",
  "related_slugs": [],
  "faq": [
    {
      "a": "Spring AI는 스프링을 위한 AI 프레임워크로, Anthropic, OpenAI와 같은 AI 모델 제공업체의 API를 이용해 AI 서비스를 개발할 수 있게 해줍니다. Chat Completion, Embedding, Text to Image 등 다양한 모델을 지원합니다.",
      "q": "Spring AI가 뭔가요?"
    },
    {
      "a": "기존에는 스프링 프로젝트에서 AI 기능이 필요하면 별도의 파이썬 서버를 구축해 요청을 보내는 방식을 사용했습니다. 이렇게 코드가 파편화되면 관리 비용이 증가하므로, Spring AI로 통합하면 프로젝트 관리 비용을 줄일 수 있습니다.",
      "q": "왜 파이썬 서버 대신 Spring AI를 써야 하나요?"
    },
    {
      "a": "Ollama는 오픈소스 LLM을 로컬 PC에서 실행할 수 있게 해주는 도구로, 다양한 모델을 지원하고 Modelfile을 이용해 커스텀 모델도 사용할 수 있습니다. 본문에서는 Ollama 사이트에서 운영체제에 맞는 프로그램을 설치해 사용하는 방법을 안내합니다.",
      "q": "Ollama는 무엇이고 어떻게 쓰나요?"
    },
    {
      "a": "VectorStore 클래스와 Document 클래스를 이용해 임베딩 벡터를 관리합니다. add 함수는 입력된 데이터를 Document 클래스로 매핑해 저장하고, search 함수는 사용자의 쿼리문을 받아 VectorDB에서 유사한 데이터를 검색합니다.",
      "q": "Spring AI로 임베딩 데이터를 어떻게 저장하고 검색하나요?"
    },
    {
      "a": "spring-ai-ollama-spring-boot-starter 의존성을 추가하고, application 설정 파일에 ollama의 base-url, chat/embedding 모델 옵션, chroma DB의 vectorstore 관련 설정을 기재하면 됩니다. Spring의 auto-config 기능을 통해 Spring AI와 Ollama가 자동으로 설정됩니다.",
      "q": "Spring AI 설정은 어떻게 하나요?"
    }
  ],
  "jsonld": null,
  "keywords": [],
  "source_id": "https://blog.bizspring.co.kr/%ed%85%8c%ed%81%ac/rag%ec%9d%84-%ed%86%b5%ed%95%9c-llm%ec%a0%95%ed%99%95%eb%8f%84-%ed%96%a5%ec%83%813/",
  "video_url": null,
  "duration_sec": null,
  "thumbnail_url": null,
  "image_url": null,
  "caption": null,
  "solution_slug": null,
  "captured_at": null,
  "width": null,
  "height": null,
  "created_at": "2026-09-06T11:45:29.007776+00:00",
  "updated_at": "2026-09-06T11:45:29.007776+00:00",
  "visibility": "public",
  "source_stage": "1",
  "anonymized": true,
  "source_key": "web-blog",
  "origin": "ingest",
  "locked": false,
  "locked_by": null,
  "locked_at": null,
  "gate_state": {
    "g1": {
      "hits": [],
      "pass": true
    },
    "g2": {
      "pass": true,
      "total": 39,
      "issues": [
        "다른 문서와 겹치는 말이 대부분입니다",
        "과장·공허한 표현 1회: 다양한"
      ],
      "applies": true
    },
    "g3": {
      "pass": true,
      "required": false
    },
    "stage": "1",
    "decided_at": "2026-09-12T15:43:23.696Z"
  },
  "raw_id": "6f6c7cd4-3663-4c43-a65c-be6b975cbd66",
  "search_text": "RAG를 통한 LLM정확도 향상(3) - BizSpring BLOG  RAG를 통한 LLM정확도 향상(3) 2025년 01월 08일 2025년 01월 08일 테크 지난번 글에서 Vector Database를 활용해 데이터를 임베딩 벡터의 형태로 저장하고 쿼리문과 유사한 데이터를 검색하는 방법에 대해서 알아보았습니다. 이전 글 보기: RAG를 통한  # RAG를 통한 LLM정확도 향상(3)\n\n2025년 01월 08일 2025년 01월 08일\n테크\n\n지난번 글에서 Vector Database를 활용해 데이터를 임베딩 벡터의 형태로 저장하고 쿼리문과 유사한 데이터를 검색하는 방법에 대해서 알아보았습니다.\n\n이전 글 보기: RAG를 통한 LLM 정확도 향상(2)\n\n일반적으로 인공지능 프레임워크는 주로 파이썬에 치중되어 있습니다. 이전 까지는 스프링 프로젝트에서 인공지능의 기능이 필요한 경우 별도의 파이썬 서버를 구축, 파이썬 서버로 요청을 보내는 방식을 사용했습니다. 기능의 구현을 위해 코드가 파편화 될수록 관리에 드는 비용이 증가하기 때문에 효율적인 프로젝트 진행을 위해서 할 수 있다면 통합된 프레임워크를 사용하는 것이 중요합니다.\n\n이번 글에서는 Spring AI를 이용해 RAG 클라이언트를 스프링에 통합하는 방법에 대해서 알아보겠습니다.\n\n### Spring AI\n\nSpringAI는 스프링을 위한 AI 프레임워크 입니다. Antropic, OpenAI와 같은 AI 모델 제공업체의 API를 이용해 AI 서비스를 개발할 수 있습니다.\n\nspring ai\n\nSpring AI는 아래와 같은 모델들을 지원합니다.\n\nChat Completion\n\nEmbedding\n\nText to Image\n\nAudio Transcription\n\nText to Speech\n\nModeration\n\n### Ollama\n\nOllama는 오픈소스 LLM을 로컬 PC에서 실행할 수 있게 해주는 도구입니다. 다양한 모델을 지원하고 Modelfile을 이용해 커스텀 모델을 사용할 수 있습니다.\n\nollama\n\n이번 글에서는 Spring AI와 Ollama를 사용한 LLM 어플리케이션 설정과 간단한 예시를 살펴 보겠습니다.\n\n### Requirements\n\nollama 설치\n\nOllama 사이트에 접속 후 운영체제에 맞는 프로그램을 설치합니다.\n\nSpring AI 설치\n\n<dependency>\n<groupId>org.springframework.ai</groupId>\n<artifactId>spring-ai-ollama-spring-boot-starter</artifactId>\n<version>1.0.0-M4</version>\n</dependency>\n\nConfig\n\n# spring AI\nspring:\nai:\nollama:\nbase-url: http://localhost:11434\n# these are default values\ninit:\npull-model-strategy: never\ntimeout: 5m\nmax-retries: 0\nchat:\ninclude: true\nadditional-models:\n- [ ]\nembedding:\nenabled: true\noptions:\nmodel: mistral\nchat:\nenabled: true\nmodel: mistral\noptions:\nformat: json\nkeep-alive: 5m\ntemperature: 0.1\n\n# chroma DB\nspring:\nai:\nvectorstore:\nchroma:\nclient:\nhost: http://localhost\nport: 8000\ninitialize-schema: true # auto gen collection\ncollection-name: springAi\n\nSpring의 auto-config 기능을 통해 springAi와 ollama가 자동으로 설정됩니다.\n\n### Example\n\nOllama를 통해서 mistral chat, embedding 모델을 사용할 준비가 되었습니다. 간단한 예시를 통해서 Spring AI를 사용해 보겠습니다.\n\npublic List<Document> add(List<Document> documents) {\ntry {\nvectorStore.add(documents);\n} catch (Exception e) {\nthrow new RuntimeException(e);\n}\nreturn documents;\n}\n\npublic List<Document> search(String query) {\nSearchRequest searchRequest = SearchRequest.defaults()\n.withQuery(query);\nreturn vectorStore.similaritySearch(searchRequest);\n}\n\nSpring AI는 VectorStore 클래스와 Document 클래스를 이용해 임베딩 벡터를 관리합니다.\n\nadd 함수는 입력된 데이터를 Document 클래스로 매핑해 저장합니다.\n\nsearch 함수는 사용자의 입력(쿼리문)을 받아 VectorDB에서 입력과 유사하다고 판단되는 데이터를 검색합니다.\n\n검색 예시\n\n이번 글에서는 기존의 파이썬 코드 기반의 LLM 어플리케이션에서 Spring AI를 활용한 스프링 어플리케이션으로의 통합 방법과 예시를 살펴 보았습니다. Spring AI를 이용한 코드의 통합은 파편화된 코드를 줄여 프로젝트 관리의 비용을 감소 시킬 수 있습니다.\n\n## Related Posts via Categories\n\n구글애즈가 정확검색·구문검색 키워드까지 AI 모드에 노출하기 시작했다 — 자동화 상품 없이 AI 답변 화면에 들어가는 첫 실험\nAI가 React 앱을 직접 디버깅 – Agent 기반 디버깅\nChatGPT 광고가 픽셀·전환 API·맞춤 오디언스를 갖췄다 — 답변 화면이 측정 가능한 광고 매체가 되는 순간\nAI 시대, 데이터도 설명이 필요합니다\nMCP 클라이언트는 Authorization Server를 어떻게 찾는가: 공식 MCP TypeScript SDK와 VS Code 구현 비교\nRAG 시대의 GEO: AI가 콘텐츠를 읽는 방식과 스키마의 진짜 역할\nAI 에이전트로 웹 데이터 수집 가능 여부 자동 검증하기\nGA4 Intraday 실시간 테이블, 대시보드 원천 데이터로 바로 사용할 수 있을까?\n워크플로우 오케스트레이션 플랫폼 Temporal 알아보기\niOS 14.5부터 GA4까지, 환경 변화가 가져온 업무 폭증을 해결하는 실무 전략은…?\n\n다음에 대해 검색하기...\n\n최신 글 둘러보기\n\n기존 SEO와 무엇이 같고 무엇이 다른가\n\n콘텐츠가 답인 걸 모르는 사람은 없습니다 — 문제는 지속입니다\n\n광고비를 늘리지 않고 매출을 늘린 회사들은 무엇을 했나\n\n코호트로 비교하면 광고 예산 판단이 달라집니다\n\nGEO를 위한 글쓰기를 위한 작은 노하우\n\n(해외동향) 광고주가 광고플랫폼 리포트에서 자체 측정으로 옮겨가고 있다.\n\n구글애즈가 정확검색·구문검색 키워드까지 AI 모드에 노출하기 시작했다 — 자동화 상품 없이 AI 답변 화면에 들어가는 첫 실험\n\nAI가 React 앱을 직접 디버깅 – Agent 기반 디버깅\n\nChatGPT 광고가 픽셀·전환 API·맞춤 오디언스를 갖췄다 — 답변 화면이 측정 가능한 광고 매체가 되는 순간\n\n마케팅 자동화, 무엇부터 자동화해야 할까?\n\n출처: https://blog.bizspring.co.kr/%ed%85%8c%ed%81%ac/rag%ec%9d%84-%ed%86%b5%ed%95%9c-llm%ec%a0%95%ed%99%95%eb%8f%84-%ed%96%a5%ec%83%813/",
  "embedding": null,
  "embedded_at": null,
  "embedding_hash": null,
  "map_x": null,
  "map_y": null,
  "backlinks": [],
  "html_url": "https://bizspring.ai/kb/ref/web/blog-bizspring-co-kr/rag를-통한-llm정확도-향상-3-bizspring-blog",
  "markdown_url": "https://bizspring.ai/kb/ref/web/blog-bizspring-co-kr/rag를-통한-llm정확도-향상-3-bizspring-blog.md"
}