Conversation
- Header: 로고, 네비게이션, 프로필 드롭다운, 알림, 다크모드 토글 - Sidebar: 학습 모드 메뉴, 접기/펼치기, 반응형 - Footer: 저작권, 링크 - MainLayout: Header + Sidebar + Content + Footer 통합 - ThemeContext: 다크모드 지원 - Dashboard: 학습 모드 카드 UI
…o-title [FEAT] 메인 레이아웃 구현
- 영어공부: OPIC 연습, 작문 연습 하위 메뉴 추가 - 프리토킹: 사람들과, AI와 하위 메뉴 추가 - 하위 메뉴 접기/펼치기 기능 (Collapse) - 펼침 상태 localStorage 저장 - Dashboard 학습 모드 카드 업데이트 (3개로 변경) - Dashboard 이모지 제거
- ChatRoomCard 컴포넌트 추가 - FreetalkPeoplePage 페이지 구현 - 레벨 필터링, 검색 기능 추가 - 더미 데이터로 UI 테스트
…freetalk-people-list [FEAT] 프리토킹(사람들과) 채팅방 리스트 페이지 구현
- 영어공부/프리토킹 -> 말하기연습/쓰기연습으로 최상단 카테고리 변경 - 말하기연습: 오픽연습, AI와 말해보기 - 쓰기연습: 사람들과 채팅하기, 작문연습 - localStorage 기본 펼침 상태 키 업데이트 - 관련 아이콘 변경 (Mic, Create) Closes #28
- 영어공부/프리토킹 -> 말하기연습/쓰기연습으로 변경 - 말하기연습: 오픽연습, AI와 말해보기 - 쓰기연습: 사람들과 채팅하기, 작문연습 - 카드 설명 문구 업데이트
- 클릭 방식에서 호버 방식으로 변경 - onMouseEnter/onMouseLeave 이벤트 적용
- flexbox에서 Grid 레이아웃으로 변경하여 호버 시 레이아웃 깨짐 방지 - 카드 width 고정으로 안정적인 반응형 지원
…ategory-restructure [FEAT] Sidebar 및 Dashboard 메뉴 카테고리 구조 변경
- height: 100%로 Grid 내 카드 높이 통일 - flexbox 레이아웃 적용으로 내부 콘텐츠 균일 배치
- Grid item에 display: flex, alignItems: stretch 적용 - Card에 width: 100% 추가
- height: 160px로 모든 카드 크기 통일 - 내용 길이에 관계없이 일정한 카드 크기 유지 Closes #31
- 참여자 아바타 그룹 제거 - 너비 300px, 높이 140px로 고정
- 높이 100px로 축소 - 생성일을 마지막 대화 옆으로 이동 - 생성일 날짜만 표시 (시간 제거)
- 입장 버튼 추가 (우측 상단, outlined 스타일) - 비밀방 자물쇠 아이콘 표시 - 간단한 소개 표시 추가 - 생성일자 하단에 표시 - 카드 높이 140px로 조정 - 더미 데이터에 description, createdAt, isPrivate 추가
- 입장 버튼 클릭 시 모달 팝업 - 일반방: 방 정보 확인 후 입장 - 비밀방: 비밀번호 입력 후 입장 - 참여중 필터 추가 (레벨 필터 옆) - 생성일 형식 변경 (연/월/일) - 더미 데이터에 isJoined 필드 추가
…ard-fixed-size [FIX] 채팅방 카드 고정 크기 적용
- ChatContext를 통한 전역 채팅 상태 관리 - 드래그 가능한 플로팅 채팅 모달 구현 - 최소화/최대화 기능 추가 - 모든 메시지 TTS 재생 기능 - 페이지 이동 시에도 채팅 유지 - Redux store 초기화 오류 수정 - 스크롤바 hover 시에만 표시
…chatroom-list-api [FEAT] 채팅방 API 연동 및 채팅 UI 구현
- 최소화 시 현재 위치 저장 후 우측 하단으로 자동 이동 - 최대화 시 저장된 위치로 복원 Closes #47
…-minimize [FIX] 채팅 모달 최소화 시 우측 하단 이동
- SettingsContext 추가 (localStorage 저장) - 설정 페이지에 음성 선택 UI 추가 (MALE/FEMALE) - voiceService에 voice 파라미터 추가 - ChatRoomModal에서 선택된 음성으로 TTS 재생 Closes #49
…ice-settings [FEAT] TTS 음성 선택 기능
- voiceService.synthesize: text -> messageId, roomId 파라미터 변경 - ChatRoomPage, ChatRoomModal handlePlayTTS 수정 - 백엔드 API 스펙 변경에 따른 필수 대응
…i-change [CR] TTS API 변경 대응 (#53)
- 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 : 메인 헤더 프로필 드롭다운 메뉴 사용자 정보 동기화 리팩토링
|
Jira: MESP-310 |
* 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>
* [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
* [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>
- 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 렌더링 지원
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.
작업 내용
프론트엔드 (Redux & UI)
src/App.jsx: 로그인 성공 시 사용자 프로필을 가져오는 액션(fetchMyProfile) 디스패치 로직 추가src/store/index.js: profileReducer가 Store에 등록되어 있지 않던 문제 해결 (reducer 추가)../../MainLayout/Header/index.jsx: 하드코딩되어 있던 user@example.com 제거Redux Store의 profile 상태를 구독하여 실제 닉네임과 이메일이 표시되도록 수정
관련 백엔드/인프라 (AWS 설정 변경 사항)