개발/용어 사전

Embedding이란? 문장을 숫자 벡터로 바꾸는 이유

cedis 2026. 6. 11. 23:29
AI 응용 기술 용어 정리

Embedding은 텍스트를 모델이 비교할 수 있는 숫자 좌표로 바꾸는 과정입니다.

핵심 요약

Embedding은 문장, 단어, 콘텐츠 같은 데이터를 실수 배열로 표현하는 방법입니다. 이 배열을 이용하면 두 문장이 의미적으로 얼마나 가까운지 계산할 수 있습니다.

  • Embedding과 Embedding Model
  • Embedding Vector와 차원
  • Cosine Similarity로 가까운 글 찾기

1. 한 줄로 정의하면

Embedding은 텍스트의 의미를 숫자 벡터로 표현한 것입니다. 사람이 보기에는 문장이지만, 검색 시스템은 이 벡터를 이용해 가까운 문장끼리 비교합니다.

Embedding Model
텍스트를 벡터로 바꿔주는 모델입니다.
Embedding Vector
텍스트를 표현하는 실수 배열입니다.
Dimension
벡터가 가진 숫자 칸의 개수입니다.
Similarity
두 벡터가 얼마나 가까운지 나타내는 점수입니다.

2. 왜 이 개념이 필요했나

키워드 검색은 같은 단어가 들어갔는지를 잘 봅니다. 하지만 사용자가 '로그인이 안 돼요'라고 검색했을 때 기존 문서 제목이 'JWT 인증 실패 처리'라면 단어가 다르지만 의미는 가깝습니다.

Embedding은 이런 의미 기반 검색을 가능하게 합니다. 문장을 숫자 좌표로 바꾼 뒤, 좌표가 가까운 문서를 찾는 방식입니다.

OpenAI 문서에서는 embedding response가 floating point 숫자 목록 형태의 embedding vector를 포함한다고 설명합니다. 이 벡터를 저장해두면 나중에 검색에 재사용할 수 있습니다.

3. 동작 흐름

1
텍스트 준비
제목, 본문, 태그, 카테고리를 한 개의 입력 문자열로 만듭니다.
2
Embedding API 호출
Embedding model에 텍스트를 보내 벡터를 받습니다.
3
벡터 저장
document_embeddings 같은 테이블에 콘텐츠 ID와 함께 저장합니다.
4
검색 시 비교
질문도 벡터로 바꾸고 기존 벡터들과 유사도를 계산합니다.

4. 구조를 그림처럼 보면

순서 흐름
1
텍스트 준비
제목, 본문, 태그, 카테고리를 한 개의 입력 문자열로 만듭니다.
2
Embedding API 호출
Embedding model에 텍스트를 보내 벡터를 받습니다.
3
벡터 저장
document_embeddings 같은 테이블에 콘텐츠 ID와 함께 저장합니다.
4
검색 시 비교
질문도 벡터로 바꾸고 기존 벡터들과 유사도를 계산합니다.

5. 서비스 예시로 이해하면

지식베이스형 서비스에서는 콘텐츠가 생성되거나 수정될 때 embedding job을 예약합니다. worker가 나중에 OpenAI Embedding API를 호출하고, 결과 벡터를 document_embeddings에 저장합니다.

이 구조를 만들면 사용자가 새 콘텐츠를 작성할 때 기존 콘텐츠 중 의미가 가까운 문서를 찾아 추천할 수 있습니다.

document text: "Spring Boot JWT 로그인 오류 해결"
embedding: [0.012, -0.044, 0.081, ...]

query: "로그인이 계속 실패해요"
query embedding과 document embedding의 cosine similarity 계산

6. 헷갈리기 쉬운 비교

방식비교 기준장점
키워드 검색 단어가 얼마나 겹치는가 정확한 단어 검색에 강합니다.
Embedding 검색 의미 벡터가 얼마나 가까운가 표현이 달라도 의미가 비슷하면 찾을 수 있습니다.
Hybrid 검색 키워드 점수와 벡터 점수를 함께 봅니다. 정확한 단어와 의미 유사성을 모두 활용합니다.

7. 실무에서 조심할 점

  • Embedding은 정답 판정기가 아닙니다. 가까운 문서를 후보로 찾는 도구에 가깝습니다.
  • 입력 텍스트를 어떻게 만들었는지에 따라 검색 품질이 크게 달라집니다.
  • 벡터 차원이 크면 저장 공간과 계산 비용도 늘어납니다.

스스로 점검

  • Embedding과 Embedding Model의 차이를 설명할 수 있는가?
  • 왜 같은 단어가 없어도 유사 문서를 찾을 수 있는가?
  • 콘텐츠 본문만 임베딩하면 어떤 문제가 생길 수 있는가?

참고한 공식 문서