세그먼트
📄️ 인터페이스 가이드
NetFUNNEL 콘솔 인터페이스에서 세그먼트를 보기, 생성, 편집 및 삭제하는 방법을 학습합니다.
🗃️ 기본 제어 세그먼트
13 항목
🗃️ 구간 제어 세그먼트
10 항목
개요
세그먼트는 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 호출, 코드 수준 제어)
세그먼트 구성 개요
기본 설정 프로세스
- 세그먼트 생성: 세그먼트 목록에서 '+' 버튼 클릭
- 제어 유형 선택: 기본 제어 또는 구간 제어 선택
- 설정 구성:
- 기본 설정 (이름, 키)
- 진입 상태 (대기/차단)
- 진입 허용 수
- 대기실 적용 (템플릿)
- 통합 설정:
- 기본 제어: UTI (트리거 규칙) 또는 CBI (코드 구현) 선택
- 구간 제어: CBI 구현 (nfStartSection/nfStopSection)
- 구성 테스트: 설정 확인 및 실시간 지표 모니터링
필수 구성 요소
모든 세그먼트에는 다음 핵심 설정이 필요합니다:
- 세그먼트 이름: 쉽게 구분할 수 있는 식별자
- 세그먼트 키: API 호출을 위한 고유 키 (자동 생성, 생성 시까지 수정 가능)
- 진입 상태: 대기 (순차 진입) 또는 차단 (진입 제한)
- 진입 허용 수: 동시에 액세스할 수 있는 사용자 수
- 대기실: 템플릿 선택 및 사용자 정의
기본 제어 추가:
- 트리거 규칙: URL 기반 조건 (UTI 전용)
모범 사례
세그먼트 계획
- 제어 범위 식별: 어떤 URL 또는 구간을 제어해야 하는지 결정
- 제어 유형 선택:
- 특정 URL/페이지/작업의 경우 기본 제어
- 다단계 프로세스의 경우 구간 제어
- 용량 계획: 진입 허용 수를 최대 서버 용량의 약 50%로 설정
- 대기 경험 설계: 의미 있는 대기실 경험 생성
- 통합 방법 고려: 자동 보호를 위한 UTI, 정밀 제어를 위한 CBI
성능 최적화
- 사용량 모니터링: 세그먼트 성능 및 사용자 경험 추적
- 제한 조정: 실제 사용량을 기반으로 진입 허용 수 수정
- 고정형으로 시작: 먼저 고정형 사용, 모니터링 후 변동형 고려 (기본 제어)
- 철저한 테스트: 트리거 규칙 테스트 (기본 제어 UTI) 또는 코드 테스트 (CBI)로 설정 확인
구성 팁
- 세그먼트 이름 지정: 목적과 환경을 나타내는 설명적인 이름 사용
- 키 사용자 정의: 코드 가독성을 위해 생성 중 세그먼트 키 사용자 정의
- 진입 상태: 정상 작동을 위해 대기 사용, 유지보수/긴급 상황을 위해 차단 사용
- 테스트: 테스트를 위해 진입 허용 수를 0으로 설정 (모든 사용자가 대기실로 이동)