본문으로 건너뛰기
버전: 4.6.1

세그먼트

개요

세그먼트는 NetFUNNEL 트래픽 제어의 핵심 구성 요소로, 트래픽 제어의 범위와 정책을 관리하는 작업 단위 역할을 합니다. 각 세그먼트는 고유한 세그먼트 키를 가지며 트래픽 관리 요구사항에 따라 다른 제어 방법으로 구성할 수 있습니다.

세그먼트란 무엇인가요?

세그먼트는 트래픽 제어가 적용되는 범위를 관리하는 작업 단위입니다. 지정된 범위 내의 액세스 요청에 대해 트래픽 제어 정책이 실행됩니다. 세그먼트를 통해 다음을 수행할 수 있습니다:

  • 제어 범위 정의: 어떤 URL 또는 구간을 제어해야 하는지 지정
  • 트래픽 정책 설정: 진입 상태, 진입 허용 수 및 대기실 동작 구성
  • 성능 모니터링: 트래픽 패턴 및 시스템 성능 추적
  • 리소스 관리: 동시 사용자 제한 및 시스템 용량 제어

세그먼트 유형 비교

NetFUNNEL은 서로 다른 트래픽 제어 시나리오에 최적화된 두 가지 세그먼트 유형을 제공합니다:

측면기본 제어구간 제어
주요 목적특정 작업/URL에 대한 진입 속도 제어다단계 프로세스에서 고정 동시 사용자 수 유지
키 관리작업 완료 후 키 빠른 반환전체 구간/프로세스 완료까지 키 보유
최적 용도버튼 클릭, API 호출, 페이지 로드, 특정 URL다단계 프로세스, 체크아웃 흐름, 등록
통합 방법URL 트리거 통합 (UTI) + 코드 기반 통합 (CBI)코드 기반 통합 (CBI)만
진입 허용 수 유형고정형 + 변동형고정형만
트리거 규칙지원됨 (UTI용)지원되지 않음
진입 패스지원됨지원되지 않음
고급 타이밍재요청 주기, 타임아웃재요청 주기, Alive Notice 재요청 주기, Alive Notice 만료, 타임아웃
사전/사후 대기실지원됨지원되지 않음

기본 제어 세그먼트

기본 제어특정 작업 또는 URL에 대한 트래픽을 제어합니다. 이상적인 적용 상황은 다음과 같습니다:

  • 특정 급증 URL: 알려진 트래픽이 많은 페이지 또는 엔드포인트
  • 타겟 제어: 특정 사용자 작업을 제어해야 함
  • URL 기반 보호: URL 패턴을 기반으로 자동 보호 원함 (UTI)
  • 빠른 응답: 작업 완료 후 즉시 키 반환 필요
  • 변동형: 측정된 처리 시간을 기반으로 자동으로 진입허용수 조정 원함

주요 특징:

  • 작업 완료 후 키 빠르게 반환
  • 진입 속도 제어 (사용자가 진입할 수 있는 속도)
  • UTI 및 CBI 통합 방법 모두 지원
  • 측정된 처리 시간을 기반으로 진입허용수를 자동 조정하는 변동형 지원
  • 최적 용도: 단일 작업, API 스로틀링, 페이지 보호, 타겟 급증 지점

사용자 여정:

작업 → 대기열에서 대기 (활성 사용자 수 초과 시) → 즉시 진입 → 키 빠르게 반환 → 다음 사용자 진입 가능

사용 사례:

  • /checkout 페이지 로드 보호
  • /payment 엔드포인트 스로틀링
  • /signup 버튼 클릭 제어
  • 트래픽이 많은 이벤트 페이지 보호

구간 제어 세그먼트

구간 제어전체 다단계 프로세스 또는 애플리케이션 구간을 제어해야 할 때 사용됩니다. 이 방법은 다음에 적합합니다:

  • 다단계 프로세스: 체크아웃 흐름, 등록 프로세스, 다중 페이지 양식
  • 고정 동시 사용자 수 관리: 구간에서 고정된 수의 동시 사용자 유지 필요
  • 프로세스 전체 제어: 개별 페이지가 아닌 전체 프로세스 흐름 제어 원함
  • 장기 실행 구간: 사용자가 여러 페이지/단계를 탐색하는 프로세스

주요 특징:

  • 전체 구간/프로세스 완료까지 키 보유
  • 고정 동시 사용자 수 유지 (구간 내 고정 사용자 수)
  • CBI 통합 방법만 지원
  • 고정형만 지원 (일정한 진입 허용 수)
  • 최적 용도: 다단계 프로세스, 체크아웃 흐름, 고정 동시 사용자 수 유지

