시안

image.png

image.png

프론트엔드 프로젝트 구조

src/
├── components/           # 재사용 가능한 UI 컴포넌트들
│   ├── ChatContainer.jsx    # 채팅 컨테이너 (메시지 목록 + 입력창)
│   ├── ChatHeader.jsx       # 채팅 헤더 (제목, 상태, 초기화 버튼)
│   ├── LoadingScreen.jsx    # 로딩 화면
│   ├── MessageInput.jsx     # 메시지 입력 폼
│   ├── MessageItem.jsx      # 개별 메시지 컴포넌트
│   ├── MessageList.jsx      # 메시지 목록 컴포넌트
│   └── WelcomeMessage.jsx   # 환영 메시지
├── hooks/               # 커스텀 훅들 (비즈니스 로직 분리)
│   ├── useSocket.js         # 소켓 연결 관리
│   ├── useChat.js           # 채팅 로직 (메시지 전송, 스트리밍)
│   └── useUI.js             # UI 관련 로직 (스크롤, 포커스, 포맷팅)
├── App.jsx              # 메인 앱 컴포넌트
├── App.css              # 스타일 (기존과 동일)
├── ErrorBoundary.jsx    # 에러 경계 컴포넌트 (기존과 동일)
├── main.jsx             # 엔트리 포인트 (기존과 동일)
└── index.css            # 글로벌 스타일 (기존과 동일)

📁 각 폴더별 역할

components/ - UI 컴포넌트

hooks/ - 비즈니스 로직

🔧 추가 개선 가능한 부분

상태 관리

스타일링