1️⃣ 프로젝트 개요

✔ 목표

✔ 구성

요소 역할
Server 메시지를 받아서 모든 사용자에게 중계 (Broadcast)
Client UI 구성 + 서버와 메시지 송·수신

테스트는 PC 한 대에서도 가능하지만, 여러 대에서 진행하면 가장 좋음


2️⃣ 클래스 설계

클래스명 기능
MultiChatClient UI + 서버 연결 + 메시지 송수신
MultiChatServer 클라이언트 연결 및 관리
ChatThread (서버 내부 클래스) 각 클라이언트를 개별 스레드로 처리
MultiChatServer
   └─ ChatThread (Thread 상속)
MultiChatClient implements ActionListener, Runnable


3️⃣ 클라이언트 UI 구성 (Swing)

패널 내용
로그인 패널 대화명 입력 + 로그인 버튼
로그아웃 패널 현재 사용자 표시 + 로그아웃 버튼
메시지 패널 메시지 입력 + 종료 버튼
메시지 출력 영역 JTextArea + JScrollPane

✔ 패널 전환 방식

CardLayout 사용

→ 로그인 상태에 따라 loginlogout 화면 전환


4️⃣ 서버 동작 구조