본문으로 건너뛰기

콕 포인트 적립 대상 선정

문서 정보​

  • 작성일: 2026-02-26
  • 최종 업데이트: 2026-02-26
  • 버전: v1.1.0

TL;DR

콕이 생성될 때, 활성 콕의 **정확히 절반(50%)**이 포인트 적립 대상으로 선정됩니다. Hamilton's Method 알고리즘을 적용하여 전체 적립 수도, 각 타임슬롯별 적립 수도 공정하게 배분됩니다.


목차​

  1. 핵심 개념
  2. 적립 대상 선정 방식
  3. 타임슬롯별 공정 배분
  4. Hamilton's Method 알고리즘
  5. 예시 시나리오
  6. FAQ

핵심 개념​

콕(Kok)과 포인트​

사용자가 체육관에서 콕을 하면, 각 콕에 대해 포인트 적립 여부가 결정됩니다.

용어설명
활성 콕사용자에게 노출되는 콕 (패스별 개수 제한 이내)
비활성 콕개수 제한 초과로 보관만 되는 콕
적립 대상 콕시청 완료 시 포인트를 받을 수 있는 콕

적립 대상 비율​

  • 활성 콕의 **50%**가 적립 대상으로 선정됩니다
  • 홀수일 경우 올림 처리하여 사용자에게 유리하게 적용합니다
  • 비활성 콕은 적립 대상이 될 수 없습니다

적립 대상 선정 방식​

콕이 생성될 때 다음 순서로 적립 대상이 결정됩니다.

적립 대상 수 계산​

활성 콕 수의 50%를 올림하여 적립 대상 수를 결정합니다.

적립 대상 수 = ⌈ 전체 활성 콕 수 × 0.5 ⌉

( ⌈ ⌉ = 올림 )

활성 콕 수적립 대상 수계산
10개5개⌈10 × 0.5⌉ = 5
7개4개⌈7 × 0.5⌉ = ⌈3.5⌉ = 4
3개2개⌈3 × 0.5⌉ = ⌈1.5⌉ = 2
1개1개⌈1 × 0.5⌉ = ⌈0.5⌉ = 1
0개0개⌈0 × 0.5⌉ = 0
사용자 우호적 정책

홀수 활성 콕에서는 항상 올림하므로, 실제 적립 비율은 50% 이상입니다. 예를 들어 활성 콕 1개일 때 적립 대상도 1개 (100%)입니다.


타임슬롯별 공정 배분​

왜 공정 배분이 필요한가?​

콕은 여러 타임슬롯(시간대)에 걸쳐 생성됩니다. 단순히 전체에서 랜덤으로 고르면 특정 타임슬롯에 적립 대상이 몰리거나 0개가 되는 불공정이 발생할 수 있습니다.

배분 규칙​

각 타임슬롯은 자신의 활성 콕 수에 비례한 적립 대상을 보장받습니다.

규칙설명
전체 합산 정확전체 적립 대상 수는 항상 ⌈전체 활성 콕 × 50%⌉
슬롯별 범위 보장각 슬롯의 적립 대상: ⌊슬롯 콕 수 × 50%⌋ ~ ⌈슬롯 콕 수 × 50%⌉
슬롯 내 랜덤슬롯 안에서 어떤 콕이 적립 대상인지는 랜덤

⌊ ⌋ = 내림, ⌈ ⌉ = 올림


Hamilton's Method 알고리즘​

타임슬롯별 공정 배분에는 Hamilton's Method (최대 나머지 방식)를 사용합니다. 이 알고리즘은 원래 미국 의회 의석 배분에 사용되던 방식으로, 전체 합을 정확히 유지하면서 각 그룹에 비례 배분하는 문제를 해결합니다.

알고리즘 단계​

단계별 수식​

각 타임슬롯 i에 nᵢ개의 활성 콕이 있을 때:

단계수식설명
목표K = ⌈(n₁ + n₂ + ... + nₖ) × r⌉전체 적립 대상 수 (r = 0.5)
하한aᵢ = ⌊nᵢ × r⌋각 슬롯에 보장되는 최소 적립 수
부족분D = K - (a₁ + a₂ + ... + aₖ)아직 배분되지 않은 잔여분
나머지fᵢ = nᵢ × r - aᵢ각 슬롯의 소수점 이하 값
추가 배정fᵢ가 큰 순서로 D개 슬롯에 +1나머지가 큰 슬롯이 우선

수학적 보장​

Hamilton's Method는 다음 두 가지를 동시에 보장합니다:

보장 1: 전체 합산 = ⌈전체 콕 × 0.5⌉ (정확히 일치)

보장 2: 각 슬롯의 적립 수는 ⌊nᵢ × 0.5⌋ 이상, ⌈nᵢ × 0.5⌉ 이하 (Quota Rule)

이 보장은 알고리즘의 구조적 특성으로, 어떤 입력에서든 반드시 성립합니다.

왜 단순 올림/내림으로는 안 되는가?​

각 슬롯에 독립적으로 ⌈nᵢ × 0.5⌉(올림)를 적용하면, 올림의 누적으로 전체 합이 목표를 초과합니다.

슬롯별 콕 수슬롯별 올림 합전체 목표차이
[3, 3, 3] = 92 + 2 + 2 = 6⌈4.5⌉ = 5+1 초과
[1, 1, 1] = 31 + 1 + 1 = 3⌈1.5⌉ = 2+1 초과
[2, 4, 6] = 121 + 2 + 3 = 6⌈6⌉ = 6일치 (짝수일 때만)

