1. 키워드 검색 vs 의미 검색 (Semantic Search)
기존의 SQL LIKE %삼성전자% 방식은 글자가 정확히 일치해야만 찾을 수 있습니다. 하지만 사용자는 다양한 방식으로 질문하죠.
- 사용자 질문: "반도체 대장주 전망 어때?"
- 기존 방식: '반도체', '대장주'라는 글자가 포함된 글만 찾음 (글이 없으면 결과 0건)
- 임베딩 방식: "반도체 대장주"가 "삼성전자"나 "SK하이닉스"와 의미적으로 가깝다는 것을 수치로 계산해서 찾아냄.
이처럼 '글자'가 아닌 '의미'로 데이터를 검색하기 위해 임베딩이 필수입니다.
2. 임베딩의 원리: 문장을 '좌표'로 변환
임베딩은 텍스트를 수천 개의 숫자로 이루어진 리스트(벡터)로 변환합니다. 이 숫자들은 다차원 공간상의 좌표가 됩니다.
- 의미가 비슷한 문장: 공간상에서 서로 가까운 거리에 위치합니다.
- 의미가 다른 문장: 공간상에서 아주 멀리 떨어집니다.
예를 들어, stock101에서 다음 세 문장을 임베딩하면:
- "오늘 삼성전자 풀매수했다"
- "삼전 드디어 샀음"
- "오늘 점심 뭐 먹지?"
1번과 2번은 좌표값이 매우 가깝게 계산되지만, 3번은 완전히 다른 곳에 찍힙니다. 백엔드 개발자는 이 **좌표 간의 거리(유사도)**를 계산해 "유사한 게시글"이나 "질문에 대한 답변 후보"를 찾아내는 로직을 짜게 됩니다.
3. 백엔드 개발자가 임베딩을 다루는 과정
RAG 시스템을 만들 때 여러분이 하게 될 실제 작업은 다음과 같습니다.
- 텍스트 추출: DB에서 게시글 텍스트를 가져옵니다.
- 임베딩 생성: OpenAI의 text-embedding-3 같은 모델 API에 텍스트를 보냅니다.
- 벡터 저장: API가 돌려준 숫자 리스트(벡터)를 **Vector DB(pgvector 등)**에 저장합니다.
- 유사도 검색: 사용자가 질문을 하면, 질문도 똑같이 숫자로 바꾼 뒤 DB에서 **"이 숫자랑 가장 가까운 좌표를 가진 글 가져와"**라고 쿼리를 날립니다.
4. 왜 지금 공부해야 할까?
과거에는 이런 수치 계산이 매우 복잡했지만, 이제는 백엔드 개발자가 직접 수학 공식을 짤 필요가 없습니다.
- 임베딩 모델은 API로 호출하면 되고,
- 유사도 계산은 Vector DB가 대신 해줍니다.
즉, 백엔드 개발자는 이 **데이터의 흐름(Pipeline)**만 설계할 줄 알면 바로 AI 기능을 구현할 수 있는 시대가 된 것입니다.
'Archive(완료된 내용) > 포트폴리오 강화' 카테고리의 다른 글
| [stock101] LOCK을 누가 계속 잡는 문제. (0) | 2026.01.21 |
|---|---|
| [stock101] KIS API연동 웹소켓 - 2일차 (1) | 2026.01.20 |
| [stock101] pdf파일 업로드 및 AI 셋팅 - 1일차 (0) | 2026.01.19 |
| [포폴강화] RAG (0) | 2026.01.16 |
| [계획] 포폴 내용 강화 (0) | 2026.01.13 |