Search

Aurora PostgreSQL에서 한국어 하이브리드 검색 구현하기: pg_bigm + pgvector로 만드는 한국어 특화 RAG

URL
생성 일시
2026/05/13 11:06
최종 편집 일시
2026/05/13 11:06
태그
AWS
파일과 미디어
한국어는 교착어 특성상 영어 기반 벡터 검색만으로는 정확한 결과를 얻기 어렵습니다. 이 블로그에서는 Amazon Aurora PostgreSQL에서 pg_bigm(바이그램 키워드 검색)과 pgvector(벡터 시맨틱 검색)를 RRF(Reciprocal Rank Fusion)로 결합한 하이브리드 검색을 구현하여, 한국어 RAG 애플리케이션의 검색 품질을 개선하는 방법을 소개합니다. 왜 한국어에는 하이브리드 검색이 필요한가? RAG(Retrieval-Augmented Generation) 애플리케이션에서 검색 품질은 최종 답변의 정확도를 결정합니다. 벡터 검색(pgvector)은 의미적으로 유사한 […] || 한국어는 교착어 특성상 영어 기반 벡터 검색만으로는 정확한 결과를 얻기 어렵습니다. 이 블로그에서는 Amazon Aurora PostgreSQL에서 pg_bigm(바이그램 키워드 검색)과 pgvector(벡터 시맨틱 검색)를 RRF(Reciprocal Rank Fusion)로 결합한 하이브리드 검색을 구현하여, 한국어 RAG 애플리케이션의 검색 품질을 개선하는 방법을 소개합니다. 왜 한국어에는 하이브리드 검색이 필요한가? RAG(Retrieval-Augmented Generation) 애플리케이션에서 검색 품질은 최종 답변의 정확도를 결정합니다. 벡터 검색(pgvector)은 의미적으로 유사한 문서를 찾는 데 탁월하지만, 한국어 환경에서는 다음과 같은 한계가 있습니다: 고유명사/전문 용어 누락: “pgvector”나 “HNSW”와 같은 기술 용어를 검색할 때, 벡터 검색은 의미적으로 유사한 다른 문서를 반환할 수 있지만, 정확히 해당 키워드가 포함된 문서를 놓칠 수 있습니다. 한국어 조사/어미 변화: “데이터베이스를”, “데이터베이스에서”, “데이터베이스의” 등 조사가 붙은 형태가 다양하여, 키워드 기반 검색이 여전히 중요합니다. 복합어 처리: “클라우드컴퓨팅”, “인공지능” 등 한국어 복합어는 임베딩 모델이 제대로 분리하지 못하는 경우가 있습니다. 반면 키워드 검색(pg_bigm)은 정확한 문자열 매칭에 강하지만, “데이터베이스 성능을 높이려면?”과 같은 자연어 질문에는 대응하지 못합니다. 두 방식을 결합하면 각각의 약점을 보완할 수 있습니다. 검색 방식 강점 약점 인프라 관점 pg_bigm (키워드) 정확한 용어 매칭, 한국어 조사 처리 동의어/문맥 이해 불가 GIN 인덱스 스토리지 사용 pgvector (시맨틱) 의미적 유사도, 자연어 질문 대응 정확한 키워드 매칭 약함 HNSW 인덱스 메모리 의존 하이브리드 (RRF) 두 방식의 상호 보완 튜닝 포인트 증가 복합 연산 필요 아키텍처 개요 위 다이어그램은 한국어 하이브리드 RAG 시스템의 전체 데이터 흐름을 보여줍니다. Data Ingestion Pipeline (데이터 수집) Amazon S3에 저장된 원본 문서를 AWS Lambda/ECS가 적절한 크기로 청킹합니다. Amazon Bedrock Titan Embeddings V2가 각 청크를 1024차원 벡터로 변환합니다. 원본 텍스트와 벡터 임베딩이 Amazon Aurora PostgreSQL에 저장되며, pg_bigm GIN 인덱스와 pgvector HNSW 인덱스가 생성됩니다. Retrieval & Generation Pipeline (검색 및 응답 생성) 사용자가 한국어 질문을 입력하면, Application/API 레이어에서 키워드 추출과 인텐트 분석을 수행합니다. 추출된 키워드(query_text)는 pg_bigm 키워드 검색에, 자연어 질문 전체는 Bedrock Titan을 통해 쿼리 임베딩(query_embedding)으로 변환되어 pgvector 시맨틱 검색에 사용됩니다. Aurora PostgreSQL 내부에서 두 검색 결과가 RRF로 결합되어 Top-K 관련 문서가 반환됩니다. 반환된 문서 컨텍스트를 기반으로 Amazon B