수동 세그먼트 데이터 모델 및 동기화 동작

  • 릴리스 버전: Australia
  • 업데이트 날짜 2026년 04월 16일
  • 소요 시간: 4분
  • 수동 세그먼트는 검색 작업에 사용되는 구성 테이블과 런타임 테이블 간의 자동 동기화가 있는 두 테이블 데이터 모델을 사용합니다.

    데이터 모델 개요

    수동 세그먼트는 런타임 데이터와 구성을 분리하는 2-테이블 아키텍처를 사용합니다. 이렇게 설계하면 런타임 테이블이 검색 성능에 최적화되어 있는 동안 구성 테이블이 단일 정보 소스로 남아 있습니다.

    구성 테이블: sn_query_gen_segment_table_config
    여기에서 수동 세그먼트를 정의합니다. 각 기록은 관리자가 만들고 유지관리하는 하나의 세그먼트 구성을 나타냅니다.
    동기화된 테이블: sn_query_gen_segment
    이 테이블에 직접 쓰지 않습니다. 수동 세그먼트 구성이 생성되거나 업데이트되면 비즈니스 규칙이 이를 검색 시 쿼리되는 이 테이블에 자동으로 동기화합니다.

    구성 테이블 필드

    sn_query_gen_segment_table_구성 테이블에는 수동 세그먼트를 정의하기 위한 다음 필드가 포함되어 있습니다.

    표 1. 수동 세그먼트 구성 테이블 필드
    필드 열 이름 최대 길이 필수 목적
    테이블 이름 table_name 세그먼트가 적용되는 테이블(엔터티)입니다. 시맨틱 계층에 활성 엔터티가 있어야 합니다.
    이름 name 255자 시맨틱 검색 중에 LLM이 일치하는 사용자 친화적인 이름입니다.
    설명 description 4,000자 아니요 일반적으로 사용되는 용어를 사용한 선택적 설명입니다. LLM이 세그먼트를 적용할 시기를 이해하는 데 도움이 됩니다.
    필터 filter 4,000자 세그먼트의 필터 조건을 정의하는 인코딩된 쿼리입니다. 조건 작성기(v2)를 사용합니다.
    활성 active 아니요 기본값은 true입니다. 아니오인 경우 세그먼트가 비활성화되고 검색에서 제외됩니다.

    동기화된 테이블 필드

    sn_query_gen_segment 테이블에는 검색 작업에 사용되는 런타임 데이터가 포함되어 있습니다.

    표 2. 동기화된 세그먼트 테이블 필드
    필드 소스
    name 수동 세그먼트 구성에서 복사됨
    description 수동 세그먼트 구성에서 복사됨
    filter 수동 세그먼트 구성에서 복사됨
    table 시작: table_name
    entity sn_query_gen_entity에 대한 해결된 참조
    source_table 항상 sn_query_gen_segment_table_config
    source_id 수동 세그먼트 구성 기록의 Sys_id
    active manual_segment.active AND entity.active

    동기화 동작

    수동 세그먼트는 구성 테이블과 런타임 테이블 간에 자동으로 동기화됩니다. 동기화를 수동으로 트리거할 필요는 없습니다.

    표 3. 트리거 동기화
    트리거 시기 발생하는 일
    구성에 대한 비즈니스 규칙 sn_query_gen_segment_table_config 시 삽입 또는 업데이트 개별 기록을 sn_query_gen_segment 에 동기화합니다(비동기).
    엔터티 삽입/업데이트 엔터티가 생성되거나 업데이트되는 경우 active=true 해당 엔터티에 대한 모든 세그먼트(수동 포함)를 다시 동기화합니다.
    주간 예약된 작업 토요일 자정 6개 세그먼트 소스 모두의 완전 동기화; 분리된 기록 정리

    동기화 중에 다음과 같은 경우 수동 세그먼트가 적합합니다.

    1. active = true 구성 기록에서
    2. 참조된 테이블에 sn_query_gen_entity의 활성 엔터티가 있습니다 .

    두 조건 중 하나가 충족되지 않으면 동기화된 세그먼트가 비활성화됩니다(삭제되지 않음).

    활성화 및 비활성화

    동기화된 세그먼트의 활성 상태는 manual_segment.active AND entity.active입니다.

    표 4. 활성화 및 비활성화 이벤트
    이벤트 결과
    수동 세그먼트 구성 active→ 아니오 동기화된 세그먼트가 비활성화됨
    수동 세그먼트 구성 active→ 예 동기화된 세그먼트가 다시 활성화됨(엔터티도 활성 상태인 경우)
    엔터티 activefalse 해당 엔터티에 대한 모든 세그먼트가 비활성화됨
    수동 세그먼트 구성 삭제됨 동기화된 세그먼트 삭제됨
    엔터티 삭제됨 예약된 작업으로 정리된 분리된 세그먼트

    비활성화된 세그먼트는 검색 결과에서 제외됩니다.

    ACL 보호

    동기화된 세그먼트 테이블에는 구성 테이블이 단일 정보 소스로 유지되도록 엄격한 ACL이 있습니다.

    • 작성: 차단됨(admin_overrides = false) — 세그먼트는 동기화를 통해서만 만들 수 있습니다.
    • 쓰기 대상 name: 차단됨 — 구성 기록에서 변경해야 합니다.
    • 쓰기 대상 description: 차단됨 — 구성 기록에서 변경해야 합니다.

    필터 길이 고려 사항

    이 필드는 filter 최대 4,000자를 지원하지만 시스템 속성 sn_query_gen.segments.max_filter_length 의 기본값은 2,000자입니다. 이 임계치보다 긴 필터는 LLM 프롬프트에 포함될 때 잘립니다.

    팁:
    최상의 결과를 얻으려면 필터를 간결하게 유지하십시오. 조건이 많은 하나의 세그먼트를 만드는 대신 복잡한 세그먼트를 여러 개의 포커스된 세그먼트로 분할하는 것이 좋습니다.

    도메인 분리

    수동 세그먼트는 도메인 분리를 지원합니다. 특정 sys_domain세그먼트 구성으로 세그먼트 구성 기록을 만들 때 동기화된 세그먼트는 해당 도메인을 상속합니다. 검색 시 세그먼트는 사용자의 도메인 컨텍스트에 따라 필터링됩니다.

    인스턴스에서 도메인 분리가 활성화되지 않은 경우 이 필드는 비활성화되며 무시할 수 있습니다.