Skip to content

[FIX] 끝말잇기 게임 버그 수정 및 UI 개선#211

Merged
DDINGJOO merged 11 commits into
prodfrom
develop
Jan 25, 2026
Merged

[FIX] 끝말잇기 게임 버그 수정 및 UI 개선#211
DDINGJOO merged 11 commits into
prodfrom
develop

Conversation

@DDINGJOO

Copy link
Copy Markdown
Contributor

Summary

  • 타이머 타임아웃 중복 호출 버그 수정 (timeoutSent 플래그 추가)
  • 플레이어 닉네임 표시 수정 (userId 문자열 배열 → 객체 배열 매핑)
  • 번역 파일에 끝말잇기 관련 번역 추가
  • 대시보드 끝말잇기 카드 번역 함수 적용
  • API 토큰 갱신 로직 통합 (idToken 일관성 유지)

Test plan

  • 끝말잇기 게임 진입 후 타이머 동작 확인
  • 타임아웃 시 중복 API 호출 없는지 확인
  • 플레이어 닉네임 정상 표시 확인
  • 대시보드에서 끝말잇기 카드 텍스트 확인

hye-inA and others added 11 commits January 24, 2026 01:31
* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현
* [FEAT] SSE 기반 실시간 알림 시스템 연동 (#197)
- SSE(Server-Sent Events)를 통한 실시간 알림 연동
- 알림 타입 정의 (BADGE_EARNED, DAILY_COMPLETE, TEST_COMPLETE 등 8종)
- useNotifications 훅 (EventSource API, 자동 재연결)
- NotificationContext (알림 상태 관리, 읽음 처리)
- NotificationToast (토스트 알림 UI)
- NotificationMenu (헤더 드롭다운 메뉴)
- VITE_NOTIFICATION_URL 환경 변수 추가
- 기존 하드코딩된 목 알림을 실제 시스템으로 교체

* [FIX] FreetalkAiPage → SpeakingPage 라우트 수정
정의되지 않은 FreetalkAiPage를 SpeakingPage로 교체

* [DEBUG] SSE 연결 디버깅 로그 추가
- connect 함수에 상세 로그 추가
- NotificationContext에 auth 상태 로그 추가
- 브라우저 콘솔에서 연결 상태 확인 가능

* [FIX] StrictMode 중복 연결 방지를 위한 debounce 추가
React StrictMode에서 useEffect가 2번 실행되어
SSE 연결이 중복되는 문제 방지

* [FEAT] 알림 기능 on/off 플래그 추가 (VITE_NOTIFICATION_ENABLED)

- VITE_NOTIFICATION_ENABLED 환경 변수로 SSE 연결 제어
- 기본값 false (환경변수 미설정 시 비활성화)
- NotificationMenu에 비활성화 상태 UI 추가
- Lambda 동시성 이슈 대응용
* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* [Feat] : AI 프리토킹(Speaking) 기능 구현 (#195) (#196)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현
* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* refactor : AI 말하기 라우팅 페이지 수정
- 채팅 명령어 타입 정의 (chatCommandTypes.js)
- CommandAutocomplete 컴포넌트 (/ 입력 시 명령어 자동완성)
- PollCard, PollResultBar 컴포넌트 (투표 UI)
- SystemCommandMessage 컴포넌트 (주사위, 동전, 랜덤 등)
- WebSocket 서비스에 새 메시지 타입 핸들링 추가
- ChatRoomPage에 명령어 처리 로직 통합

지원 명령어:
- /help, /members, /leave, /clear
- /dice, /coin, /random
- /poll, /vote, /endpoll
- wordchainService.js: API 서비스 (시작, 단어제출, 타임아웃, 종료)
- WordchainLobbyPage: 게임 로비 (방 목록, 생성)
- WordchainWaitingPage: 대기실 (참가자 대기, 게임 시작)
- WordchainPlayPage: 게임 플레이 페이지
- WordDisplay: 현재 단어 & 다음 글자 표시
- WordchainTimer: 원형 타이머 (시간 감소 애니메이션)
- PlayerList: 플레이어 목록 (활성/탈락 표시)
- UsedWordsList: 사용된 단어 목록
- WordInput: 단어 입력 필드
- GameEndModal: 게임 종료 모달 (순위, 단어 학습)
- WebSocket 핸들러 추가 (wordchain_*)
- 라우트 및 사이드바 네비게이션 추가
* [FEAT] 채팅 슬래시 명령어 시스템 구현 (#200)

- 채팅 명령어 타입 정의 (chatCommandTypes.js)
- CommandAutocomplete 컴포넌트 (/ 입력 시 명령어 자동완성)
- PollCard, PollResultBar 컴포넌트 (투표 UI)
- SystemCommandMessage 컴포넌트 (주사위, 동전, 랜덤 등)
- WebSocket 서비스에 새 메시지 타입 핸들링 추가
- ChatRoomPage에 명령어 처리 로직 통합

지원 명령어:
- /help, /members, /leave, /clear
- /dice, /coin, /random
- /poll, /vote, /endpoll

* [FIX] 시스템 명령어 메시지 백엔드 응답 구조 대응

- useChatWebSocket: 백엔드 응답을 프론트엔드 형식으로 변환
- SystemCommandMessage: 다양한 응답 구조 처리
- displayText(message) 필드 우선 표시

* [FIX] 시스템 명령어 content 필드 매핑 수정

* [DEBUG] 시스템 명령어 메시지 디버깅 로그 추가

* [DEBUG] 시스템 명령어 메시지 추가 로그

* [DEBUG] ChatRoomPage 메시지 렌더링 로그 추가

* [DEBUG] SYSTEM_COMMAND 조건 체크 로그

* [FIX] ChatRoomModal에 SYSTEM_COMMAND 메시지 렌더링 추가

* [CLEANUP] 디버깅 로그 제거
* refactor : 프리토킹 사용자 닉네임 수정

* refactor : 메인 헤더 프로필 드롭다운 메뉴 사용자 정보 동기화 리팩토링
* fix: API 토큰 갱신 로직 통합 및 Cognito 설정 환경변수화

- 모든 API 호출을 공통 axios 인스턴스로 통합
- 401 오류 시 토큰 자동 갱신 로직 일원화
- aws-config.js의 Cognito 설정을 환경변수로 변경
- newsService.js를 fetch에서 axios로 변경

* [FIX] 끝말잇기 게임 버그 수정 및 UI 개선

- 타이머 타임아웃 중복 호출 버그 수정 (timeoutSent 플래그 추가)
- 플레이어 닉네임 표시 수정 (userId 문자열 배열 → 객체 배열 매핑)
- 번역 파일에 끝말잇기 관련 번역 추가 (games.wordchainTitle, games.wordchainDesc)
- 대시보드 끝말잇기 카드 번역 함수 적용
@github-actions github-actions Bot added frontend Frontend code changes layer:store State management layer layer:api API/Services layer labels Jan 25, 2026
@DDINGJOO DDINGJOO merged commit 74f6fa3 into prod Jan 25, 2026
2 checks passed
hye-inA added a commit that referenced this pull request Jan 25, 2026
* refactor : AI 말하기 routing 페이지 수정  (#203)

* [Feat] : AI 프리토킹(Speaking) 기능 구현 (#195)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* [FEAT] SSE 기반 실시간 알림 시스템 연동 (#197) (#198)

* [FEAT] SSE 기반 실시간 알림 시스템 연동 (#197)
- SSE(Server-Sent Events)를 통한 실시간 알림 연동
- 알림 타입 정의 (BADGE_EARNED, DAILY_COMPLETE, TEST_COMPLETE 등 8종)
- useNotifications 훅 (EventSource API, 자동 재연결)
- NotificationContext (알림 상태 관리, 읽음 처리)
- NotificationToast (토스트 알림 UI)
- NotificationMenu (헤더 드롭다운 메뉴)
- VITE_NOTIFICATION_URL 환경 변수 추가
- 기존 하드코딩된 목 알림을 실제 시스템으로 교체

* [FIX] FreetalkAiPage → SpeakingPage 라우트 수정
정의되지 않은 FreetalkAiPage를 SpeakingPage로 교체

* [DEBUG] SSE 연결 디버깅 로그 추가
- connect 함수에 상세 로그 추가
- NotificationContext에 auth 상태 로그 추가
- 브라우저 콘솔에서 연결 상태 확인 가능

* [FIX] StrictMode 중복 연결 방지를 위한 debounce 추가
React StrictMode에서 useEffect가 2번 실행되어
SSE 연결이 중복되는 문제 방지

* [FEAT] 알림 기능 on/off 플래그 추가 (VITE_NOTIFICATION_ENABLED)

- VITE_NOTIFICATION_ENABLED 환경 변수로 SSE 연결 제어
- 기본값 false (환경변수 미설정 시 비활성화)
- NotificationMenu에 비활성화 상태 UI 추가
- Lambda 동시성 이슈 대응용

* fix : 연속 선언된 변수 t 제거 (#199)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* [Feat] : AI 프리토킹(Speaking) 기능 구현 (#195) (#196)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* refactor : AI 말하기 routing 페이지 수정 (#202)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* refactor : AI 말하기 라우팅 페이지 수정

---------

Co-authored-by: DDING JOO <ddingsha9@teambind.co.kr>

* refactor : 프리토킹 사용자 닉네임 수정

* refactor : 메인 헤더 프로필 드롭다운 메뉴 사용자 정보 동기화 리팩토링

* feat : 내 프로필 페이지 구현 및 닉네임 변경 API 연결

* [FIX] 끝말잇기 게임 버그 수정 및 UI 개선 (#211)

* [Feat] : AI 프리토킹(Speaking) 기능 구현 (#195)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* [FEAT] SSE 기반 실시간 알림 시스템 연동 (#197) (#198)

* [FEAT] SSE 기반 실시간 알림 시스템 연동 (#197)
- SSE(Server-Sent Events)를 통한 실시간 알림 연동
- 알림 타입 정의 (BADGE_EARNED, DAILY_COMPLETE, TEST_COMPLETE 등 8종)
- useNotifications 훅 (EventSource API, 자동 재연결)
- NotificationContext (알림 상태 관리, 읽음 처리)
- NotificationToast (토스트 알림 UI)
- NotificationMenu (헤더 드롭다운 메뉴)
- VITE_NOTIFICATION_URL 환경 변수 추가
- 기존 하드코딩된 목 알림을 실제 시스템으로 교체

* [FIX] FreetalkAiPage → SpeakingPage 라우트 수정
정의되지 않은 FreetalkAiPage를 SpeakingPage로 교체

* [DEBUG] SSE 연결 디버깅 로그 추가
- connect 함수에 상세 로그 추가
- NotificationContext에 auth 상태 로그 추가
- 브라우저 콘솔에서 연결 상태 확인 가능

* [FIX] StrictMode 중복 연결 방지를 위한 debounce 추가
React StrictMode에서 useEffect가 2번 실행되어
SSE 연결이 중복되는 문제 방지

* [FEAT] 알림 기능 on/off 플래그 추가 (VITE_NOTIFICATION_ENABLED)

- VITE_NOTIFICATION_ENABLED 환경 변수로 SSE 연결 제어
- 기본값 false (환경변수 미설정 시 비활성화)
- NotificationMenu에 비활성화 상태 UI 추가
- Lambda 동시성 이슈 대응용

* fix : 연속 선언된 변수 t 제거 (#199)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* [Feat] : AI 프리토킹(Speaking) 기능 구현 (#195) (#196)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* refactor : AI 말하기 routing 페이지 수정 (#202)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* refactor : AI 말하기 라우팅 페이지 수정

* [FEAT] 채팅 슬래시 명령어 시스템 구현 (#200) (#204)

- 채팅 명령어 타입 정의 (chatCommandTypes.js)
- CommandAutocomplete 컴포넌트 (/ 입력 시 명령어 자동완성)
- PollCard, PollResultBar 컴포넌트 (투표 UI)
- SystemCommandMessage 컴포넌트 (주사위, 동전, 랜덤 등)
- WebSocket 서비스에 새 메시지 타입 핸들링 추가
- ChatRoomPage에 명령어 처리 로직 통합

지원 명령어:
- /help, /members, /leave, /clear
- /dice, /coin, /random
- /poll, /vote, /endpoll

* [FEAT] 영어 끝말잇기(Word Chain) 게임 구현 (#205) (#206)

- wordchainService.js: API 서비스 (시작, 단어제출, 타임아웃, 종료)
- WordchainLobbyPage: 게임 로비 (방 목록, 생성)
- WordchainWaitingPage: 대기실 (참가자 대기, 게임 시작)
- WordchainPlayPage: 게임 플레이 페이지
- WordDisplay: 현재 단어 & 다음 글자 표시
- WordchainTimer: 원형 타이머 (시간 감소 애니메이션)
- PlayerList: 플레이어 목록 (활성/탈락 표시)
- UsedWordsList: 사용된 단어 목록
- WordInput: 단어 입력 필드
- GameEndModal: 게임 종료 모달 (순위, 단어 학습)
- WebSocket 핸들러 추가 (wordchain_*)
- 라우트 및 사이드바 네비게이션 추가

* [FIX] 채팅 슬래시 명령어 버그 수정 (#207)

* [FEAT] 채팅 슬래시 명령어 시스템 구현 (#200)

- 채팅 명령어 타입 정의 (chatCommandTypes.js)
- CommandAutocomplete 컴포넌트 (/ 입력 시 명령어 자동완성)
- PollCard, PollResultBar 컴포넌트 (투표 UI)
- SystemCommandMessage 컴포넌트 (주사위, 동전, 랜덤 등)
- WebSocket 서비스에 새 메시지 타입 핸들링 추가
- ChatRoomPage에 명령어 처리 로직 통합

지원 명령어:
- /help, /members, /leave, /clear
- /dice, /coin, /random
- /poll, /vote, /endpoll

* [FIX] 시스템 명령어 메시지 백엔드 응답 구조 대응

- useChatWebSocket: 백엔드 응답을 프론트엔드 형식으로 변환
- SystemCommandMessage: 다양한 응답 구조 처리
- displayText(message) 필드 우선 표시

* [FIX] 시스템 명령어 content 필드 매핑 수정

* [DEBUG] 시스템 명령어 메시지 디버깅 로그 추가

* [DEBUG] 시스템 명령어 메시지 추가 로그

* [DEBUG] ChatRoomPage 메시지 렌더링 로그 추가

* [DEBUG] SYSTEM_COMMAND 조건 체크 로그

* [FIX] ChatRoomModal에 SYSTEM_COMMAND 메시지 렌더링 추가

* [CLEANUP] 디버깅 로그 제거

* refactor : 로그인/인증 로직 정상화 및 채팅 서버 연결 및 메인 화면 헤더 프로필 상태 표시 (#208)

* refactor : 프리토킹 사용자 닉네임 수정

* refactor : 메인 헤더 프로필 드롭다운 메뉴 사용자 정보 동기화 리팩토링

* [FIX] 끝말잇기 게임 버그 수정 및 UI 개선 (#210)

* fix: API 토큰 갱신 로직 통합 및 Cognito 설정 환경변수화

- 모든 API 호출을 공통 axios 인스턴스로 통합
- 401 오류 시 토큰 자동 갱신 로직 일원화
- aws-config.js의 Cognito 설정을 환경변수로 변경
- newsService.js를 fetch에서 axios로 변경

* [FIX] 끝말잇기 게임 버그 수정 및 UI 개선

- 타이머 타임아웃 중복 호출 버그 수정 (timeoutSent 플래그 추가)
- 플레이어 닉네임 표시 수정 (userId 문자열 배열 → 객체 배열 매핑)
- 번역 파일에 끝말잇기 관련 번역 추가 (games.wordchainTitle, games.wordchainDesc)
- 대시보드 끝말잇기 카드 번역 함수 적용

---------

Co-authored-by: hyein Heo <128613248+hye-inA@users.noreply.github.com>

* fix : 중복 import문 제거

---------

Co-authored-by: DDING JOO <ddingsha9@teambind.co.kr>
hye-inA added a commit that referenced this pull request Jan 26, 2026
* refactor : AI 말하기 routing 페이지 수정  (#203)

* [Feat] : AI 프리토킹(Speaking) 기능 구현 (#195)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* [FEAT] SSE 기반 실시간 알림 시스템 연동 (#197) (#198)

* [FEAT] SSE 기반 실시간 알림 시스템 연동 (#197)
- SSE(Server-Sent Events)를 통한 실시간 알림 연동
- 알림 타입 정의 (BADGE_EARNED, DAILY_COMPLETE, TEST_COMPLETE 등 8종)
- useNotifications 훅 (EventSource API, 자동 재연결)
- NotificationContext (알림 상태 관리, 읽음 처리)
- NotificationToast (토스트 알림 UI)
- NotificationMenu (헤더 드롭다운 메뉴)
- VITE_NOTIFICATION_URL 환경 변수 추가
- 기존 하드코딩된 목 알림을 실제 시스템으로 교체

* [FIX] FreetalkAiPage → SpeakingPage 라우트 수정
정의되지 않은 FreetalkAiPage를 SpeakingPage로 교체

* [DEBUG] SSE 연결 디버깅 로그 추가
- connect 함수에 상세 로그 추가
- NotificationContext에 auth 상태 로그 추가
- 브라우저 콘솔에서 연결 상태 확인 가능

* [FIX] StrictMode 중복 연결 방지를 위한 debounce 추가
React StrictMode에서 useEffect가 2번 실행되어
SSE 연결이 중복되는 문제 방지

* [FEAT] 알림 기능 on/off 플래그 추가 (VITE_NOTIFICATION_ENABLED)

- VITE_NOTIFICATION_ENABLED 환경 변수로 SSE 연결 제어
- 기본값 false (환경변수 미설정 시 비활성화)
- NotificationMenu에 비활성화 상태 UI 추가
- Lambda 동시성 이슈 대응용

* fix : 연속 선언된 변수 t 제거 (#199)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* [Feat] : AI 프리토킹(Speaking) 기능 구현 (#195) (#196)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* refactor : AI 말하기 routing 페이지 수정 (#202)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* refactor : AI 말하기 라우팅 페이지 수정

---------

Co-authored-by: DDING JOO <ddingsha9@teambind.co.kr>

* refactor : 프리토킹 사용자 닉네임 수정

* refactor : 메인 헤더 프로필 드롭다운 메뉴 사용자 정보 동기화 리팩토링

* feat : 내 프로필 페이지 구현 및 닉네임 변경 API 연결

* [FIX] 끝말잇기 게임 버그 수정 및 UI 개선 (#211)

* [Feat] : AI 프리토킹(Speaking) 기능 구현 (#195)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* [FEAT] SSE 기반 실시간 알림 시스템 연동 (#197) (#198)

* [FEAT] SSE 기반 실시간 알림 시스템 연동 (#197)
- SSE(Server-Sent Events)를 통한 실시간 알림 연동
- 알림 타입 정의 (BADGE_EARNED, DAILY_COMPLETE, TEST_COMPLETE 등 8종)
- useNotifications 훅 (EventSource API, 자동 재연결)
- NotificationContext (알림 상태 관리, 읽음 처리)
- NotificationToast (토스트 알림 UI)
- NotificationMenu (헤더 드롭다운 메뉴)
- VITE_NOTIFICATION_URL 환경 변수 추가
- 기존 하드코딩된 목 알림을 실제 시스템으로 교체

* [FIX] FreetalkAiPage → SpeakingPage 라우트 수정
정의되지 않은 FreetalkAiPage를 SpeakingPage로 교체

* [DEBUG] SSE 연결 디버깅 로그 추가
- connect 함수에 상세 로그 추가
- NotificationContext에 auth 상태 로그 추가
- 브라우저 콘솔에서 연결 상태 확인 가능

* [FIX] StrictMode 중복 연결 방지를 위한 debounce 추가
React StrictMode에서 useEffect가 2번 실행되어
SSE 연결이 중복되는 문제 방지

* [FEAT] 알림 기능 on/off 플래그 추가 (VITE_NOTIFICATION_ENABLED)

- VITE_NOTIFICATION_ENABLED 환경 변수로 SSE 연결 제어
- 기본값 false (환경변수 미설정 시 비활성화)
- NotificationMenu에 비활성화 상태 UI 추가
- Lambda 동시성 이슈 대응용

* fix : 연속 선언된 변수 t 제거 (#199)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* [Feat] : AI 프리토킹(Speaking) 기능 구현 (#195) (#196)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* refactor : AI 말하기 routing 페이지 수정 (#202)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* refactor : AI 말하기 라우팅 페이지 수정

* [FEAT] 채팅 슬래시 명령어 시스템 구현 (#200) (#204)

- 채팅 명령어 타입 정의 (chatCommandTypes.js)
- CommandAutocomplete 컴포넌트 (/ 입력 시 명령어 자동완성)
- PollCard, PollResultBar 컴포넌트 (투표 UI)
- SystemCommandMessage 컴포넌트 (주사위, 동전, 랜덤 등)
- WebSocket 서비스에 새 메시지 타입 핸들링 추가
- ChatRoomPage에 명령어 처리 로직 통합

지원 명령어:
- /help, /members, /leave, /clear
- /dice, /coin, /random
- /poll, /vote, /endpoll

* [FEAT] 영어 끝말잇기(Word Chain) 게임 구현 (#205) (#206)

- wordchainService.js: API 서비스 (시작, 단어제출, 타임아웃, 종료)
- WordchainLobbyPage: 게임 로비 (방 목록, 생성)
- WordchainWaitingPage: 대기실 (참가자 대기, 게임 시작)
- WordchainPlayPage: 게임 플레이 페이지
- WordDisplay: 현재 단어 & 다음 글자 표시
- WordchainTimer: 원형 타이머 (시간 감소 애니메이션)
- PlayerList: 플레이어 목록 (활성/탈락 표시)
- UsedWordsList: 사용된 단어 목록
- WordInput: 단어 입력 필드
- GameEndModal: 게임 종료 모달 (순위, 단어 학습)
- WebSocket 핸들러 추가 (wordchain_*)
- 라우트 및 사이드바 네비게이션 추가

* [FIX] 채팅 슬래시 명령어 버그 수정 (#207)

* [FEAT] 채팅 슬래시 명령어 시스템 구현 (#200)

- 채팅 명령어 타입 정의 (chatCommandTypes.js)
- CommandAutocomplete 컴포넌트 (/ 입력 시 명령어 자동완성)
- PollCard, PollResultBar 컴포넌트 (투표 UI)
- SystemCommandMessage 컴포넌트 (주사위, 동전, 랜덤 등)
- WebSocket 서비스에 새 메시지 타입 핸들링 추가
- ChatRoomPage에 명령어 처리 로직 통합

지원 명령어:
- /help, /members, /leave, /clear
- /dice, /coin, /random
- /poll, /vote, /endpoll

* [FIX] 시스템 명령어 메시지 백엔드 응답 구조 대응

- useChatWebSocket: 백엔드 응답을 프론트엔드 형식으로 변환
- SystemCommandMessage: 다양한 응답 구조 처리
- displayText(message) 필드 우선 표시

* [FIX] 시스템 명령어 content 필드 매핑 수정

* [DEBUG] 시스템 명령어 메시지 디버깅 로그 추가

* [DEBUG] 시스템 명령어 메시지 추가 로그

* [DEBUG] ChatRoomPage 메시지 렌더링 로그 추가

* [DEBUG] SYSTEM_COMMAND 조건 체크 로그

* [FIX] ChatRoomModal에 SYSTEM_COMMAND 메시지 렌더링 추가

* [CLEANUP] 디버깅 로그 제거

* refactor : 로그인/인증 로직 정상화 및 채팅 서버 연결 및 메인 화면 헤더 프로필 상태 표시 (#208)

* refactor : 프리토킹 사용자 닉네임 수정

* refactor : 메인 헤더 프로필 드롭다운 메뉴 사용자 정보 동기화 리팩토링

* [FIX] 끝말잇기 게임 버그 수정 및 UI 개선 (#210)

* fix: API 토큰 갱신 로직 통합 및 Cognito 설정 환경변수화

- 모든 API 호출을 공통 axios 인스턴스로 통합
- 401 오류 시 토큰 자동 갱신 로직 일원화
- aws-config.js의 Cognito 설정을 환경변수로 변경
- newsService.js를 fetch에서 axios로 변경

* [FIX] 끝말잇기 게임 버그 수정 및 UI 개선

- 타이머 타임아웃 중복 호출 버그 수정 (timeoutSent 플래그 추가)
- 플레이어 닉네임 표시 수정 (userId 문자열 배열 → 객체 배열 매핑)
- 번역 파일에 끝말잇기 관련 번역 추가 (games.wordchainTitle, games.wordchainDesc)
- 대시보드 끝말잇기 카드 번역 함수 적용

---------

Co-authored-by: hyein Heo <128613248+hye-inA@users.noreply.github.com>

* fix : 중복 import문 제거

* featrue : 채팅화면 컴포넌트에 보내는 사람(닉네임) 추가

---------

Co-authored-by: DDING JOO <ddingsha9@teambind.co.kr>
hye-inA added a commit that referenced this pull request Jan 27, 2026
* refactor : AI 말하기 routing 페이지 수정  (#203)

* [Feat] : AI 프리토킹(Speaking) 기능 구현 (#195)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* [FEAT] SSE 기반 실시간 알림 시스템 연동 (#197) (#198)

* [FEAT] SSE 기반 실시간 알림 시스템 연동 (#197)
- SSE(Server-Sent Events)를 통한 실시간 알림 연동
- 알림 타입 정의 (BADGE_EARNED, DAILY_COMPLETE, TEST_COMPLETE 등 8종)
- useNotifications 훅 (EventSource API, 자동 재연결)
- NotificationContext (알림 상태 관리, 읽음 처리)
- NotificationToast (토스트 알림 UI)
- NotificationMenu (헤더 드롭다운 메뉴)
- VITE_NOTIFICATION_URL 환경 변수 추가
- 기존 하드코딩된 목 알림을 실제 시스템으로 교체

* [FIX] FreetalkAiPage → SpeakingPage 라우트 수정
정의되지 않은 FreetalkAiPage를 SpeakingPage로 교체

* [DEBUG] SSE 연결 디버깅 로그 추가
- connect 함수에 상세 로그 추가
- NotificationContext에 auth 상태 로그 추가
- 브라우저 콘솔에서 연결 상태 확인 가능

* [FIX] StrictMode 중복 연결 방지를 위한 debounce 추가
React StrictMode에서 useEffect가 2번 실행되어
SSE 연결이 중복되는 문제 방지

* [FEAT] 알림 기능 on/off 플래그 추가 (VITE_NOTIFICATION_ENABLED)

- VITE_NOTIFICATION_ENABLED 환경 변수로 SSE 연결 제어
- 기본값 false (환경변수 미설정 시 비활성화)
- NotificationMenu에 비활성화 상태 UI 추가
- Lambda 동시성 이슈 대응용

* fix : 연속 선언된 변수 t 제거 (#199)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* [Feat] : AI 프리토킹(Speaking) 기능 구현 (#195) (#196)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* refactor : AI 말하기 routing 페이지 수정 (#202)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* refactor : AI 말하기 라우팅 페이지 수정

---------

Co-authored-by: DDING JOO <ddingsha9@teambind.co.kr>

* [FIX] 끝말잇기 게임 버그 수정 및 UI 개선 (#211)

* [Feat] : AI 프리토킹(Speaking) 기능 구현 (#195)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* [FEAT] SSE 기반 실시간 알림 시스템 연동 (#197) (#198)

* [FEAT] SSE 기반 실시간 알림 시스템 연동 (#197)
- SSE(Server-Sent Events)를 통한 실시간 알림 연동
- 알림 타입 정의 (BADGE_EARNED, DAILY_COMPLETE, TEST_COMPLETE 등 8종)
- useNotifications 훅 (EventSource API, 자동 재연결)
- NotificationContext (알림 상태 관리, 읽음 처리)
- NotificationToast (토스트 알림 UI)
- NotificationMenu (헤더 드롭다운 메뉴)
- VITE_NOTIFICATION_URL 환경 변수 추가
- 기존 하드코딩된 목 알림을 실제 시스템으로 교체

* [FIX] FreetalkAiPage → SpeakingPage 라우트 수정
정의되지 않은 FreetalkAiPage를 SpeakingPage로 교체

* [DEBUG] SSE 연결 디버깅 로그 추가
- connect 함수에 상세 로그 추가
- NotificationContext에 auth 상태 로그 추가
- 브라우저 콘솔에서 연결 상태 확인 가능

* [FIX] StrictMode 중복 연결 방지를 위한 debounce 추가
React StrictMode에서 useEffect가 2번 실행되어
SSE 연결이 중복되는 문제 방지

* [FEAT] 알림 기능 on/off 플래그 추가 (VITE_NOTIFICATION_ENABLED)

- VITE_NOTIFICATION_ENABLED 환경 변수로 SSE 연결 제어
- 기본값 false (환경변수 미설정 시 비활성화)
- NotificationMenu에 비활성화 상태 UI 추가
- Lambda 동시성 이슈 대응용

* fix : 연속 선언된 변수 t 제거 (#199)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* [Feat] : AI 프리토킹(Speaking) 기능 구현 (#195) (#196)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* refactor : AI 말하기 routing 페이지 수정 (#202)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* refactor : AI 말하기 라우팅 페이지 수정

* [FEAT] 채팅 슬래시 명령어 시스템 구현 (#200) (#204)

- 채팅 명령어 타입 정의 (chatCommandTypes.js)
- CommandAutocomplete 컴포넌트 (/ 입력 시 명령어 자동완성)
- PollCard, PollResultBar 컴포넌트 (투표 UI)
- SystemCommandMessage 컴포넌트 (주사위, 동전, 랜덤 등)
- WebSocket 서비스에 새 메시지 타입 핸들링 추가
- ChatRoomPage에 명령어 처리 로직 통합

지원 명령어:
- /help, /members, /leave, /clear
- /dice, /coin, /random
- /poll, /vote, /endpoll

* [FEAT] 영어 끝말잇기(Word Chain) 게임 구현 (#205) (#206)

- wordchainService.js: API 서비스 (시작, 단어제출, 타임아웃, 종료)
- WordchainLobbyPage: 게임 로비 (방 목록, 생성)
- WordchainWaitingPage: 대기실 (참가자 대기, 게임 시작)
- WordchainPlayPage: 게임 플레이 페이지
- WordDisplay: 현재 단어 & 다음 글자 표시
- WordchainTimer: 원형 타이머 (시간 감소 애니메이션)
- PlayerList: 플레이어 목록 (활성/탈락 표시)
- UsedWordsList: 사용된 단어 목록
- WordInput: 단어 입력 필드
- GameEndModal: 게임 종료 모달 (순위, 단어 학습)
- WebSocket 핸들러 추가 (wordchain_*)
- 라우트 및 사이드바 네비게이션 추가

* [FIX] 채팅 슬래시 명령어 버그 수정 (#207)

* [FEAT] 채팅 슬래시 명령어 시스템 구현 (#200)

- 채팅 명령어 타입 정의 (chatCommandTypes.js)
- CommandAutocomplete 컴포넌트 (/ 입력 시 명령어 자동완성)
- PollCard, PollResultBar 컴포넌트 (투표 UI)
- SystemCommandMessage 컴포넌트 (주사위, 동전, 랜덤 등)
- WebSocket 서비스에 새 메시지 타입 핸들링 추가
- ChatRoomPage에 명령어 처리 로직 통합

지원 명령어:
- /help, /members, /leave, /clear
- /dice, /coin, /random
- /poll, /vote, /endpoll

* [FIX] 시스템 명령어 메시지 백엔드 응답 구조 대응

- useChatWebSocket: 백엔드 응답을 프론트엔드 형식으로 변환
- SystemCommandMessage: 다양한 응답 구조 처리
- displayText(message) 필드 우선 표시

* [FIX] 시스템 명령어 content 필드 매핑 수정

* [DEBUG] 시스템 명령어 메시지 디버깅 로그 추가

* [DEBUG] 시스템 명령어 메시지 추가 로그

* [DEBUG] ChatRoomPage 메시지 렌더링 로그 추가

* [DEBUG] SYSTEM_COMMAND 조건 체크 로그

* [FIX] ChatRoomModal에 SYSTEM_COMMAND 메시지 렌더링 추가

* [CLEANUP] 디버깅 로그 제거

* refactor : 로그인/인증 로직 정상화 및 채팅 서버 연결 및 메인 화면 헤더 프로필 상태 표시 (#208)

* refactor : 프리토킹 사용자 닉네임 수정

* refactor : 메인 헤더 프로필 드롭다운 메뉴 사용자 정보 동기화 리팩토링

* [FIX] 끝말잇기 게임 버그 수정 및 UI 개선 (#210)

* fix: API 토큰 갱신 로직 통합 및 Cognito 설정 환경변수화

- 모든 API 호출을 공통 axios 인스턴스로 통합
- 401 오류 시 토큰 자동 갱신 로직 일원화
- aws-config.js의 Cognito 설정을 환경변수로 변경
- newsService.js를 fetch에서 axios로 변경

* [FIX] 끝말잇기 게임 버그 수정 및 UI 개선

- 타이머 타임아웃 중복 호출 버그 수정 (timeoutSent 플래그 추가)
- 플레이어 닉네임 표시 수정 (userId 문자열 배열 → 객체 배열 매핑)
- 번역 파일에 끝말잇기 관련 번역 추가 (games.wordchainTitle, games.wordchainDesc)
- 대시보드 끝말잇기 카드 번역 함수 적용

---------

Co-authored-by: hyein Heo <128613248+hye-inA@users.noreply.github.com>

* feat : 오픽 말하기 연습 화면 및 기능 구현

---------

Co-authored-by: DDING JOO <ddingsha9@teambind.co.kr>
hye-inA added a commit that referenced this pull request Jan 27, 2026
* refactor : AI 말하기 routing 페이지 수정  (#203)

* [Feat] : AI 프리토킹(Speaking) 기능 구현 (#195)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* [FEAT] SSE 기반 실시간 알림 시스템 연동 (#197) (#198)

* [FEAT] SSE 기반 실시간 알림 시스템 연동 (#197)
- SSE(Server-Sent Events)를 통한 실시간 알림 연동
- 알림 타입 정의 (BADGE_EARNED, DAILY_COMPLETE, TEST_COMPLETE 등 8종)
- useNotifications 훅 (EventSource API, 자동 재연결)
- NotificationContext (알림 상태 관리, 읽음 처리)
- NotificationToast (토스트 알림 UI)
- NotificationMenu (헤더 드롭다운 메뉴)
- VITE_NOTIFICATION_URL 환경 변수 추가
- 기존 하드코딩된 목 알림을 실제 시스템으로 교체

* [FIX] FreetalkAiPage → SpeakingPage 라우트 수정
정의되지 않은 FreetalkAiPage를 SpeakingPage로 교체

* [DEBUG] SSE 연결 디버깅 로그 추가
- connect 함수에 상세 로그 추가
- NotificationContext에 auth 상태 로그 추가
- 브라우저 콘솔에서 연결 상태 확인 가능

* [FIX] StrictMode 중복 연결 방지를 위한 debounce 추가
React StrictMode에서 useEffect가 2번 실행되어
SSE 연결이 중복되는 문제 방지

* [FEAT] 알림 기능 on/off 플래그 추가 (VITE_NOTIFICATION_ENABLED)

- VITE_NOTIFICATION_ENABLED 환경 변수로 SSE 연결 제어
- 기본값 false (환경변수 미설정 시 비활성화)
- NotificationMenu에 비활성화 상태 UI 추가
- Lambda 동시성 이슈 대응용

* fix : 연속 선언된 변수 t 제거 (#199)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* [Feat] : AI 프리토킹(Speaking) 기능 구현 (#195) (#196)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* refactor : AI 말하기 routing 페이지 수정 (#202)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* refactor : AI 말하기 라우팅 페이지 수정

---------

Co-authored-by: DDING JOO <ddingsha9@teambind.co.kr>

* [FIX] 끝말잇기 게임 버그 수정 및 UI 개선 (#211)

* [Feat] : AI 프리토킹(Speaking) 기능 구현 (#195)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* [FEAT] SSE 기반 실시간 알림 시스템 연동 (#197) (#198)

* [FEAT] SSE 기반 실시간 알림 시스템 연동 (#197)
- SSE(Server-Sent Events)를 통한 실시간 알림 연동
- 알림 타입 정의 (BADGE_EARNED, DAILY_COMPLETE, TEST_COMPLETE 등 8종)
- useNotifications 훅 (EventSource API, 자동 재연결)
- NotificationContext (알림 상태 관리, 읽음 처리)
- NotificationToast (토스트 알림 UI)
- NotificationMenu (헤더 드롭다운 메뉴)
- VITE_NOTIFICATION_URL 환경 변수 추가
- 기존 하드코딩된 목 알림을 실제 시스템으로 교체

* [FIX] FreetalkAiPage → SpeakingPage 라우트 수정
정의되지 않은 FreetalkAiPage를 SpeakingPage로 교체

* [DEBUG] SSE 연결 디버깅 로그 추가
- connect 함수에 상세 로그 추가
- NotificationContext에 auth 상태 로그 추가
- 브라우저 콘솔에서 연결 상태 확인 가능

* [FIX] StrictMode 중복 연결 방지를 위한 debounce 추가
React StrictMode에서 useEffect가 2번 실행되어
SSE 연결이 중복되는 문제 방지

* [FEAT] 알림 기능 on/off 플래그 추가 (VITE_NOTIFICATION_ENABLED)

- VITE_NOTIFICATION_ENABLED 환경 변수로 SSE 연결 제어
- 기본값 false (환경변수 미설정 시 비활성화)
- NotificationMenu에 비활성화 상태 UI 추가
- Lambda 동시성 이슈 대응용

* fix : 연속 선언된 변수 t 제거 (#199)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* [Feat] : AI 프리토킹(Speaking) 기능 구현 (#195) (#196)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* refactor : AI 말하기 routing 페이지 수정 (#202)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* refactor : AI 말하기 라우팅 페이지 수정

* [FEAT] 채팅 슬래시 명령어 시스템 구현 (#200) (#204)

- 채팅 명령어 타입 정의 (chatCommandTypes.js)
- CommandAutocomplete 컴포넌트 (/ 입력 시 명령어 자동완성)
- PollCard, PollResultBar 컴포넌트 (투표 UI)
- SystemCommandMessage 컴포넌트 (주사위, 동전, 랜덤 등)
- WebSocket 서비스에 새 메시지 타입 핸들링 추가
- ChatRoomPage에 명령어 처리 로직 통합

지원 명령어:
- /help, /members, /leave, /clear
- /dice, /coin, /random
- /poll, /vote, /endpoll

* [FEAT] 영어 끝말잇기(Word Chain) 게임 구현 (#205) (#206)

- wordchainService.js: API 서비스 (시작, 단어제출, 타임아웃, 종료)
- WordchainLobbyPage: 게임 로비 (방 목록, 생성)
- WordchainWaitingPage: 대기실 (참가자 대기, 게임 시작)
- WordchainPlayPage: 게임 플레이 페이지
- WordDisplay: 현재 단어 & 다음 글자 표시
- WordchainTimer: 원형 타이머 (시간 감소 애니메이션)
- PlayerList: 플레이어 목록 (활성/탈락 표시)
- UsedWordsList: 사용된 단어 목록
- WordInput: 단어 입력 필드
- GameEndModal: 게임 종료 모달 (순위, 단어 학습)
- WebSocket 핸들러 추가 (wordchain_*)
- 라우트 및 사이드바 네비게이션 추가

* [FIX] 채팅 슬래시 명령어 버그 수정 (#207)

* [FEAT] 채팅 슬래시 명령어 시스템 구현 (#200)

- 채팅 명령어 타입 정의 (chatCommandTypes.js)
- CommandAutocomplete 컴포넌트 (/ 입력 시 명령어 자동완성)
- PollCard, PollResultBar 컴포넌트 (투표 UI)
- SystemCommandMessage 컴포넌트 (주사위, 동전, 랜덤 등)
- WebSocket 서비스에 새 메시지 타입 핸들링 추가
- ChatRoomPage에 명령어 처리 로직 통합

지원 명령어:
- /help, /members, /leave, /clear
- /dice, /coin, /random
- /poll, /vote, /endpoll

* [FIX] 시스템 명령어 메시지 백엔드 응답 구조 대응

- useChatWebSocket: 백엔드 응답을 프론트엔드 형식으로 변환
- SystemCommandMessage: 다양한 응답 구조 처리
- displayText(message) 필드 우선 표시

* [FIX] 시스템 명령어 content 필드 매핑 수정

* [DEBUG] 시스템 명령어 메시지 디버깅 로그 추가

* [DEBUG] 시스템 명령어 메시지 추가 로그

* [DEBUG] ChatRoomPage 메시지 렌더링 로그 추가

* [DEBUG] SYSTEM_COMMAND 조건 체크 로그

* [FIX] ChatRoomModal에 SYSTEM_COMMAND 메시지 렌더링 추가

* [CLEANUP] 디버깅 로그 제거

* refactor : 로그인/인증 로직 정상화 및 채팅 서버 연결 및 메인 화면 헤더 프로필 상태 표시 (#208)

* refactor : 프리토킹 사용자 닉네임 수정

* refactor : 메인 헤더 프로필 드롭다운 메뉴 사용자 정보 동기화 리팩토링

* [FIX] 끝말잇기 게임 버그 수정 및 UI 개선 (#210)

* fix: API 토큰 갱신 로직 통합 및 Cognito 설정 환경변수화

- 모든 API 호출을 공통 axios 인스턴스로 통합
- 401 오류 시 토큰 자동 갱신 로직 일원화
- aws-config.js의 Cognito 설정을 환경변수로 변경
- newsService.js를 fetch에서 axios로 변경

* [FIX] 끝말잇기 게임 버그 수정 및 UI 개선

- 타이머 타임아웃 중복 호출 버그 수정 (timeoutSent 플래그 추가)
- 플레이어 닉네임 표시 수정 (userId 문자열 배열 → 객체 배열 매핑)
- 번역 파일에 끝말잇기 관련 번역 추가 (games.wordchainTitle, games.wordchainDesc)
- 대시보드 끝말잇기 카드 번역 함수 적용

---------

Co-authored-by: hyein Heo <128613248+hye-inA@users.noreply.github.com>

* feat : 오픽 말하기 연습 화면 및 기능 구현

* feature : 오픽 말하기 연습 결과 리포트 화면 구현

* feat : OPIc 말하기 연습 페이지 구현

---------

Co-authored-by: DDING JOO <ddingsha9@teambind.co.kr>
DDINGJOO added a commit that referenced this pull request Jan 28, 2026
* [Feat] : AI 프리토킹(Speaking) 기능 구현 (#195)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* [FEAT] SSE 기반 실시간 알림 시스템 연동 (#197) (#198)

* [FEAT] SSE 기반 실시간 알림 시스템 연동 (#197)
- SSE(Server-Sent Events)를 통한 실시간 알림 연동
- 알림 타입 정의 (BADGE_EARNED, DAILY_COMPLETE, TEST_COMPLETE 등 8종)
- useNotifications 훅 (EventSource API, 자동 재연결)
- NotificationContext (알림 상태 관리, 읽음 처리)
- NotificationToast (토스트 알림 UI)
- NotificationMenu (헤더 드롭다운 메뉴)
- VITE_NOTIFICATION_URL 환경 변수 추가
- 기존 하드코딩된 목 알림을 실제 시스템으로 교체

* [FIX] FreetalkAiPage → SpeakingPage 라우트 수정
정의되지 않은 FreetalkAiPage를 SpeakingPage로 교체

* [DEBUG] SSE 연결 디버깅 로그 추가
- connect 함수에 상세 로그 추가
- NotificationContext에 auth 상태 로그 추가
- 브라우저 콘솔에서 연결 상태 확인 가능

* [FIX] StrictMode 중복 연결 방지를 위한 debounce 추가
React StrictMode에서 useEffect가 2번 실행되어
SSE 연결이 중복되는 문제 방지

* [FEAT] 알림 기능 on/off 플래그 추가 (VITE_NOTIFICATION_ENABLED)

- VITE_NOTIFICATION_ENABLED 환경 변수로 SSE 연결 제어
- 기본값 false (환경변수 미설정 시 비활성화)
- NotificationMenu에 비활성화 상태 UI 추가
- Lambda 동시성 이슈 대응용

* fix : 연속 선언된 변수 t 제거 (#199)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* [Feat] : AI 프리토킹(Speaking) 기능 구현 (#195) (#196)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* refactor : AI 말하기 routing 페이지 수정 (#202)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* refactor : AI 말하기 라우팅 페이지 수정

* [FEAT] 채팅 슬래시 명령어 시스템 구현 (#200) (#204)

- 채팅 명령어 타입 정의 (chatCommandTypes.js)
- CommandAutocomplete 컴포넌트 (/ 입력 시 명령어 자동완성)
- PollCard, PollResultBar 컴포넌트 (투표 UI)
- SystemCommandMessage 컴포넌트 (주사위, 동전, 랜덤 등)
- WebSocket 서비스에 새 메시지 타입 핸들링 추가
- ChatRoomPage에 명령어 처리 로직 통합

지원 명령어:
- /help, /members, /leave, /clear
- /dice, /coin, /random
- /poll, /vote, /endpoll

* [FEAT] 영어 끝말잇기(Word Chain) 게임 구현 (#205) (#206)

- wordchainService.js: API 서비스 (시작, 단어제출, 타임아웃, 종료)
- WordchainLobbyPage: 게임 로비 (방 목록, 생성)
- WordchainWaitingPage: 대기실 (참가자 대기, 게임 시작)
- WordchainPlayPage: 게임 플레이 페이지
- WordDisplay: 현재 단어 & 다음 글자 표시
- WordchainTimer: 원형 타이머 (시간 감소 애니메이션)
- PlayerList: 플레이어 목록 (활성/탈락 표시)
- UsedWordsList: 사용된 단어 목록
- WordInput: 단어 입력 필드
- GameEndModal: 게임 종료 모달 (순위, 단어 학습)
- WebSocket 핸들러 추가 (wordchain_*)
- 라우트 및 사이드바 네비게이션 추가

* [FIX] 채팅 슬래시 명령어 버그 수정 (#207)

* [FEAT] 채팅 슬래시 명령어 시스템 구현 (#200)

- 채팅 명령어 타입 정의 (chatCommandTypes.js)
- CommandAutocomplete 컴포넌트 (/ 입력 시 명령어 자동완성)
- PollCard, PollResultBar 컴포넌트 (투표 UI)
- SystemCommandMessage 컴포넌트 (주사위, 동전, 랜덤 등)
- WebSocket 서비스에 새 메시지 타입 핸들링 추가
- ChatRoomPage에 명령어 처리 로직 통합

지원 명령어:
- /help, /members, /leave, /clear
- /dice, /coin, /random
- /poll, /vote, /endpoll

* [FIX] 시스템 명령어 메시지 백엔드 응답 구조 대응

- useChatWebSocket: 백엔드 응답을 프론트엔드 형식으로 변환
- SystemCommandMessage: 다양한 응답 구조 처리
- displayText(message) 필드 우선 표시

* [FIX] 시스템 명령어 content 필드 매핑 수정

* [DEBUG] 시스템 명령어 메시지 디버깅 로그 추가

* [DEBUG] 시스템 명령어 메시지 추가 로그

* [DEBUG] ChatRoomPage 메시지 렌더링 로그 추가

* [DEBUG] SYSTEM_COMMAND 조건 체크 로그

* [FIX] ChatRoomModal에 SYSTEM_COMMAND 메시지 렌더링 추가

* [CLEANUP] 디버깅 로그 제거

* refactor : 로그인/인증 로직 정상화 및 채팅 서버 연결 및 메인 화면 헤더 프로필 상태 표시 (#208)

* refactor : 프리토킹 사용자 닉네임 수정

* refactor : 메인 헤더 프로필 드롭다운 메뉴 사용자 정보 동기화 리팩토링

* [FIX] 끝말잇기 게임 버그 수정 및 UI 개선 (#210)

* fix: API 토큰 갱신 로직 통합 및 Cognito 설정 환경변수화

- 모든 API 호출을 공통 axios 인스턴스로 통합
- 401 오류 시 토큰 자동 갱신 로직 일원화
- aws-config.js의 Cognito 설정을 환경변수로 변경
- newsService.js를 fetch에서 axios로 변경

* [FIX] 끝말잇기 게임 버그 수정 및 UI 개선

- 타이머 타임아웃 중복 호출 버그 수정 (timeoutSent 플래그 추가)
- 플레이어 닉네임 표시 수정 (userId 문자열 배열 → 객체 배열 매핑)
- 번역 파일에 끝말잇기 관련 번역 추가 (games.wordchainTitle, games.wordchainDesc)
- 대시보드 끝말잇기 카드 번역 함수 적용

* feat : 사용자 프로필 닉네임 표시 구현 (#212)

* refactor : AI 말하기 routing 페이지 수정  (#203)

* [Feat] : AI 프리토킹(Speaking) 기능 구현 (#195)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* [FEAT] SSE 기반 실시간 알림 시스템 연동 (#197) (#198)

* [FEAT] SSE 기반 실시간 알림 시스템 연동 (#197)
- SSE(Server-Sent Events)를 통한 실시간 알림 연동
- 알림 타입 정의 (BADGE_EARNED, DAILY_COMPLETE, TEST_COMPLETE 등 8종)
- useNotifications 훅 (EventSource API, 자동 재연결)
- NotificationContext (알림 상태 관리, 읽음 처리)
- NotificationToast (토스트 알림 UI)
- NotificationMenu (헤더 드롭다운 메뉴)
- VITE_NOTIFICATION_URL 환경 변수 추가
- 기존 하드코딩된 목 알림을 실제 시스템으로 교체

* [FIX] FreetalkAiPage → SpeakingPage 라우트 수정
정의되지 않은 FreetalkAiPage를 SpeakingPage로 교체

* [DEBUG] SSE 연결 디버깅 로그 추가
- connect 함수에 상세 로그 추가
- NotificationContext에 auth 상태 로그 추가
- 브라우저 콘솔에서 연결 상태 확인 가능

* [FIX] StrictMode 중복 연결 방지를 위한 debounce 추가
React StrictMode에서 useEffect가 2번 실행되어
SSE 연결이 중복되는 문제 방지

* [FEAT] 알림 기능 on/off 플래그 추가 (VITE_NOTIFICATION_ENABLED)

- VITE_NOTIFICATION_ENABLED 환경 변수로 SSE 연결 제어
- 기본값 false (환경변수 미설정 시 비활성화)
- NotificationMenu에 비활성화 상태 UI 추가
- Lambda 동시성 이슈 대응용

* fix : 연속 선언된 변수 t 제거 (#199)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* [Feat] : AI 프리토킹(Speaking) 기능 구현 (#195) (#196)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* refactor : AI 말하기 routing 페이지 수정 (#202)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* refactor : AI 말하기 라우팅 페이지 수정

---------

Co-authored-by: DDING JOO <ddingsha9@teambind.co.kr>

* refactor : 프리토킹 사용자 닉네임 수정

* refactor : 메인 헤더 프로필 드롭다운 메뉴 사용자 정보 동기화 리팩토링

* feat : 내 프로필 페이지 구현 및 닉네임 변경 API 연결

* [FIX] 끝말잇기 게임 버그 수정 및 UI 개선 (#211)

* [Feat] : AI 프리토킹(Speaking) 기능 구현 (#195)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* [FEAT] SSE 기반 실시간 알림 시스템 연동 (#197) (#198)

* [FEAT] SSE 기반 실시간 알림 시스템 연동 (#197)
- SSE(Server-Sent Events)를 통한 실시간 알림 연동
- 알림 타입 정의 (BADGE_EARNED, DAILY_COMPLETE, TEST_COMPLETE 등 8종)
- useNotifications 훅 (EventSource API, 자동 재연결)
- NotificationContext (알림 상태 관리, 읽음 처리)
- NotificationToast (토스트 알림 UI)
- NotificationMenu (헤더 드롭다운 메뉴)
- VITE_NOTIFICATION_URL 환경 변수 추가
- 기존 하드코딩된 목 알림을 실제 시스템으로 교체

* [FIX] FreetalkAiPage → SpeakingPage 라우트 수정
정의되지 않은 FreetalkAiPage를 SpeakingPage로 교체

* [DEBUG] SSE 연결 디버깅 로그 추가
- connect 함수에 상세 로그 추가
- NotificationContext에 auth 상태 로그 추가
- 브라우저 콘솔에서 연결 상태 확인 가능

* [FIX] StrictMode 중복 연결 방지를 위한 debounce 추가
React StrictMode에서 useEffect가 2번 실행되어
SSE 연결이 중복되는 문제 방지

* [FEAT] 알림 기능 on/off 플래그 추가 (VITE_NOTIFICATION_ENABLED)

- VITE_NOTIFICATION_ENABLED 환경 변수로 SSE 연결 제어
- 기본값 false (환경변수 미설정 시 비활성화)
- NotificationMenu에 비활성화 상태 UI 추가
- Lambda 동시성 이슈 대응용

* fix : 연속 선언된 변수 t 제거 (#199)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* [Feat] : AI 프리토킹(Speaking) 기능 구현 (#195) (#196)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* refactor : AI 말하기 routing 페이지 수정 (#202)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* refactor : AI 말하기 라우팅 페이지 수정

* [FEAT] 채팅 슬래시 명령어 시스템 구현 (#200) (#204)

- 채팅 명령어 타입 정의 (chatCommandTypes.js)
- CommandAutocomplete 컴포넌트 (/ 입력 시 명령어 자동완성)
- PollCard, PollResultBar 컴포넌트 (투표 UI)
- SystemCommandMessage 컴포넌트 (주사위, 동전, 랜덤 등)
- WebSocket 서비스에 새 메시지 타입 핸들링 추가
- ChatRoomPage에 명령어 처리 로직 통합

지원 명령어:
- /help, /members, /leave, /clear
- /dice, /coin, /random
- /poll, /vote, /endpoll

* [FEAT] 영어 끝말잇기(Word Chain) 게임 구현 (#205) (#206)

- wordchainService.js: API 서비스 (시작, 단어제출, 타임아웃, 종료)
- WordchainLobbyPage: 게임 로비 (방 목록, 생성)
- WordchainWaitingPage: 대기실 (참가자 대기, 게임 시작)
- WordchainPlayPage: 게임 플레이 페이지
- WordDisplay: 현재 단어 & 다음 글자 표시
- WordchainTimer: 원형 타이머 (시간 감소 애니메이션)
- PlayerList: 플레이어 목록 (활성/탈락 표시)
- UsedWordsList: 사용된 단어 목록
- WordInput: 단어 입력 필드
- GameEndModal: 게임 종료 모달 (순위, 단어 학습)
- WebSocket 핸들러 추가 (wordchain_*)
- 라우트 및 사이드바 네비게이션 추가

* [FIX] 채팅 슬래시 명령어 버그 수정 (#207)

* [FEAT] 채팅 슬래시 명령어 시스템 구현 (#200)

- 채팅 명령어 타입 정의 (chatCommandTypes.js)
- CommandAutocomplete 컴포넌트 (/ 입력 시 명령어 자동완성)
- PollCard, PollResultBar 컴포넌트 (투표 UI)
- SystemCommandMessage 컴포넌트 (주사위, 동전, 랜덤 등)
- WebSocket 서비스에 새 메시지 타입 핸들링 추가
- ChatRoomPage에 명령어 처리 로직 통합

지원 명령어:
- /help, /members, /leave, /clear
- /dice, /coin, /random
- /poll, /vote, /endpoll

* [FIX] 시스템 명령어 메시지 백엔드 응답 구조 대응

- useChatWebSocket: 백엔드 응답을 프론트엔드 형식으로 변환
- SystemCommandMessage: 다양한 응답 구조 처리
- displayText(message) 필드 우선 표시

* [FIX] 시스템 명령어 content 필드 매핑 수정

* [DEBUG] 시스템 명령어 메시지 디버깅 로그 추가

* [DEBUG] 시스템 명령어 메시지 추가 로그

* [DEBUG] ChatRoomPage 메시지 렌더링 로그 추가

* [DEBUG] SYSTEM_COMMAND 조건 체크 로그

* [FIX] ChatRoomModal에 SYSTEM_COMMAND 메시지 렌더링 추가

* [CLEANUP] 디버깅 로그 제거

* refactor : 로그인/인증 로직 정상화 및 채팅 서버 연결 및 메인 화면 헤더 프로필 상태 표시 (#208)

* refactor : 프리토킹 사용자 닉네임 수정

* refactor : 메인 헤더 프로필 드롭다운 메뉴 사용자 정보 동기화 리팩토링

* [FIX] 끝말잇기 게임 버그 수정 및 UI 개선 (#210)

* fix: API 토큰 갱신 로직 통합 및 Cognito 설정 환경변수화

- 모든 API 호출을 공통 axios 인스턴스로 통합
- 401 오류 시 토큰 자동 갱신 로직 일원화
- aws-config.js의 Cognito 설정을 환경변수로 변경
- newsService.js를 fetch에서 axios로 변경

* [FIX] 끝말잇기 게임 버그 수정 및 UI 개선

- 타이머 타임아웃 중복 호출 버그 수정 (timeoutSent 플래그 추가)
- 플레이어 닉네임 표시 수정 (userId 문자열 배열 → 객체 배열 매핑)
- 번역 파일에 끝말잇기 관련 번역 추가 (games.wordchainTitle, games.wordchainDesc)
- 대시보드 끝말잇기 카드 번역 함수 적용

---------

Co-authored-by: hyein Heo <128613248+hye-inA@users.noreply.github.com>

* fix : 중복 import문 제거

---------

Co-authored-by: DDING JOO <ddingsha9@teambind.co.kr>

* feature : 채팅 화면 컴포넌트에 닉네임 필드 추가  (#213)

* refactor : AI 말하기 routing 페이지 수정  (#203)

* [Feat] : AI 프리토킹(Speaking) 기능 구현 (#195)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* [FEAT] SSE 기반 실시간 알림 시스템 연동 (#197) (#198)

* [FEAT] SSE 기반 실시간 알림 시스템 연동 (#197)
- SSE(Server-Sent Events)를 통한 실시간 알림 연동
- 알림 타입 정의 (BADGE_EARNED, DAILY_COMPLETE, TEST_COMPLETE 등 8종)
- useNotifications 훅 (EventSource API, 자동 재연결)
- NotificationContext (알림 상태 관리, 읽음 처리)
- NotificationToast (토스트 알림 UI)
- NotificationMenu (헤더 드롭다운 메뉴)
- VITE_NOTIFICATION_URL 환경 변수 추가
- 기존 하드코딩된 목 알림을 실제 시스템으로 교체

* [FIX] FreetalkAiPage → SpeakingPage 라우트 수정
정의되지 않은 FreetalkAiPage를 SpeakingPage로 교체

* [DEBUG] SSE 연결 디버깅 로그 추가
- connect 함수에 상세 로그 추가
- NotificationContext에 auth 상태 로그 추가
- 브라우저 콘솔에서 연결 상태 확인 가능

* [FIX] StrictMode 중복 연결 방지를 위한 debounce 추가
React StrictMode에서 useEffect가 2번 실행되어
SSE 연결이 중복되는 문제 방지

* [FEAT] 알림 기능 on/off 플래그 추가 (VITE_NOTIFICATION_ENABLED)

- VITE_NOTIFICATION_ENABLED 환경 변수로 SSE 연결 제어
- 기본값 false (환경변수 미설정 시 비활성화)
- NotificationMenu에 비활성화 상태 UI 추가
- Lambda 동시성 이슈 대응용

* fix : 연속 선언된 변수 t 제거 (#199)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* [Feat] : AI 프리토킹(Speaking) 기능 구현 (#195) (#196)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* refactor : AI 말하기 routing 페이지 수정 (#202)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* refactor : AI 말하기 라우팅 페이지 수정

---------

Co-authored-by: DDING JOO <ddingsha9@teambind.co.kr>

* refactor : 프리토킹 사용자 닉네임 수정

* refactor : 메인 헤더 프로필 드롭다운 메뉴 사용자 정보 동기화 리팩토링

* feat : 내 프로필 페이지 구현 및 닉네임 변경 API 연결

* [FIX] 끝말잇기 게임 버그 수정 및 UI 개선 (#211)

* [Feat] : AI 프리토킹(Speaking) 기능 구현 (#195)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* [FEAT] SSE 기반 실시간 알림 시스템 연동 (#197) (#198)

* [FEAT] SSE 기반 실시간 알림 시스템 연동 (#197)
- SSE(Server-Sent Events)를 통한 실시간 알림 연동
- 알림 타입 정의 (BADGE_EARNED, DAILY_COMPLETE, TEST_COMPLETE 등 8종)
- useNotifications 훅 (EventSource API, 자동 재연결)
- NotificationContext (알림 상태 관리, 읽음 처리)
- NotificationToast (토스트 알림 UI)
- NotificationMenu (헤더 드롭다운 메뉴)
- VITE_NOTIFICATION_URL 환경 변수 추가
- 기존 하드코딩된 목 알림을 실제 시스템으로 교체

* [FIX] FreetalkAiPage → SpeakingPage 라우트 수정
정의되지 않은 FreetalkAiPage를 SpeakingPage로 교체

* [DEBUG] SSE 연결 디버깅 로그 추가
- connect 함수에 상세 로그 추가
- NotificationContext에 auth 상태 로그 추가
- 브라우저 콘솔에서 연결 상태 확인 가능

* [FIX] StrictMode 중복 연결 방지를 위한 debounce 추가
React StrictMode에서 useEffect가 2번 실행되어
SSE 연결이 중복되는 문제 방지

* [FEAT] 알림 기능 on/off 플래그 추가 (VITE_NOTIFICATION_ENABLED)

- VITE_NOTIFICATION_ENABLED 환경 변수로 SSE 연결 제어
- 기본값 false (환경변수 미설정 시 비활성화)
- NotificationMenu에 비활성화 상태 UI 추가
- Lambda 동시성 이슈 대응용

* fix : 연속 선언된 변수 t 제거 (#199)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* [Feat] : AI 프리토킹(Speaking) 기능 구현 (#195) (#196)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* refactor : AI 말하기 routing 페이지 수정 (#202)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* refactor : AI 말하기 라우팅 페이지 수정

* [FEAT] 채팅 슬래시 명령어 시스템 구현 (#200) (#204)

- 채팅 명령어 타입 정의 (chatCommandTypes.js)
- CommandAutocomplete 컴포넌트 (/ 입력 시 명령어 자동완성)
- PollCard, PollResultBar 컴포넌트 (투표 UI)
- SystemCommandMessage 컴포넌트 (주사위, 동전, 랜덤 등)
- WebSocket 서비스에 새 메시지 타입 핸들링 추가
- ChatRoomPage에 명령어 처리 로직 통합

지원 명령어:
- /help, /members, /leave, /clear
- /dice, /coin, /random
- /poll, /vote, /endpoll

* [FEAT] 영어 끝말잇기(Word Chain) 게임 구현 (#205) (#206)

- wordchainService.js: API 서비스 (시작, 단어제출, 타임아웃, 종료)
- WordchainLobbyPage: 게임 로비 (방 목록, 생성)
- WordchainWaitingPage: 대기실 (참가자 대기, 게임 시작)
- WordchainPlayPage: 게임 플레이 페이지
- WordDisplay: 현재 단어 & 다음 글자 표시
- WordchainTimer: 원형 타이머 (시간 감소 애니메이션)
- PlayerList: 플레이어 목록 (활성/탈락 표시)
- UsedWordsList: 사용된 단어 목록
- WordInput: 단어 입력 필드
- GameEndModal: 게임 종료 모달 (순위, 단어 학습)
- WebSocket 핸들러 추가 (wordchain_*)
- 라우트 및 사이드바 네비게이션 추가

* [FIX] 채팅 슬래시 명령어 버그 수정 (#207)

* [FEAT] 채팅 슬래시 명령어 시스템 구현 (#200)

- 채팅 명령어 타입 정의 (chatCommandTypes.js)
- CommandAutocomplete 컴포넌트 (/ 입력 시 명령어 자동완성)
- PollCard, PollResultBar 컴포넌트 (투표 UI)
- SystemCommandMessage 컴포넌트 (주사위, 동전, 랜덤 등)
- WebSocket 서비스에 새 메시지 타입 핸들링 추가
- ChatRoomPage에 명령어 처리 로직 통합

지원 명령어:
- /help, /members, /leave, /clear
- /dice, /coin, /random
- /poll, /vote, /endpoll

* [FIX] 시스템 명령어 메시지 백엔드 응답 구조 대응

- useChatWebSocket: 백엔드 응답을 프론트엔드 형식으로 변환
- SystemCommandMessage: 다양한 응답 구조 처리
- displayText(message) 필드 우선 표시

* [FIX] 시스템 명령어 content 필드 매핑 수정

* [DEBUG] 시스템 명령어 메시지 디버깅 로그 추가

* [DEBUG] 시스템 명령어 메시지 추가 로그

* [DEBUG] ChatRoomPage 메시지 렌더링 로그 추가

* [DEBUG] SYSTEM_COMMAND 조건 체크 로그

* [FIX] ChatRoomModal에 SYSTEM_COMMAND 메시지 렌더링 추가

* [CLEANUP] 디버깅 로그 제거

* refactor : 로그인/인증 로직 정상화 및 채팅 서버 연결 및 메인 화면 헤더 프로필 상태 표시 (#208)

* refactor : 프리토킹 사용자 닉네임 수정

* refactor : 메인 헤더 프로필 드롭다운 메뉴 사용자 정보 동기화 리팩토링

* [FIX] 끝말잇기 게임 버그 수정 및 UI 개선 (#210)

* fix: API 토큰 갱신 로직 통합 및 Cognito 설정 환경변수화

- 모든 API 호출을 공통 axios 인스턴스로 통합
- 401 오류 시 토큰 자동 갱신 로직 일원화
- aws-config.js의 Cognito 설정을 환경변수로 변경
- newsService.js를 fetch에서 axios로 변경

* [FIX] 끝말잇기 게임 버그 수정 및 UI 개선

- 타이머 타임아웃 중복 호출 버그 수정 (timeoutSent 플래그 추가)
- 플레이어 닉네임 표시 수정 (userId 문자열 배열 → 객체 배열 매핑)
- 번역 파일에 끝말잇기 관련 번역 추가 (games.wordchainTitle, games.wordchainDesc)
- 대시보드 끝말잇기 카드 번역 함수 적용

---------

Co-authored-by: hyein Heo <128613248+hye-inA@users.noreply.github.com>

* fix : 중복 import문 제거

* featrue : 채팅화면 컴포넌트에 보내는 사람(닉네임) 추가

---------

Co-authored-by: DDING JOO <ddingsha9@teambind.co.kr>

* Feature : OPIc 모의고사 테스트 진행(녹음/제출) 및 세션 완료 기능 구현 (#216)

* refactor : AI 말하기 routing 페이지 수정  (#203)

* [Feat] : AI 프리토킹(Speaking) 기능 구현 (#195)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* [FEAT] SSE 기반 실시간 알림 시스템 연동 (#197) (#198)

* [FEAT] SSE 기반 실시간 알림 시스템 연동 (#197)
- SSE(Server-Sent Events)를 통한 실시간 알림 연동
- 알림 타입 정의 (BADGE_EARNED, DAILY_COMPLETE, TEST_COMPLETE 등 8종)
- useNotifications 훅 (EventSource API, 자동 재연결)
- NotificationContext (알림 상태 관리, 읽음 처리)
- NotificationToast (토스트 알림 UI)
- NotificationMenu (헤더 드롭다운 메뉴)
- VITE_NOTIFICATION_URL 환경 변수 추가
- 기존 하드코딩된 목 알림을 실제 시스템으로 교체

* [FIX] FreetalkAiPage → SpeakingPage 라우트 수정
정의되지 않은 FreetalkAiPage를 SpeakingPage로 교체

* [DEBUG] SSE 연결 디버깅 로그 추가
- connect 함수에 상세 로그 추가
- NotificationContext에 auth 상태 로그 추가
- 브라우저 콘솔에서 연결 상태 확인 가능

* [FIX] StrictMode 중복 연결 방지를 위한 debounce 추가
React StrictMode에서 useEffect가 2번 실행되어
SSE 연결이 중복되는 문제 방지

* [FEAT] 알림 기능 on/off 플래그 추가 (VITE_NOTIFICATION_ENABLED)

- VITE_NOTIFICATION_ENABLED 환경 변수로 SSE 연결 제어
- 기본값 false (환경변수 미설정 시 비활성화)
- NotificationMenu에 비활성화 상태 UI 추가
- Lambda 동시성 이슈 대응용

* fix : 연속 선언된 변수 t 제거 (#199)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* [Feat] : AI 프리토킹(Speaking) 기능 구현 (#195) (#196)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* refactor : AI 말하기 routing 페이지 수정 (#202)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* refactor : AI 말하기 라우팅 페이지 수정

---------

Co-authored-by: DDING JOO <ddingsha9@teambind.co.kr>

* [FIX] 끝말잇기 게임 버그 수정 및 UI 개선 (#211)

* [Feat] : AI 프리토킹(Speaking) 기능 구현 (#195)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* [FEAT] SSE 기반 실시간 알림 시스템 연동 (#197) (#198)

* [FEAT] SSE 기반 실시간 알림 시스템 연동 (#197)
- SSE(Server-Sent Events)를 통한 실시간 알림 연동
- 알림 타입 정의 (BADGE_EARNED, DAILY_COMPLETE, TEST_COMPLETE 등 8종)
- useNotifications 훅 (EventSource API, 자동 재연결)
- NotificationContext (알림 상태 관리, 읽음 처리)
- NotificationToast (토스트 알림 UI)
- NotificationMenu (헤더 드롭다운 메뉴)
- VITE_NOTIFICATION_URL 환경 변수 추가
- 기존 하드코딩된 목 알림을 실제 시스템으로 교체

* [FIX] FreetalkAiPage → SpeakingPage 라우트 수정
정의되지 않은 FreetalkAiPage를 SpeakingPage로 교체

* [DEBUG] SSE 연결 디버깅 로그 추가
- connect 함수에 상세 로그 추가
- NotificationContext에 auth 상태 로그 추가
- 브라우저 콘솔에서 연결 상태 확인 가능

* [FIX] StrictMode 중복 연결 방지를 위한 debounce 추가
React StrictMode에서 useEffect가 2번 실행되어
SSE 연결이 중복되는 문제 방지

* [FEAT] 알림 기능 on/off 플래그 추가 (VITE_NOTIFICATION_ENABLED)

- VITE_NOTIFICATION_ENABLED 환경 변수로 SSE 연결 제어
- 기본값 false (환경변수 미설정 시 비활성화)
- NotificationMenu에 비활성화 상태 UI 추가
- Lambda 동시성 이슈 대응용

* fix : 연속 선언된 변수 t 제거 (#199)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* [Feat] : AI 프리토킹(Speaking) 기능 구현 (#195) (#196)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* refactor : AI 말하기 routing 페이지 수정 (#202)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* refactor : AI 말하기 라우팅 페이지 수정

* [FEAT] 채팅 슬래시 명령어 시스템 구현 (#200) (#204)

- 채팅 명령어 타입 정의 (chatCommandTypes.js)
- CommandAutocomplete 컴포넌트 (/ 입력 시 명령어 자동완성)
- PollCard, PollResultBar 컴포넌트 (투표 UI)
- SystemCommandMessage 컴포넌트 (주사위, 동전, 랜덤 등)
- WebSocket 서비스에 새 메시지 타입 핸들링 추가
- ChatRoomPage에 명령어 처리 로직 통합

지원 명령어:
- /help, /members, /leave, /clear
- /dice, /coin, /random
- /poll, /vote, /endpoll

* [FEAT] 영어 끝말잇기(Word Chain) 게임 구현 (#205) (#206)

- wordchainService.js: API 서비스 (시작, 단어제출, 타임아웃, 종료)
- WordchainLobbyPage: 게임 로비 (방 목록, 생성)
- WordchainWaitingPage: 대기실 (참가자 대기, 게임 시작)
- WordchainPlayPage: 게임 플레이 페이지
- WordDisplay: 현재 단어 & 다음 글자 표시
- WordchainTimer: 원형 타이머 (시간 감소 애니메이션)
- PlayerList: 플레이어 목록 (활성/탈락 표시)
- UsedWordsList: 사용된 단어 목록
- WordInput: 단어 입력 필드
- GameEndModal: 게임 종료 모달 (순위, 단어 학습)
- WebSocket 핸들러 추가 (wordchain_*)
- 라우트 및 사이드바 네비게이션 추가

* [FIX] 채팅 슬래시 명령어 버그 수정 (#207)

* [FEAT] 채팅 슬래시 명령어 시스템 구현 (#200)

- 채팅 명령어 타입 정의 (chatCommandTypes.js)
- CommandAutocomplete 컴포넌트 (/ 입력 시 명령어 자동완성)
- PollCard, PollResultBar 컴포넌트 (투표 UI)
- SystemCommandMessage 컴포넌트 (주사위, 동전, 랜덤 등)
- WebSocket 서비스에 새 메시지 타입 핸들링 추가
- ChatRoomPage에 명령어 처리 로직 통합

지원 명령어:
- /help, /members, /leave, /clear
- /dice, /coin, /random
- /poll, /vote, /endpoll

* [FIX] 시스템 명령어 메시지 백엔드 응답 구조 대응

- useChatWebSocket: 백엔드 응답을 프론트엔드 형식으로 변환
- SystemCommandMessage: 다양한 응답 구조 처리
- displayText(message) 필드 우선 표시

* [FIX] 시스템 명령어 content 필드 매핑 수정

* [DEBUG] 시스템 명령어 메시지 디버깅 로그 추가

* [DEBUG] 시스템 명령어 메시지 추가 로그

* [DEBUG] ChatRoomPage 메시지 렌더링 로그 추가

* [DEBUG] SYSTEM_COMMAND 조건 체크 로그

* [FIX] ChatRoomModal에 SYSTEM_COMMAND 메시지 렌더링 추가

* [CLEANUP] 디버깅 로그 제거

* refactor : 로그인/인증 로직 정상화 및 채팅 서버 연결 및 메인 화면 헤더 프로필 상태 표시 (#208)

* refactor : 프리토킹 사용자 닉네임 수정

* refactor : 메인 헤더 프로필 드롭다운 메뉴 사용자 정보 동기화 리팩토링

* [FIX] 끝말잇기 게임 버그 수정 및 UI 개선 (#210)

* fix: API 토큰 갱신 로직 통합 및 Cognito 설정 환경변수화

- 모든 API 호출을 공통 axios 인스턴스로 통합
- 401 오류 시 토큰 자동 갱신 로직 일원화
- aws-config.js의 Cognito 설정을 환경변수로 변경
- newsService.js를 fetch에서 axios로 변경

* [FIX] 끝말잇기 게임 버그 수정 및 UI 개선

- 타이머 타임아웃 중복 호출 버그 수정 (timeoutSent 플래그 추가)
- 플레이어 닉네임 표시 수정 (userId 문자열 배열 → 객체 배열 매핑)
- 번역 파일에 끝말잇기 관련 번역 추가 (games.wordchainTitle, games.wordchainDesc)
- 대시보드 끝말잇기 카드 번역 함수 적용

---------

Co-authored-by: hyein Heo <128613248+hye-inA@users.noreply.github.com>

* feat : 오픽 말하기 연습 화면 및 기능 구현

---------

Co-authored-by: DDING JOO <ddingsha9@teambind.co.kr>

* featrue : OPIC 말하기연습 전체 세션에 대한 피드백 리포트 화면 구현 (#218)

* refactor : AI 말하기 routing 페이지 수정  (#203)

* [Feat] : AI 프리토킹(Speaking) 기능 구현 (#195)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* [FEAT] SSE 기반 실시간 알림 시스템 연동 (#197) (#198)

* [FEAT] SSE 기반 실시간 알림 시스템 연동 (#197)
- SSE(Server-Sent Events)를 통한 실시간 알림 연동
- 알림 타입 정의 (BADGE_EARNED, DAILY_COMPLETE, TEST_COMPLETE 등 8종)
- useNotifications 훅 (EventSource API, 자동 재연결)
- NotificationContext (알림 상태 관리, 읽음 처리)
- NotificationToast (토스트 알림 UI)
- NotificationMenu (헤더 드롭다운 메뉴)
- VITE_NOTIFICATION_URL 환경 변수 추가
- 기존 하드코딩된 목 알림을 실제 시스템으로 교체

* [FIX] FreetalkAiPage → SpeakingPage 라우트 수정
정의되지 않은 FreetalkAiPage를 SpeakingPage로 교체

* [DEBUG] SSE 연결 디버깅 로그 추가
- connect 함수에 상세 로그 추가
- NotificationContext에 auth 상태 로그 추가
- 브라우저 콘솔에서 연결 상태 확인 가능

* [FIX] StrictMode 중복 연결 방지를 위한 debounce 추가
React StrictMode에서 useEffect가 2번 실행되어
SSE 연결이 중복되는 문제 방지

* [FEAT] 알림 기능 on/off 플래그 추가 (VITE_NOTIFICATION_ENABLED)

- VITE_NOTIFICATION_ENABLED 환경 변수로 SSE 연결 제어
- 기본값 false (환경변수 미설정 시 비활성화)
- NotificationMenu에 비활성화 상태 UI 추가
- Lambda 동시성 이슈 대응용

* fix : 연속 선언된 변수 t 제거 (#199)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* [Feat] : AI 프리토킹(Speaking) 기능 구현 (#195) (#196)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* refactor : AI 말하기 routing 페이지 수정 (#202)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* refactor : AI 말하기 라우팅 페이지 수정

---------

Co-authored-by: DDING JOO <ddingsha9@teambind.co.kr>

* [FIX] 끝말잇기 게임 버그 수정 및 UI 개선 (#211)

* [Feat] : AI 프리토킹(Speaking) 기능 구현 (#195)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* [FEAT] SSE 기반 실시간 알림 시스템 연동 (#197) (#198)

* [FEAT] SSE 기반 실시간 알림 시스템 연동 (#197)
- SSE(Server-Sent Events)를 통한 실시간 알림 연동
- 알림 타입 정의 (BADGE_EARNED, DAILY_COMPLETE, TEST_COMPLETE 등 8종)
- useNotifications 훅 (EventSource API, 자동 재연결)
- NotificationContext (알림 상태 관리, 읽음 처리)
- NotificationToast (토스트 알림 UI)
- NotificationMenu (헤더 드롭다운 메뉴)
- VITE_NOTIFICATION_URL 환경 변수 추가
- 기존 하드코딩된 목 알림을 실제 시스템으로 교체

* [FIX] FreetalkAiPage → SpeakingPage 라우트 수정
정의되지 않은 FreetalkAiPage를 SpeakingPage로 교체

* [DEBUG] SSE 연결 디버깅 로그 추가
- connect 함수에 상세 로그 추가
- NotificationContext에 auth 상태 로그 추가
- 브라우저 콘솔에서 연결 상태 확인 가능

* [FIX] StrictMode 중복 연결 방지를 위한 debounce 추가
React StrictMode에서 useEffect가 2번 실행되어
SSE 연결이 중복되는 문제 방지

* [FEAT] 알림 기능 on/off 플래그 추가 (VITE_NOTIFICATION_ENABLED)

- VITE_NOTIFICATION_ENABLED 환경 변수로 SSE 연결 제어
- 기본값 false (환경변수 미설정 시 비활성화)
- NotificationMenu에 비활성화 상태 UI 추가
- Lambda 동시성 이슈 대응용

* fix : 연속 선언된 변수 t 제거 (#199)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* [Feat] : AI 프리토킹(Speaking) 기능 구현 (#195) (#196)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* refactor : AI 말하기 routing 페이지 수정 (#202)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* refactor : AI 말하기 라우팅 페이지 수정

* [FEAT] 채팅 슬래시 명령어 시스템 구현 (#200) (#204)

- 채팅 명령어 타입 정의 (chatCommandTypes.js)
- CommandAutocomplete 컴포넌트 (/ 입력 시 명령어 자동완성)
- PollCard, PollResultBar 컴포넌트 (투표 UI)
- SystemCommandMessage 컴포넌트 (주사위, 동전, 랜덤 등)
- WebSocket 서비스에 새 메시지 타입 핸들링 추가
- ChatRoomPage에 명령어 처리 로직 통합

지원 명령어:
- /help, /members, /leave, /clear
- /dice, /coin, /random
- /poll, /vote, /endpoll

* [FEAT] 영어 끝말잇기(Word Chain) 게임 구현 (#205) (#206)

- wordchainService.js: API 서비스 (시작, 단어제출, 타임아웃, 종료)
- WordchainLobbyPage: 게임 로비 (방 목록, 생성)
- WordchainWaitingPage: 대기실 (참가자 대기, 게임 시작)
- WordchainPlayPage: 게임 플레이 페이지
- WordDisplay: 현재 단어 & 다음 글자 표시
- WordchainTimer: 원형 타이머 (시간 감소 애니메이션)
- PlayerList: 플레이어 목록 (활성/탈락 표시)
- UsedWordsList: 사용된 단어 목록
- WordInput: 단어 입력 필드
- GameEndModal: 게임 종료 모달 (순위, 단어 학습)
- WebSocket 핸들러 추가 (wordchain_*)
- 라우트 및 사이드바 네비게이션 추가

* [FIX] 채팅 슬래시 명령어 버그 수정 (#207)

* [FEAT] 채팅 슬래시 명령어 시스템 구현 (#200)

- 채팅 명령어 타입 정의 (chatCommandTypes.js)
- CommandAutocomplete 컴포넌트 (/ 입력 시 명령어 자동완성)
- PollCard, PollResultBar 컴포넌트 (투표 UI)
- SystemCommandMessage 컴포넌트 (주사위, 동전, 랜덤 등)
- WebSocket 서비스에 새 메시지 타입 핸들링 추가
- ChatRoomPage에 명령어 처리 로직 통합

지원 명령어:
- /help, /members, /leave, /clear
- /dice, /coin, /random
- /poll, /vote, /endpoll

* [FIX] 시스템 명령어 메시지 백엔드 응답 구조 대응

- useChatWebSocket: 백엔드 응답을 프론트엔드 형식으로 변환
- SystemCommandMessage: 다양한 응답 구조 처리
- displayText(message) 필드 우선 표시

* [FIX] 시스템 명령어 content 필드 매핑 수정

* [DEBUG] 시스템 명령어 메시지 디버깅 로그 추가

* [DEBUG] 시스템 명령어 메시지 추가 로그

* [DEBUG] ChatRoomPage 메시지 렌더링 로그 추가

* [DEBUG] SYSTEM_COMMAND 조건 체크 로그

* [FIX] ChatRoomModal에 SYSTEM_COMMAND 메시지 렌더링 추가

* [CLEANUP] 디버깅 로그 제거

* refactor : 로그인/인증 로직 정상화 및 채팅 서버 연결 및 메인 화면 헤더 프로필 상태 표시 (#208)

* refactor : 프리토킹 사용자 닉네임 수정

* refactor : 메인 헤더 프로필 드롭다운 메뉴 사용자 정보 동기화 리팩토링

* [FIX] 끝말잇기 게임 버그 수정 및 UI 개선 (#210)

* fix: API 토큰 갱신 로직 통합 및 Cognito 설정 환경변수화

- 모든 API 호출을 공통 axios 인스턴스로 통합
- 401 오류 시 토큰 자동 갱신 로직 일원화
- aws-config.js의 Cognito 설정을 환경변수로 변경
- newsService.js를 fetch에서 axios로 변경

* [FIX] 끝말잇기 게임 버그 수정 및 UI 개선

- 타이머 타임아웃 중복 호출 버그 수정 (timeoutSent 플래그 추가)
- 플레이어 닉네임 표시 수정 (userId 문자열 배열 → 객체 배열 매핑)
- 번역 파일에 끝말잇기 관련 번역 추가 (games.wordchainTitle, games.wordchainDesc)
- 대시보드 끝말잇기 카드 번역 함수 적용

---------

Co-authored-by: hyein Heo <128613248+hye-inA@users.noreply.github.com>

* feat : 오픽 말하기 연습 화면 및 기능 구현

* feature : 오픽 말하기 연습 결과 리포트 화면 구현

* feat : OPIc 말하기 연습 페이지 구현

---------

Co-authored-by: DDING JOO <ddingsha9@teambind.co.kr>

* [STYLE] Adjust formatting for improved readability and consistency

- Reformatted object and parameter destructuring across components.
- Improved alignment of nested code blocks and JSON literals.
- Introduced consistent indentation styling for JSX elements.

---------

Co-authored-by: hyein Heo <128613248+hye-inA@users.noreply.github.com>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
DDINGJOO added a commit that referenced this pull request Jan 28, 2026
* [Feat] : AI 프리토킹(Speaking) 기능 구현 (#195)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* [FEAT] SSE 기반 실시간 알림 시스템 연동 (#197) (#198)

* [FEAT] SSE 기반 실시간 알림 시스템 연동 (#197)
- SSE(Server-Sent Events)를 통한 실시간 알림 연동
- 알림 타입 정의 (BADGE_EARNED, DAILY_COMPLETE, TEST_COMPLETE 등 8종)
- useNotifications 훅 (EventSource API, 자동 재연결)
- NotificationContext (알림 상태 관리, 읽음 처리)
- NotificationToast (토스트 알림 UI)
- NotificationMenu (헤더 드롭다운 메뉴)
- VITE_NOTIFICATION_URL 환경 변수 추가
- 기존 하드코딩된 목 알림을 실제 시스템으로 교체

* [FIX] FreetalkAiPage → SpeakingPage 라우트 수정
정의되지 않은 FreetalkAiPage를 SpeakingPage로 교체

* [DEBUG] SSE 연결 디버깅 로그 추가
- connect 함수에 상세 로그 추가
- NotificationContext에 auth 상태 로그 추가
- 브라우저 콘솔에서 연결 상태 확인 가능

* [FIX] StrictMode 중복 연결 방지를 위한 debounce 추가
React StrictMode에서 useEffect가 2번 실행되어
SSE 연결이 중복되는 문제 방지

* [FEAT] 알림 기능 on/off 플래그 추가 (VITE_NOTIFICATION_ENABLED)

- VITE_NOTIFICATION_ENABLED 환경 변수로 SSE 연결 제어
- 기본값 false (환경변수 미설정 시 비활성화)
- NotificationMenu에 비활성화 상태 UI 추가
- Lambda 동시성 이슈 대응용

* fix : 연속 선언된 변수 t 제거 (#199)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* [Feat] : AI 프리토킹(Speaking) 기능 구현 (#195) (#196)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* refactor : AI 말하기 routing 페이지 수정 (#202)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* refactor : AI 말하기 라우팅 페이지 수정

* [FEAT] 채팅 슬래시 명령어 시스템 구현 (#200) (#204)

- 채팅 명령어 타입 정의 (chatCommandTypes.js)
- CommandAutocomplete 컴포넌트 (/ 입력 시 명령어 자동완성)
- PollCard, PollResultBar 컴포넌트 (투표 UI)
- SystemCommandMessage 컴포넌트 (주사위, 동전, 랜덤 등)
- WebSocket 서비스에 새 메시지 타입 핸들링 추가
- ChatRoomPage에 명령어 처리 로직 통합

지원 명령어:
- /help, /members, /leave, /clear
- /dice, /coin, /random
- /poll, /vote, /endpoll

* [FEAT] 영어 끝말잇기(Word Chain) 게임 구현 (#205) (#206)

- wordchainService.js: API 서비스 (시작, 단어제출, 타임아웃, 종료)
- WordchainLobbyPage: 게임 로비 (방 목록, 생성)
- WordchainWaitingPage: 대기실 (참가자 대기, 게임 시작)
- WordchainPlayPage: 게임 플레이 페이지
- WordDisplay: 현재 단어 & 다음 글자 표시
- WordchainTimer: 원형 타이머 (시간 감소 애니메이션)
- PlayerList: 플레이어 목록 (활성/탈락 표시)
- UsedWordsList: 사용된 단어 목록
- WordInput: 단어 입력 필드
- GameEndModal: 게임 종료 모달 (순위, 단어 학습)
- WebSocket 핸들러 추가 (wordchain_*)
- 라우트 및 사이드바 네비게이션 추가

* [FIX] 채팅 슬래시 명령어 버그 수정 (#207)

* [FEAT] 채팅 슬래시 명령어 시스템 구현 (#200)

- 채팅 명령어 타입 정의 (chatCommandTypes.js)
- CommandAutocomplete 컴포넌트 (/ 입력 시 명령어 자동완성)
- PollCard, PollResultBar 컴포넌트 (투표 UI)
- SystemCommandMessage 컴포넌트 (주사위, 동전, 랜덤 등)
- WebSocket 서비스에 새 메시지 타입 핸들링 추가
- ChatRoomPage에 명령어 처리 로직 통합

지원 명령어:
- /help, /members, /leave, /clear
- /dice, /coin, /random
- /poll, /vote, /endpoll

* [FIX] 시스템 명령어 메시지 백엔드 응답 구조 대응

- useChatWebSocket: 백엔드 응답을 프론트엔드 형식으로 변환
- SystemCommandMessage: 다양한 응답 구조 처리
- displayText(message) 필드 우선 표시

* [FIX] 시스템 명령어 content 필드 매핑 수정

* [DEBUG] 시스템 명령어 메시지 디버깅 로그 추가

* [DEBUG] 시스템 명령어 메시지 추가 로그

* [DEBUG] ChatRoomPage 메시지 렌더링 로그 추가

* [DEBUG] SYSTEM_COMMAND 조건 체크 로그

* [FIX] ChatRoomModal에 SYSTEM_COMMAND 메시지 렌더링 추가

* [CLEANUP] 디버깅 로그 제거

* refactor : 로그인/인증 로직 정상화 및 채팅 서버 연결 및 메인 화면 헤더 프로필 상태 표시 (#208)

* refactor : 프리토킹 사용자 닉네임 수정

* refactor : 메인 헤더 프로필 드롭다운 메뉴 사용자 정보 동기화 리팩토링

* [FIX] 끝말잇기 게임 버그 수정 및 UI 개선 (#210)

* fix: API 토큰 갱신 로직 통합 및 Cognito 설정 환경변수화

- 모든 API 호출을 공통 axios 인스턴스로 통합
- 401 오류 시 토큰 자동 갱신 로직 일원화
- aws-config.js의 Cognito 설정을 환경변수로 변경
- newsService.js를 fetch에서 axios로 변경

* [FIX] 끝말잇기 게임 버그 수정 및 UI 개선

- 타이머 타임아웃 중복 호출 버그 수정 (timeoutSent 플래그 추가)
- 플레이어 닉네임 표시 수정 (userId 문자열 배열 → 객체 배열 매핑)
- 번역 파일에 끝말잇기 관련 번역 추가 (games.wordchainTitle, games.wordchainDesc)
- 대시보드 끝말잇기 카드 번역 함수 적용

---------

Co-authored-by: hyein Heo <128613248+hye-inA@users.noreply.github.com>
DDINGJOO added a commit that referenced this pull request Jan 28, 2026
* [Feat] : AI 프리토킹(Speaking) 기능 구현 (#195)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* [FEAT] SSE 기반 실시간 알림 시스템 연동 (#197) (#198)

* [FEAT] SSE 기반 실시간 알림 시스템 연동 (#197)
- SSE(Server-Sent Events)를 통한 실시간 알림 연동
- 알림 타입 정의 (BADGE_EARNED, DAILY_COMPLETE, TEST_COMPLETE 등 8종)
- useNotifications 훅 (EventSource API, 자동 재연결)
- NotificationContext (알림 상태 관리, 읽음 처리)
- NotificationToast (토스트 알림 UI)
- NotificationMenu (헤더 드롭다운 메뉴)
- VITE_NOTIFICATION_URL 환경 변수 추가
- 기존 하드코딩된 목 알림을 실제 시스템으로 교체

* [FIX] FreetalkAiPage → SpeakingPage 라우트 수정
정의되지 않은 FreetalkAiPage를 SpeakingPage로 교체

* [DEBUG] SSE 연결 디버깅 로그 추가
- connect 함수에 상세 로그 추가
- NotificationContext에 auth 상태 로그 추가
- 브라우저 콘솔에서 연결 상태 확인 가능

* [FIX] StrictMode 중복 연결 방지를 위한 debounce 추가
React StrictMode에서 useEffect가 2번 실행되어
SSE 연결이 중복되는 문제 방지

* [FEAT] 알림 기능 on/off 플래그 추가 (VITE_NOTIFICATION_ENABLED)

- VITE_NOTIFICATION_ENABLED 환경 변수로 SSE 연결 제어
- 기본값 false (환경변수 미설정 시 비활성화)
- NotificationMenu에 비활성화 상태 UI 추가
- Lambda 동시성 이슈 대응용

* fix : 연속 선언된 변수 t 제거 (#199)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* [Feat] : AI 프리토킹(Speaking) 기능 구현 (#195) (#196)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* refactor : AI 말하기 routing 페이지 수정 (#202)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* refactor : AI 말하기 라우팅 페이지 수정

* refactor : AI 말하기 routing 페이지 수정  (#203)

* [Feat] : AI 프리토킹(Speaking) 기능 구현 (#195)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* [FEAT] SSE 기반 실시간 알림 시스템 연동 (#197) (#198)

* [FEAT] SSE 기반 실시간 알림 시스템 연동 (#197)
- SSE(Server-Sent Events)를 통한 실시간 알림 연동
- 알림 타입 정의 (BADGE_EARNED, DAILY_COMPLETE, TEST_COMPLETE 등 8종)
- useNotifications 훅 (EventSource API, 자동 재연결)
- NotificationContext (알림 상태 관리, 읽음 처리)
- NotificationToast (토스트 알림 UI)
- NotificationMenu (헤더 드롭다운 메뉴)
- VITE_NOTIFICATION_URL 환경 변수 추가
- 기존 하드코딩된 목 알림을 실제 시스템으로 교체

* [FIX] FreetalkAiPage → SpeakingPage 라우트 수정
정의되지 않은 FreetalkAiPage를 SpeakingPage로 교체

* [DEBUG] SSE 연결 디버깅 로그 추가
- connect 함수에 상세 로그 추가
- NotificationContext에 auth 상태 로그 추가
- 브라우저 콘솔에서 연결 상태 확인 가능

* [FIX] StrictMode 중복 연결 방지를 위한 debounce 추가
React StrictMode에서 useEffect가 2번 실행되어
SSE 연결이 중복되는 문제 방지

* [FEAT] 알림 기능 on/off 플래그 추가 (VITE_NOTIFICATION_ENABLED)

- VITE_NOTIFICATION_ENABLED 환경 변수로 SSE 연결 제어
- 기본값 false (환경변수 미설정 시 비활성화)
- NotificationMenu에 비활성화 상태 UI 추가
- Lambda 동시성 이슈 대응용

* fix : 연속 선언된 변수 t 제거 (#199)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* [Feat] : AI 프리토킹(Speaking) 기능 구현 (#195) (#196)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* refactor : AI 말하기 routing 페이지 수정 (#202)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* refactor : AI 말하기 라우팅 페이지 수정

---------

Co-authored-by: DDING JOO <ddingsha9@teambind.co.kr>

* [FEAT] 채팅 슬래시 명령어 시스템 구현 (#200) (#204)

- 채팅 명령어 타입 정의 (chatCommandTypes.js)
- CommandAutocomplete 컴포넌트 (/ 입력 시 명령어 자동완성)
- PollCard, PollResultBar 컴포넌트 (투표 UI)
- SystemCommandMessage 컴포넌트 (주사위, 동전, 랜덤 등)
- WebSocket 서비스에 새 메시지 타입 핸들링 추가
- ChatRoomPage에 명령어 처리 로직 통합

지원 명령어:
- /help, /members, /leave, /clear
- /dice, /coin, /random
- /poll, /vote, /endpoll

* [FEAT] 영어 끝말잇기(Word Chain) 게임 구현 (#205) (#206)

- wordchainService.js: API 서비스 (시작, 단어제출, 타임아웃, 종료)
- WordchainLobbyPage: 게임 로비 (방 목록, 생성)
- WordchainWaitingPage: 대기실 (참가자 대기, 게임 시작)
- WordchainPlayPage: 게임 플레이 페이지
- WordDisplay: 현재 단어 & 다음 글자 표시
- WordchainTimer: 원형 타이머 (시간 감소 애니메이션)
- PlayerList: 플레이어 목록 (활성/탈락 표시)
- UsedWordsList: 사용된 단어 목록
- WordInput: 단어 입력 필드
- GameEndModal: 게임 종료 모달 (순위, 단어 학습)
- WebSocket 핸들러 추가 (wordchain_*)
- 라우트 및 사이드바 네비게이션 추가

* [FIX] 채팅 슬래시 명령어 버그 수정 (#207)

* [FEAT] 채팅 슬래시 명령어 시스템 구현 (#200)

- 채팅 명령어 타입 정의 (chatCommandTypes.js)
- CommandAutocomplete 컴포넌트 (/ 입력 시 명령어 자동완성)
- PollCard, PollResultBar 컴포넌트 (투표 UI)
- SystemCommandMessage 컴포넌트 (주사위, 동전, 랜덤 등)
- WebSocket 서비스에 새 메시지 타입 핸들링 추가
- ChatRoomPage에 명령어 처리 로직 통합

지원 명령어:
- /help, /members, /leave, /clear
- /dice, /coin, /random
- /poll, /vote, /endpoll

* [FIX] 시스템 명령어 메시지 백엔드 응답 구조 대응

- useChatWebSocket: 백엔드 응답을 프론트엔드 형식으로 변환
- SystemCommandMessage: 다양한 응답 구조 처리
- displayText(message) 필드 우선 표시

* [FIX] 시스템 명령어 content 필드 매핑 수정

* [DEBUG] 시스템 명령어 메시지 디버깅 로그 추가

* [DEBUG] 시스템 명령어 메시지 추가 로그

* [DEBUG] ChatRoomPage 메시지 렌더링 로그 추가

* [DEBUG] SYSTEM_COMMAND 조건 체크 로그

* [FIX] ChatRoomModal에 SYSTEM_COMMAND 메시지 렌더링 추가

* [CLEANUP] 디버깅 로그 제거

* refactor : 로그인/인증 로직 정상화 및 채팅 서버 연결 및 메인 화면 헤더 프로필 상태 표시 (#208)

* refactor : 프리토킹 사용자 닉네임 수정

* refactor : 메인 헤더 프로필 드롭다운 메뉴 사용자 정보 동기화 리팩토링

* [FIX] 끝말잇기 게임 버그 수정 및 UI 개선 (#210)

* fix: API 토큰 갱신 로직 통합 및 Cognito 설정 환경변수화

- 모든 API 호출을 공통 axios 인스턴스로 통합
- 401 오류 시 토큰 자동 갱신 로직 일원화
- aws-config.js의 Cognito 설정을 환경변수로 변경
- newsService.js를 fetch에서 axios로 변경

* [FIX] 끝말잇기 게임 버그 수정 및 UI 개선

- 타이머 타임아웃 중복 호출 버그 수정 (timeoutSent 플래그 추가)
- 플레이어 닉네임 표시 수정 (userId 문자열 배열 → 객체 배열 매핑)
- 번역 파일에 끝말잇기 관련 번역 추가 (games.wordchainTitle, games.wordchainDesc)
- 대시보드 끝말잇기 카드 번역 함수 적용

* [FIX] 끝말잇기 게임 버그 수정 및 UI 개선 (#211)

* [Feat] : AI 프리토킹(Speaking) 기능 구현 (#195)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* [FEAT] SSE 기반 실시간 알림 시스템 연동 (#197) (#198)

* [FEAT] SSE 기반 실시간 알림 시스템 연동 (#197)
- SSE(Server-Sent Events)를 통한 실시간 알림 연동
- 알림 타입 정의 (BADGE_EARNED, DAILY_COMPLETE, TEST_COMPLETE 등 8종)
- useNotifications 훅 (EventSource API, 자동 재연결)
- NotificationContext (알림 상태 관리, 읽음 처리)
- NotificationToast (토스트 알림 UI)
- NotificationMenu (헤더 드롭다운 메뉴)
- VITE_NOTIFICATION_URL 환경 변수 추가
- 기존 하드코딩된 목 알림을 실제 시스템으로 교체

* [FIX] FreetalkAiPage → SpeakingPage 라우트 수정
정의되지 않은 FreetalkAiPage를 SpeakingPage로 교체

* [DEBUG] SSE 연결 디버깅 로그 추가
- connect 함수에 상세 로그 추가
- NotificationContext에 auth 상태 로그 추가
- 브라우저 콘솔에서 연결 상태 확인 가능

* [FIX] StrictMode 중복 연결 방지를 위한 debounce 추가
React StrictMode에서 useEffect가 2번 실행되어
SSE 연결이 중복되는 문제 방지

* [FEAT] 알림 기능 on/off 플래그 추가 (VITE_NOTIFICATION_ENABLED)

- VITE_NOTIFICATION_ENABLED 환경 변수로 SSE 연결 제어
- 기본값 false (환경변수 미설정 시 비활성화)
- NotificationMenu에 비활성화 상태 UI 추가
- Lambda 동시성 이슈 대응용

* fix : 연속 선언된 변수 t 제거 (#199)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* [Feat] : AI 프리토킹(Speaking) 기능 구현 (#195) (#196)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* refactor : AI 말하기 routing 페이지 수정 (#202)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* refactor : AI 말하기 라우팅 페이지 수정

* [FEAT] 채팅 슬래시 명령어 시스템 구현 (#200) (#204)

- 채팅 명령어 타입 정의 (chatCommandTypes.js)
- CommandAutocomplete 컴포넌트 (/ 입력 시 명령어 자동완성)
- PollCard, PollResultBar 컴포넌트 (투표 UI)
- SystemCommandMessage 컴포넌트 (주사위, 동전, 랜덤 등)
- WebSocket 서비스에 새 메시지 타입 핸들링 추가
- ChatRoomPage에 명령어 처리 로직 통합

지원 명령어:
- /help, /members, /leave, /clear
- /dice, /coin, /random
- /poll, /vote, /endpoll

* [FEAT] 영어 끝말잇기(Word Chain) 게임 구현 (#205) (#206)

- wordchainService.js: API 서비스 (시작, 단어제출, 타임아웃, 종료)
- WordchainLobbyPage: 게임 로비 (방 목록, 생성)
- WordchainWaitingPage: 대기실 (참가자 대기, 게임 시작)
- WordchainPlayPage: 게임 플레이 페이지
- WordDisplay: 현재 단어 & 다음 글자 표시
- WordchainTimer: 원형 타이머 (시간 감소 애니메이션)
- PlayerList: 플레이어 목록 (활성/탈락 표시)
- UsedWordsList: 사용된 단어 목록
- WordInput: 단어 입력 필드
- GameEndModal: 게임 종료 모달 (순위, 단어 학습)
- WebSocket 핸들러 추가 (wordchain_*)
- 라우트 및 사이드바 네비게이션 추가

* [FIX] 채팅 슬래시 명령어 버그 수정 (#207)

* [FEAT] 채팅 슬래시 명령어 시스템 구현 (#200)

- 채팅 명령어 타입 정의 (chatCommandTypes.js)
- CommandAutocomplete 컴포넌트 (/ 입력 시 명령어 자동완성)
- PollCard, PollResultBar 컴포넌트 (투표 UI)
- SystemCommandMessage 컴포넌트 (주사위, 동전, 랜덤 등)
- WebSocket 서비스에 새 메시지 타입 핸들링 추가
- ChatRoomPage에 명령어 처리 로직 통합

지원 명령어:
- /help, /members, /leave, /clear
- /dice, /coin, /random
- /poll, /vote, /endpoll

* [FIX] 시스템 명령어 메시지 백엔드 응답 구조 대응

- useChatWebSocket: 백엔드 응답을 프론트엔드 형식으로 변환
- SystemCommandMessage: 다양한 응답 구조 처리
- displayText(message) 필드 우선 표시

* [FIX] 시스템 명령어 content 필드 매핑 수정

* [DEBUG] 시스템 명령어 메시지 디버깅 로그 추가

* [DEBUG] 시스템 명령어 메시지 추가 로그

* [DEBUG] ChatRoomPage 메시지 렌더링 로그 추가

* [DEBUG] SYSTEM_COMMAND 조건 체크 로그

* [FIX] ChatRoomModal에 SYSTEM_COMMAND 메시지 렌더링 추가

* [CLEANUP] 디버깅 로그 제거

* refactor : 로그인/인증 로직 정상화 및 채팅 서버 연결 및 메인 화면 헤더 프로필 상태 표시 (#208)

* refactor : 프리토킹 사용자 닉네임 수정

* refactor : 메인 헤더 프로필 드롭다운 메뉴 사용자 정보 동기화 리팩토링

* [FIX] 끝말잇기 게임 버그 수정 및 UI 개선 (#210)

* fix: API 토큰 갱신 로직 통합 및 Cognito 설정 환경변수화

- 모든 API 호출을 공통 axios 인스턴스로 통합
- 401 오류 시 토큰 자동 갱신 로직 일원화
- aws-config.js의 Cognito 설정을 환경변수로 변경
- newsService.js를 fetch에서 axios로 변경

* [FIX] 끝말잇기 게임 버그 수정 및 UI 개선

- 타이머 타임아웃 중복 호출 버그 수정 (timeoutSent 플래그 추가)
- 플레이어 닉네임 표시 수정 (userId 문자열 배열 → 객체 배열 매핑)
- 번역 파일에 끝말잇기 관련 번역 추가 (games.wordchainTitle, games.wordchainDesc)
- 대시보드 끝말잇기 카드 번역 함수 적용

---------

Co-authored-by: hyein Heo <128613248+hye-inA@users.noreply.github.com>

* feat : 사용자 프로필 닉네임 표시 구현 (#212)

* refactor : AI 말하기 routing 페이지 수정  (#203)

* [Feat] : AI 프리토킹(Speaking) 기능 구현 (#195)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* [FEAT] SSE 기반 실시간 알림 시스템 연동 (#197) (#198)

* [FEAT] SSE 기반 실시간 알림 시스템 연동 (#197)
- SSE(Server-Sent Events)를 통한 실시간 알림 연동
- 알림 타입 정의 (BADGE_EARNED, DAILY_COMPLETE, TEST_COMPLETE 등 8종)
- useNotifications 훅 (EventSource API, 자동 재연결)
- NotificationContext (알림 상태 관리, 읽음 처리)
- NotificationToast (토스트 알림 UI)
- NotificationMenu (헤더 드롭다운 메뉴)
- VITE_NOTIFICATION_URL 환경 변수 추가
- 기존 하드코딩된 목 알림을 실제 시스템으로 교체

* [FIX] FreetalkAiPage → SpeakingPage 라우트 수정
정의되지 않은 FreetalkAiPage를 SpeakingPage로 교체

* [DEBUG] SSE 연결 디버깅 로그 추가
- connect 함수에 상세 로그 추가
- NotificationContext에 auth 상태 로그 추가
- 브라우저 콘솔에서 연결 상태 확인 가능

* [FIX] StrictMode 중복 연결 방지를 위한 debounce 추가
React StrictMode에서 useEffect가 2번 실행되어
SSE 연결이 중복되는 문제 방지

* [FEAT] 알림 기능 on/off 플래그 추가 (VITE_NOTIFICATION_ENABLED)

- VITE_NOTIFICATION_ENABLED 환경 변수로 SSE 연결 제어
- 기본값 false (환경변수 미설정 시 비활성화)
- NotificationMenu에 비활성화 상태 UI 추가
- Lambda 동시성 이슈 대응용

* fix : 연속 선언된 변수 t 제거 (#199)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* [Feat] : AI 프리토킹(Speaking) 기능 구현 (#195) (#196)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* refactor : AI 말하기 routing 페이지 수정 (#202)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* refactor : AI 말하기 라우팅 페이지 수정

---------

Co-authored-by: DDING JOO <ddingsha9@teambind.co.kr>

* refactor : 프리토킹 사용자 닉네임 수정

* refactor : 메인 헤더 프로필 드롭다운 메뉴 사용자 정보 동기화 리팩토링

* feat : 내 프로필 페이지 구현 및 닉네임 변경 API 연결

* [FIX] 끝말잇기 게임 버그 수정 및 UI 개선 (#211)

* [Feat] : AI 프리토킹(Speaking) 기능 구현 (#195)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* [FEAT] SSE 기반 실시간 알림 시스템 연동 (#197) (#198)

* [FEAT] SSE 기반 실시간 알림 시스템 연동 (#197)
- SSE(Server-Sent Events)를 통한 실시간 알림 연동
- 알림 타입 정의 (BADGE_EARNED, DAILY_COMPLETE, TEST_COMPLETE 등 8종)
- useNotifications 훅 (EventSource API, 자동 재연결)
- NotificationContext (알림 상태 관리, 읽음 처리)
- NotificationToast (토스트 알림 UI)
- NotificationMenu (헤더 드롭다운 메뉴)
- VITE_NOTIFICATION_URL 환경 변수 추가
- 기존 하드코딩된 목 알림을 실제 시스템으로 교체

* [FIX] FreetalkAiPage → SpeakingPage 라우트 수정
정의되지 않은 FreetalkAiPage를 SpeakingPage로 교체

* [DEBUG] SSE 연결 디버깅 로그 추가
- connect 함수에 상세 로그 추가
- NotificationContext에 auth 상태 로그 추가
- 브라우저 콘솔에서 연결 상태 확인 가능

* [FIX] StrictMode 중복 연결 방지를 위한 debounce 추가
React StrictMode에서 useEffect가 2번 실행되어
SSE 연결이 중복되는 문제 방지

* [FEAT] 알림 기능 on/off 플래그 추가 (VITE_NOTIFICATION_ENABLED)

- VITE_NOTIFICATION_ENABLED 환경 변수로 SSE 연결 제어
- 기본값 false (환경변수 미설정 시 비활성화)
- NotificationMenu에 비활성화 상태 UI 추가
- Lambda 동시성 이슈 대응용

* fix : 연속 선언된 변수 t 제거 (#199)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* [Feat] : AI 프리토킹(Speaking) 기능 구현 (#195) (#196)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* refactor : AI 말하기 routing 페이지 수정 (#202)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* refactor : AI 말하기 라우팅 페이지 수정

* [FEAT] 채팅 슬래시 명령어 시스템 구현 (#200) (#204)

- 채팅 명령어 타입 정의 (chatCommandTypes.js)
- CommandAutocomplete 컴포넌트 (/ 입력 시 명령어 자동완성)
- PollCard, PollResultBar 컴포넌트 (투표 UI)
- SystemCommandMessage 컴포넌트 (주사위, 동전, 랜덤 등)
- WebSocket 서비스에 새 메시지 타입 핸들링 추가
- ChatRoomPage에 명령어 처리 로직 통합

지원 명령어:
- /help, /members, /leave, /clear
- /dice, /coin, /random
- /poll, /vote, /endpoll

* [FEAT] 영어 끝말잇기(Word Chain) 게임 구현 (#205) (#206)

- wordchainService.js: API 서비스 (시작, 단어제출, 타임아웃, 종료)
- WordchainLobbyPage: 게임 로비 (방 목록, 생성)
- WordchainWaitingPage: 대기실 (참가자 대기, 게임 시작)
- WordchainPlayPage: 게임 플레이 페이지
- WordDisplay: 현재 단어 & 다음 글자 표시
- WordchainTimer: 원형 타이머 (시간 감소 애니메이션)
- PlayerList: 플레이어 목록 (활성/탈락 표시)
- UsedWordsList: 사용된 단어 목록
- WordInput: 단어 입력 필드
- GameEndModal: 게임 종료 모달 (순위, 단어 학습)
- WebSocket 핸들러 추가 (wordchain_*)
- 라우트 및 사이드바 네비게이션 추가

* [FIX] 채팅 슬래시 명령어 버그 수정 (#207)

* [FEAT] 채팅 슬래시 명령어 시스템 구현 (#200)

- 채팅 명령어 타입 정의 (chatCommandTypes.js)
- CommandAutocomplete 컴포넌트 (/ 입력 시 명령어 자동완성)
- PollCard, PollResultBar 컴포넌트 (투표 UI)
- SystemCommandMessage 컴포넌트 (주사위, 동전, 랜덤 등)
- WebSocket 서비스에 새 메시지 타입 핸들링 추가
- ChatRoomPage에 명령어 처리 로직 통합

지원 명령어:
- /help, /members, /leave, /clear
- /dice, /coin, /random
- /poll, /vote, /endpoll

* [FIX] 시스템 명령어 메시지 백엔드 응답 구조 대응

- useChatWebSocket: 백엔드 응답을 프론트엔드 형식으로 변환
- SystemCommandMessage: 다양한 응답 구조 처리
- displayText(message) 필드 우선 표시

* [FIX] 시스템 명령어 content 필드 매핑 수정

* [DEBUG] 시스템 명령어 메시지 디버깅 로그 추가

* [DEBUG] 시스템 명령어 메시지 추가 로그

* [DEBUG] ChatRoomPage 메시지 렌더링 로그 추가

* [DEBUG] SYSTEM_COMMAND 조건 체크 로그

* [FIX] ChatRoomModal에 SYSTEM_COMMAND 메시지 렌더링 추가

* [CLEANUP] 디버깅 로그 제거

* refactor : 로그인/인증 로직 정상화 및 채팅 서버 연결 및 메인 화면 헤더 프로필 상태 표시 (#208)

* refactor : 프리토킹 사용자 닉네임 수정

* refactor : 메인 헤더 프로필 드롭다운 메뉴 사용자 정보 동기화 리팩토링

* [FIX] 끝말잇기 게임 버그 수정 및 UI 개선 (#210)

* fix: API 토큰 갱신 로직 통합 및 Cognito 설정 환경변수화

- 모든 API 호출을 공통 axios 인스턴스로 통합
- 401 오류 시 토큰 자동 갱신 로직 일원화
- aws-config.js의 Cognito 설정을 환경변수로 변경
- newsService.js를 fetch에서 axios로 변경

* [FIX] 끝말잇기 게임 버그 수정 및 UI 개선

- 타이머 타임아웃 중복 호출 버그 수정 (timeoutSent 플래그 추가)
- 플레이어 닉네임 표시 수정 (userId 문자열 배열 → 객체 배열 매핑)
- 번역 파일에 끝말잇기 관련 번역 추가 (games.wordchainTitle, games.wordchainDesc)
- 대시보드 끝말잇기 카드 번역 함수 적용

---------

Co-authored-by: hyein Heo <128613248+hye-inA@users.noreply.github.com>

* fix : 중복 import문 제거

---------

Co-authored-by: DDING JOO <ddingsha9@teambind.co.kr>

* feature : 채팅 화면 컴포넌트에 닉네임 필드 추가  (#213)

* refactor : AI 말하기 routing 페이지 수정  (#203)

* [Feat] : AI 프리토킹(Speaking) 기능 구현 (#195)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* [FEAT] SSE 기반 실시간 알림 시스템 연동 (#197) (#198)

* [FEAT] SSE 기반 실시간 알림 시스템 연동 (#197)
- SSE(Server-Sent Events)를 통한 실시간 알림 연동
- 알림 타입 정의 (BADGE_EARNED, DAILY_COMPLETE, TEST_COMPLETE 등 8종)
- useNotifications 훅 (EventSource API, 자동 재연결)
- NotificationContext (알림 상태 관리, 읽음 처리)
- NotificationToast (토스트 알림 UI)
- NotificationMenu (헤더 드롭다운 메뉴)
- VITE_NOTIFICATION_URL 환경 변수 추가
- 기존 하드코딩된 목 알림을 실제 시스템으로 교체

* [FIX] FreetalkAiPage → SpeakingPage 라우트 수정
정의되지 않은 FreetalkAiPage를 SpeakingPage로 교체

* [DEBUG] SSE 연결 디버깅 로그 추가
- connect 함수에 상세 로그 추가
- NotificationContext에 auth 상태 로그 추가
- 브라우저 콘솔에서 연결 상태 확인 가능

* [FIX] StrictMode 중복 연결 방지를 위한 debounce 추가
React StrictMode에서 useEffect가 2번 실행되어
SSE 연결이 중복되는 문제 방지

* [FEAT] 알림 기능 on/off 플래그 추가 (VITE_NOTIFICATION_ENABLED)

- VITE_NOTIFICATION_ENABLED 환경 변수로 SSE 연결 제어
- 기본값 false (환경변수 미설정 시 비활성화)
- NotificationMenu에 비활성화 상태 UI 추가
- Lambda 동시성 이슈 대응용

* fix : 연속 선언된 변수 t 제거 (#199)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* [Feat] : AI 프리토킹(Speaking) 기능 구현 (#195) (#196)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* refactor : AI 말하기 routing 페이지 수정 (#202)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* refactor : AI 말하기 라우팅 페이지 수정

---------

Co-authored-by: DDING JOO <ddingsha9@teambind.co.kr>

* refactor : 프리토킹 사용자 닉네임 수정

* refactor : 메인 헤더 프로필 드롭다운 메뉴 사용자 정보 동기화 리팩토링

* feat : 내 프로필 페이지 구현 및 닉네임 변경 API 연결

* [FIX] 끝말잇기 게임 버그 수정 및 UI 개선 (#211)

* [Feat] : AI 프리토킹(Speaking) 기능 구현 (#195)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* [FEAT] SSE 기반 실시간 알림 시스템 연동 (#197) (#198)

* [FEAT] SSE 기반 실시간 알림 시스템 연동 (#197)
- SSE(Server-Sent Events)를 통한 실시간 알림 연동
- 알림 타입 정의 (BADGE_EARNED, DAILY_COMPLETE, TEST_COMPLETE 등 8종)
- useNotifications 훅 (EventSource API, 자동 재연결)
- NotificationContext (알림 상태 관리, 읽음 처리)
- NotificationToast (토스트 알림 UI)
- NotificationMenu (헤더 드롭다운 메뉴)
- VITE_NOTIFICATION_URL 환경 변수 추가
- 기존 하드코딩된 목 알림을 실제 시스템으로 교체

* [FIX] FreetalkAiPage → SpeakingPage 라우트 수정
정의되지 않은 FreetalkAiPage를 SpeakingPage로 교체

* [DEBUG] SSE 연결 디버깅 로그 추가
- connect 함수에 상세 로그 추가
- NotificationContext에 auth 상태 로그 추가
- 브라우저 콘솔에서 연결 상태 확인 가능

* [FIX] StrictMode 중복 연결 방지를 위한 debounce 추가
React StrictMode에서 useEffect가 2번 실행되어
SSE 연결이 중복되는 문제 방지

* [FEAT] 알림 기능 on/off 플래그 추가 (VITE_NOTIFICATION_ENABLED)

- VITE_NOTIFICATION_ENABLED 환경 변수로 SSE 연결 제어
- 기본값 false (환경변수 미설정 시 비활성화)
- NotificationMenu에 비활성화 상태 UI 추가
- Lambda 동시성 이슈 대응용

* fix : 연속 선언된 변수 t 제거 (#199)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* [Feat] : AI 프리토킹(Speaking) 기능 구현 (#195) (#196)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* refactor : AI 말하기 routing 페이지 수정 (#202)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* refactor : AI 말하기 라우팅 페이지 수정

* [FEAT] 채팅 슬래시 명령어 시스템 구현 (#200) (#204)

- 채팅 명령어 타입 정의 (chatCommandTypes.js)
- CommandAutocomplete 컴포넌트 (/ 입력 시 명령어 자동완성)
- PollCard, PollResultBar 컴포넌트 (투표 UI)
- SystemCommandMessage 컴포넌트 (주사위, 동전, 랜덤 등)
- WebSocket 서비스에 새 메시지 타입 핸들링 추가
- ChatRoomPage에 명령어 처리 로직 통합

지원 명령어:
- /help, /members, /leave, /clear
- /dice, /coin, /random
- /poll, /vote, /endpoll

* [FEAT] 영어 끝말잇기(Word Chain) 게임 구현 (#205) (#206)

- wordchainService.js: API 서비스 (시작, 단어제출, 타임아웃, 종료)
- WordchainLobbyPage: 게임 로비 (방 목록, 생성)
- WordchainWaitingPage: 대기실 (참가자 대기, 게임 시작)
- WordchainPlayPage: 게임 플레이 페이지
- WordDisplay: 현재 단어 & 다음 글자 표시
- WordchainTimer: 원형 타이머 (시간 감소 애니메이션)
- PlayerList: 플레이어 목록 (활성/탈락 표시)
- UsedWordsList: 사용된 단어 목록
- WordInput: 단어 입력 필드
- GameEndModal: 게임 종료 모달 (순위, 단어 학습)
- WebSocket 핸들러 추가 (wordchain_*)
- 라우트 및 사이드바 네비게이션 추가

* [FIX] 채팅 슬래시 명령어 버그 수정 (#207)

* [FEAT] 채팅 슬래시 명령어 시스템 구현 (#200)

- 채팅 명령어 타입 정의 (chatCommandTypes.js)
- CommandAutocomplete 컴포넌트 (/ 입력 시 명령어 자동완성)
- PollCard, PollResultBar 컴포넌트 (투표 UI)
- SystemCommandMessage 컴포넌트 (주사위, 동전, 랜덤 등)
- WebSocket 서비스에 새 메시지 타입 핸들링 추가
- ChatRoomPage에 명령어 처리 로직 통합

지원 명령어:
- /help, /members, /leave, /clear
- /dice, /coin, /random
- /poll, /vote, /endpoll

* [FIX] 시스템 명령어 메시지 백엔드 응답 구조 대응

- useChatWebSocket: 백엔드 응답을 프론트엔드 형식으로 변환
- SystemCommandMessage: 다양한 응답 구조 처리
- displayText(message) 필드 우선 표시

* [FIX] 시스템 명령어 content 필드 매핑 수정

* [DEBUG] 시스템 명령어 메시지 디버깅 로그 추가

* [DEBUG] 시스템 명령어 메시지 추가 로그

* [DEBUG] ChatRoomPage 메시지 렌더링 로그 추가

* [DEBUG] SYSTEM_COMMAND 조건 체크 로그

* [FIX] ChatRoomModal에 SYSTEM_COMMAND 메시지 렌더링 추가

* [CLEANUP] 디버깅 로그 제거

* refactor : 로그인/인증 로직 정상화 및 채팅 서버 연결 및 메인 화면 헤더 프로필 상태 표시 (#208)

* refactor : 프리토킹 사용자 닉네임 수정

* refactor : 메인 헤더 프로필 드롭다운 메뉴 사용자 정보 동기화 리팩토링

* [FIX] 끝말잇기 게임 버그 수정 및 UI 개선 (#210)

* fix: API 토큰 갱신 로직 통합 및 Cognito 설정 환경변수화

- 모든 API 호출을 공통 axios 인스턴스로 통합
- 401 오류 시 토큰 자동 갱신 로직 일원화
- aws-config.js의 Cognito 설정을 환경변수로 변경
- newsService.js를 fetch에서 axios로 변경

* [FIX] 끝말잇기 게임 버그 수정 및 UI 개선

- 타이머 타임아웃 중복 호출 버그 수정 (timeoutSent 플래그 추가)
- 플레이어 닉네임 표시 수정 (userId 문자열 배열 → 객체 배열 매핑)
- 번역 파일에 끝말잇기 관련 번역 추가 (games.wordchainTitle, games.wordchainDesc)
- 대시보드 끝말잇기 카드 번역 함수 적용

---------

Co-authored-by: hyein Heo <128613248+hye-inA@users.noreply.github.com>

* fix : 중복 import문 제거

* featrue : 채팅화면 컴포넌트에 보내는 사람(닉네임) 추가

---------

Co-authored-by: DDING JOO <ddingsha9@teambind.co.kr>

* Feature : OPIc 모의고사 테스트 진행(녹음/제출) 및 세션 완료 기능 구현 (#216)

* refactor : AI 말하기 routing 페이지 수정  (#203)

* [Feat] : AI 프리토킹(Speaking) 기능 구현 (#195)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* [FEAT] SSE 기반 실시간 알림 시스템 연동 (#197) (#198)

* [FEAT] SSE 기반 실시간 알림 시스템 연동 (#197)
- SSE(Server-Sent Events)를 통한 실시간 알림 연동
- 알림 타입 정의 (BADGE_EARNED, DAILY_COMPLETE, TEST_COMPLETE 등 8종)
- useNotifications 훅 (EventSource API, 자동 재연결)
- NotificationContext (알림 상태 관리, 읽음 처리)
- NotificationToast (토스트 알림 UI)
- NotificationMenu (헤더 드롭다운 메뉴)
- VITE_NOTIFICATION_URL 환경 변수 추가
- 기존 하드코딩된 목 알림을 실제 시스템으로 교체

* [FIX] FreetalkAiPage → SpeakingPage 라우트 수정
정의되지 않은 FreetalkAiPage를 SpeakingPage로 교체

* [DEBUG] SSE 연결 디버깅 로그 추가
- connect 함수에 상세 로그 추가
- NotificationContext에 auth 상태 로그 추가
- 브라우저 콘솔에서 연결 상태 확인 가능

* [FIX] StrictMode 중복 연결 방지를 위한 debounce 추가
React StrictMode에서 useEffect가 2번 실행되어
SSE 연결이 중복되는 문제 방지

* [FEAT] 알림 기능 on/off 플래그 추가 (VITE_NOTIFICATION_ENABLED)

- VITE_NOTIFICATION_ENABLED 환경 변수로 SSE 연결 제어
- 기본값 false (환경변수 미설정 시 비활성화)
- NotificationMenu에 비활성화 상태 UI 추가
- Lambda 동시성 이슈 대응용

* fix : 연속 선언된 변수 t 제거 (#199)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* [Feat] : AI 프리토킹(Speaking) 기능 구현 (#195) (#196)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* refactor : AI 말하기 routing 페이지 수정 (#202)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* refactor : AI 말하기 라우팅 페이지 수정

---------

Co-authored-by: DDING JOO <ddingsha9@teambind.co.kr>

* [FIX] 끝말잇기 게임 버그 수정 및 UI 개선 (#211)

* [Feat] : AI 프리토킹(Speaking) 기능 구현 (#195)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* [FEAT] SSE 기반 실시간 알림 시스템 연동 (#197) (#198)

* [FEAT] SSE 기반 실시간 알림 시스템 연동 (#197)
- SSE(Server-Sent Events)를 통한 실시간 알림 연동
- 알림 타입 정의 (BADGE_EARNED, DAILY_COMPLETE, TEST_COMPLETE 등 8종)
- useNotifications 훅 (EventSource API, 자동 재연결)
- NotificationContext (알림 상태 관리, 읽음 처리)
- NotificationToast (토스트 알림 UI)
- NotificationMenu (헤더 드롭다운 메뉴)
- VITE_NOTIFICATION_URL 환경 변수 추가
- 기존 하드코딩된 목 알림을 실제 시스템으로 교체

* [FIX] FreetalkAiPage → SpeakingPage 라우트 수정
정의되지 않은 FreetalkAiPage를 SpeakingPage로 교체

* [DEBUG] SSE 연결 디버깅 로그 추가
- connect 함수에 상세 로그 추가
- NotificationContext에 auth 상태 로그 추가
- 브라우저 콘솔에서 연결 상태 확인 가능

* [FIX] StrictMode 중복 연결 방지를 위한 debounce 추가
React StrictMode에서 useEffect가 2번 실행되어
SSE 연결이 중복되는 문제 방지

* [FEAT] 알림 기능 on/off 플래그 추가 (VITE_NOTIFICATION_ENABLED)

- VITE_NOTIFICATION_ENABLED 환경 변수로 SSE 연결 제어
- 기본값 false (환경변수 미설정 시 비활성화)
- NotificationMenu에 비활성화 상태 UI 추가
- Lambda 동시성 이슈 대응용

* fix : 연속 선언된 변수 t 제거 (#199)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* [Feat] : AI 프리토킹(Speaking) 기능 구현 (#195) (#196)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* refactor : AI 말하기 routing 페이지 수정 (#202)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* refactor : AI 말하기 라우팅 페이지 수정

* [FEAT] 채팅 슬래시 명령어 시스템 구현 (#200) (#204)

- 채팅 명령어 타입 정의 (chatCommandTypes.js)
- CommandAutocomplete 컴포넌트 (/ 입력 시 명령어 자동완성)
- PollCard, PollResultBar 컴포넌트 (투표 UI)
- SystemCommandMessage 컴포넌트 (주사위, 동전, 랜덤 등)
- WebSocket 서비스에 새 메시지 타입 핸들링 추가
- ChatRoomPage에 명령어 처리 로직 통합

지원 명령어:
- /help, /members, /leave, /clear
- /dice, /coin, /random
- /poll, /vote, /endpoll

* [FEAT] 영어 끝말잇기(Word Chain) 게임 구현 (#205) (#206)

- wordchainService.js: API 서비스 (시작, 단어제출, 타임아웃, 종료)
- WordchainLobbyPage: 게임 로비 (방 목록, 생성)
- WordchainWaitingPage: 대기실 (참가자 대기, 게임 시작)
- WordchainPlayPage: 게임 플레이 페이지
- WordDisplay: 현재 단어 & 다음 글자 표시
- WordchainTimer: 원형 타이머 (시간 감소 애니메이션)
- PlayerList: 플레이어 목록 (활성/탈락 표시)
- UsedWordsList: 사용된 단어 목록
- WordInput: 단어 입력 필드
- GameEndModal: 게임 종료 모달 (순위, 단어 학습)
- WebSocket 핸들러 추가 (wordchain_*)
- 라우트 및 사이드바 네비게이션 추가

* [FIX] 채팅 슬래시 명령어 버그 수정 (#207)

* [FEAT] 채팅 슬래시 명령어 시스템 구현 (#200)

- 채팅 명령어 타입 정의 (chatCommandTypes.js)
- CommandAutocomplete 컴포넌트 (/ 입력 시 명령어 자동완성)
- PollCard, PollResultBar 컴포넌트 (투표 UI)
- SystemCommandMessage 컴포넌트 (주사위, 동전, 랜덤 등)
- WebSocket 서비스에 새 메시지 타입 핸들링 추가
- ChatRoomPage에 명령어 처리 로직 통합

지원 명령어:
- /help, /members, /leave, /clear
- /dice, /coin, /random
- /poll, /vote, /endpoll

* [FIX] 시스템 명령어 메시지 백엔드 응답 구조 대응

- useChatWebSocket: 백엔드 응답을 프론트엔드 형식으로 변환
- SystemCommandMessage: 다양한 응답 구조 처리
- displayText(message) 필드 우선 표시

* [FIX] 시스템 명령어 content 필드 매핑 수정

* [DEBUG] 시스템 명령어 메시지 디버깅 로그 추가

* [DEBUG] 시스템 명령어 메시지 추가 로그

* [DEBUG] ChatRoomPage 메시지 렌더링 로그 추가

* [DEBUG] SYSTEM_COMMAND 조건 체크 로그

* [FIX] ChatRoomModal에 SYSTEM_COMMAND 메시지 렌더링 추가

* [CLEANUP] 디버깅 로그 제거

* refactor : 로그인/인증 로직 정상화 및 채팅 서버 연결 및 메인 화면 헤더 프로필 상태 표시 (#208)

* refactor : 프리토킹 사용자 닉네임 수정

* refactor : 메인 헤더 프로필 드롭다운 메뉴 사용자 정보 동기화 리팩토링

* [FIX] 끝말잇기 게임 버그 수정 및 UI 개선 (#210)

* fix: API 토큰 갱신 로직 통합 및 Cognito 설정 환경변수화

- 모든 API 호출을 공통 axios 인스턴스로 통합
- 401 오류 시 토큰 자동 갱신 로직 일원화
- aws-config.js의 Cognito 설정을 환경변수로 변경
- newsService.js를 fetch에서 axios로 변경

* [FIX] 끝말잇기 게임 버그 수정 및 UI 개선

- 타이머 타임아웃 중복 호출 버그 수정 (timeoutSent 플래그 추가)
- 플레이어 닉네임 표시 수정 (userId 문자열 배열 → 객체 배열 매핑)
- 번역 파일에 끝말잇기 관련 번역 추가 (games.wordchainTitle, games.wordchainDesc)
- 대시보드 끝말잇기 카드 번역 함수 적용

---------

Co-authored-by: hyein Heo <128613248+hye-inA@users.noreply.github.com>

* feat : 오픽 말하기 연습 화면 및 기능 구현

---------

Co-authored-by: DDING JOO <ddingsha9@teambind.co.kr>

* featrue : OPIC 말하기연습 전체 세션에 대한 피드백 리포트 화면 구현 (#218)

* refactor : AI 말하기 routing 페이지 수정  (#203)

* [Feat] : AI 프리토킹(Speaking) 기능 구현 (#195)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* [FEAT] SSE 기반 실시간 알림 시스템 연동 (#197) (#198)

* [FEAT] SSE 기반 실시간 알림 시스템 연동 (#197)
- SSE(Server-Sent Events)를 통한 실시간 알림 연동
- 알림 타입 정의 (BADGE_EARNED, DAILY_COMPLETE, TEST_COMPLETE 등 8종)
- useNotifications 훅 (EventSource API, 자동 재연결)
- NotificationContext (알림 상태 관리, 읽음 처리)
- NotificationToast (토스트 알림 UI)
- NotificationMenu (헤더 드롭다운 메뉴)
- VITE_NOTIFICATION_URL 환경 변수 추가
- 기존 하드코딩된 목 알림을 실제 시스템으로 교체

* [FIX] FreetalkAiPage → SpeakingPage 라우트 수정
정의되지 않은 FreetalkAiPage를 SpeakingPage로 교체

* [DEBUG] SSE 연결 디버깅 로그 추가
- connect 함수에 상세 로그 추가
- NotificationContext에 auth 상태 로그 추가
- 브라우저 콘솔에서 연결 상태 확인 가능

* [FIX] StrictMode 중복 연결 방지를 위한 debounce 추가
React StrictMode에서 useEffect가 2번 실행되어
SSE 연결이 중복되는 문제 방지

* [FEAT] 알림 기능 on/off 플래그 추가 (VITE_NOTIFICATION_ENABLED)

- VITE_NOTIFICATION_ENABLED 환경 변수로 SSE 연결 제어
- 기본값 false (환경변수 미설정 시 비활성화)
- NotificationMenu에 비활성화 상태 UI 추가
- Lambda 동시성 이슈 대응용

* fix : 연속 선언된 변수 t 제거 (#199)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* [Feat] : AI 프리토킹(Speaking) 기능 구현 (#195) (#196)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* refactor : AI 말하기 routing 페이지 수정 (#202)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* refactor : AI 말하기 라우팅 페이지 수정

---------

Co-authored-by: DDING JOO <ddingsha9@teambind.co.kr>

* [FIX] 끝말잇기 게임 버그 수정 및 UI 개선 (#211)

* [Feat] : AI 프리토킹(Speaking) 기능 구현 (#195)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* [FEAT] SSE 기반 실시간 알림 시스템 연동 (#197) (#198)

* [FEAT] SSE 기반 실시간 알림 시스템 연동 (#197)
- SSE(Server-Sent Events)를 통한 실시간 알림 연동
- 알림 타입 정의 (BADGE_EARNED, DAILY_COMPLETE, TEST_COMPLETE 등 8종)
- useNotifications 훅 (EventSource API, 자동 재연결)
- NotificationContext (알림 상태 관리, 읽음 처리)
- NotificationToast (토스트 알림 UI)
- NotificationMenu (헤더 드롭다운 메뉴)
- VITE_NOTIFICATION_URL 환경 변수 추가
- 기존 하드코딩된 목 알림을 실제 시스템으로 교체

* [FIX] FreetalkAiPage → SpeakingPage 라우트 수정
정의되지 않은 FreetalkAiPage를 SpeakingPage로 교체

* [DEBUG] SSE 연결 디버깅 로그 추가
- connect 함수에 상세 로그 추가
- NotificationContext에 auth 상태 로그 추가
- 브라우저 콘솔에서 연결 상태 확인 가능

* [FIX] StrictMode 중복 연결 방지를 위한 debounce 추가
React StrictMode에서 useEffect가 2번 실행되어
SSE 연결이 중복되는 문제 방지

* [FEAT] 알림 기능 on/off 플래그 추가 (VITE_NOTIFICATION_ENABLED)

- VITE_NOTIFICATION_ENABLED 환경 변수로 SSE 연결 제어
- 기본값 false (환경변수 미설정 시 비활성화)
- NotificationMenu에 비활성화 상태 UI 추가
- Lambda 동시성 이슈 대응용

* fix : 연속 선언된 변수 t 제거 (#199)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* [Feat] : AI 프리토킹(Speaking) 기능 구현 (#195) (#196)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* refactor : AI 말하기 routing 페이지 수정 (#202)

* feat : AI 말하기 연습 화면 구현

* refactor : Rest API 변경에 따른 화면 구현 변경

* feature : AI와 대화하기 UI & STT서비스 구현

* refactor : AI 말하기 라우팅 페이지 수정

* [FEAT] 채팅 슬래시 명령어 시스템 구현 (#200) (#204)

- 채팅 명령어 타입 정의 (chatCommandTypes.js)
- CommandAutocomplete 컴포넌트 (/ 입력 시 명령어 자동완성)
- PollCard, PollResultBar 컴포넌트 (투표 UI)
- SystemCommandMessage 컴포넌트 (주사위, 동전, 랜덤 등)
- WebSocket 서비스에 새 메시지 타입 핸들링 추가
- ChatRoomPage에 명령어 처리 로직 통합

지원 명령어:
- /help, /members, /leave, /clear
- /dice, /coin, /random
- /poll, /vote, /endpoll

* [FEAT] 영어 끝말잇기(Word Chain) 게임 구현 (#205) (#206)

- wordchainService.js: API 서비스 (시작, 단어제출, 타임아웃, 종료)
- WordchainLobbyPage: 게임 로비 (방 목록, 생성)
- WordchainWaitingPage: 대기실 (참가자 대기, 게임 시작)
- WordchainPlayPage: 게임 플레이 페이지
- WordDisplay: 현재 단어 & 다음 글자 표시
- WordchainTimer: 원형 타이머 (시간 감소 애니메이션)
- PlayerList: 플레이어 목록 (활성/탈락 표시)
- UsedWordsList: 사용된 단어 목록
- WordInput: 단어 입력 필드
- GameEndModal: 게임 종료 모달 (순위, 단어 학습)
- WebSocket 핸들러 추가 (wordchain_*)
- 라우트 및 사이드바 네비게이션 추가

* [FIX] 채팅 슬래시 명령어 버그 수정 (#207)

* [FEAT] 채팅 슬래시 명령어 시스템 구현 (#200)

- 채팅 명령어 타입 정의 (chatCommandTypes.js)
- CommandAutocomplete 컴포넌트 (/ 입력 시 명령어 자동완성)
- PollCard, PollResultBar 컴포넌트 (투표 UI)
- SystemCommandMessage 컴포넌트 (주사위, 동전, 랜덤 등)
- WebSocket 서비스에 새 메시지 타입 핸들링 추가
- ChatRoomPage에 명령어 처리 로직 통합

지원 명령어:
- /help, /members, /leave, /clear
- /dice, /coin, /random
- /poll, /vote, /endpoll

* [FIX] 시스템 명령어 메시지 백엔드 응답 구조 대응

- useChatWebSocket: 백엔드 응답을 프론트엔드 형식으로 변환
- SystemCommandMessage: 다양한 응답 구조 처리
- displayText(message) 필드 우선 표시

* [FIX] 시스템 명령어 content 필드 매핑 수정

* [DEBUG] 시스템 명령어 메시지 디버깅 로그 추가

* [DEBUG] 시스템 명령어 메시지 추가 로그

* [DEBUG] ChatRoomPage 메시지 렌더링 로그 추가

* [DEBUG] SYSTEM_COMMAND 조건 체크 로그

* [FIX] ChatRoomModal에 SYSTEM_COMMAND 메시지 렌더링 추가

* [CLEANUP] 디버깅 로그 제거

* refactor : 로그인/인증 로직 정상화 및 채팅 서버 연결 및 메인 화면 헤더 프로필 상태 표시 (#208)

* refactor : 프리토킹 사용자 닉네임 수정

* refactor : 메인 헤더 프로필 드롭다운 메뉴 사용자 정보 동기화 리팩토링

* [FIX] 끝말잇기 게임 버그 수정 및 UI 개선 (#210)

* fix: API 토큰 갱신 로직 통합 및 Cognito 설정 환경변수화

- 모든 API 호출을 공통 axios 인스턴스로 통합
- 401 오류 시 토큰 자동 갱신 로직 일원화
- aws-config.js의 Cognito 설정을 환경변수로 변경
- newsService.js를 fetch에서 axios로 변경

* [FIX] 끝말잇기 게임 버그 수정 및 UI 개선

- 타이머 타임아웃 중복 호출 버그 수정 (timeoutSent 플래그 추가)
- 플레이어 닉네임 표시 수정 (userId 문자열 배열 → 객체 배열 매핑)
- 번역 파일에 끝말잇기 관련 번역 추가 (games.wordchainTitle, games.wordchainDesc)
- 대시보드 끝말잇기 카드 번역 함수 적용

---------

Co-authored-by: hyein Heo <128613248+hye-inA@users.noreply.github.com>

* feat : 오픽 말하기 연습 화면 및 기능 구현

* feature : 오픽 말하기 연습 결과 리포트 화면 구현

* feat : OPIc 말하기 연습 페이지 구현

---------

Co-authored-by: DDING JOO <ddingsha9@teambind.co.kr>

* [STYLE] Adjust formatting for improved readability and consistency

- Reformatted object and parameter destructuring across components.
- Improved alignment of nested code blocks and JSON literals.
- Introduced consistent indentation styling for JSX elements.

* fix: 채팅 시스템 명령어 및 투표 UI 표시 버그 수정

- WaitingChat: SYSTEM_COMMAND 메시지 타입 처리 추가 (/dice, /coin 등)
- WaitingChat: POLL_CREATE, POLL_VOTE, POLL_END 메시지 UI 추가
- ChatRoomModal: 투표 관련 메시지 UI 추가
- useChatWebSocket: onPollCreate에서 서버의 content 필드 포함

* fix: 투표 결과 및 투표 알림 메시지 표시 추가

- onPollEnd: 투표 종료 결과 메시지 추가
- onPollVote: 투표 알림 메시지 추가 (서버에서 content 제공 시)

* debug: 시스템 명령어 로그 추가 및 displayText 추출 개선

- onSystemCommand에 디버그 로그 추가
- displayText를 여러 위치에서 추출 시도
- content 필드 추가하여 fallback 렌더링 지원

* debug: system_command 케이스 로그 추가

* debug: poll end 메시지 추가 로그

---------

Co-authored-by: hyein Heo <128613248+hye-inA@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

frontend Frontend code changes layer:api API/Services layer layer:store State management layer

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants