기업 내 방대하고 분산된 데이터를 검색하는 것은 쉬운 일이 아닙니다. 특히 Netflix처럼 수백 개의 UI와 다양한 도메인을 가진 환경에서는 사용자가 원하는 정보를 찾기 위해 복잡한 쿼리 언어(DSL)를 배워야 하는 진입 장벽이 존재했죠. 이 문제를 해결하기 위해 Netflix 엔지니어링 팀은 AI, 특히 대규모 언어 모델(LLM)을 활용해 자연어 질문을 구조화된 Graph Search 필터 문장으로 변환하는 시스템을 구축했습니다. 이 글은 그들의 접근 방식과 핵심 인사이트를 정리한 근거자료를 바탕으로 합니다.

AI and Large Language Model concept illustration Development Concept Image

핵심 과제: 문법적, 의미적, 실제적 정확성

LLM이 자연어를 Graph Search Filter DSL로 변환할 때 세 가지 수준의 정확성을 보장해야 합니다.

  1. 문법적 정확성: 생성된 문장이 DSL의 문법을 따르나요?
  2. 의미적 정확성: 문장이 실제 인덱스에 존재하는 필드와 허용된 값만을 사용하나요? (환각 방지)
  3. 실제적 정확성: 생성된 필터가 사용자의 진짜 의도를 정확히 반영하나요?

의미적 정확성을 보장하기 위한 핵심 전략은 RAG(Retrieval-Augmented Generation) 패턴을 필드와 제어어휘(Controlled Vocabulary)에 각각 적용하는 것이었습니다.

Server rack and cloud infrastructure representing backend systems Programming Illustration

RAG를 활용한 컨텍스트 최적화 전략

수백 개의 필드와 수천 개의 제어어휘 값을 LLM에 모두 제공하는 것은 비효율적이고 정확도를 떨어뜨립니다. Netflix는 두 단계의 RAG로 컨텍스트를 정제했습니다.

대상방법목적
필드 RAG필드명, 설명, 타입을 임베딩하여 벡터 저장소에 인덱싱. 사용자 질문 청크와 유사도 검색으로 Top-K 필드 선별.질문과 관련된 필드만 컨텍스트에 포함하여 노이즈 제거 및 정확도 향상
제어어휘 RAG제어어휘 값(표시명, 설명, 동의어)을 임베딩하여 벡터 저장소에 인덱싱. 질문과 유사한 값들을 검색하여 해당 필드의 허용값으로 제공.LLM의 값 환각 방지 및 관련 필드 추가 추론

이를 통해 각 질문은 관련된 필드와 값의 최적화된 조합으로 해석됩니다.

Data flow and analysis diagram on a digital screen Software Concept Art

사용자 신뢰 구축과 실용적 전략

가장 어려운 '실제적 정확성' 문제를 해결하기 위해 Netflix는 두 가지 실용적인 UI/UX 전략을 도입했습니다.

  1. 작업 과정 공개: 생성된 복잡한 DSL 쿼리를 그대로 보여주지 않고, 이를 파싱한 AST(추상 구문 트리)를 이용해 사용자 인터페이스의 '칩'이나 '패싯'으로 시각화합니다. 사용자는 자신의 질문이 어떤 필터 조건으로 해석되었는지 직관적으로 확인하고 수정할 수 있습니다.
  2. 명시적 엔터티 선택(@멘션): 사용자가 @dark와 같이 특정 엔터티를 언급하면, RAG 추론 단계를 건너뛰고 해당 제어어휘를 컨텍스트에 하드코딩합니다. 이는 모호성을 제거하고 정확성과 사용자 신뢰를 동시에 높이는 강력한 방법입니다.

결론: 이 시스템은 단순한 번역기가 아닌, 확장 가능한 플랫폼으로 진화하고 있습니다. LLM의 유연성과 기존 Graph Search 인프라의 견고함, RAG 패턴의 정확도 향상, 그리고 사용자 중심의 피드백 메커니즘이 결합된 모범 사례라고 할 수 있습니다. 복잡한 엔터프라이즈 검색 시스템에 AI를 도입하려는 팀이라면 꼭 참고해야 할 접근법입니다.