본문으로 건너뛰기

콕 개요

문서 정보​

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

TL;DR

**콕(Kok)**은 녹화 중 중요한 순간을 마킹하는 기능입니다. 앱 버튼 또는 웨어러블 디바이스(Beacon)로 "그 순간을 콕!" 찍으면, 10분 단위 타임슬롯에 저장되고, 시청 시 리워드를 적립받을 수 있습니다.


목차​

  1. 콕이란?
  2. 콕의 생성 과정
  3. 타임슬롯 구조
  4. 입력 소스
  5. 활성 콕과 비활성 콕
  6. 콕 시청과 리워드
  7. 전체 흐름
  8. FAQ

콕이란?​

체육관에서 운동하는 모습이 녹화되는 동안, 득점 장면이나 멋진 플레이가 나왔을 때 그 순간을 기록하는 기능입니다.

비유하자면, 영상을 보면서 "여기!" 하고 손가락으로 콕 찍는 것과 같습니다. 콕을 찍어두면 나중에 그 순간만 골라서 다시 볼 수 있고, 시청하면 리워드도 받을 수 있습니다.

항목설명
무엇을녹화 중 중요한 순간을 마킹
어디서체육관 녹화 세션(일정) 중
어떻게앱 버튼 터치 또는 웨어러블 디바이스(Beacon)
왜하이라이트 구간을 빠르게 찾아보고, 리워드를 적립받기 위해
PLUS 멤버십 전용 기능

콕은 PLUS 패스 멤버십 사용자만 이용할 수 있습니다. 녹화 종료 후 콕 데이터가 자동으로 동기화되며, PLUS가 아닌 사용자의 콕 데이터는 동기화되지 않습니다.


콕의 생성 과정​

콕은 사용자가 직접 "저장" 버튼을 누르는 것이 아니라, 녹화 종료 시점에 자동으로 생성됩니다.

단계별 설명​

  1. 녹화 중: 사용자가 앱에서 콕 버튼을 누르면, 타임스탬프가 Firestore에 실시간으로 저장됩니다
  2. 녹화 종료: 서버가 Firestore에서 해당 세션의 모든 타임스탬프를 조회합니다
  3. 타임슬롯 계산: 각 타임스탬프의 시각을 기반으로 10분 단위 타임슬롯을 자동 계산합니다
  4. 활성/비활성 구분: 생성 제한(최대 30개)을 초과하는 콕은 비활성으로 분류됩니다
  5. 리워드 적립 대상 선정: 활성 콕의 50%가 리워드 적립 대상으로 선정됩니다
  6. 저장: 최종 결과가 데이터베이스에 저장됩니다

타임슬롯 구조​

콕은 10분 단위 타임슬롯으로 그룹화되어 저장됩니다. 1시간은 6개의 타임슬롯으로 나뉩니다.

타임슬롯시간 범위예시 (15시 기준)
0xx:00 ~ xx:0915:00 ~ 15:09
1xx:10 ~ xx:1915:10 ~ 15:19
2xx:20 ~ xx:2915:20 ~ 15:29
3xx:30 ~ xx:3915:30 ~ 15:39
4xx:40 ~ xx:4915:40 ~ 15:49
5xx:50 ~ xx:5915:50 ~ 15:59

타임슬롯 내부 구조​

각 타임슬롯 안에는 여러 개의 콕이 저장될 수 있습니다. 각 콕에는 다음 정보가 포함됩니다.

필드설명
timestamp콕을 찍은 절대 시각 (Unix 밀리초)
source입력 소스 (APP 또는 BEACON)
id고유 식별자 (Firestore 문서 ID)
offsetInMs타임슬롯 시작점으로부터의 오프셋 (0 ~ 600,000ms)
isActive활성 여부 (생성 제한 이내 = 활성)
isPointEligible리워드 적립 대상 여부
thumbnailCameraCode썸네일 표시용 카메라 코드
offsetInMs 예시

녹화가 15:30:00에 시작되고, 콕을 15:33:00에 찍었다면:

  • 타임슬롯: 3 (xx:30 ~ xx:39)
  • offsetInMs: 180,000ms (3분 = 180초 = 180,000ms)

이 오프셋 값은 영상 플레이어에서 해당 순간으로 이동할 때 사용됩니다.


입력 소스​

콕은 두 가지 방법으로 입력할 수 있습니다.

소스설명사용 방법
APP앱에서 직접 입력앱 화면의 콕 버튼을 터치
BEACON웨어러블 디바이스 입력Beacon 디바이스의 버튼을 누름

두 소스 모두 동일하게 Firestore에 타임스탬프가 저장되며, 서버에서는 동일한 방식으로 처리됩니다. 소스 정보는 추적 및 통계 목적으로 기록됩니다.


활성 콕과 비활성 콕​

콕에는 스케줄당 생성 제한이 있습니다. 제한을 초과하는 콕은 비활성으로 분류되어 보관만 됩니다.

