사용자들이 서로를 직접 참조하지 않고 **중재자(ChatRoom)**를 통해서만 메시지를 주고받도록 구현하세요.
export class User {
constructor(public name: string);
send(message: string, to?: string): void;
receive(message: string, from: string): void;
inbox: { from: string; message: string }[];
}
export class ChatRoom {
register(user: User): void;
send(message: string, from: string, to?: string): void;
}
User는 반드시 ChatRoom에 등록 후 동작user.send('hi') → 모든 다른 등록 사용자에게 broadcast (자기 자신 제외)user.send('hi', 'Bob') → Bob에게만 전달User.receive는 호출 시 inbox에 { from, message }를 pushChatRoom은 user 목록을 관리, send 라우팅 담당