Skip to content

Release: develop → prod 배포#220

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

Release: develop → prod 배포#220
DDINGJOO merged 25 commits into
prodfrom
develop

Conversation

@DDINGJOO

Copy link
Copy Markdown
Contributor

Summary

  • OPIC 말하기연습 피드백 리포트 화면 구현
  • OPIc 모의고사 테스트 진행(녹음/제출) 및 세션 완료 기능
  • 채팅 화면 닉네임 필드 추가
  • 사용자 프로필 닉네임 표시
  • 끝말잇기 게임 버그 수정 및 UI 개선
  • 채팅 시스템 명령어(/dice, /coin 등) UI 표시 버그 수정
  • 투표 기능(생성/투표/종료) UI 표시 버그 수정
  • DailyLearning isDark 변수 참조 오류 수정

Test plan

  • OPIC 말하기연습 피드백 리포트 확인
  • OPIc 모의고사 녹음/제출 테스트
  • 채팅 화면 닉네임 표시 확인
  • 채팅 명령어 (/dice, /coin, /poll) 테스트
  • 투표 생성/투표/종료 UI 표시 확인
  • 끝말잇기 게임 동작 확인

hye-inA and others added 24 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 말하기 라우팅 페이지 수정
* [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>
- 채팅 명령어 타입 정의 (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)
- 대시보드 끝말잇기 카드 번역 함수 적용
* [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>
* 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>
* 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>
* 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>
* 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>
- Reformatted object and parameter destructuring across components.
- Improved alignment of nested code blocks and JSON literals.
- Introduced consistent indentation styling for JSX elements.
Resolved formatting conflicts in:
- src/App.jsx: Keep ProfilePage and OPIcPage imports
- src/domains/freetalk/components/ChatRoomModal.jsx: Keep consistent formatting
- WaitingChat: SYSTEM_COMMAND 메시지 타입 처리 추가 (/dice, /coin 등)
- WaitingChat: POLL_CREATE, POLL_VOTE, POLL_END 메시지 UI 추가
- ChatRoomModal: 투표 관련 메시지 UI 추가
- useChatWebSocket: onPollCreate에서 서버의 content 필드 포함
- onPollEnd: 투표 종료 결과 메시지 추가
- onPollVote: 투표 알림 메시지 추가 (서버에서 content 제공 시)
- onSystemCommand에 디버그 로그 추가
- displayText를 여러 위치에서 추출 시도
- content 필드 추가하여 fallback 렌더링 지원
@github-actions github-actions Bot added frontend Frontend code changes layer:store State management layer layer:api API/Services layer labels Jan 28, 2026
@github-actions github-actions Bot removed layer:store State management layer layer:api API/Services layer labels Jan 28, 2026
@DDINGJOO DDINGJOO merged commit bdde03d into prod Jan 28, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

frontend Frontend code changes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants