Skip to content

build: 3차 QA 배포#622

Merged
HIHJH merged 14 commits intomainfrom
dev
Feb 24, 2026
Merged

build: 3차 QA 배포#622
HIHJH merged 14 commits intomainfrom
dev

Conversation

@HIHJH
Copy link
Collaborator

@HIHJH HIHJH commented Feb 24, 2026

No description provided.

lja3723 and others added 14 commits February 24, 2026 02:48
* chore: 제미나이 응답 실패시 에러 로그 출력하도록 로그 추가

* chore: spotless 적용
* fix: 잔여 질답 세트에 대해서도 임베딩을 모두 생성하도록 로직 수정

* fix: 임베딩 배치 생성 요청시 요청 개수를 로깅
* docs: 임베딩 스레드 이름 수정

* docs: 서버 로깅 정보 수정
* chore: rollup-plugin-visualizer 설치 및 적용

* feat: rollup-plugin-visualizer html 생성

* feat: pdfjs-dist 사용하는 페이지 dynamic import 되도록 변경

* feat: SEO 개선 > meta data 및 sitemap 추가

* feat: signin <main> tag 변경

* fix: 접근성 개선

* feat: SEO 개선
* feat: web client 응답 시간 제한을 3분으로 늘림

* feat: 인터뷰 질답 변환 API 응답 시간 제한 180로 설정
* feat: e2e-test-plan md 추가

* fix: 접근성 개선

* fix: Security Dependabot 반영

* fix: stats.html 제거

* fix: 접근성 개선

* fix: claude 문서 수정

* feat: 내 면접 모아보기 > 질문탭 - 카테고리 질문 클릭하면 retro details 페이지로 이동

* fix: visualizer 주석 처리

* feat: 내 면접 모아보기 > 질문탭 - 카테고리 질문 클릭하면 retro details 페이지로 이동

* feat: package.json version update
@vercel
Copy link

vercel bot commented Feb 24, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
web-team4-refit Ready Ready Preview, Comment Feb 24, 2026 3:01pm

@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @HIHJH, 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은 3차 QA 배포를 위한 것으로, 백엔드의 성능과 안정성을 향상시키고, 프론트엔드의 사용자 경험과 접근성을 대폭 개선하는 데 중점을 두었습니다. 특히, AI 모델과의 통신 안정성을 높이고, 로깅 시스템을 강화하여 문제 해결 능력을 향상시켰습니다. 또한, 웹 접근성 표준을 준수하고 SEO를 최적화하여 서비스의 전반적인 품질을 높였습니다.

Highlights

  • 백엔드 성능 및 안정성 개선: Gemini API 호출 타임아웃을 30초에서 180초로 연장하고, 배치 임베딩 요청에 대한 로깅 및 오류 처리를 강화했습니다. 또한, WebClient의 인메모리 버퍼 크기를 늘려 대용량 응답 처리를 개선했습니다.
  • 로깅 및 모니터링 강화: JwtAuthenticationFilter에서 사용자 이메일을 MDC(Mapped Diagnostic Context)에 추가하고, 로깅 필터(LoggingFilter를 ApiLoggingFilter로 이름 변경)에서 사용자 정보와 요청/응답 로그 형식을 개선하여 디버깅 및 모니터링을 용이하게 했습니다.
  • 프론트엔드 접근성(A11y) 개선: 대시보드 컴포넌트의 WCAG 2.1 AA 접근성 감사를 수행하고, 텍스트 색상 대비, 키보드 접근성, aria-label 누락, 폼 라벨 연결, focus-visible 스타일 등 다양한 접근성 이슈를 수정했습니다. 특히 Input 및 NativeCombobox 컴포넌트에 useId()를 활용한 라벨 연결을 구현했습니다.
  • 프론트엔드 SEO 및 문서화 업데이트: Open Graph 메타 태그를 추가하고, sitemap.xml 및 robots.txt 파일을 생성하여 SEO를 개선했습니다. 또한, E2E 테스트 플랜 및 접근성 감사 결과를 포함한 새로운 문서들을 추가했습니다.
  • 프론트엔드 의존성 및 빌드 최적화: package.json 및 pnpm-lock.yaml 파일을 업데이트하여 새로운 의존성을 추가하고, Rollup을 사용하여 pdfjs-dist 라이브러리를 위한 수동 청킹을 구성하여 빌드 성능을 최적화했습니다.
