# 관리 기능 한눈에

> 관리 페이지 메뉴와 채팅방 안에서 쓰는 관리 명령어를 개발자 관점에서 짧게 정리해요.

채팅방 설정은 [관리 페이지](/manage)에서, 사람 관리는 채팅방 안에서 해요. 이 문서는 개발하면서 알아야 할 위치와 명령어만 모았어요.

## 관리 페이지 {#manage-page}

메뉴는 기본·설정·운영·보안 순서로 묶여 있어요. **유료**는 유료 채팅방에서만 저장·사용할 수 있는 기능이에요(무료 채팅방에서도 화면은 보여요).

| 묶음 | 메뉴 | 하는 일 |
| --- | --- | --- |
| 기본 | 채팅방 정보 | 회원 연동 토큰 확인, 관리자 비밀번호·접속 비밀번호 설정 |
| 기본 | 요금제·결제 | 유료 기간 확인과 결제 |
| 기본 | 설치 코드 | 설치 코드, 회원 연동 코드, 크기, 프레임워크·CMS별 코드 → [5분 설치](/doc/1.2) |
| 기본 | 통계 | 접속자·메시지 추이 (유료) |
| 설정 | 상세 설정 | 중복 접속, 도배 감지, 글자 수, 자동 슬로우 모드 같은 세부 규칙 |
| 설정 | 스킨 | 스킨 고르기, 색·글자 크기·모양, 숨길 요소 |
| 설정 | 이모티콘 | 채팅방 전용 이모티콘 (유료) |
| 설정 | 플러그인 | 플러그인 켜고 끄기, 플러그인별 설정과 경험치 상점 상품 |
| 설정 | 회원 연동 | 회원 연동·시간 연동 켜기, 입장 성공·실패 기록 보기 → [회원 연동](/doc/2.1) |
| 설정 | API | 서버 API 키 발급·수정·값 다시 발급·폐기, 키별 사용량, 호출 기록, 시험하기 → [서버 REST API](/doc/3.6) |
| 설정 | 권한 설정 | 세션·아이디·IP로 부관리자·관리자 권한 주기, 만료일 지정 |
| 설정 | 기능 조건 | 입장·채팅·귓속말 같은 기능을 권한·레벨·경험치로 제한 |
| 운영 | 방문자 | 들어왔던 사람 목록과 사람별 기록 |
| 운영 | 채팅로그 | 지난 대화 |
| 운영 | 경험치 | 경험치 규칙, 순위, 상점 이용권 회수와 구매 기록 |
| 운영 | 공지사항 | 입장 공지, 상단 고정 공지, 자동 공지 |
| 운영 | 외부 알림 | 신고·차단·입장 같은 일을 alrim 앱·웹훅·이메일로 받기, 보낸 기록과 일간 보고서. 무료 채팅방은 alrim으로 신고·관리자 호출·이의제기 알림만 (나머지 유료) |
| 운영 | 투표 | 채팅방 투표 (유료) |
| 보안 | 채팅 필터 | 단어 필터(금지어 가리기), AI 필터(유료), 감시 단어(유료) |
| 보안 | 신고·제재 | 신고 목록과 자동 처리 규칙, AI 판사(유료) 판정 기록, 채팅금지·차단 목록과 해제, 제재 기록 |
| 위험 | 채팅방 삭제 | 채팅방과 모든 설정을 지워요. 되돌릴 수 없어요 |

자동 공지는 시간 간격, 채팅 수, 또는 두 조건 중 먼저 충족하는 방식으로 설정해요. 시간 공지의 최소 채팅 수를 정하면 대화가 없는 회차는 건너뛰어요. 한 공지에서 어느 조건으로든 발송하면 채팅 수는 다시 0부터 세요.

IP로 권한을 줄 때는 IPv4·IPv6 주소를 쓸 수 있어요. 차단·채팅금지는 IPv4 와일드카드(`192.0.2.*`)와 IPv6 범위(`2001:db8::/64`)도 받아요.

**상세 설정 → IPv6 차단 범위**에서 이 방의 IP 차단·채팅금지에 적용할 범위를 정해요. 기본은 대역 일치(`/64`)이고 주소 일치(`/128`), `/56`, `/48`도 고를 수 있어요. 숫자가 작을수록 더 넓은 범위를 검사해요. 기록에는 전체 주소를 보존하며, 설정을 저장하면 기존 제재도 새 범위로 검사해요. 범위를 직접 적어 둔 제재는 그 범위를 유지해요. 같은 대역의 다른 사람도 영향을 받을 수 있어요. 아이디·세션 차단과 IPv4에는 영향을 주지 않아요.

