Skip to content

deploy: 2.0.0 배포 (#145)#146

Merged
AndyH0ng merged 100 commits intomainfrom
develop
Feb 9, 2026
Merged

deploy: 2.0.0 배포 (#145)#146
AndyH0ng merged 100 commits intomainfrom
develop

Conversation

@AndyH0ng
Copy link
Member

@AndyH0ng AndyH0ng commented Feb 9, 2026

📌 관련 이슈

💡 참고 사항

스크린샷, 참고 링크, 추가 설명 등 (없으면 생략 가능)

kimyw1018 and others added 30 commits February 5, 2026 14:17
@AndyH0ng AndyH0ng self-assigned this Feb 9, 2026
@github-actions github-actions bot added component 컴포넌트 관련 변경 page 페이지 관련 변경 types 타입 정의 변경 store 상태 관리 변경 hooks 커스텀 훅 변경 config 설정 파일 변경 dependencies 의존성 변경 labels Feb 9, 2026
@AndyH0ng AndyH0ng linked an issue Feb 9, 2026 that may be closed by this pull request
11 tasks
@AndyH0ng AndyH0ng merged commit 5ff2990 into main Feb 9, 2026
9 of 10 checks passed
@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @AndyH0ng, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

이 PR은 영상 및 피드백 시스템의 핵심적인 개선 사항들을 포함하고 있습니다. API DTO의 전면적인 재정의를 통해 데이터 모델의 일관성을 확보하고, 인증 플로우를 현대적인 웹 표준에 맞춰 재구축했습니다. 또한, 사용자 피드백을 시각화하는 인사이트 기능을 확장하고, 클라이언트 측 상태 관리 로직을 최적화하여 전반적인 사용자 경험과 개발 효율성을 향상시키는 데 중점을 두었습니다.

Highlights

  • 영상 및 피드백 기능 대규모 리팩토링: 영상 관련 DTO(Data Transfer Object)가 대폭 개편되었으며, 댓글 및 리액션 상태 관리 로직이 개선되었습니다. 이는 영상 목록 조회, 상세 보기, 녹화 및 피드백 처리 전반에 걸쳐 더 견고하고 확장 가능한 구조를 제공합니다.
  • OAuth 인증 플로우 개선: OAuth 콜백 처리 방식이 변경되어, 액세스 토큰과 세션 ID는 URL 파라미터로 전달되고 리프레시 토큰은 HttpOnly 쿠키로 설정됩니다. 이는 보안을 강화하고 클라이언트 측에서 토큰을 직접 관리하는 복잡성을 줄입니다.
  • 인사이트 페이지 기능 강화: 인사이트 페이지에 새로운 차트 컴포넌트(잔존율 차트)와 최근 댓글 피드백 섹션이 추가되었습니다. 이를 통해 사용자들은 발표 영상에 대한 더 깊이 있는 분석과 피드백을 시각적으로 확인할 수 있습니다.
  • 댓글 및 리액션 상태 관리 최적화: 슬라이드 및 영상 댓글/리액션 관리를 위한 새로운 훅(useSlideCommentsActions, useSlideCommentsLoader, useVideoReactions)이 도입되어, Optimistic UI 업데이트와 서버 동기화가 더욱 효율적으로 이루어집니다.
  • 개발 환경 개선 및 유틸리티 추가: .env.production 파일이 .gitignore에 추가되었고, cross-env 패키지가 도입되어 환경 변수 관리가 용이해졌습니다. 또한, JWT 페이로드 파싱 유틸리티가 추가되어 클라이언트 측에서 토큰 정보를 안전하게 활용할 수 있습니다.
Changelog
  • .gitignore
    • .env.production 파일이 .gitignore에 추가되어 프로덕션 환경 변수 파일이 버전 관리에서 제외됩니다.
    • pnpm-lock.yaml.gitignore에서 제외되지 않도록 변경되었습니다.
  • package-lock.json
    • cross-env 개발 의존성이 추가되었습니다.
    • 여러 의존성에 peer: true 속성이 추가되었습니다.
    • @epic-web/invariant 의존성이 추가되었습니다.
  • package.json
    • cross-env 개발 의존성이 추가되었습니다.
    • dev:local 스크립트가 cross-env를 사용하도록 수정되었습니다.
  • public/mockServiceWorker.js
    • 코드 스타일이 세미콜론 없는 형식으로 변경되었습니다.
  • src/App.tsx
    • OAuth 콜백 메시지를 처리하는 useEffect 훅이 추가되었습니다. window.opener로부터 메시지를 받아 JWT 페이로드를 파싱하고 로그인 처리를 수행합니다.
  • src/api/client.ts
    • axios.create 설정에서 withCredentialsfalse에서 true로 변경되어 크로스-사이트 요청 시 자격 증명(쿠키 등)이 포함됩니다.
  • src/api/dto/auth.dto.ts
    • SocialLoginTokensResponseDto에서 refreshToken 필드가 제거되었습니다 (HttpOnly 쿠키로 전달).
    • JWT 페이로드의 타입을 정의하는 JwtPayloadDto 인터페이스가 추가되었습니다.
  • src/api/dto/comments.dto.ts
    • 댓글 및 답글 관련 DTO들이 리팩토링되었습니다. CreateReplyCommentRequestDto, CreateReplyCommentResponseDto, UpdateCommentResponseDto, DeleteCommentResponseDto 등이 변경/추가되었으며, GetReplyListResponseDto에 페이지네이션 정보가 포함되었습니다.
  • src/api/dto/index.ts
    • 새로 추가된 DTO들이 익스포트 목록에 반영되었습니다.
  • src/api/dto/presentations.dto.ts
    • UpdateProjectDtoUpdateProjectRequestDto로 이름이 변경되었고, UpdateProjectResponseDto, GetPresentationsRequestDto, DeleteProjectResponseDto가 추가되었습니다.
  • src/api/dto/reactions.dto.ts
    • ToggleVideoReactionResponseDtoreactionIdvideoId 필드가 추가되었습니다.
    • 영상 리액션 타임라인 및 요약 조회를 위한 ReadVideoReactionSummaryItemDto, ReadVideoReactionTimelineMarkerDto, ReadVideoReactionTimelineResponseDto DTO가 추가되었습니다.
  • src/api/dto/video.dto.ts
    • 영상 관련 DTO들이 대규모로 리팩토링되었습니다. VideoStatus, VideoListItemDto, VideoDetailDto, VideoTimelineDto 등 새로운 타입들이 정의되었으며, 영상 녹화, 조회, 수정, 삭제를 위한 상세 DTO들이 추가되었습니다.
  • src/api/endpoints/auth.ts
    • 인증 관련 엔드포인트 파일이 제거되었습니다. OAuth 콜백 로직은 App.tsxOAuthCallbackPage.tsx로 이동되었습니다.
  • src/api/endpoints/comments.ts
    • 댓글 API 호출이 새로운 DTO 및 파라미터 형식에 맞춰 업데이트되었습니다. getReplies는 이제 페이지네이션을 지원하며, deleteComment는 객체 파라미터를 받습니다.
  • src/api/endpoints/presentations.ts
    • 프레젠테이션 API 호출이 새로운 DTO 및 파라미터 형식에 맞춰 업데이트되었습니다. 특히, 프로젝트 삭제 시 캐시 무효화 로직이 개선되었습니다.
  • src/api/endpoints/videoReactions.ts
    • 영상 리액션의 특정 시점 조회 (getVideoReactions) 및 타임라인 조회 (getVideoReactionTimeline)를 위한 새로운 엔드포인트 함수가 추가되었습니다.
  • src/api/endpoints/videos.ts
    • 영상 관련 API 호출이 새로운 DTO 및 파라미터 형식에 맞춰 업데이트되었습니다. commentDtoToModel 유틸리티가 제거되었습니다.
  • src/api/index.ts
    • auth 엔드포인트 익스포트가 제거되었습니다.
  • src/api/queryClient.ts
    • presentations.list 쿼리 키가 필터/정렬 파라미터를 포함하도록 업데이트되었습니다.
    • 영상 리액션 관련 새로운 쿼리 키들이 추가되었습니다.
  • src/components/comment/Comment.tsx
    • 댓글 ID 속성이 id에서 commentId로 변경되었으며, 수정/삭제 버튼의 스타일이 조정되었습니다.
  • src/components/comment/CommentList.tsx
    • 댓글 키 속성이 id에서 commentId로 변경되었습니다.
  • src/components/comment/CommentPopover.tsx
    • 댓글 키 속성이 id에서 commentId로 변경되었습니다.
  • src/components/common/TitleEditorPopover.tsx
    • titleClassName prop이 추가되었고, 기본 클래스와 최소 너비가 조정되었습니다.
  • src/components/feedback/ProgressBar.tsx
    • 세그먼트 하이라이트의 key 속성이 indextopReactionType을 포함하도록 업데이트되어 React 경고를 방지합니다.
  • src/components/feedback/ScriptSection.tsx
    • SlideListItem 임포트가 일반 types로 변경되었습니다.
  • src/components/feedback/SlideViewer.tsx
    • script prop이 추가되었습니다.
  • src/components/feedback/slide/SlideInfoPanel.tsx
    • slide prop이 script prop으로 변경되었고, 스크립트 표시 로직이 업데이트되었습니다.
  • src/components/feedback/video/SlideWebcamStage.tsx
    • eslint-disable no-console 주석이 추가되었습니다.
  • src/components/feedback/video/VideoPlaybackBar.tsx
    • useVideoReactionTimeline 훅을 통합하여 세그먼트 하이라이트를 생성하고, buildHighlightsFromTimeline 유틸리티가 추가되었습니다.
  • src/components/insight/DropOffAnalysisSection.tsx
    • 데이터가 없을 때 메시지를 표시하기 위한 noDataMessagehasSlideDropOff/hasVideoDropOff 검사 로직이 추가되었습니다.
  • src/components/insight/RecentCommentsSection.tsx
    • 최근 댓글을 표시하는 새로운 컴포넌트가 추가되었습니다.
  • src/components/insight/charts/RetentionChartCard.tsx
    • 잔존율 차트를 표시하는 새로운 컴포넌트가 추가되었습니다.
  • src/components/insight/charts/RetentionChartTooltip.tsx
    • 잔존율 차트 툴팁을 위한 새로운 컴포넌트가 추가되었습니다.
  • src/components/insight/index.ts
    • 새로운 인사이트 컴포넌트 및 타입들이 익스포트 목록에 추가되었습니다.
  • src/components/insight/types.ts
    • 인사이트 페이지 모델을 위한 타입 정의 파일이 새로 추가되었습니다.
  • src/components/presentation/PresentationCard.tsx
    • VideoPresentation 타입을 처리하도록 props가 업데이트되었고, 댓글/리액션/조회수 표시가 조정되었으며, mode prop이 추가되었습니다.
  • src/components/presentation/PresentationList.tsx
    • VideoPresentation 타입을 처리하도록 props가 업데이트되었고, 댓글/리액션/조회수 표시가 조정되었으며, mode prop이 추가되었습니다.
  • src/components/slide/SlideWorkspace.tsx
    • 슬라이드 댓글 및 스크립트 로딩 로직이 useSlideCommentsLoaderuseScript를 사용하도록 리팩토링되었습니다.
  • src/components/slide/script/CommentPopover.tsx
    • useComments 훅이 useSlideCommentsActions로 대체되었습니다.
  • src/components/slide/script/SlideTitle.tsx
    • 읽기 전용 제목의 스타일이 조정되었고, TitleEditorPopovertitleClassName prop이 추가되었습니다.
  • src/components/video/DeviceTestSection.tsx
    • 제목 및 비디오 미리보기의 스타일이 조정되었습니다.
  • src/components/video/RecordingSection.tsx
    • 슬라이드 이미지 URL 검색 로직이 리팩토링되었고, 현재 슬라이드 스크립트를 위해 useScript가 통합되었습니다.
  • src/components/video/VideoListPage.tsx
    • 이전 목업 파일이 제거되었습니다.
  • src/constants/navigation.ts
    • 네비게이션 탭 키 videovideos로 변경되었습니다.
  • src/constants/video.ts
    • FEEDBACK_WINDOW 상수가 5초에서 2초로 변경되었습니다.
  • src/hooks/index.ts
    • 새로 추가되거나 이름이 변경된 훅들이 익스포트 목록에 반영되었습니다.
  • src/hooks/queries/useCommentQueries.ts
    • 파일 이름이 src/hooks/queries/useSlideCommentsQuery.ts로 변경되었고, 댓글 ID 속성이 id에서 commentId로 업데이트되었습니다.
  • src/hooks/queries/usePresentations.ts
    • usePresentationsWithFilters 훅이 추가되었고, 프로젝트 삭제 시 캐시 무효화 로직이 개선되었습니다.
  • src/hooks/queries/useReaction.ts
    • JSDoc 주석이 추가되었습니다.
  • src/hooks/queries/useScript.ts
    • JSDoc 파일 헤더가 제거되었습니다.
  • src/hooks/queries/useShares.ts
    • JSDoc 파일 헤더가 제거되었습니다.
  • src/hooks/queries/useSlides.ts
    • JSDoc 주석이 추가되었습니다.
  • src/hooks/queries/useVideoReactionQueries.ts
    • useVideoReactionWindowuseVideoReactionTimeline 훅이 추가되었습니다.
  • src/hooks/useAnalytics.ts
    • 파일 이름이 src/hooks/queries/useAnalytics.ts로 변경되었고, JSDoc 주석이 추가되었습니다.
  • src/hooks/useComments.ts
    • 파일 이름이 src/hooks/useSlideCommentsActions.ts로 변경되었고, 댓글 ID 속성이 id에서 commentId로 업데이트되었으며, 캐시 무효화 로직이 조정되었습니다.
  • src/hooks/useExitTracker.ts
    • JSDoc 주석이 추가되었습니다.
  • src/hooks/useFeedbackVideo.ts
    • 파일이 src/pages/feedback/useFeedbackVideo.ts로 이동되었습니다.
  • src/hooks/useFeedbackWebSocket.ts
    • videoId 타입이 number에서 string으로 변경되었습니다.
  • src/hooks/useInsightPageModel.ts
    • 인사이트 페이지 데이터를 관리하는 새로운 훅이 추가되었습니다.
  • src/hooks/useMediaStream.ts
    • 개발 환경에서만 console.error를 출력하도록 변경되었습니다.
  • src/hooks/usePresentationDeletion.ts
    • JSDoc 주석이 추가되었고, 삭제 성공 시 토스트 메시지가 업데이트되었습니다.
  • src/hooks/usePresentationList.ts
    • JSDoc 주석이 추가되었습니다.
  • src/hooks/useProjectVideos.ts
    • 프로젝트 비디오를 가져오는 새로운 훅이 추가되었습니다.
  • src/hooks/useReactions.ts
    • 파일 이름이 src/hooks/useSlideReactions.ts로 변경되었습니다.
  • src/hooks/useRecorder.ts
    • JSDoc 주석이 추가되었습니다.
  • src/hooks/useSlideCommentsLoader.ts
    • 슬라이드 댓글 로딩을 위한 새로운 훅이 추가되었습니다.
  • src/hooks/useSlideNavigation.ts
    • JSDoc 주석이 추가되었습니다.
  • src/hooks/useUploadFile.ts
    • JSDoc 주석이 추가되었습니다.
  • src/hooks/useVideoComments.ts
    • 댓글 ID 속성이 id에서 commentId로 업데이트되었고, extractTimestampFromComment가 통합되었으며, API 호출이 업데이트되었습니다.
  • src/hooks/useVideoReactions.ts
    • useVideoReactionWindowwindowSummary를 사용하도록 리액션 로직이 리팩토링되었습니다.
  • src/hooks/useVideoSync.ts
    • JSDoc 주석이 추가되었습니다.
  • src/hooks/useVideoUpload.ts
    • videoId 타입이 number에서 string으로 변경되었고, 개발 모드에서 로컬 스토리지에 목업 비디오를 저장하는 로직이 추가되었습니다.
  • src/mocks/handlers.ts
    • 인증, 프로젝트, 댓글, 리액션, 비디오 관련 목업 API 핸들러가 새로운 DTO 및 로직에 맞춰 대폭 업데이트되었습니다. OAuth 콜백은 이제 URL 파라미터로 토큰을 전달하고 리프레시 토큰을 HttpOnly 쿠키로 설정합니다. 비디오 관련 핸들러가 크게 확장되었습니다.
  • src/mocks/slides.ts
    • SlideListItemSlideDetail로 업데이트되었고, 댓글 ID 속성이 id에서 commentId로 변경되었습니다.
  • src/mocks/videos.ts
    • 비디오 관련 목업 데이터가 대규모로 리팩토링되었습니다. mockVideoList, mockVideoDetails, mockTimelines가 도입되었고, 비디오 필터링/정렬을 위한 헬퍼 함수들이 추가되었습니다.
  • src/pages/FeedbackSlidePage.tsx
    • 댓글 및 스크립트 로딩 로직이 리팩토링되었고, useSlideCommentsActions, useSlideReactions, useScript, useSlideCommentsLoader가 통합되었습니다.
  • src/pages/FeedbackVideoPage.tsx
    • useFeedbackVideo 임포트 경로가 업데이트되었습니다.
  • src/pages/HomePage.tsx
    • 프로젝트 목록 조회를 위해 usePresentationsWithFilters가 통합되었습니다.
  • src/pages/InsightPage.tsx
    • 인사이트 페이지의 데이터 페칭 및 차트 렌더링 로직이 useInsightPageModel 및 새로운 차트 컴포넌트들로 대체되었습니다.
  • src/pages/OAuthCallbackPage.tsx
    • OAuth 콜백 로직이 새로운 토큰 플로우(JWT 페이로드 파싱, postMessage를 통한 window.opener 통신)를 처리하도록 리팩토링되었습니다.
  • src/pages/VideoDetailPage.tsx
    • 새로운 파일이 추가되었습니다 (현재 주석 처리되어 있으며, 향후 기능 또는 플레이스홀더로 보입니다).
  • src/pages/VideoListPage.tsx
    • 프로젝트의 비디오 목록을 표시하는 새로운 파일이 추가되었습니다.
  • src/pages/VideoRecordPage.tsx
    • 녹화 후 네비게이션 경로가 업데이트되었습니다.
  • src/pages/dev-test/DevTestPage.tsx
    • AuthTokenSection이 추가되었습니다.
  • src/pages/dev-test/sections/AuthTokenSection.tsx
    • 인증 토큰 테스트를 위한 새로운 컴포넌트가 추가되었습니다.
  • src/pages/feedback/useFeedbackVideo.ts
    • 새로운 파일이 추가되었습니다 (이전 src/hooks/useFeedbackVideo.ts에서 이동).
  • src/pages/index.ts
    • 페이지 익스포트 목록이 업데이트되었습니다.
  • src/router/Router.tsx
    • videos 탭 및 피드백 페이지를 위한 라우트가 업데이트되었습니다.
  • src/stores/authStore.ts
    • login 함수의 시그니처가 변경되었습니다 (refreshToken 파라미터 제거).
  • src/stores/slideStore.ts
    • slide 타입이 SlideListItem에서 SlideDetail로 업데이트되었고, updateSlideupdateScript 액션이 추가되었습니다.
  • src/stores/videoFeedbackStore.ts
    • videoId 타입이 number에서 string으로 변경되었고, hasCommentIdupdateCommentServerId 로직이 업데이트되었습니다.
  • src/types/auth.ts
    • User 인터페이스의 name 속성이 선택 사항으로 변경되었습니다.
  • src/types/comment.ts
    • 댓글 ID 속성이 id에서 commentId로 이름이 변경되었습니다.
  • src/types/index.ts
    • 새로운 슬라이드 타입들을 위한 익스포트가 업데이트되었습니다.
  • src/types/insight.ts
    • DropOffSlidecount 속성이 추가되었습니다.
  • src/types/navigation.ts
    • TabKey 타입이 video에서 videos로 변경되었습니다.
  • src/types/presentation.ts
    • ProjectUpdateResponse 타입이 제거되었습니다.
  • src/types/recording.ts
    • SlideListItemSlideDetail로 업데이트되었습니다.
  • src/types/slide.ts
    • SlideListItem이 리팩토링되었고, 확장된 속성을 위한 SlideDetail 인터페이스가 도입되었습니다.
  • src/types/video.ts
    • videoId 타입이 number에서 string으로 변경되었고, MockVideoVideoPresentation 인터페이스가 추가되었습니다.
  • src/types/websocket.ts
    • videoId 타입이 number에서 string으로 변경되었습니다.
  • src/utils/comment.ts
    • 댓글 ID 속성이 id에서 commentId로 업데이트되었고, addReplyToTreedeleteFromTree 함수가 제거되었습니다.
  • src/utils/jwt.ts
    • JWT 페이로드 파싱을 위한 새로운 유틸리티 파일이 추가되었습니다.
Activity
  • 제공된 정보에 따르면, 이 풀 리퀘스트에는 아직 인간 활동(예: 댓글, 리뷰)이 없습니다.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request primarily focuses on refactoring API DTOs and related hooks for comments, presentations, reactions, and videos, introducing more granular and consistent data structures, including pagination for replies and detailed video timeline data. Key changes include moving OAuth callback handling to the client-side, updating package.json and package-lock.json to include cross-env and declare peer: true for various dependencies, and modifying the dev:local script to use cross-env. The .gitignore file was updated to ignore .env.production and explicitly track pnpm-lock.yaml. Frontend components and hooks were adjusted to align with the new DTOs and API endpoints, such as updating comment IDs from id to commentId, enhancing the video playback bar with reaction timeline data, and improving insight sections with more robust data handling and UI. Review comments highlighted a missing sort logic for comments, a removed hover style for a delete button, and an unnecessary space in a cross-env command, along with a suggestion to conditionally log console.error messages in development environments.

Comment on lines 94 to 97
const comments = useMemo(() => {
if (!flatComments) return EMPTY_COMMENTS;
const tree = flatToTree(flatComments);
return [...tree].sort(
(a, b) => new Date(b.createdAt).getTime() - new Date(a.createdAt).getTime(),
);
return flatToTree(flatComments);
}, [flatComments]);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

이전 버전에서는 댓글 목록을 최신순으로 정렬하는 로직이 있었으나, 리팩토링 과정에서 제거된 것으로 보입니다. 일반적으로 사용자는 최신 댓글을 먼저 보기를 기대하므로, flatToTree 함수를 호출한 후에 생성 날짜(createdAt)를 기준으로 내림차순 정렬을 다시 추가하는 것을 고려해 보세요.

  const comments = useMemo(() => {
    if (!flatComments) return EMPTY_COMMENTS;
    const tree = flatToTree(flatComments);
    return [...tree].sort(
      (a, b) => new Date(b.createdAt).getTime() - new Date(a.createdAt).getTime(),
    );
  }, [flatComments]);

"scripts": {
"dev": "vite",
"dev:local": "VITE_API_MOCKING=true vite",
"dev:local": " cross-env VITE_API_MOCKING=true vite",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

dev:local 스크립트의 cross-env 명령어 앞에 불필요한 공백이 있습니다. 일부 셸 환경에서 예기치 않은 동작을 유발할 수 있으므로 제거하는 것이 좋습니다.

Suggested change
"dev:local": " cross-env VITE_API_MOCKING=true vite",
"dev:local": "cross-env VITE_API_MOCKING=true vite",

onClick={handleDelete}
aria-label="댓글 삭제"
className="flex items-center gap-1 rounded text-caption-bold text-error hover:text-red-400 active:opacity-80 focus-visible:outline-2 focus-visible:outline-error"
className="flex items-center gap-1 rounded text-caption-bold text-error active:opacity-80 focus-visible:outline-2 focus-visible:outline-error"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

댓글 삭제 버튼의 hover 스타일이 제거되었습니다. 사용자에게 더 나은 시각적 피드백을 제공하기 위해 hover:text-red-400과 같은 스타일을 다시 추가하는 것을 고려해 보세요.

Suggested change
className="flex items-center gap-1 rounded text-caption-bold text-error active:opacity-80 focus-visible:outline-2 focus-visible:outline-error"
className="flex items-center gap-1 rounded text-caption-bold text-error hover:text-red-400 active:opacity-80 focus-visible:outline-2 focus-visible:outline-error"

* - "작은 박스(PiP)"를 hover하면 디밍+텍스트, 클릭하면 슬라이드/웹캠 위치가 토글됨
* - HLS(.m3u8) 스트리밍 지원 (hls.js)
*/
/* eslint-disable no-console */
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

eslint-disable no-console 주석이 추가되었고, 파일 내에 console.logconsole.error 호출이 남아있습니다. 프로덕션 빌드에서는 이러한 로그들이 제거되도록 하거나, 의도된 디버깅 목적이라면 개발 환경에서만 출력되도록 조건부 로직을 추가하는 것이 좋습니다.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@kimyw1018 여기서 ESLint 끄신 이유가 있나요?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

component 컴포넌트 관련 변경 config 설정 파일 변경 dependencies 의존성 변경 hooks 커스텀 훅 변경 page 페이지 관련 변경 store 상태 관리 변경 types 타입 정의 변경

Projects

None yet

Development

Successfully merging this pull request may close these issues.

deploy: 2.0.0 배포

5 participants