구분설명시청 가능리워드 적립 가능
활성 콕생성 제한 이내의 콕OO (적립 대상인 경우)
비활성 콕생성 제한 초과분XX

콕 생성 제한​

항목값
스케줄당 최대 콕 생성 수30개
적용 방식시간순으로 앞에서부터 30개가 활성, 나머지는 비활성
비활성 콕

생성 제한을 초과하여 비활성이 된 콕은 사용자에게 노출되지 않습니다. 비활성 콕은 데이터베이스에 보관되지만, 시청이나 리워드 적립의 대상이 되지 않습니다.

활성/비활성 구분 예시​

사용자가 한 스케줄에서 35번 콕을 찍은 경우


콕 시청과 리워드​

콕을 시청하면 리워드를 적립받을 수 있습니다. 단, 모든 콕이 리워드를 주는 것은 아닙니다.

리워드 적립 조건​

콕 시청으로 리워드를 받으려면 다음 모든 조건을 충족해야 합니다.

조건설명
PLUS 멤버십콕 시청 완료 API는 PLUS 멤버십 사용자만 호출 가능
활성 콕비활성 콕은 시청할 수 없음
리워드 적립 대상활성 콕의 50%만 적립 대상으로 선정됨 (콕 생성 시점에 결정)
사이클 한도멤버십 결제 사이클당 최대 적립 횟수 제한

리워드 적립 대상 선정​

활성 콕의 정확히 50% (홀수면 올림)가 리워드 적립 대상으로 선정됩니다. 이 선정은 콕이 생성되는 시점에 결정되며, Hamilton's Method 알고리즘을 사용하여 타임슬롯별로 공정하게 배분됩니다.

활성 콕 수적립 대상 수비율
30개15개50%
7개4개57% (올림)
1개1개100% (올림)
상세 문서

리워드 적립 대상 선정의 알고리즘, 타임슬롯별 공정 배분 방식, 예시 시나리오에 대한 자세한 내용은 포인트 적립 대상 선정 문서를 참고하세요.


전체 흐름​

콕의 생성부터 리워드 적립까지의 전체 흐름입니다.

흐름 요약​

단계설명주요 동작
1. 녹화 중사용자가 중요한 순간에 콕을 찍음Firestore에 실시간 저장
2. 동기화녹화 종료 후 서버가 자동으로 콕 데이터를 처리타임슬롯 계산, 활성/비활성 구분, 적립 대상 선정
3. 시청사용자가 콕을 시청하면 리워드 적립 여부가 결정됨적립 대상 콕이면 리워드 지급

FAQ​

Q: 콕은 누구나 사용할 수 있나요?​

아닙니다. 콕은 PLUS 멤버십 사용자만 이용할 수 있습니다. FREE 패스 사용자는 콕 버튼을 누를 수 있지만, 녹화 종료 후 콕 데이터가 동기화되지 않습니다.

Q: 한 스케줄에서 콕을 몇 개까지 찍을 수 있나요?​

Firestore에는 제한 없이 저장되지만, 서버에서 동기화할 때 최대 30개까지만 활성 콕으로 처리됩니다. 나머지는 비활성으로 보관됩니다.

Q: 콕을 시청하면 반드시 리워드를 받나요?​

아닙니다. 리워드를 받으려면 해당 콕이 적립 대상이어야 합니다. 활성 콕의 50%만 적립 대상으로 선정되며, 사이클당 적립 횟수 한도도 있습니다.

Q: 어떤 콕이 적립 대상인지 미리 알 수 있나요?​

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

Q: APP으로 찍은 콕과 BEACON으로 찍은 콕에 차이가 있나요?​

기능적으로는 차이가 없습니다. 두 소스 모두 동일하게 처리되며, 소스 정보는 추적 및 통계 목적으로만 기록됩니다.

Q: 타임슬롯이 왜 10분 단위인가요?​

콕을 시간대별로 효율적으로 조회하고 표시하기 위한 구조입니다. 1시간을 6개의 타임슬롯으로 나누어 영상 구간별로 콕을 쉽게 탐색할 수 있습니다.

Q: 녹화가 시간 경계(예: 15:55 ~ 16:10)를 넘으면 어떻게 되나요?​

콕의 타임슬롯은 분(minute) 기준으로 계산됩니다. 15:55에 찍은 콕은 타임슬롯 5, 16:05에 찍은 콕은 타임슬롯 0에 저장됩니다. 시간 경계와 관계없이 정상 처리됩니다.


관련 문서​


변경 이력​

버전날짜변경 내용
v1.0.02026-02-27초기 문서 작성
- 콕 개요 및 생성 과정 설명
- 타임슬롯 구조 설명
- 입력 소스(APP/BEACON) 설명
- 활성/비활성 콕 구분 설명
- 콕 시청과 리워드 적립 흐름 설명
- 전체 흐름 다이어그램 작성
- FAQ 작성