Changelog
  • README.md
    • 기술 아티클 링크를 업데이트했습니다.
  • backend/src/main/java/com/shyashyashya/refit/domain/interview/constant/InterviewConstant.java
    • QNA_SET_CONVERT_RESULT_TIMEOUT_MILLISECONDS 값을 30초에서 180초로 증가시켰습니다.
  • backend/src/main/java/com/shyashyashya/refit/domain/interview/service/RawTextConvertAsyncService.java
    • 로그 메시지에 '[startRawTextConvertAsync]' 접두사를 추가하여 가독성을 높였습니다.
  • backend/src/main/java/com/shyashyashya/refit/domain/qnaset/event/QuestionBatchEmbeddingEventHandler.java
    • Gemini 임베딩 요청을 100개 단위로 배치 처리하도록 로직을 변경했습니다.
    • ArrayList를 import 했습니다.
  • backend/src/main/java/com/shyashyashya/refit/global/auth/service/JwtAuthenticationFilter.java
    • 사용자 이메일을 MDC(Mapped Diagnostic Context)에 추가했습니다.
  • backend/src/main/java/com/shyashyashya/refit/global/config/LoggingFilterConfig.java
    • LoggingFilter를 ApiLoggingFilter로 변경하고, 필터 등록 설정을 업데이트했습니다.
  • backend/src/main/java/com/shyashyashya/refit/global/config/QuestionEmbeddingAsyncConfig.java
    • 질문 임베딩 스레드 이름 접두사를 'QuestionEmbedding-Thread-'에서 'qna-embed-'로 변경했습니다.
  • backend/src/main/java/com/shyashyashya/refit/global/config/WebClientConfig.java
    • WebClient의 인메모리 버퍼 크기를 2MB로 늘려 대용량 응답을 처리할 수 있도록 설정했습니다.
  • backend/src/main/java/com/shyashyashya/refit/global/filter/ApiLoggingFilter.java
    • LoggingFilter 파일 이름을 ApiLoggingFilter로 변경했습니다.
    • 요청 로그에 IP 대신 사용자 정보를 포함하도록 변경하고, 응답 로그 형식을 간소화했습니다.
    • MDC에서 'userInfo'를 제거하는 로직을 추가했습니다.
  • backend/src/main/java/com/shyashyashya/refit/global/gemini/GeminiClient.java
    • Gemini 배치 임베딩 요청 시 로그를 추가하고, 오류 응답 처리를 강화했습니다.
  • backend/src/main/resources/application-gemini.yml
    • Gemini WebClient 요청 타임아웃을 30초에서 180초로 증가시켰습니다.
  • backend/src/main/resources/logback-spring.xml
    • 로그 패턴에 MDC의 'userInfo'를 포함하도록 수정하고, 날짜 및 로거 길이 형식을 조정했습니다.
  • frontend/.claude/docs/design-system.md
    • 접근성(A11y) 규칙 섹션을 추가하여 Input, NativeCombobox의 라벨 연결, 아이콘 버튼의 aria-label, 커스텀 인터랙티브 요소의 focus-visible 스타일 가이드를 명시했습니다.
  • frontend/.claude/docs/e2e-test-plan.md
    • 새로운 E2E 테스트 플로우 계획서 문서를 추가했습니다.
  • frontend/.claude/notes/2026-02-24-dashboard-a11y-audit.md
    • 대시보드 접근성 감사 및 수정에 대한 새로운 노트를 추가했습니다.
  • frontend/.claude/notes/2026-02-24-sitemap-robots-sync.md
    • sitemap.xml과 robots.txt 동기화에 대한 새로운 노트를 추가했습니다.
  • frontend/.claude/notes/index.md
    • 새로운 접근성 감사 및 sitemap 동기화 노트를 인덱스에 추가했습니다.
  • frontend/CLAUDE.md
    • E2E 테스트 플랜 문서를 CLAUDE.md에 추가했습니다.
  • frontend/index.html
    • HTML lang 속성을 'ko'로 변경하고, Open Graph 메타 태그를 추가하여 SEO를 개선했습니다.
  • frontend/package.json
    • 프론트엔드 버전이 1.0.2에서 1.0.3으로 업데이트되었습니다.
    • ajv, minimatch, rollup-plugin-visualizer 등의 개발 의존성을 추가했습니다.
  • frontend/pnpm-lock.yaml
    • ajv, ansi-regex, balanced-match, brace-expansion, bundle-name, cliui, default-browser-id, default-browser, define-lazy-prop, emoji-regex, get-east-asian-width, is-docker, is-in-ssh, is-inside-container, is-wsl, minimatch, open, powershell-utils, rollup-plugin-visualizer, run-applescript, source-map, string-width, strip-ansi, wrap-ansi, wsl-utils, yargs-parser, yargs 등 다수의 패키지 의존성을 업데이트하거나 추가했습니다.
  • frontend/public/robots.txt
    • 새로운 robots.txt 파일을 추가하여 검색 엔진 크롤링 정책을 정의했습니다.
  • frontend/public/sitemap.xml
    • 새로운 sitemap.xml 파일을 추가하여 검색 엔진에 웹사이트 구조를 제공했습니다.
  • frontend/src/features/dashboard/_index/components/dashboard-banner/DashboardBanner.tsx
    • useDashboardBanner 훅 사용을 제거하고, 배너 컴포넌트를 button 태그에서 div 태그로 변경했습니다.
  • frontend/src/features/dashboard/_index/components/difficult-questions/DifficultQuestionsSection.tsx
    • 빈 상태 메시지의 텍스트 색상을 gray-400에서 gray-500으로 업데이트했습니다.
  • frontend/src/features/dashboard/_index/components/frequent-questions/FrequentQuestionsSection.tsx
    • 빈 상태 메시지의 텍스트 색상을 gray-400에서 gray-500으로 업데이트했습니다.
  • frontend/src/features/dashboard/_index/components/interview-calendar/CalendarFooter.tsx
    • 로딩, 오류, 빈 상태 메시지의 텍스트 색상을 gray-400에서 gray-500으로 업데이트했습니다.
  • frontend/src/features/dashboard/_index/components/interview-calendar/CalendarInterviewCard.tsx
    • 더보기 메뉴 버튼에 'aria-label' 속성을 추가하고, 카드에 focus-visible 스타일을 적용했습니다.
  • frontend/src/features/dashboard/_index/components/popular-questions/PopularQuestionsSection.tsx
    • 빈 상태 메시지의 텍스트 색상을 gray-400에서 gray-500으로 업데이트하고, 메시지 내용을 변경했습니다.
    • 비슷한 질문 더 보러가기 버튼의 텍스트 색상을 gray-400에서 gray-500으로 업데이트했습니다.
  • frontend/src/features/dashboard/_index/components/review-waiting-interview/ReviewWaitingCard.tsx
    • 산업군 텍스트 색상을 gray-400에서 gray-600으로 업데이트했습니다.
  • frontend/src/features/dashboard/_index/components/review-waiting-interview/ReviewWaitingSection.tsx
    • 빈 상태 메시지의 텍스트 색상을 gray-400에서 gray-500으로 업데이트했습니다.
  • frontend/src/features/dashboard/_index/components/upcoming-interview/UpcomingInterviewCard.tsx
    • 빈 상태 메시지의 텍스트 색상을 gray-400에서 gray-500으로 업데이트했습니다.
  • frontend/src/features/dashboard/_index/components/upcoming-interview/UpcomingInterviewSection.tsx
    • 빈 상태 메시지의 텍스트 색상을 gray-400에서 gray-500으로 업데이트했습니다.
  • frontend/src/features/dashboard/_index/constants/dashboardBanner.ts
    • 대시보드 배너의 제목 텍스트와 버튼 텍스트를 업데이트했습니다.
  • frontend/src/features/dashboard/_index/hooks/useDashboardBanner.ts
    • useDashboardBanner 훅이 제거되었습니다.
  • frontend/src/features/dashboard/my-collections/components/FolderListItem.tsx
    • 더보기 메뉴 버튼에 'aria-label' 속성을 추가했습니다.
  • frontend/src/features/dashboard/my-collections/components/FolderModal.tsx
    • 폴더 이름 최대 길이 안내 텍스트 색상을 gray-400에서 gray-500으로 업데이트했습니다.
  • frontend/src/features/dashboard/my-interviews/components/filter/InterviewFilterModal.tsx
    • 날짜 범위 구분자 텍스트 색상을 gray-400에서 gray-500으로 업데이트했습니다.
  • frontend/src/features/dashboard/my-interviews/components/interviews/list/InterviewListSection.tsx
    • 상태 메시지의 텍스트 색상을 gray-400에서 gray-500으로 업데이트했습니다.
  • frontend/src/features/dashboard/my-interviews/components/questions/frequent/FrequentQuestionsSection.tsx
    • 빈 상태 메시지의 텍스트 색상을 gray-400에서 gray-500으로 업데이트했습니다.
    • 더미 질문 데이터에 interviewId를 추가했습니다.
    • 페이지 번호 텍스트 색상을 gray-400에서 gray-500으로 업데이트했습니다.
  • frontend/src/features/dashboard/my-interviews/components/questions/frequent/category-list/CategoryList.tsx
    • 카테고리 목록 항목을 div 태그에서 button 태그로 변경하고, focus-visible 스타일을 적용했습니다.
  • frontend/src/features/dashboard/my-interviews/components/questions/frequent/question-card/QuestionCard.tsx
    • 질문 카드를 div 태그에서 button 태그로 변경하고, 클릭 시 회고 상세 페이지로 이동하는 기능을 추가했습니다.
    • QuestionCardModel에 interviewId를 추가했습니다.
  • frontend/src/features/dashboard/my-interviews/components/questions/list/QuestionListSection.tsx
    • 상태 메시지의 텍스트 색상을 gray-400에서 gray-500으로 업데이트했습니다.
  • frontend/src/features/dashboard/my-interviews/components/questions/mappers.ts
    • QuestionCardModel 타입에 interviewId를 추가하고, mapFrequentQuestion 함수에서 interviewId를 매핑하도록 업데이트했습니다.
  • frontend/src/pages/index.ts
    • RecordLinkPage, RetroQuestionPage, RetroDetailPage의 직접 임포트를 제거했습니다.
  • frontend/src/pages/signin/page.tsx
    • 최상위 div 태그를 main 태그로 변경했습니다.
  • frontend/src/routes/index.tsx
    • RecordLinkPage, RetroQuestionPage, RetroDetailPage 컴포넌트를 lazy 로딩 방식으로 변경했습니다.
  • frontend/src/ui/components/combobox/NativeCombobox.tsx
    • useId 훅을 사용하여 label과 select 요소 간의 접근성 연결을 강화했습니다.
  • frontend/src/ui/components/input/index.tsx
    • useId 훅을 사용하여 label과 input 요소 간의 접근성 연결을 강화했습니다.
  • frontend/src/ui/components/navbar/Navbar.tsx
    • 홈 링크에 'aria-label' 속성을 추가하고, 비활성 내비게이션 링크의 텍스트 색상을 gray-400에서 gray-500으로 업데이트했습니다.
  • frontend/vite.config.ts
    • Rollup 옵션에 manualChunks 설정을 추가하여 pdfjs-dist 라이브러리를 별도 청크로 분리했습니다.
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.

@HIHJH HIHJH merged commit 318e606 into main Feb 24, 2026
1 check passed
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

이번 풀 리퀘스트는 접근성 개선, 로깅 강화, 성능 최적화 등 여러 면에서 긍정적인 변화를 가져왔습니다. 특히 프론트엔드에서는 WCAG 2.1 AA 접근성 규칙을 준수하기 위한 노력이 돋보이며, 백엔드에서는 Gemini 임베딩 요청을 배치 처리하여 효율성을 높였습니다. 전반적으로 코드 품질과 사용자 경험 향상에 기여하는 변경사항입니다.

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

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants