JSCODE Logo
블로그후기멘토진
회사명 : JSCODE대표 : 박재성사업자 등록번호 : 244-22-01557통신판매업 : 제 2023-인천미추홀-0381 호
학원 명칭 : 제이에스코드(JSCODE)원격학원학원설립ㆍ운영 등록번호 : 제6063호

서울특별시 구로구 경인로 20가길 11(오류동, 아델리아)

Copyright ⓒ 2025 JSCODE - 최상위 현업 개발자들의 프로그래밍 교육 All rights reserved.

이용약관개인정보처리방침
← 블로그 목록으로 돌아가기

Vector Database Cosine Similarity란 무엇일까? / Spring AI의 Similarity Score

JSCODE 시니
JSCODE 시니
2026. 06. 13.
author
JSCODE 시니
category
Spring AI
createdAt
Jun 13, 2026 09:52 AM
isPublic
isPublic
series
실무에 바로 적용하는 Spring AI: Spring 서비스에 챗봇·RAG·MCP 도입하기
slug
cosine-similarity-and-spring-ai-similarity-score
type
post
updatedAt

✅ 1. Similarity란 무엇일까?

  • AI가 텍스트를 숫자로 된 좌표(Vector)로 바꿨다면, 이제 "어떤 단어들이 서로 비슷한 의미를 가질까?"를 수학적으로 계산할 수 있게 됨
  • 이것이 바로 유사도(Similarity)임
 
 
 

✅ 2. 두 벡터 사이의 각도 세타

  • 유사도는 두 벡터가 공간상에서 얼마나 가까운지(비슷한지)를 수치로 나타내는 값
  • 가장 직관적이고 훌륭한 측정 방법은 두 벡터가 이루는 각도를 계산하는 것
notion image
notion image
notion image
 
 
 

✅ 3. Cosine Similarity

  • 이를 수학적으로 계산하기 위해 제2 코사인 법칙(Law of Cosines)을 활용한 코사인 유사도 공식이 사용됨
notion image
  • 백엔드 성능을 고려할 때, 이 공식은 수백~수천 차원의 엄청난 고차원 데이터 공간에서도 연산이 아주 빠르고 정확하게 잘 동작하기 때문에 LLM 생태계에서 가장 표준적으로 사용됨
그렇다면, 우리는 이 공식들을 꼭 다 알아야만 유사도를 계산해 LLM에 활용할 수 있을까?
 
 
 

✅ 4. Spring AI의 Similarity Score

  • 이러한 수학적 배경을 바탕으로, Spring AI 프레임워크는 우리 백엔드 개발자들이 복잡한 수학 공식 없이도 유사도를 쉽게 다룰 수 있도록 수치화된 Similarity Score(유사도 점수)를 제공함
  • 값의 범위 : 0.0 ~ 1.0
  • 의미 : 점수가 1에 가까울수록 완벽하게 똑같거나 매우 높은 의미적 유사성을 가진다는 뜻. 반대로 0에 가까울수록 전혀 관련 없는 데이터로 판별
notion image
  • 임베딩 모델을 사용해 벡터값을 계산할 수 있음
  • Spring AI는 개발자가 다양한 Vector Database를 통일된 코드로 쉽게 다룰 수 있도록 VectorStore라는 공통 인터페이스(구현 클래스)를 제공
  • 다국어 처리도 가능함
  • OpenAI의 임베딩모델이 굉장히 훌륭한 것으로 알려져 있음