V4 는 인프라를 IVS 로 바꾸는 작업이지 상품 기능을 줄이는 작업이 아니다. 아래 항목은 V3 라이브팩 콘솔에 이미 있던 기능이며, V4 에서도 같은 사양으로 제공한다. §17 의 지원 범위는 라이브 스트리밍 기능만 열거한 것이고, 계정 관리 계층은 그 목록의 밖이 아니라 전제다(관리자 없이 콘솔을 쓸 수 없다).
사양의 정본은 V3 라이브팩 소스(D:\Workspace\git_repo\livepack)다 — 어떤 값을 다루는지는 거기서 확인한다.
화면 구성은 비디오팩 리뉴얼 콘솔을 따른다 — 같은 계정이 두 콘솔을 오가므로 표시 정보가 같은 화면을
다르게 만들 이유가 없다. 둘이 어긋나면 사양은 V3, 생김새는 비디오팩이다.
| 메뉴 | 내용 | 비디오팩 리뉴얼 대응 |
|---|---|---|
| 플레이어 | 계정에 속한 재생 프리셋. 목록·생성·수정·삭제 | player/index, player/create |
| 관리자 등록 | 관리자 계정 등록·수정·삭제, 등급 관리 | account/admins |
| 알림 설정 | 관리자별 이메일 알림 수신 설정, 전체 수신 현황 | account/notifications |
| IP 접속제한 | 콘솔 로그인 IP 정책(허용/차단) | account/ip-restriction |
| 세션 설정 | 콘솔 로그인 세션 타임아웃 | (비디오팩에 대응 메뉴 없음) |
| 개발자 API | API 키 조회, API 호출 IP 제한 | account/developer-api |
헤더의 공통 장치도 비디오팩과 같게 둔다 — 두 콘솔을 오가는 사람이 같은 자리에서 같은 것을 찾는다.
| 장치 | 자리 | 동작 |
|---|---|---|
| 글자 크기 | 계정(아바타) 메뉴 | 85~130%, 화면 전체 텍스트가 비례해서 커진다 |
| 홈페이지로 이동 | 계정 메뉴 | 위캔디오 홈페이지(계정·요금)를 새 탭으로 연다 |
| 상담(채널톡) | 헤더 아이콘 | 누르면 우하단에 상담 창이 열린다 |
상담 위젯은 평소에 띄우지 않는다(hideChannelButtonOnBoot). 늘 떠 있는 버튼은 화면 오른쪽 아래를
계속 가리는데, 그 자리는 이미 임자가 있다(§23.4 하단 바 · §23.7 상세 패널). 헤더 아이콘을 눌렀을 때만 연다.
- 로그인한 뒤에 한 번 boot 하고, 로그아웃하면 shutdown 한다 — 로그인 화면에 이전 사용자 정보가 남지 않게.
- 운영자 콘솔에 넘기는 값은 계정명 · 이름 · 이메일 · 현재 메뉴 · 현재 페이지다. 계정명을 식별자로 쓰므로 두 콘솔의 문의가 한 사람으로 묶인다.
- 플러그인 키는 환경변수로 주입하고(
NUXT_PUBLIC_CHANNEL_TALK_PLUGIN_KEY), 비어 있으면 위젯을 아예 띄우지 않는다 — 키 없는 환경에서도 콘솔 동작에 영향이 없어야 한다.
22.1 관리자 등급#
비디오팩과 같은 값 체계를 쓴다 — 등급 해석이 갈리면 같은 사람이 콘솔마다 다른 권한을 갖는다.
1000계정 소유자 /1최고관리자 /2일반관리자- 소유자 계정은 콘솔에서 수정·삭제할 수 없고, 콘솔에서 새 소유자를 만들 수도 없다.
권한표 — 계정 관리는 V3 라이브팩 left_menu.tag 의 조건 그대로이고,
라이브 쪽은 "되돌릴 수 없는가" 하나로 가른다.
| 계정 소유자 | 최고관리자 | 일반관리자 | |
|---|---|---|---|
| 계정 관리 | |||
| 관리자 등록 | ○ | ○ (본인 계정만 수정) | ✕ (본인 정보 수정만) |
| 알림 설정 | ○ (전체 관리자 일괄) | ○ (본인) | ○ (본인) |
| IP 접속제한 · 개발자 API | ○ | ○ | ✕ (메뉴 숨김) |
| 로그인 세션 설정 | ○ | ✕ | ✕ (메뉴 숨김) |
| 라이브 | |||
| 채널 생성·삭제 | ○ | ○ | ✕ |
| 채널 설정·배포·채팅 설정 | ○ | ○ | ○ |
| Stream Key 보기·재발급 | ○ | ○ | 보기 ○ / 재발급 ✕ |
| 방송 프로파일 생성·수정·적용 | ○ | ○ | ○ |
| 녹화본·채팅 로그 다운로드 | ○ | ○ | ○ |
| 녹화본 삭제 | ○ | ○ | ✕ |
| 채팅 메시지 삭제·시청자 차단 | ○ | ○ | ○ |
| 플레이어 생성·수정 | ○ | ○ | ○ |
| 플레이어 삭제 | ○ | ○ | ✕ |
| 분석·이력 조회 | ○ | ○ | ○ |
왜 이렇게 갈랐나
- 일반관리자에게 만들고 고치고 보는 일은 다 준다. 막는 것은 지우는 일과 남에게 영향이 가는 일뿐이다. V3 라이브팩이 계정 관리 전체를 막았던 것을 자원 쪽으로 옮겨 온 규칙이다.
- Stream Key 재발급은 삭제가 아니지만 같은 급으로 본다 — 남이 하던 방송을 끊을 수 있다(§19-11). 보기·복사는 열어 둔다: 송출하려면 필요한 값이고, 마스킹은 유출이 아니라 어깨너머를 막는 장치다.
- 채팅 메시지 삭제·시청자 차단은 연다. 방송 중에 즉시 해야 하는 운영이라 등급을 따질 자리가 아니고, 차단은 되돌릴 수 있다(§14).
- 최고관리자는 로그인 세션 설정만 못 본다 — V3 라이브팩이 그랬다. 계정 전체의 로그인 정책은 소유자가 정한다.
숨기는 것과 잠그는 것
표에서 ✕ 인 메뉴 세 가지(IP 접속제한 · 개발자 API · 로그인 세션 설정)는 아예 숨긴다 — 최고관리자의 로그인 세션 설정도 마찬가지다. 나머지는 전부 비활성 + 사유다: 버튼이 사라지면 "기능이 없다"로 읽혀 권한 요청이라는 다음 행동으로 이어지지 않는다. IP 정책·로그인 세션·API 키는 보안 설정이라 권한 없는 사용자에게 존재 자체를 알릴 이유가 없다. 비디오팩 리뉴얼도 같은 단서를 둔다("숨김은 보안·운영 이슈 영역에만"). 다만 비디오팩 리뉴얼 자체는 등급별 메뉴 숨김이 없다 — 이 규칙은 V3 라이브팩을 따른 것이라 두 콘솔의 메뉴 구성이 이 지점에서 갈린다.
- 메뉴를 감추는 것만으로는 부족하다. 주소를 직접 치거나 북마크로 들어오는 경로도 막는다
(
app/middleware/account-menu.global.ts). 화면 안에는 같은 판정을 중복해 두지 않는다 — 가드를 통과한 사용자는 이미 편집 권한이 있다. - 사유는 권한을 먼저 말한다 — 한도나 다른 제약을 알려 줘도 권한이 없으면 할 수 있는 일이 없다. 툴팁으로 띄울지 글로 적을지는 자리에 따라 다르다(§23.7).
비밀번호
- 비밀번호는 본인 계정이거나 계정 소유자일 때만 다룰 수 있다. 수정 진입 자체가 위 규칙으로 막혀 있어 결과는 같지만, 권한 규칙이 느슨해져도 비밀번호만은 새지 않도록 화면에도 조건을 남긴다.
- 규칙은 8~32자 + 영문·숫자·특수문자 중 1개 이상(비디오팩 콘솔과 동일). 수정 시 빈 값은 "변경 없음"이다.
- 이 규칙은 비밀번호를 "정하는" 자리에만 적용한다. 로그인에서는 검사하지 않는다. 로그인에서 길이·조합을 보면 비밀번호 정책을 로그인 화면에서 알려 주는 셈이고, 규칙이 바뀌기 전에 만든 기존 비밀번호를 로그인 단계에서 막는다. 맞고 틀림은 서버가 판단한다.
로그인 화면의 검사
- 이메일 형식은 콘솔이 직접 본다 — 형제 콘솔(비디오팩 리뉴얼)과 같은 정규식(
/^[^\s@]+@[^\s@]+\.[^\s@]+$/)이다.type="email"의 브라우저 기본 검사에 맡기면a@b처럼 점 없는 주소가 통과하고, 오류 문구가 브라우저 언어를 따라 로케일 전환과 무관해지며, 콘솔의 다른 폼이 쓰는error-box가 아니라 브라우저 말풍선으로 뜬다. 같은 상황에서 두 콘솔이 다르게 말하면 안 된다. - 비밀번호는 비었는지만 본다.
- 그래서 입력에
required를 두지 않는다 — 두면 브라우저 말풍선이 우리 문구보다 먼저 뜬다. - 본인 비밀번호를 바꾸면 그 자리에서 로그아웃한다. 지금 들고 있는 세션의 로그인 정보가 더 이상 맞지 않아 그대로 두면 다음 요청부터 이유 없이 실패한다. 안내 다이얼로그를 띄우고 확인 시 로그인 화면으로 보낸다. 소유자가 남의 비밀번호를 바꾼 경우는 해당하지 않는다 — 그 세션은 멀쩡하다.
- 서버가 변경 빈도를 제한하면(
LIMIT_PASSWORD) "저장 실패"로 뭉뚱그리지 않고 재시도 시점을 안내한다.
계정 소유자 본인의 비밀번호는 콘솔에서 바꿀 수 없다. 홈페이지에서 변경한다. 그래서 소유자 행의 수정 잠금은 구현 한계가 아니라 의도된 상태이며, 콘솔에 "내 계정" 화면을 두지 않는다. 소유자가 자기 행을 볼 때는 잠금 사유에 변경 경로(홈페이지)를 함께 안내한다.
22.2 알림 유형#
축은 V3 라이브팩과 같다 — 사용 기간 만료와 사용량 한도다. 방송 시작·종료·송출 끊김 같은 사건 알림은 넣지 않는다 — 콘솔·라이브 모니터에서 이미 보이고, V3 에도 없다. 기간·한도는 넘기기 전에 알려주지 않으면 서비스가 멈춘 뒤에야 알게 되므로 알림으로 둔다.
임계값은 설정 항목이 아니라 발송 조건이다. V3 는 15/7/3/1일 전과 80%/초과를 각각 체크하게 했지만, 사용자가 켜고 싶은 것은 "사용 기간 알림"이지 "3일 전 알림"이 아니다. 유형을 주제 단위로 묶고 임계값은 화면 설명("발송 조건" 열)으로 알린다 — 비디오팩 리뉴얼과 같은 구성이다.
표시 순서도 이 순서를 따른다 — 기간이 먼저, 그다음 사용량 축을 스토리지 · 트래픽 · 방송시간으로 둔다.
| 유형 | 발송 조건 |
|---|---|
| 사용 기간 | 사용 기간 종료 15 · 7 · 3 · 1일 전 (§15) |
| 스토리지 사용량 | 미디어 스토리지 한도의 80% 도달 · 초과 시 (§19-18) |
| 트래픽 사용량 | 트래픽 한도의 80% 도달 · 초과 시 (§16) |
| 방송시간 사용량 | 방송시간 한도의 80% 도달 · 초과 시 (§16) |
방송시간 사용량은 V3 알림 목록에 없던 항목이다. V4 는 §16 에 방송시간 한도가 있어 다른 사용량 축과 같은 형태로 추가했다.
한도와 발송은 시스템이 맡는다 — 콘솔은 수신 여부만 정한다. 한도값은 시스템에 설정돼 있고, 한도 도달을 판정해 메일을 보내는 것도 시스템이다. 그래서 콘솔은 한도 숫자를 알 필요가 없고, 화면에 적지도 않는다 — 여기서 사용자가 정하는 것은 "이 유형의 메일을 받을지 말지"뿐이다. (미디어 스토리지 한도가 §16 표에 없는 이유도 이것이다. 콘솔이 계산할 값이 아니다.)
화면은 비디오팩 리뉴얼과 같은 탭 2개다.
- 알림 수신 설정 — 유형별 수신 on/off. 계정 소유자는 "적용 대상"에서 관리자를 여러 명 골라 한 번에 적용한다. 그 외에는 본인 것만 편집하므로 대상 선택 자체가 없다. 본인을 수신자 목록에서 찾지 못하면 편집 화면을 열지 않는다 — 목록의 첫 사람으로 대신하면 화면에 아무 표시 없이 남의 수신 설정을 자기 것으로 알고 바꾸게 된다. 사유를 적고 편집을 막는다.
- 전체 관리자 수신 현황 (계정 소유자 전용) — 관리자 × 유형 매트릭스. 조회 전용이다.
일괄 적용 시 "혼합"은 건드리지 않는다. 고른 관리자들의 현재 값이 서로 다른 유형은 켬/끔이 아니라 혼합 상태로 두고, 저장할 때 각 관리자의 기존 값을 그대로 유지한다. 여러 명을 한 번에 다루면서 명시적으로 켜지도 끄지도 않은 항목까지 덮어쓰면, 한 사람의 설정을 고치려다 나머지 사람의 설정을 조용히 지우게 된다. 혼합 항목을 한 번 누르면 "모두 켬"이 되고, 그때부터는 전원에게 적용된다.
22.3 IP 접속제한#
범위를 둘로 나눈다. 사무실에서만 콘솔을 쓰되 API 는 서버 IP 로 부르는 구성이 정상이므로 두 범위는 목록을 공유하지 않는다.
- 콘솔 로그인 — 관리자별로 IP 를 등록한다. "모든 관리자" 공통 항목을 최상단에 둔다. 마지막 옥텟 범위로 대역을 등록하며, 겹치는 대역은 하나로 병합한다. 관리자당 최대 10개.
- 개발자 API — 호출 주체가 서버라 관리자 구분이 없다. CIDR 로 등록한다.
- 모드는
제한 없음 / 허용 목록 / 차단 목록. 허용 목록인데 등록된 IP 가 0개면 저장을 막는다. - 계정 소유자 제외 옵션을 둔다. 소유자까지 잠기면 잘못 등록했을 때 복구할 방법이 없다.
- 편집 권한은 계정 소유자 전용이다.
22.4 세션 설정 — "콘솔 로그인 세션"이다#
V3 라이브팩 설정 > 세션 설정 과 같은 사양이다. 로그인한 관리자의 세션 타임아웃을 정한다.
⚠️ 용어: 여기서 말하는 세션은 콘솔 로그인 세션이고, §7.2 의 방송 세션과 다른 개념이다. 두 개념이 한 콘솔에 함께 있으므로 화면 문구는 전부 "로그인 세션"으로 못 박는다 — 메뉴 이름부터 제목·필드·안내까지 전부다.
대신 "방송 세션과 다르다"는 안내 배너는 두지 않는다. 문구가 이미 로그인 세션이면
배너는 같은 말을 한 번 더 하는 자리이고, 화면 맨 위를 상시로 차지한다.
정책서의 절 번호(§7 등)를 화면 문구에 넣지 않는다 — 사용자에게 아무 뜻이 없는 표기다.
이 규칙은 이 화면만의 것이 아니라 콘솔 전체에 적용된다.
같은 이유로 마크다운도 넣지 않는다 — 화면은 평문을 그리므로 **강조** 는 별표가 그대로 보인다.
문구에서 쓸 수 있는 서식은 줄바꿈뿐이고, 강조가 필요하면 문장 순서로 드러낸다.
을(를) 같은 조사 병기도 쓰지 않는다. 한국어 조사는 앞 글자의 받침에 따라 갈리는데
(스트림 키를 / 송출 URL을), {name} 에 무엇이 들어올지 문구는 알 수 없다.
괄호 병기는 그 문제를 푼 것이 아니라 화면에 미룬 것이다 — 사용자에게 괄호가 그대로 보인다.
조사가 필요 없는 문장으로 바꾼다: 뒤에 고정된 명사를 붙이거나({name} 값을 복사했습니다,
{name} 방송을 삭제합니다, {name} 파일을 삭제할까요?) 이름을 목적어 자리에서 뺀다.
- 세션 유지시간 — 값 + 단위(시간 / 일). 시간은 1
24, 일은 130. 기본 12시간. - 페이지 이동 시 초기화 — 켜면 페이지를 옮길 때마다 타임아웃을 다시 센다. 끄면 마지막 로그인 시각 기준이라 계속 쓰고 있어도 만료된다.
- 만료되면 로그아웃하고 로그인 페이지로 보낸다.
- 설정은 계정의 모든 사용자에게 적용되며, 편집은 계정 소유자만 한다.
22.5 플레이어#
플레이어는 채널이 아니라 계정에 속한 재생 프리셋이다. 여러 채널이 같은 플레이어를 함께 쓰므로 채널 하위에 두지 않는다(비디오팩과 같은 구조). 계정에 기본 플레이어가 항상 하나 있으며 삭제할 수 없고, 채널이 사용 중인 플레이어도 삭제할 수 없다.
설정 항목의 정본은 V3 라이브팩 플레이어 편집기(new_player)다.
단, 어떤 항목이 라이브에서 실제로 보이는지는 저장소가 아니라 플레이어 서버의 편집기 스크립트가 정한다 —
https://play.acs.wecandeo.com/player/default/new_player/js/new_player.js 의 pack == "live" 분기다.
.tag 마크업만 보면 라이브에서 감추는 항목까지 옮기게 된다. UI·UX·스타일은 비디오팩 리뉴얼
player/create 를 그대로 쓴다 — 항목은 라이브팩에서, 모양은 형제 콘솔에서 가져온다.
V3 의 2depth 구성을 그대로 옮긴다.
| 탭 | 섹션 | 항목 |
|---|---|---|
| 기본 설정 | 기본 정보 | 플레이어 아이디(수정 시) · 이름 · 설명 |
| 플레이어 옵션 | 크기(비율 + 가로×세로, 권장 크기는 라벨 옆 툴팁) · 자동 시작 · 기본 볼륨 사용(켜면 값 입력) · 화면 선택 시 재생/일시정지 사용 | |
| 플레이어 설정 | 스킨 | 스킨 타입(A-type1~4 · B-Type1 · 직접 설정) · 직접 설정일 때 플레이어 아이콘 업로드(96×96 권장) |
| 헤더 | 사용 · 헤더 사이즈 · 로고 위치 · 로고 업로드 · 로고 링크 | |
| 워터마크 | 사용 · 크기(값 + 단위) · 위치 · 워터마크 업로드 · 링크 | |
| 방송 정보 | 표시 · 표시 위치 | |
| 컨트롤바 | 컨트롤바 사이즈 · 재생/일시정지 · 음소거 · 볼륨 · 화질 · 전체화면 · 키보드로 제어 · 팝업 모드 · 공유(+ Facebook · Twitter) | |
| 컬러 & 스타일 | 헤더 배경 · 컨트롤바(배경·시간 폰트·플레이 아이콘·버튼·슬라이더 레일/진행) · 타이틀/라벨(폰트·크기·컬러) | |
| 통합 | Google Analytics | 사용 · 추적 코드 |
라이브에 성립하지 않아 옮기지 않은 것 — 두면 켜도 아무 일이 일어나지 않는 스위치가 된다.
Seek 금지·시작 시간— 라이브는 항상 라이브 엣지에서 시작한다.재생 목록— 라이브 채널에는 다음 항목이 없다.진행시간 / 전체시간 표시·배속— 라이브 플레이어는 시간 대신LIVE표시를 쓴다. V3 편집기에는진행시간 표시스위치가 남아 있지만(감추는 목록에 없다) 라이브 플레이어가 시간을 그리지 않아 켜도 아무 일이 일어나지 않는다. 그런 스위치는 옮기지 않는다.다운로드 진행 컬러— 재생 위치가 늘 라이브 끝에 붙어 있어 미리 받아 둔 구간이 보이지 않는다.
편집기가 감추는 목록은 최소 기준이지 전부가 아니다. V3 편집기 스크립트(new_player.js)의
pack == "live" 분기는 재생 목록 · 전체시간 · 배속 · 자막 · Seek 금지 · 시작 시간 · 다운로드 진행을 감추지만,
진행시간 표시처럼 편집기에 남아 있어도 라이브 플레이어가 그리지 않는 항목이 있다.
편집기 목록으로 거른 뒤 플레이어가 실제로 그리는지까지 확인한다.
공유는 감추지도 않고 라이브에서 동작하므로 남긴다.
자막 버튼— 라이브 자막을 제공하지 않는다.
플레이어 설정에 없는 것 — 라이브 엣지 복귀(실시간)는 끄고 켜는 옵션이 아니라 플레이어의 기본 동작이다.
저지연(§8)도 채팅 사용 여부(§14)도 채널 설정의 값이다(§7.3) —
같은 값을 플레이어에도 두면 어느 쪽이 이기는지 알 수 없어진다.
V3 와 다르게 처리한 것
- 로고·워터마크는 업로드로 받는다(V3 와 같다). 올린 뒤 변경·삭제할 수 있고 올린 그림을 그 자리에 보여 준다. 자산 업로드 API 가 아직 없어 지금은 파일을 읽어 값에 담아 두며, API 가 붙으면 그 부분만 바꾼다. 형식은 PNG·JPEG·WEBP·GIF, 2MB 이하다 — SVG 는 외부 참조를 품을 수 있어 받지 않는다.
- 워터마크 크기는 값 + 단위(
% / px / em / rem)로 받는다(비디오팩과 같다). % 만 두면 크기를 픽셀로 고정하고 싶은 로고를 다룰 수 없다. - 스킨 목록은 비디오팩 리뉴얼과 같고(
A-type1~4 · B-Type1), 여기에 V3 의직접 설정을 더한다 — 정해진 스킨 대신 아이콘을 직접 올리는 선택지다. 직접 설정일 때만 아이콘 업로드가 나온다. - 컬러는 V3 소스에서 살아 있는 항목만 옮긴다.
전체 배경 컬러·컨트롤바 공통 컬러·슬라이더 핸들 컬러는 소스에 남아 있으나 주석 처리돼 화면에 뜨지 않는다 (<!-- -->와<%-- --%>두 형태가 섞여 있어 한쪽만 걷어내면 살아 있는 것처럼 보인다). - V3 의
기능 설정 배경 컬러는 화면에서컨트롤바 배경으로 적는다. 실제 대상이 컨트롤바의 배경판(.control-bar-bg)이라 V3 이름으로는 무엇을 칠하는지 알 수 없다. - 타이틀/라벨은 한 벌만 둔다. V3 는
동영상 정보와동영상 제목두 벌을 받았지만, V4 의 방송 정보 오버레이에는 방송명만 얹는다 — 설명이 없으니 글꼴도 한 벌이면 된다. - 공유 하위 채널은 Facebook · Twitter 만 둔다. V3 에는 Google+ · Vingle 도 있었으나 서비스가 없어졌다.
- CSS 편집을 두지 않는다. V3 는 설정을 CSS 파일로 만들어 저장하고 편집기까지 열어 줬다. 콘솔이 스타일시트 편집기가 되면 사용자가 CSS 를 알아야 쓸 수 있다 — V4 는 값만 보관하고 재생 시 플레이어가 적용한다. 비디오팩 리뉴얼도 CSS 편집기를 노출하지 않는다.
- 컬러 값은 알파를 포함한다(
#rrggbbaa). 컨트롤바처럼 화면 위에 얹히는 요소는 반투명이 기본이라 알파를 버리면 V3 기본 스킨을 그대로 옮길 수 없다. 화면에서는 색과 투명도를 따로 받는다. - 미리보기 화면은 V3 편집기가 쓰던 샘플 영상의 정지 화면으로 고정한다. 편집 중에 실제 채널을 송출시킬 수는 없다. 방송 정보 오버레이에는 방송명만 얹는다 — 설명은 오버레이가 다루는 값이 아니다.
화면 구성은 비디오팩 리뉴얼 player/create 와 같다.
- 상단 브레드크럼(뒤로 · 플레이어 > 만들기/수정) → 좌 미리보기(자리를 지킨다) / 우 400px 설정 패널(자체 스크롤) → 하단 저장 바. 패널만 굴러야 미리보기를 보며 고칠 수 있다.
- 만들기/수정은 한 화면이고 3탭(
기본 설정 · 플레이어 설정 · 통합)이다. 플레이어 설정 탭은 아코디언이고, 접힌 섹션도 사용 여부를 배지로 알린다. - 저장/취소는 화면 우상단이 아니라 폼 하단 고정 바에 둔다 — 다 채운 뒤 누르는 동작이다.
- 미리보기는 실제 송출 화면이 아니라 레이아웃 미리보기임을 화면에 적는다. 재생할 라이브가 없는데 있는 척하면 안 된다.
- 목록은 행 선택 체크박스와 선택 삭제(일괄)를 제공한다. 삭제할 수 없는 플레이어(기본·사용 중)는 체크박스 자체를 비활성화한다 — 골라 놓고 실패하는 것보다 낫다.
- 상세 패널은 화면 세로를 채우고(스크롤 영역 상단 고정), 수정/삭제는 패널 하단 고정 영역에 둔다.
삭제 차단 사유는 버튼 위에 글로 적는 것이 기본이다 — 툴팁은 올려 봐야 알 수 있고, 터치 기기에서는 뜨지 않는다.
다만 자리가 허락하지 않으면 툴팁 등 다른 장치를 쓴다. 플레이어 목록의 상세 패널이 그 경우다:
overflow: hidden이라 글을 넣으면 잘리거나 패널 바닥에 단차가 생겨 툴팁으로 둔다. 어느 쪽이든 사유는 반드시 보여준다 — 눌리지 않는 버튼만 두면 고장으로 보인다.
22.6 개발자 API#
API 키 최초 발급, 키 조회(마스킹·표시·복사), 호출 IP 제한을 제공한다.
발급 전에는 발급 버튼만 보인다. 새 계정에는 키가 없다 — 이때는 안내 문구와 API 키 발급 버튼만
두고 IP 제한 영역은 감춘다(키가 없으면 제한을 걸 대상이 없다). V3 라이브팩과 같은 구성이다.
발급 직후에는 키를 펼쳐서 보여준다 — 한 번은 눈으로 확인해야 하기 때문이다.
재발급은 콘솔에 두지 않는다. 계정 소유자 비밀번호(§22.1)와 마찬가지로 콘솔 밖에서 처리한다. 재발급 이력도 표시하지 않는다 — 화면에 드러나는 것은 키 값과 발급일뿐이다.
(미결) 제공하는 API 범위(채널 생성·채널 상태·송출 정보·방송 통계)는 §17 "후속 검토" 그대로다. 콘솔은 Key 와 IP 제한까지만 제공하고, 없는 엔드포인트를 있는 것처럼 안내하지 않는다.