고급 - 진입 키 무효화
진입 키 무효화를 사용하면 특정 조건에서 대기 키와 진입 키를 선택적으로 무효화하여 방문자가 재대기해야 하도록 보장할 수 있습니다. 타이머 기반 무효화에서는 사용자 범위 지정 설정을 통해 진입 키만 또는 대기 키와 진입 키 모두를 무효화할 수 있습니다. 이 가이드는 무효화 메커니즘, 사용 사례 및 구성 옵션에 대해 설명합니다.

개요
진입 키 무효화는 특정 비즈니스 조건에서 방문자가 새 키를 받고 재대기해야 하도록 키를 무효화하는 메커니즘입니다. 무효화 대상은 타이머 기반 무효화의 사용자 범위 지정 설정에 따라 달라집니다: 진입 키만, 혹은 대기 키와 진입 키 모두를 무효화할 수 있습니다. 이 기능은 대기 순번 유지와 함께 작동하여 액세스 패턴에 대한 세밀한 제어를 제공합니다.
무효화가 필요한 이유
진입 키 무효화는 두 가지 유형의 키를 무효화할 수 있습니다:
1. 대기 키: 대기 순번에 사용됩니다. 무효화되면 방문자가 저장된 대기 순번을 잃고(대기 순번 유지가 활성화되어 있어도) 끝에서 재대기해야 합니다.
2. 진입 키: 방문자가 보호된 섹션에 진입할 때 발급됩니다. 구간 제어에는 진입 패스가 없지만(진입 키는 대기 없이 재진입하도록 설계되지 않음), 무효화는 잠재적인 부작용을 방지합니다.
타이머 기반 무효화는 다음이 필요할 때 유용합니다:
- 모든 대기 순번 재설정: 대기 키를 무효화하면 보존된 대기 순번이 있는 방문자(대기 순번 유지에서)도 대기열 끝에서 새로 시작해야 함을 보장
- 재진입 강제: 진입 키를 무효화하면 이미 보호된 섹션에 진입한 방문자가 무효화 시간 이후에 서비스에 액세스하려고 시도하면 대기실을 다시 거쳐야 함을 보장
- 중요한 이벤트 단계: 중요한 이벤트 마일스톤(예: 메인 세일이 오후 2시에 시작)에서 해당 시간 이전에 발급된 모든 키를 무효화하여 공정성을 보장 (처음 진입한 시점과 관계없이 모두 동일한 시작점에서 대기)
구간 제어 세그먼트는 타이머 기반 무효화만 지원합니다. URL 기반 무효화는 사용할 수 없습니다. 구간 제어는 코드 기반 통합(CBI)을 사용하며 URL 트리거 통합(UTI)을 지원하지 않기 때문입니다.
무효화되는 항목
진입 키 무효화는 두 가지 유형의 키에 영향을 줍니다:
1. 대기 키 (대기 순번에 사용):
- 무효화될 때: 대기 순번 유지가 우회됨
- 효과: 방문자가 대기 순번을 잃고 대기열 끝에서 시작해야 함, 대기 순번 유지 기간과 관계없이
- 사용 사례: 대기 순번 유지가 활성화되어 있어도 공정한 재대기 강제
2. 진입 키 (서비스 진입에 사용):
- 무효화될 때: 진입 시 발급된 진입 키가 강제로 무효화됨
- 효과: 서비스에 액세스하려고 시도하는 방문자는 대기실을 통해 재대기해야 함. 구간 제어에는 진입 패스가 없으므로(진입 키는 일반적으로 대기 없이 액세스하기 위해 재사용되지 않음), 무효화는 잠재적인 부작용을 방지
- 사용 사례: 중요한 서비스 단계에 대해 재대기 강제, 진입 키 상태와 관계없이 모든 방문자가 대기열을 거치도록 보장
작동 방식
진입 키 무효화는 간단한 원칙으로 작동합니다: 무효화 조건이 충족되면 키 재발급을 강제하는 방식입니다. 방문자가 이전에 발급된 키에 의존하는 대신 대기실을 다시 거치도록 합니다.
기술적 원칙
무효화 조건을 충족하는 키는 대기 순번 유지 기간과 관계없이 강제로 무효화되어 시스템이 새 키를 발급합니다. 무효화 대상은 타이머 기반 무효화의 사용자 범위 지정 설정에 따라 다릅니다:
- 타이머 기반 무효화: 사용자 범위 지정 설정에 따라 다르게 작동합니다
- 진입한 사용자만: 서비스에 진입한 사용자의 진입 키만 무효화(재발급) (대기 중인 사용자의 대기 키는 영향받지 않음)
- 대기중 사용자부터: 서비스에 진입한 사용자의 진입 키와 대기 중인 사용자의 대기 키를 모두 무효화(재발급) (대기 중인 사용자도 대기열 끝에서 재대기)
- 대기 키 무효화 시: 대기 순번 유지가 활성화되어 있을 때 대기 순번 유지 기간과 관계없이 연결이 끊어졌다가 다시 연결하는 방문자는 이전 대기 순번을 잃고 끝에서 시작
- 진입 키 무효화 시: 진입 시 발급된 진입 키는 무효화 조건이 충족되면 무효화; 구간 제어에는 진입 패스가 없지만(진입 키는 일반적으로 대기 없이 액세스하기 위해 재사용되지 않음), 무효화는 방문자가 대기실을 통해 재대기해야 함을 보장하여 잠재적인 부작용을 방지
진입 키 무효화는 구간 제어 세그먼트에 대해 타이머 기반 무효화를 제공합니다:
타이머 기반 무효화
특정 시점 이전에 발급된 키를 자동으로 무효화합니다. 무효화 대상은 사용자 범위 지정 설정에 따라 결정됩니다.
사용 사례 예시: 콘서트 티켓 예약 시스템
콘서트 티켓 예약을 운영한다고 가정합니다:
- 워밍업 단계 (오후 1:00 - 오후 2:00): 초기 방문자가 진입하여 좌석을 둘러볼 수 있음
- 메인 세일 시작 (오후 2:00): 실제 티켓 구매가 시작됨
- 요구 사항: 오후 2:00 이전에 발급된 모든 키를 무효화하여 메인 세일이 시작될 때 모든 사람이 동일한 대기 순번에서 시작하도록 함
대기 키에서 발생하는 일:
오후 1:30 방문자 A가 대기열에 진입, 대기 키 수신
→ 대기 순번 #50 할당
오후 1:45 방문자 A의 브라우저 닫힘
→ 대기 순번 유지가 순번 #50 저장
오후 1:58 타이머 무효화가 오후 2:00으로 설정됨
오후 2:00 타이머 무효화 트리거됨
→ 오후 2:00 이전에 발급된 모든 대기 키 무효화됨
오후 2:05 방문자 A가 다시 연결
→ 저장된 대기 순번 #50이 무효화됨
→ 끝에서 재대기해야 함 (새 순번 #300)
진입 키에서 발생하는 일:
오후 1:30 방문자 B가 서비스에 진입, 진입 키 수신
→ 좌석 선택 페이지 둘러보기
오후 1:45 방문자 B가 계속 둘러봄
→ 진입 키가 여전히 유효함, 섹션 내 페이지 액세스
오후 2:00 타이머 무효화 트리거됨
→ 오후 2:00 이전에 발급된 모든 진입 키 무효화됨
오후 2:05 방문자 B가 구매 페이지에 액세스 시도
→ 진입 키가 무효화됨
→ 대기실을 다시 거쳐야 함
→ 대기 후 새 진입 키 수신
구성:
-
무효화 시간 설정 (최소: 1분 단위):
무효화 시간: 오후 2:00 -
사용자 범위 지정:
- 진입한 사용자만: 서비스에 진입한 사용자의 진입 키를 무효화(재발급)합니다. 대기 중인 사용자의 대기 키는 영향받지 않습니다.
- 대기중 사용자부터: 서비스에 진입한 사용자의 진입 키와 대기 중인 사용자의 대기 키를 모두 무효화(재발급)합니다.
작동 방식:
- 시스템이 각 키가 발급된 시점을 구성된 무효화 시간과 비교
- 무효화 시간 이전에 발급된 키는 사용자 범위 지정 설정에 따라 무효화됨 (대기 순번 유지 기간과 관계없이)
- 무효화 시간 이후에 발급된 키는 정상 동작
- 진입한 사용자만 선택 시: 서비스에 진입한 사용자의 진입 키만 무효화(재발급)되어 재진입 시 대기실을 거쳐야 함. 대기 중인 사용자의 대기 키는 영향받지 않음
- 대기중 사용자부터 선택 시: 서비스에 진입한 사용자의 진입 키와 대기 중인 사용자의 대기 키를 모두 무효화(재발급)하여 대기 중인 사용자도 대기열 끝에서 재대기해야 함
구성
기본 동작
타이머 기반 무효화는 독립적이며 활성화하거나 비활성화할 수 있습니다:
- 타이머 기반 무효화 OFF (기본값): 타이머 기반 무효화가 발생하지 않음
- 무효화가 비활성화되면 키는 유효하며 정상적으로 작동함
활성화된 경우:
- 각 액세스 시도에서 무효화 확인이 발생
- 무효화 조건을 충족하는 키가 즉시 무효화됨
- 새 키는 대기실을 통해 받아야 함
구성 단계
구간 제어 세그먼트를 생성하거나 편집할 때 진입 키 무효화를 구성할 수 있습니다:
- 세그먼트 설정으로 이동 (생성 또는 편집 모드)
- 고급 설정 섹션으로 이동
- 무효화 방법 활성화:
- 타이머 기반 무효화 활성화/비활성화
- 무효화 조건 구성:
- 타이머 기반: 활성화된 경우 다음 설정 구성
- 무효화 시간 설정 (최소: 1분 단위)
- 사용자 범위 지정 선택:
- 진입한 사용자만: 서비스에 진입한 사용자의 진입 키를 무효화(재발급)
- 대기중 사용자부터: 서비스에 진입한 사용자의 진입 키와 대기 중인 사용자의 대기 키를 모두 무효화(재발급)
- 타이머 기반: 활성화된 경우 다음 설정 구성
- 구성 저장: 설정 적용
구간 제어 세그먼트:
- 타이머 기반 무효화만 사용 가능
- URL 기반 무효화는 지원되지 않음 (UTI/트리거 규칙 지원 없음)
모범 사례
타이머 기반 무효화 사용 시기
타이머 기반 무효화를 사용하는 경우:
- 이벤트 단계 전환: 한 단계에서 다른 단계로 전환할 때(예: 워밍업 → 메인 세일), 모든 기존 키를 무효화하여 모든 사람이 동일한 대기 순번에서 시작하도록 함
- 중요한 마일스톤 시간: 중요한 시간(예: 메인 세일이 오후 2시에 시작)에 처음 진입한 시점과 관계없이 모든 사람이 재대기하도록 강제하여 공정성을 보장
- 대기 순번 재설정: 대기 순번 유지가 활성화되어 있지만 특정 시간에 모든 저장된 순번을 재설정해야 할 때(예: 보존된 대기 순번을 지우기 위해 대기 키 무효화)
사용자 범위 지정 선택 가이드:
- 진입한 사용자만: 서비스에 진입한 사용자의 진입 키만 무효화하여 재진입 시 재대기하도록 하고, 대기 중인 사용자의 대기 키는 유지하여 순번을 보존하려는 경우
- 대기중 사용자부터: 서비스에 진입한 사용자의 진입 키와 대기 중인 사용자의 대기 키를 모두 무효화하여 예약 시간에 모든 사용자가 공정하게 재대기하도록 하려는 경우
구체적인 예시:
- 콘서트 티켓 세일: 오후 1:00-2:00의 워밍업 단계에서 둘러보기 허용. 오후 2:00(메인 세일 시작)에 오후 2:00 이전에 발급된 모든 키를 무효화. 구매하려는 모든 사람이 워밍업 중에 둘러보고 있었는지 새로 참여하는지와 관계없이 동일한 시작점에서 대기.
주의 사항
사용자 경험 고려:
- 너무 자주 무효화하면 사용자 경험에 부정적임
- 가능한 경우 사용자에게 무효화 타이밍 전달
- 공정성과 사용성 사이의 균형 유지
시스템 부하 모니터링:
- 재대기 사용자의 급증이 급증을 만들 수 있음
- 과부하를 피하기 위해 무효화 타이밍 계획
- 무효화 시간 설정 전에 트래픽 패턴 고려
철저한 테스트:
- 무효화 트리거가 예상대로 작동하는지 확인
- 대기 순번 유지 조합으로 테스트
- 사용자가 재대기가 필요함을 이해하는지 확인
다른 기능과의 상호 작용
대기 순번 유지 상호 작용
대기 순번 유지가 활성화되고 진입 키 무효화가 트리거될 때:
- 타이머 기반 무효화:
- 진입한 사용자만: 서비스에 진입한 사용자의 진입 키만 무효화(재발급)되므로 대기 키는 영향받지 않습니다. 대기 중인 사용자의 대기 순번은 유지됩니다.
- 대기중 사용자부터: 대기 키가 무효화(재발급)되어 사용자가 대기 순번을 잃고 끝에서 시작해야 합니다. 대기 순번 유지 기간 내에 있더라도 키 무효화가 우선순위를 가집니다.
- 새 키 발급: 무효화된 키의 경우 사용자가 새로운 키를 받고 뒤에서 대기열에 합류해야 합니다.
우선순위: 무효화 > 대기 순번 유지 (대기 키가 무효화되는 경우에만 적용)
예시 시나리오 1: 대기중 사용자부터
대기 순번 유지 기간: 5분
타이머 무효화: 오전 10:28
사용자 범위 지정: 대기중 사용자부터
타임라인:
10:25 AM → 사용자 연결 끊김 (대기 순번 #50 보존됨)
10:28 AM → 타이머 무효화 (대기 키 무효화됨)
10:29 AM → 사용자 재연결 (타이머가 이미 트리거됨)
→ 끝에서 재대기해야 함
예시 시나리오 2: 진입한 사용자만
타이머 무효화: 오후 2:00
사용자 범위 지정: 진입한 사용자만
타임라인:
1:30 PM → 사용자 A: 서비스 진입 완료 (진입 키 보유)
1:45 PM → 사용자 B: 대기 중 (대기 키 보유, 순번 #10)
2:00 PM → 타이머 무효화 트리거
→ 사용자 A: 진입 키 무효화됨 (재진입 시 대기 필요)
→ 사용자 B: 대기 키 유지됨 (순번 #10 유지)
검증
간단한 테스트로 진입 키 무효화 기능을 확인할 수 있습니다:
설정:
- 대기 순번 유지가 활성화된 구간 제어 세그먼트 구성
- 진입 키 무효화 활성화 (타이머 기반)
- 무효화 시간을 오전 10:20으로 설정
테스트: 대기 키 무효화 (대기 순번 유지 포함):
오전 10:00 방문자 A가 대기열에 진입, 대기 키 수신
→ 대기 순번 #50 할당
오전 10:05 방문자 A의 브라우저 닫힘/충돌
→ 대기 순번 유지가 순번 #50 저장
오전 10:20 타이머 무효화 트리거됨
→ 오전 10:20 이전에 발급된 모든 대기 키 무효화됨
오전 10:25 방문자 A가 다시 연결
→ 저장된 순번 #50이 무효화됨
→ 끝에서 재대기해야 함 (새 순번 #200)
→ ✅ 증명: 대기 키 무효화가 대기 순번 유지를 우회함
테스트 목표:
- 무효화된 대기 키는 보존된 대기 순번 손실을 일으킴을 확인
- 키 무효화가 대기 순번 유지보다 우선순위를 가짐을 확인
- 대기 키 무효화 후 사용자는 끝에서 재대기해야 함을 확인
FAQ
대기 순번 유지 없이 무효화를 사용할 수 있나요?
네, 무효화는 독립적입니다. 그러나 무효화는 대기 순번 유지와 함께 사용할 때 최대 효과를 발휘합니다. 대기 순번 보호 우회와 진입 키 무효화를 통한 잠재적인 부작용 방지에 대한 세밀한 제어를 제공하기 때문입니다.
무효화를 여러 번 트리거하면 어떻게 되나요?
무효화는 이벤트 기반입니다: 키가 확인되고 무효화 조건을 충족할 때마다 무효화됩니다. 타이머 기반 무효화는 구성된 시간 이전에 발급된 키를 확인합니다.
활성화한 후 무효화를 비활성화할 수 있나요?
네! 진입 키 무효화를 비활성화는 즉시 적용되는 실시간 변경입니다. 무효화된 키는 무효 상태로 유지되지만, 무효화를 비활성화한 후 발급된 새 키는 정상 동작합니다.
대기 키와 진입 키를 별도로 무효화할 수 있나요?
타이머 기반 무효화에서는 사용자 범위 지정 설정을 통해 선택할 수 있습니다:
- 진입한 사용자만: 서비스에 진입한 사용자의 진입 키를 무효화(재발급)합니다. 대기 중인 사용자의 대기 키는 영향받지 않습니다.
- 대기중 사용자부터: 서비스에 진입한 사용자의 진입 키와 대기 중인 사용자의 대기 키를 모두 무효화(재발급)합니다.