고급 - 타이밍
"타이밍"은 재요청 주기 및 타임아웃 구성을 포함하여 기본 제어 세그먼트의 타이밍 동작을 제어하는 고급 구성으로, 시스템 성능 및 사용자 경험을 최적화합니다.

개요
고급 타이밍 설정은 대기실이 방문자 요청 및 진입 흐름을 관리하는 방식을 제어합니다. 이러한 설정은 시스템이 대기실 상태를 처리하는 시점과 빈도를 구성하여 서버 성능과 사용자 경험 사이의 균형을 맞추는 데 도움이 됩니다.
방문자가 대기실에서 대기 중일 때, 대기실 로직은 주기적으로 진입할 수 있는지 확인해야 합니다. 타이밍 설정은 이러한 간격을 제어합니다 - 더 긴 간격은 서버 부하를 줄이지만 응답 지연을 증가시키고, 더 짧은 간격은 응답성을 향상시키지만 서버 부담을 증가시킵니다. 이상적인 설정은 트래픽 패턴 및 시스템 용량을 기반으로 이러한 문제를 균형있게 조정합니다.
재요청 주기
기능: 대기 중인 방문자가 진입 가능성을 확인하기 위해 보내는 요청 간의 동적 타이밍을 제어합니다. 시스템은 각 방문자의 대기열 위치를 기반으로 이 간격을 지능적으로 조정합니다.
작동 방식:
- 주기적 상태 확인: 방문자의 대기실 로직이 진입 권한을 확인하기 위해 NetFUNNEL 서버에 반복적으로 연락
- 서버 응답: 각 요청은 PASS (진입 진행) 또는 WAIT (계속 대기)를 받음
- TTL (Time To Live): WAIT 응답에는 다음 확인 전에 정확히 얼마나 기다려야 하는지 클라이언트에 알려주는 TTL 값이 포함됨
- 동적 계산: TTL은 각 방문자의 대기열 위치를 기반으로 계산됨
대기열 후반의 방문자는 상대적으로 긴 확인 요청 간격을 유지하고, 앞쪽에 가까운 방문자일수록 확인 요청 간격이 짧아집니다.
고정 값이 아닌 범위를 구성하는 이유:
다른 방문자는 대기열을 통해 이동하면서 변경되는 다른 확인 빈도가 필요합니다. 단일 고정 간격이 아닌 범위 (예: 1-10초)를 구성합니다.
- 앞쪽에 가까운 방문자: 더 짧은 TTL 값 수신 → 더 자주 확인 → 리소스가 사용 가능해지면 더 빠른 진입
- 뒤쪽의 방문자: 더 긴 TTL 값 수신 → 덜 자주 확인 → 불필요한 서버 요청 감소
- 진행하면서: TTL 값이 자동으로 줄어들어 대기 중 전체에 걸쳐 우선순위에 적합한 확인 빈도 보장
이 방식은 서버 부하 (불필요한 요청 감소)와 사용자 경험 (사용 가능할 때 즉시 진입) 사이의 균형을 맞춥니다.
시각적 예시 (범위: 1-10초):
대기열 위치 TTL 값 확인 빈도
─────────────────────────────────────────────────
앞쪽 → 1-2초 → 매우 자주
중-상 → 3-5초 → 보통
중-하 → 6-8초 → 덜 자주
뒤쪽 → 9-10초 → 가장 덜 자주
방문자 1 (대기열 앞쪽)
↓ 진입에 가까워질수록 더 자주 확인
↓
방문자 100 (대기열 중간)
↓ 진행하면서 TTL이 점진적으로 감소
↓
방문자 500 (대기열 뒤쪽)
이 그라데이션은 앞쪽의 방문자가 리소스가 사용 가능해지면 빠른 진입을 받도록 보장하는 동시에, 뒤쪽의 방문자가 불필요한 요청으로 서버를 압도하지 않도록 합니다.
기본값: 최소 1초, 최대 10초
구성 가능한 범위: 최소값과 최대값 모두 1-60초
구성 방법:
- 세그먼트의 고급 설정으로 이동
- 최소 값 설정 (1초 권장)
- 최대 값 설정 (10초 권장)
- 시스템이 대기열 위치를 기반으로 이 범위 내에서 각 방문자의 간격을 자동으로 조정
권장 사항: 기본값(1-10초)을 사용하세요. NetFUNNEL 서버 사양에 최적화되어 있으며 시스템 용량을 고려합니다. 성능 모니터링에서 특정 요구 사항이 있는 경우에만 조정하세요.
타임아웃
기능: 방문자가 서비스 세션을 제대로 완료하지 않으면 방문자의 진입 슬롯을 자동으로 해제하여 리소스가 대기 중인 다른 사람에게 계속 사용 가능하도록 보장합니다.
방문자가 서비스를 진입하면 NetFUNNEL은 리소스 사용을 추적합니다. 방문자가 완료한 후(구매 완료, 콘텐츠 보기 또는 서비스 상호 작용) NetFUNNEL은 다음 대기 중인 방문자를 위해 슬롯을 해제하기 위해 완료 알림을 기대합니다.
만약 방문자가 브라우저를 닫거나, 다른 곳으로 이동하거나, 오류를 만나 완료 알림을 보내지 않는 경우, 타임아웃 없이는 슬롯이 무기한으로 점유되어 모든 대기 중인 방문자를 차단합니다.
핵심 반환 타임아웃은 적절한 완료 타이밍을 위해 6-20초를 기다립니다. 알림이 도착하지 않으면 NetFUNNEL은 자동으로 슬롯을 해제하여 다음 방문자가 진입할 수 있도록 합니다.
작동 방식:
- 카운트다운 시작: 방문자가 서비스에 진입하면 타임아웃 카운트다운이 시작됨
- 완료 감지: 완료가 감지되는 방식은 통합 방법에 따라 다름:
- 코드 기반 통합 (CBI): 서비스가 완료 함수(nfStop())를 호출할 때 완료가 신호됨
- URL 트리거 통합 (UTI): 대상 페이지 로딩이 완료될 때 완료가 감지됨
- 정상 흐름: 타임아웃 전에 적절한 완료가 수신되면 슬롯이 정상적으로 해제됨
- 타임아웃 시나리오: 완료 없이 타임아웃이 만료되면(브라우저 닫힘, 다른 곳으로 이동, 오류 등) NetFUNNEL이 자동으로 슬롯을 해제
타임아웃 카운트다운은 방문자가 대기실에서 서비스에 진입하는 즉시 시작됩니다. 위 다이어그램에는 두 가지 시나리오가 표시되어 있습니다:
- 정상 흐름: 방문자가 서비스를 제대로 완료하고 시스템에 알림이 전달되어 다음 대기 중인 방문자를 위해 리소스 슬롯이 해제됨
- 타임아웃 시나리오: 타임아웃 기간 내에 완료 알림이 도착하지 않아 NetFUNNEL이 자동으로 슬롯을 해제하고 리소스 사용을 감소시켜 다음 대기 중인 방문자가 진입할 수 있도록 함
기본값: 6-20초 범위 (일반적으로 기본값 20초)
구성 가능한 범위: 최소값과 최대값 모두 6-60초
범위인 이유:
NetFUNNEL은 완료율 - 진입을 위해 발급된 키 대비 반환/수집된 키의 비율 -을 기반으로 타임아웃을 동적으로 조정합니다. 100% 완료율은 모든 키가 제대로 반환되고 있음을 의미하고, 낮은 비율은 키가 반환되지 않고 있음을 나타냅니다(타임아웃 기반 자동 해제 필요).
- 낮은 완료율 (키가 제대로 반환되지 않음) → 타임아웃이 최소값(6초) 쪽으로 이동하여 정지된 리소스를 더 빠르게 해제하는 데 도움
- 높은 완료율 (키가 제대로 반환되고 있음, 100%에 가까움) → 타임아웃이 최대값(20초) 쪽으로 이동하여 방문자가 완료할 충분한 시간 제공
6-20초인 이유:
기본 범위는 서비스 무결성과 리소스 잠금 방지 사이의 균형을 맞춥니다:
- 서비스 작업: API 응답(밀리초), 페이지 로드(일반적으로 1-2초)
- 20초: 방문자가 작업을 완료할 충분한 시간 제공
- 너무 낮음 (예: 1-2초): 서비스가 완료되기 전에 조기 해제를 일으킬 수 있음
NetFUNNEL은 진입 허용 수를 최적화하기 위해 방문자가 서비스를 사용하는 시간을 측정합니다. 타임아웃으로 인해 키가 자동 반환될 때(적절한 완료 신호 없음) 종료 시점이 신뢰할 수 없으므로 이러한 세션은 메트릭에서 제외됩니다.
진입 패스가 구성된 경우, 방문자는 패스 기간 내에 대기실을 다시 거치지 않고 여러 번 서비스에 재진입할 수 있습니다. 타임아웃 메커니즘은 각 진입 세션에 대해 동일한 타이머에서 계속 작동하지만, 방문자는 타임아웃 기반 해제 후에도 패스 기간 내에 재진입할 수 있습니다.