사용자 여정:

시작 → 대기열에서 대기 (활성 사용자 수 초과 시) → 구간 진입 → 여러 단계 → 전체 프로세스 완료 → 키 반환 → 다음 사용자 진입 가능

사용 사례:

  • 이커머스 체크아웃 프로세스 (장바구니 → 배송 → 결제 → 확인)
  • 사용자 등록 흐름 (양식 → 확인 → 확인)
  • 예약/예약 프로세스
  • 다단계 결제 처리

공통 개념

기본 제어와 구간 제어는 여러 기본 개념을 공유합니다:

세그먼트 생성 및 식별

세그먼트 이름: 관리할 수 있는 사람이 쉽게 읽을 수 있는 식별자

  • 세그먼트 목록에서 식별 가능
  • 모범 사례: 설명적인 이름 사용 (예: "이커머스 체크아웃", "사용자 등록")
  • 환경 표시자 포함 가능 (예: "프로덕션", "스테이징")

세그먼트 키: NetFUNNEL 에이전트가 사용하는 고유 식별자

  • 자동 생성 (형식: segKey_XXXX)
  • 생성 중 사용자 정의 가능
  • 생성 후 변경 불가 (불변)
  • API 호출에서 사용: nfStart(segmentKey) 또는 nfStartSection(segmentKey)

진입 상태

진입 상태는 제어된 리소스에 액세스하려고 할 때 사용자가 처리되는 방식을 결정합니다:

  • 대기 상태: 사용자가 대기열에서 대기하고 진입 허용 수가 사용 가능해질 때 진입

    • 대기실 UI 표시
    • 진입 허용 수가 사용 가능해지면 사용자가 순차적으로 진입
  • 차단 상태: 사용자의 진입이 차단됨

    • 차단실 UI 표시
    • 모든 액세스 요청이 차단됨 (유지보수 또는 긴급 상황에 유용)

참고: 진입 허용 수를 0으로 설정하면 모든 사용자가 대기실로 이동합니다 (테스트 유용).

진입 허용 수

진입 허용 수는 동시에 서비스에 액세스할 수 있는 사용자 수를 결정하는 핵심 트래픽 제어 메커니즘입니다.

핵심 개념:

  • 동시 사용자에 대한 최대 진입 허용 수 설정
  • 사용자는 활성 사용자 수가 진입 허용 수를 초과할 때만 대기
  • 예: 진입 허용 수가 100이고 현재 활성 사용자 수가 50이면 다음 50명의 사용자는 즉시 진입
  • 사용자 #101 이상은 진입 허용 수가 사용 가능해질 때까지 대기

고정형 (둘 다 사용 가능):

  • 일정한 진입 허용 수 (예: 항상 100명의 사용자)
  • 간단하고 예측 가능
  • 권장 시작점

변동형 (기본 제어만):

  • 측정된 처리 시간을 기반으로 자동으로 진입허용수 조정
  • 처리 시간 범위 및 진입허용수 범위 구성 필요
  • 구간 제어에서는 사용 불가 (처리 시간 = 사용자 체류 시간, 서버 부하와는 별개)

대기실 적용

두 세그먼트 유형 모두 사용자가 보는 UI를 구성하기 위해 대기실을 적용합니다:

대기실: 대기 중인 대기열 사용자에게 표시되는 템플릿

  • 사용자 정의 가능한 템플릿
  • 라이브 메시지 포함 가능 (실시간 텍스트 업데이트, 최대 20자)
  • 기본 제어: "예상 대기 시간" 표시
  • 구간 제어: "예상 대기 시간" 표시 안 함 (사용자 체류 시간이 가변적이기 때문)

차단실: 차단된 사용자에게 표시되는 템플릿

  • 진입 상태가 차단으로 설정된 경우 표시
  • 사용자 정의 가능한 템플릿

고급 기능

대기 순번 유지 (둘 다):

  • 연결 끊김 후 대기 순번 복원 (1초 ~ 2시간)
  • 브라우저가 닫히거나 네트워크가 끊어져도 사용자가 순번을 유지하는 데 도움이 됨

진입 키 무효화 (둘 다):

  • 특정 조건에 대한 강제 재대기
  • 기본 제어: URL 기반 또는 타이머 기반 무효화
  • 구간 제어: 타이머 기반 무효화만

고급 타이밍 (둘 다):

  • 기본 제어: 재요청 주기, 타임아웃
  • 구간 제어: 재요청 주기, Alive Notice 재요청 주기, Alive Notice 만료, 타임아웃

