블로그
후기
멘토진
← 블로그 목록으로 돌아가기
Vector Database Cosine Similarity란 무엇일까? / Spring AI의 Similarity Score
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. 두 벡터 사이의 각도 세타
유사도는 두 벡터가 공간상에서 얼마나 가까운지(비슷한지)를 수치로 나타내는 값
가장 직관적이고 훌륭한 측정 방법은 두 벡터가 이루는 각도를 계산하는 것
✅ 3. Cosine Similarity
이를 수학적으로 계산하기 위해 제2 코사인 법칙(Law of Cosines)을 활용한
코사인 유사도
공식이 사용됨
백엔드 성능을 고려할 때, 이 공식은 수백~수천 차원의 엄청난 고차원 데이터 공간에서도 연산이 아주 빠르고 정확하게 잘 동작하기 때문에 LLM 생태계에서 가장 표준적으로 사용됨
그렇다면, 우리는 이 공식들을 꼭 다 알아야만 유사도를 계산해 LLM에 활용할 수 있을까?
✅ 4. Spring AI의 Similarity Score
이러한 수학적 배경을 바탕으로,
Spring AI
프레임워크는 우리 백엔드 개발자들이 복잡한 수학 공식 없이도 유사도를 쉽게 다룰 수 있도록 수치화된 Similarity Score(유사도 점수)를 제공함
값의 범위 : 0.0 ~ 1.0
의미 : 점수가
1에 가까울수록 완벽하게 똑같거나 매우 높은 의미적 유사성
을 가진다는 뜻. 반대로 0에 가까울수록 전혀 관련 없는 데이터로 판별
임베딩 모델을 사용해 벡터값을 계산할 수 있음
Spring AI는 개발자가 다양한 Vector Database를 통일된 코드로 쉽게 다룰 수 있도록 VectorStore라는 공통 인터페이스(구현 클래스)를 제공
다국어 처리도 가능함
OpenAI의 임베딩모델이 굉장히 훌륭한 것으로 알려져 있음