추가콕 시스템
문서 정보
- 작성일: 2026-03-21
- 최종 업데이트: 2026-03-21
- 버전: v1.0.0
추가콕은 녹화 완료 후 영상 시청 중 특정 순간을 마킹하는 북마크 기능입니다. 개수/멤버십 제한 없이 자유롭게 추가/제거할 수 있으며, 원하는 순간을 마이콕으로 전환하여 영구 보관할 수 있습니다.
목차
추가콕 이란?
추가콕(PinKok)은 "영상을 보면서 원하는 순간을 마킹" 하는 기능입니다.
녹화 중에만 콕을 찍을 수 있는 기존 콕과 달리, 추가콕은 녹화가 끝난 후 영상을 시청하면서 언제든 자유롭게 마킹할 수 있습니다. 마치 브라우저에서 북마크를 추가하듯이, 제한 없이 원하는 만큼 추가하고 제거할 수 있습니다.
콕이 "경기 중 심판이 휘슬을 불어 순간을 기록"하는 것이라면, 추가콕은 "경기 영상을 다시 보면서 하이라이트 장면에 포스트잇을 붙이는 것"입니다. 포스트잇을 붙였다 떼었다 자유롭게 할 수 있고, 특별히 보관하고 싶은 장면은 마이콕으로 영구 저장할 수 있습니다.
콕 vs 추가콕 vs 마이콕
| 구분 | 콕(Kok) | 추가콕(PinKok) | 마이콕(MyKok) |
|---|---|---|---|
| 성격 | 녹화 중 타임스탬프 | 시청 중 북마크 | 영구 보관 클립 |
| 생성 시점 | 녹화 중 | 영상 시청 중 | 콕/추가콕에서 전환 |
| 수명 | 영상 만료까지 | 영상 만료까지 | 영구 |
| 저장소 | Firestore → DB | Firestore만 | DB |
| 개수 제한 | 패스별 상이 | 없음 | 멤버십별 최대 개수 |
| 멤버십 | 패스 보유자 | 제한 없음 | PLUS 이상 |
| 리워드 | 포인트 적립 대상 | 없음 | 없음 |
| 입력 소스 | APP / BEACON | APP만 | - |
전체 흐름
저장 구조
추가콕은 Firestore에만 저장되며 서버 DB를 거치지 않습니다.
Firestore 경로
gyms/{gymCode}/date/{YYYY-MM-DD}/hour/{hour}/users/{userId}/pin-timestamps/{docId}
기존 콕의 Firestore 경로와 나란한 구조입니다:
| 컬렉션 | 용도 |
|---|---|
timestamps | 콕 (녹화 중 생성) |
pin-timestamps | 추가콕 (시청 중 생성) |
저장 필드
| 필드 | 타입 | 설명 |
|---|---|---|
timestamp | Firestore Timestamp | 영상 내 마킹 시점 (녹화 시점 기준) |
source | string | 항상 'APP' (BEACON은 녹화 중에만) |
timestamp는 사용자가 시청하는 현재 시각이 아니라, 영상 내 마킹한 순간에 해당하는 녹화 시점입니다.
예: 3월 19일 17:00~18:00 녹화 영상의 17:35 지점을 3월 21일에 마킹 → timestamp는 2026-03-19T17:35:00
크로스 디바이스
Firestore의 실시간 동기화 덕분에, 앱에서 마킹한 추가콕이 웹에서도 즉시 보입니다.
마이콕 전환
추가콕을 마이콕으로 전환하면 영상 만료 후에도 영구 보관됩니다.
전환 API
**POST /api/v1/my-koks/{userScheduleUuid}/pin-kok**
| 필드 | 타입 | 설명 |
|---|---|---|
kokTimestampId | string | Firestore 문서 ID |
videoUuid | string (UUID) | 시청 중인 영상 UUID |
timeSlot | number (0-5) | 시청 중인 타임슬롯 |
timestamp | number | 녹화 시점 타임스탬프 (Unix ms) |
offsetInMs | number (0-600000) | 10분 영상 내 재생 위치 (ms) |