Conversation
* 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서비스 구현 * 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) - 대시보드 끝말잇기 카드 번역 함수 적용
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Test plan