담당자 지정 (둘 다):

  • 세그먼트 관리에 대한 책임 운영자 지정
  • 지정된 운영자에게만 세그먼트 수정 제한

주요 차이점 설명

1. 키 관리 철학

기본 제어와 구간 제어의 근본적인 차이점은 진입 키가 반환되는 방식과 시점입니다:

기본 제어 - 빠른 반환:

  • 작업이 완료되면 즉시 키가 반환됨 (예: 페이지 로드, API 호출 완료)
  • 초점: 진입 속도 제어 - 사용자가 진입할 수 있는 속도
  • 이전 사용자가 작업을 완료한 후 다음 사용자가 빠르게 진입 가능
  • 예시: /checkout 페이지가 로드된 후 키가 반환됨 → 사용자가 진행 가능 → 다음 사용자가 즉시 액세스 가능

구간 제어 - 완료까지 보유:

  • 전체 다단계 프로세스 동안 키가 보유됨
  • 초점: 고정 동시 사용자 수 유지 - 동시에 구간에 있는 고정된 수의 사용자
  • 전체 구간이 완료될 때만 키가 반환됨 (예: 체크아웃 완료, 등록 완료)
  • 예시: 사용자가 체크아웃 진입 → 장바구니 → 배송 → 결제 → 확인 동안 키 보유 → 모든 단계가 완료되면 키 반환

2. 통합 방법

기본 제어 - 두 가지 방법:

  • URL 트리거 통합 (UTI): URL 패턴을 기반으로 자동 보호

    • 코드 변경 불필요
    • 트리거 규칙을 구성하여 URL과 일치
    • 일치하는 요청에 대해 자동 대기실 표시
  • 코드 기반 통합 (CBI): nfStart()nfStop()을 사용한 수동 제어

    • 대기실이 나타나는 시점을 정밀하게 제어
    • 버튼 클릭, API 호출, 특정 코드 경로에 사용

구간 제어 - 한 가지 방법:

  • 코드 기반 통합 (CBI)만: nfStartSection()nfStopSection()을 사용한 수동 제어
    • 구간 경계를 수동으로 정의해야 함
    • 구간이 시작될 때 nfStartSection() 호출
    • 구간이 완료될 때 nfStopSection() 호출
    • URL 트리거 통합은 지원되지 않음 (구간은 다단계이므로 단일 URL로 트리거할 수 없음)

3. 진입 허용 수 유형 가용성

기본 제어 - 두 가지 유형:

  • 고정형: 일정한 진입 허용 수
  • 변동형: 측정된 처리 시간을 기반으로 자동으로 진입허용수 조정
    • 처리 시간 (서버 응답 시간) 모니터링
    • 측정된 처리 시간을 기반으로 진입허용수 조정
    • 처리 시간 범위 및 진입허용수 범위 구성 필요

구간 제어 - 한 가지 유형:

  • 고정형만: 일정한 진입 허용 수
  • 변동형 사용 불가: 구간 제어의 처리 시간은 사용자 체류 시간(다단계 프로세스에서 사용자가 머무는 시간)을 나타내며 서버 부하가 아님
    • 사용자 동작이 크게 다름 (일부 사용자는 2분, 다른 사용자는 체크아웃에서 10분 소요)
    • 이를 서버 부하 지표로 신뢰할 수 없음
    • 따라서 자동 조정 메커니즘이 적합하지 않음

4. 고급 기능 가용성

기본 제어 전용:

  • 트리거 규칙: 자동 보호를 위한 URL 기반 조건 (UTI)
  • 진입 패스: 재대기 없이 즉시 재진입 허용 (1분 ~ 24시간)
  • 사전/사후 대기실 예약: 주요 이벤트 전후 대기실 예약
  • 변동형 진입 허용 수: 처리 시간 기반 진입허용수 자동 조정
  • 예상 대기 시간: 대기실에 표시됨

구간 제어 전용:

  • Alive Notice 재요청 주기: 에이전트가 "여전히 활성 상태" 신호를 보내는 빈도
  • Alive Notice 만료: 사용자가 구간에서 활성 상태를 유지할 수 있는 최대 기간

둘 다 지원:

  • 대기 순번 유지
  • 진입 키 무효화 (방법 다름)
  • 고급 타이밍 (옵션 다름)
  • 담당자 지정

어떤 세그먼트 유형을 사용해야 하나요?

