Parent Epic
Story 개요
WebSocket 메시지에 domain 필드를 추가하여 채팅/게임 메시지를 명확히 구분합니다.
프론트엔드는 domain 필드에 따라 적절한 핸들러로 라우팅합니다.
현재 상황
```javascript
// 현재: messageType만으로 구분
{ "messageType": "TEXT", "data": {...} }
{ "messageType": "GAME_START", "data": {...} }
{ "messageType": "DRAWING", "data": {...} }
```
변경 후
```javascript
// 변경 후: domain 필드 추가
{ "domain": "chat", "messageType": "TEXT", "data": {...} }
{ "domain": "game", "messageType": "GAME_START", "data": {...} }
{ "domain": "game", "messageType": "DRAWING", "data": {...} }
```
Acceptance Criteria
Tasks
메시지 분류
Chat Domain
| messageType |
설명 |
| TEXT |
일반 채팅 메시지 |
| USER_JOIN |
사용자 입장 |
| USER_LEAVE |
사용자 퇴장 |
| SYSTEM |
시스템 메시지 |
Game Domain
| messageType |
설명 |
| GAME_START |
게임 시작 |
| GAME_END |
게임 종료 |
| ROUND_START |
라운드 시작 |
| ROUND_END |
라운드 종료 |
| DRAWING |
그리기 데이터 |
| DRAWING_CLEAR |
캔버스 초기화 |
| GUESS |
정답 추측 |
| CORRECT_ANSWER |
정답 맞춤 |
| SCORE_UPDATE |
점수 갱신 |
| HINT |
힌트 |
우선순위
🟡 높음 - 훅 분리의 선행 작업
예상 작업량
Parent Epic
Story 개요
WebSocket 메시지에
domain필드를 추가하여 채팅/게임 메시지를 명확히 구분합니다.프론트엔드는 domain 필드에 따라 적절한 핸들러로 라우팅합니다.
현재 상황
```javascript
// 현재: messageType만으로 구분
{ "messageType": "TEXT", "data": {...} }
{ "messageType": "GAME_START", "data": {...} }
{ "messageType": "DRAWING", "data": {...} }
```
변경 후
```javascript
// 변경 후: domain 필드 추가
{ "domain": "chat", "messageType": "TEXT", "data": {...} }
{ "domain": "game", "messageType": "GAME_START", "data": {...} }
{ "domain": "game", "messageType": "DRAWING", "data": {...} }
```
Acceptance Criteria
Tasks
메시지 분류
Chat Domain
Game Domain
우선순위
🟡 높음 - 훅 분리의 선행 작업
예상 작업량