Hamilton's Method는 일부 슬롯에 내림, 나머지에 올림을 적용하여 합이 정확히 맞도록 조절합니다.

r = 0.5일 때의 특수성​

비율이 0.5인 경우, 나머지 값 fᵢ는 0 (짝수 콕) 또는 0.5 (홀수 콕) 뿐입니다. 홀수 콕인 슬롯들은 모두 같은 나머지(0.5)를 가지므로 동률이 됩니다. 이때 랜덤으로 순서를 결정하여 특정 슬롯이 항상 유리하거나 불리하지 않도록 합니다.


예시 시나리오​

시나리오 1: 모든 슬롯 짝수 — 부족분 없음​

사용자 A가 3개 타임슬롯에 각각 2개, 4개, 6개 = 총 12개 활성 콕

단계슬롯 0 (2개)슬롯 1 (4개)슬롯 2 (6개)합계
하한 ⌊nᵢ×0.5⌋1236
목표 K6
부족분 D0
최종 배정1개2개3개6개

모든 슬롯이 짝수이므로 나머지가 0, 부족분이 없어 정확히 절반씩 배정됩니다.

시나리오 2: 모든 슬롯 홀수 — 부족분 배분​

사용자 B가 3개 타임슬롯에 각각 3개, 3개, 3개 = 총 9개 활성 콕

단계슬롯 0 (3개)슬롯 1 (3개)슬롯 2 (3개)합계
하한 ⌊nᵢ×0.5⌋1113
목표 K5
부족분 D2
나머지 fᵢ0.50.50.5동률
추가 배정 (+1)✓ (랜덤)✓ (랜덤)-+2
최종 배정2개2개1개5개

3개 슬롯이 동률이므로 2개를 랜덤 선택하여 +1을 줍니다. 매번 다른 슬롯이 선택되어 장기적으로 공정합니다.

시나리오 3: 슬롯 간 큰 차이​

사용자 C가 슬롯 0에 1개, 슬롯 1에 10개 = 총 11개 활성 콕

단계슬롯 0 (1개)슬롯 1 (10개)합계
하한 ⌊nᵢ×0.5⌋055
목표 K6
부족분 D1
나머지 fᵢ0.50
추가 배정 (+1)✓ (나머지 큼)-+1
최종 배정1개5개6개

슬롯 0은 콕이 1개뿐이지만, 나머지(0.5)가 슬롯 1(0)보다 크므로 +1을 받아 적립 대상이 됩니다.


FAQ​

Q: 적립 대상인 콕을 시청하면 반드시 포인트를 받나요?​

적립 대상은 포인트를 받을 수 있는 자격입니다. 실제 적립은 시청 완료 시점에 멤버십별 적립 횟수 제한 등 추가 조건을 확인한 후 이루어집니다.

Q: 사용자가 어떤 콕이 적립 대상인지 알 수 있나요?​

아닙니다. 적립 대상 여부는 내부 로직으로만 관리되며, 사용자에게는 노출되지 않습니다. 사용자는 콕 시청 완료 후 결과만 받게 됩니다.

Q: 활성 콕이 1개뿐이면 반드시 적립 대상인가요?​

네. ⌈1 × 0.5⌉ = 1이므로, 활성 콕이 1개 이상이면 최소 1개는 적립 대상이 됩니다.

Q: 특정 타임슬롯에 적립 대상이 0개가 될 수 있나요?​

해당 슬롯의 활성 콕이 1개일 때만 0개가 될 수 있습니다 (범위: 0~1). 2개 이상이면 최소 1개는 보장됩니다. 그리고 전체적으로 부족분이 있을 경우 1개짜리 슬롯도 적립 대상을 받을 수 있습니다.

Q: 매번 같은 콕이 적립 대상이 되나요?​

아닙니다. 각 슬롯 내에서 적립 대상은 랜덤으로 선택됩니다. 같은 조건이어도 매번 다른 콕이 선택될 수 있습니다.

Q: Hamilton's Method는 어디서 유래한 건가요?​

1792년 미국 건국의 아버지 알렉산더 해밀턴이 제안한 의석 배분 방식입니다. "전체 의석 수를 정확히 유지하면서 각 주(州)에 인구 비례로 공정하게 배분"하는 문제를 해결하기 위해 만들어졌으며, 우리 시스템에서는 "타임슬롯별 콕 수에 비례하여 적립 대상을 배분"하는 데 동일한 원리를 적용합니다.


관련 문서​

  • ADR-001: 결정적 포인트 적격 할당 (docs/maintained/kok/adr/ADR-001-point-eligibility-deterministic.md) - 확률적 → 결정적 할당 변경 결정
  • ADR-002: 타임슬롯별 공정 배분 (docs/maintained/kok/adr/ADR-002-per-timeslot-fair-allocation.md) - Hamilton's Method 적용 결정

변경 이력​

버전날짜변경 내용
v1.0.02026-02-26초기 문서 작성
- 포인트 적립 대상 선정 방식 정의
- 타임슬롯별 공정 배분 규칙 설명
- 예시 시나리오 3건 작성
- FAQ 작성
v1.1.02026-02-26알고리즘 상세 추가
- Hamilton's Method 알고리즘 단계별 설명 추가
- 수학적 보장 및 수식 추가
- 단순 올림/내림 불가 이유 설명
- 시나리오에 단계별 계산 과정 추가
- 다이어그램 색상 개선