기본 제어를 선택해야 하는 경우:

  • 특정 URL 또는 페이지를 보호해야 함
  • URL 트리거 통합 (UTI)을 사용하여 자동 보호 원함
  • ✅ 단일 작업 완료 후 빠른 키 반환 필요
  • ✅ 처리 시간 기반 진입허용수 자동 조정을 위한 변동형 원함
  • 타겟 급증 지점이 있음 (특정 페이지/엔드포인트)
  • ✅ 즉시 재진입을 위한 진입 패스 필요
  • ✅ URL 기반 조건부 제어를 위한 트리거 규칙 필요

최적 용도: 단일 페이지 작업, API 스로틀링, 페이지 보호, URL 기반 트래픽 제어

구간 제어를 선택해야 하는 경우:

  • 다단계 프로세스가 있음 (체크아웃, 등록, 다중 페이지 흐름)
  • ✅ 구간에서 고정 동시 사용자 수 유지 필요
  • ✅ 개별 페이지가 아닌 전체 프로세스 흐름 제어 원함
  • ✅ 사용자가 여러 페이지/단계를 탐색하는 프로세스가 있음
  • 코드 기반 통합 (CBI)만 사용 중
  • 고정 진입 허용 수 관리 필요 (변동형 불필요)

최적 용도: 다단계 체크아웃 흐름, 등록 프로세스, 예약 흐름, 고정 동시 사용자 제한이 필요한 프로세스

결정 흐름

다단계 프로세스를 보호해야 하나요?
├─ 예 → 구간 제어
│ (체크아웃 흐름, 등록, 예약)

└─ 아니오 → URL 기반 자동 보호가 필요하나요?
├─ 예 → 기본 제어 (UTI)
│ (특정 페이지, 트리거 규칙)

└─ 아니오 → 기본 제어 (CBI)
(버튼 클릭, API 호출, 코드 수준 제어)

세그먼트 구성 개요

기본 설정 프로세스

  1. 세그먼트 생성: 세그먼트 목록에서 '+' 버튼 클릭
  2. 제어 유형 선택: 기본 제어 또는 구간 제어 선택
  3. 설정 구성:
    • 기본 설정 (이름, 키)
    • 진입 상태 (대기/차단)
    • 진입 허용 수
    • 대기실 적용 (템플릿)
  4. 통합 설정:
    • 기본 제어: UTI (트리거 규칙) 또는 CBI (코드 구현) 선택
    • 구간 제어: CBI 구현 (nfStartSection/nfStopSection)
  5. 구성 테스트: 설정 확인 및 실시간 지표 모니터링

필수 구성 요소

모든 세그먼트에는 다음 핵심 설정이 필요합니다:

  • 세그먼트 이름: 쉽게 구분할 수 있는 식별자
  • 세그먼트 키: API 호출을 위한 고유 키 (자동 생성, 생성 시까지 수정 가능)
  • 진입 상태: 대기 (순차 진입) 또는 차단 (진입 제한)
  • 진입 허용 수: 동시에 액세스할 수 있는 사용자 수
  • 대기실: 템플릿 선택 및 사용자 정의

기본 제어 추가:

  • 트리거 규칙: URL 기반 조건 (UTI 전용)

모범 사례

세그먼트 계획

  • 제어 범위 식별: 어떤 URL 또는 구간을 제어해야 하는지 결정
  • 제어 유형 선택:
    • 특정 URL/페이지/작업의 경우 기본 제어
    • 다단계 프로세스의 경우 구간 제어
  • 용량 계획: 진입 허용 수를 최대 서버 용량의 약 50%로 설정
  • 대기 경험 설계: 의미 있는 대기실 경험 생성
  • 통합 방법 고려: 자동 보호를 위한 UTI, 정밀 제어를 위한 CBI

성능 최적화

  • 사용량 모니터링: 세그먼트 성능 및 사용자 경험 추적
  • 제한 조정: 실제 사용량을 기반으로 진입 허용 수 수정
  • 고정형으로 시작: 먼저 고정형 사용, 모니터링 후 변동형 고려 (기본 제어)
  • 철저한 테스트: 트리거 규칙 테스트 (기본 제어 UTI) 또는 코드 테스트 (CBI)로 설정 확인

구성 팁

  • 세그먼트 이름 지정: 목적과 환경을 나타내는 설명적인 이름 사용
  • 키 사용자 정의: 코드 가독성을 위해 생성 중 세그먼트 키 사용자 정의
  • 진입 상태: 정상 작동을 위해 대기 사용, 유지보수/긴급 상황을 위해 차단 사용
  • 테스트: 테스트를 위해 진입 허용 수를 0으로 설정 (모든 사용자가 대기실로 이동)