넷플릭스 그래프 (새 탭에서 열림)
넷플릭스는 기업 내 복잡한 데이터 생태계를 효율적으로 탐색하기 위해 기존의 구조화된 쿼리 언어(DSL) 방식에서 생성형 AI 기반의 자연어 검색으로 진화하고 있습니다. 대규모 언어 모델(LLM)을 활용하여 사용자의 모호한 질문을 정확한 필터 문구로 변환함으로써 기술적 장벽을 낮추고 업무 효율성을 극대화하는 것이 이번 프로젝트의 핵심입니다. 이를 통해 사용자 의도를 정확히 반영하면서도 기존 시스템의 안정성을 유지하는 신뢰 중심의 검색 플랫폼을 구축하고자 합니다. ## 자연어 검색 도입 배경과 비즈니스 요구사항 * **기존 방식의 한계:** 사용자들은 수백 개의 필드가 포함된 복잡한 UI에서 필터를 수동으로 설정하거나 특정 DSL(Domain Specific Language)을 학습해야 하는 번거로움을 겪었습니다. * **사용자 경험 개선:** 기술적인 구조가 아닌 일상적인 언어(예: "90년대 미국 로봇 영화")로 데이터를 즉시 찾을 수 있게 하여 검색 과정의 마찰을 줄이고자 합니다. * **시스템 보완 전략:** 기존 애플리케이션을 완전히 대체하는 것이 아니라, 자연어를 DSL로 변환하는 기능을 추가하여 기존 검색 인프라에 RAG(검색 증강 생성) 기능을 보강하는 방향을 선택했습니다. ## Text-to-Query 변환의 세 가지 핵심 기준 * **구문적 정확성 (Syntactic):** 생성된 문장이 Graph Search Filter DSL의 문법 규칙을 완벽하게 따라야 하며, 파싱이 가능한 형태여야 합니다. * **의미적 정확성 (Semantic):** 인덱스에 실제로 존재하는 필드만 사용해야 하며, 데이터 타입에 맞는 비교 연산자를 사용하고 '통제된 어휘(Controlled Vocabulary)'의 허용 범위를 준수하여 환각(Hallucination) 현상을 방지해야 합니다. * **화용적 정확성 (Pragmatic):** 기술적으로 완벽한 쿼리일지라도, 그것이 사용자가 실제로 질문한 의도와 목적을 정확하게 담아내야 합니다. ## 컨텍스트 엔지니어링을 통한 성능 최적화 * **메타데이터 활용:** GraphQL 스키마에서 추출한 필드 설명, 타입 정보 등을 LLM의 컨텍스트로 제공하여 모델이 데이터 구조를 이해하도록 돕습니다. * **통제된 어휘(Controlled Vocabulary) 관리:** 국가명이나 장르와 같이 정해진 값의 목록이 있는 경우, 이를 메타데이터에 포함하여 LLM이 유효한 값 내에서만 쿼리를 생성하도록 유도합니다. * **확장성 문제 해결:** 수백 개의 필드와 수천 개의 유효값을 가진 대규모 인덱스의 경우, 모든 정보를 프롬프트에 넣으면 지연 시간이 늘어나고 정확도가 떨어지므로 필요한 정보만 선별하여 제공하는 정교한 컨텍스트 구성 전략을 사용합니다. 넷플릭스의 사례는 복잡한 기업용 데이터 검색 시스템에서 LLM을 직접적인 해답 제공자가 아닌, 검증된 기존 DSL을 생성하는 '번역기'로 활용함으로써 데이터의 정확성과 시스템의 신뢰성을 동시에 확보할 수 있음을 보여줍니다. 전문적인 데이터 탐색이 필요한 도메인일수록 이러한 단계적 AI 통합 접근 방식이 효과적입니다.