토큰과 API 키는 서버에서만 써요. 페이지 HTML이나 스크립트에 넣지 마세요([보안 체크리스트](/doc/2.6)).


## 채팅방 안에서 관리하기 {#in-room}

관리자·부관리자는 닉네임을 누르면 나오는 메뉴에서 채팅금지, 차단, IP 보기, 메시지 삭제를 할 수 있어요. 부관리자 권한 주기는 관리자만 할 수 있어요. 회원 연동을 쓰지 않는 채팅방에서는 채팅창에 `/login 관리자비밀번호`를 입력해 관리자가 돼요. 회원 연동 채팅방은 `/login`을 쓸 수 없으니 회원 연동 데이터의 권한(`auth`)이나 **권한 설정**으로 관리자를 정해요.

| 명령어 | 권한 | 하는 일 |
| --- | --- | --- |
| `/login 비밀번호` | 누구나 | 관리자 비밀번호로 관리자 되기(회원 연동 채팅방 제외) |
| `/logout` | 관리자 | 관리자 권한 내려놓기 |
| `/adminpage` | 관리자 | 관리 페이지 열기 |
| `/op 닉네임`, `/deop 닉네임` | 관리자 | 부관리자 등록·해제 |
| `/mute 닉네임 분` | 부관리자 이상 | 채팅금지 |
| `/unmute 닉네임` | 부관리자 이상 | 채팅금지 해제 |
| `/ban 닉네임 사유` | 부관리자 이상 | IP 차단 |
| `/info 닉네임`, `/ip 닉네임` | 부관리자 이상 | 사용자 정보, IP 보기. 나와 같거나 낮은 권한만 볼 수 있어요. `/info 내닉네임`은 누구나 쓸 수 있어요 |
| `/notice 내용` | 부관리자 이상 | 공지 메시지 보내기 |
| `/freeze`, `/unfreeze` | 부관리자 이상 | 채팅방 얼리기·녹이기(얼리면 부관리자 이상만 말할 수 있음) |
| `/slow 초` | 부관리자 이상 | 슬로우 모드 간격 설정(0~3600초, `0`이면 끄기) |
| `/clearlog` | 부관리자 이상 | 모두의 화면에서 대화 지우기(일반 사용자는 내 화면만) |

채팅금지는 나보다 낮은 권한에게만, 차단은 회원·손님에게만 할 수 있어요. 채팅창에 `/?`를 입력하면 지금 권한으로 쓸 수 있는 명령어가 모두 나와요.

## 누구나 쓰는 명령어 {#commands}

| 명령어 | 하는 일 |
| --- | --- |
| `/w 닉네임 내용` | 귓속말(`/ㅈ`) |
| `/r 내용` | 마지막 귓속말 상대에게 답장(`/ㄱ`) |
| `/nick 닉네임` | 닉네임 바꾸기(회원 연동 채팅방 제외) |
| `/call 닉네임` | 호출 |
| `/ignore 닉네임`, `/unignore 닉네임` | 무시하기와 해제 |
| `/report 닉네임 사유` | 신고 |
| `/invite 닉네임` | 개인채널 초대 |
| `/slow` | 슬로우 모드 상태 확인 |

채팅방 설정과 **기능 조건**에 따라 일부 명령어는 막혀 있을 수 있어요.

## 스크립트에서 명령 보내기 {#from-script}

같은 명령은 페이지 스크립트에서 `room.action.command(명령, ...인자)`로 보낼 수 있어요. 권한 검사는 서버가 하므로 권한이 없으면 오류 이벤트가 와요. `slow`는 결과가 오류 이벤트 대신 `control` 이벤트(`type: 'roomOptionsResult'`)로 오고, 권한이 없으면 결과 JSON의 `status`가 `forbidden`이에요.

`/w`, `/r`, `/nick`은 스킨이 바꿔 주는 채팅창 별칭이에요. 스크립트에서는 `command('whisper', 닉네임, 내용)`, `command('changeInfo', { nick: 닉네임 })`을 써요.

```js
U.chat('my-room').on('after.join#notice-demo', function (room) {
	if (room.my.auth >= 2) room.action.command('notice', '점검은 오후 6시에 시작합니다.');
});
```

인자와 반환값은 [U.chat()과 room 객체](/doc/3.2)를 보세요.
