Skip to content

[DEPLOY] 배포#431

Merged
i-meant-to-be merged 9 commits intomainfrom
deploy/#430
Mar 9, 2026
Merged

[DEPLOY] 배포#431
i-meant-to-be merged 9 commits intomainfrom
deploy/#430

Conversation

@i-meant-to-be
Copy link
Contributor

🚩 연관 이슈

closed #430

📝 작업 내용

기관별 템플릿을 API로 대체한 버전을 배포합니다. 특이사항으로, 파일 삭제에 따른 develop 브랜치와 main 브랜치 간 충돌이 있어, develop에서 별도 브랜치 분리 후 main으로 병합하는 점 안내합니다.

🏞️ 스크린샷 (선택)

없음

🗣️ 리뷰 요구사항 (선택)

없음

useon and others added 9 commits February 10, 2026 21:45
* chore: 국제화 라이브러리 설치

* feat: i18next 초기화 및 언어 감지/HTTP 백엔드 설정

* feat: 국제화 라우팅 래퍼 생성

* feat: 중첩 라우팅 구조로 변경 및 국제화 라우팅 래퍼 적용

* chore: 필요한 바벨 설정 및 스크립트 추가

* feat: 파일 관련 유틸 생성

* feat: ATS 관련 및 국제화 훅 추가, t wrapper 유틸 생성

* feat: 한글 키를 기준으로 각 언어 JSON에 키 추가 유틸 생성

* feat: React 컴포넌트의 한글 텍스트 자동 변환 기능 구현

* fix: 테스트 파일과 스토리북 파일이 포함되는 문제 해결

* refactor: 컴포넌트 판별 로직을 분리하여 여러 형태에 대응할 수 있도록 수정

* feat: 템플릿 리터럴 자동 변환 및 키 추출 기능 구현

* refactor: 컴포넌트 내부에 있는 한글 문자열만 변환되도록 수정

* refactor: 복잡한 확장자 처리를 위한 라이브러리 사용으로 더이상 사용하지 않는 확장자 찾는 함수 삭제

* fix: ts-node 실행 오류 해결 및 tsx 기반으로 스크립트 전환

* refactor: 불필요한 주석 삭제

* feat: 언어셀렉터 추가

* refactor: 언어 라우팅 로직 분리 및 유틸 추가

* refactor: prop default 값의 한글이 번역되지 않아 컴포넌트 구조 수정

* refactor: br태그로 인해 번역키가 쪼개져 번역 어순 문제가 발생해 하나의 번역키가 되도록 \n구조로 수정

* refactor: 현재 사용하지 않는 컴포넌트와 유틸 삭제

* fix: prettier로 인해 줄바꿈이 되어 번역 키에 공백이 들어가는 문제 해결

* fix: 언어 라우팅 리다이렉트 시 쿼리스트링 유지가 안되는 문제 해결

* fix: 템플릿 리터럴에서 escape 문자가 포함된 한글 문자열 처리 오류 수정

* refactor: i18n자동화를 이용해서 컴포넌트 변환, import 및 hook 추가

* feat: i18n 자동화를 적용한 언어별 key, value 생성

* refactor: 언어 라우팅 쿼리 유지 및 경로 전환 문제 해결

* refactor: 발언 유형 관련 로직 유틸화

* feat: develop 병합으로 인한 새로운 키 추가

* refactor: Neutral오타 수정

* refactor: 에러메세지 추가 및 동사형으로 투표완료 번역 내용 수정

* fix: 한글 에러 메세지가 그대로 들어오는 경우 번역 안되는 문제 해결

* refactor: 단수, 복수 구분되도록 i18n Plurals 규칙 적용

* refactor: 투표 인원 카운트와 단위 사이에 공백 추가 및 투표 인원이 중복돼서 나오는 문제 수정

* refactor: 경로 하드코딩을 언어 경로 라우팅 buildLangPath 이용하여 정리

- 언어 경로가 깨지거나 리다이렉트가 발생하는 문제 해결

* fix: 개발환경에서도 설정한 base url이 들어갈 수 있도록 수정하여 개발환경에서 시간표 공유 오류 해결

* refactor: 줄바꿈 설정 빠진 부분 수정

* refactor: 발언자 길이 검증 로직 일관적이게 수정

* refactor: 상수라서 번역 안되던 부분 번역

* refactor: 띄어쓰기 적용 안 된 번역키 수정

* refactor: 종소리 설정 대문자 시작으로 수정

* refactor: 불필요한 코드 삭제

* refactor: 언어 선택 핸들러에 셀렉터 닫는 코드도 함께 넣도록 수정

* refactor: 종소리 라벨 번역 및 시간 표기 띄어쓰기 추가

* refactor: tailwind 오타 수정

* refactor: 루트 경로 비교 시 trailing slash 처리하는 정규화 추가

* refactor: 자유토론 편집 시 입력 무시되는 문제를 TIME_BASED를 입력값 우선으로 처리하도록 해결

* refactor: 중립 라벨 번역 추가

* fix: 국제화 코드 추가로 인한 테스트 코드 수정

* test: MSW 번역 핸들러에 실제 문자열 응답 추가

* test: i18n locale 고정, 라우트 추가
* chore: 비교적 안전한 업데이트 적용

* chore: 중간 수준 위험도의 업데이트 적용

* chore: 다소 높은 수준의 위험도 적용

* chore: React 버전 불일치 수정

* chore: Storybook 마이너 업데이트 진행
* feat: 에셋 추가 및 구현

* feat: 패치노트 데이터 타입 정의

* feat: 패치노트 UI 구현

* feat: 라우터에 패치노트 추가

* refactor: 자세히 보기 버튼 로직 위치 변경

* refactor: PatchNoteData 인터페이스 변수 타입 변경

* chore: 자동 PR 세팅 스크립트에서 치코 제거

* chore: 자동 PR 세팅 스크립트 제거

* chore: 주석에 이미지가 필수임을 명시

* test: Story 변수 값 수정

* refactor: 불필요한 화살표 함수 제거

* refactor: 로깅 함수 제거

* feat: 모달 표시 여부를 따질 때 버전도 함께 확인

* fix: isChecked가 최신 값으로 유지되지 못하는 문제 수정

* design: 써니 피드백 반영

* feat: 단일 이미지만 표시하는 패치 노트 타입 추가

* feat: UI에 ImageOnlyPatchNoteData 변경 사항 반영

* test: Story에 확장된 타입 명시

* refactor: 체크박스에 속성 추가

* refactor: 패치 노트 데이터 타입 다듬기

* test: 누락된 매개변수 Story에 추가

* refactor: 텍스트 클릭 시 체크박스도 터치되도록 개선

* refactor: 체크박스 클릭 시 함수 별도로 분리

* refactor: 매직 넘버 분리

* feat: 디스플레이 크기에 따라 UI 크기도 바뀌도록 개선

* feat: '자세히 보기' 버튼 클릭 시 모달 닫히도록 개선

* fix: 파일 경로 수정

* refactor: 필요 없는 타입 캐스팅 제거
* chore: 파비콘 파일 추가

* chore: Android 및 Chrome 대응을 위한 manifest.json 추가

* design: 새 파비콘 반영

* chore: 사용하지 않는 로고 삭제

* fix: 잘못된 파일 이름 정정
* design: 메인 컨테이너 크기 변경

* design: 내부 텍스트 및 컨텐츠 크기 변경

* design: 체크박스 크기 변경

* design: 추가 요구사항 반영
* chore: 프리뷰 배포 기능

* chore: 프리뷰에서 언어 변환이 적용되도록 수정

* chore: state 검증 추가

* chore: 클라우드 프론트 캐시 초기화 추가
* chore: 취약점 해결을 위한 패키지 버전 업데이트

* design: 써니의 패치 노트 피드백 추가 반영

* feat: 패치노트 모달이 랜딩 페이지, 시간표 목록 화면에만 표시되도록 수정

* refactor: 린팅 경고 해결

* fix: 빌드 오류 해결
* refactor: API 기반 코드 준비

* refactor: UI가 데이터를 API에서 패칭하도록 수정

* chore: 이제 사용하지 않는 상수 삭제

* chore: 다국어 번역 테이블에 항목 추가

* fix: 병합 과정에서 누락된 프리뷰 관련 코드 추가

* fix: 코드 리뷰 반영

* feat: 패치 노트가 랜딩 페이지와 시간표 목록 페이지에만 표시되도록 수정

* Revert "feat: 패치 노트가 랜딩 페이지와 시간표 목록 페이지에만 표시되도록 수정"

This reverts commit b606b6c.

* chore: 더 이상 필요하지 않은 에셋 삭제

* test: msw가 정적 이미지 에셋 요청도 가로채도록 개선

* refactor: 시간표 공유 관련 함수 한 파일로 통합 및 이름 변경

* refactor: 조금 더 탄탄한 파싱 방식 적용

* test: 테스트 함수 추가
@i-meant-to-be i-meant-to-be self-assigned this Mar 9, 2026
@i-meant-to-be i-meant-to-be added the deploy develop에서 main으로의 배포 label Mar 9, 2026
@coderabbitai
Copy link

coderabbitai bot commented Mar 9, 2026

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 992cca46-cb49-44d3-bcb0-74132723500d

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch deploy/#430

Tip

Try Coding Plans. Let us write the prompt for your AI agent so you can ship faster (with fewer bugs).
Share your feedback on Discord.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@gemini-code-assist
Copy link

Summary of Changes

Hello, 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!

이 배포는 기관별 토론 템플릿을 API 기반으로 전환하여 애플리케이션의 확장성을 높이고, 다국어 지원을 전면적으로 도입하여 글로벌 사용자들에게 더 나은 접근성을 제공합니다. 또한, 최신 의존성 업데이트를 통해 전반적인 시스템 안정성과 개발 환경을 개선하고, 새로운 업데이트 알림 모달을 추가하여 사용자에게 중요한 변경 사항을 효과적으로 전달할 수 있게 되었습니다.

Highlights

  • 기관별 템플릿 API 통합: 기존에 하드코딩되었던 기관별 토론 템플릿을 API를 통해 동적으로 불러오도록 변경하여 유연성을 높였습니다.
  • 다국어 지원 강화 (i18n): 애플리케이션 전반에 걸쳐 다국어 지원을 통합하고, 언어 선택 기능을 추가하여 사용자 경험을 개선했습니다.
  • 의존성 업데이트: React Query, Axios, Framer Motion, i18next, React Router DOM 등 다수의 핵심 라이브러리 및 개발 도구 의존성을 최신 버전으로 업데이트하여 안정성과 성능을 향상시켰습니다.
  • 웹 앱 메타데이터 및 파비콘 개선: 새로운 파비콘(ICO, SVG, PNG) 및 웹 앱 매니페스트 파일을 추가하여 PWA(Progressive Web App) 기능을 강화하고 브랜딩을 일관되게 유지했습니다.
  • 업데이트 모달 기능 추가: 새로운 업데이트 내용을 사용자에게 알릴 수 있는 모달 컴포넌트와 로컬 스토리지 기반의 '일주일 간 보지 않기' 기능을 구현했습니다.
  • MSW (Mock Service Worker) 업데이트: MSW 라이브러리를 업데이트하고, 정적 자산(아이콘) 요청을 모킹 처리하도록 로직을 개선했습니다.
Changelog
  • index.html
    • 파비콘 링크를 업데이트하고 Open Graph 이미지 경로를 변경했습니다.
  • package.json
    • React Query, Axios, Framer Motion, i18next, React Icons, React Router DOM, Storybook, ESLint, TypeScript, Vite, Vitest 등 다수의 의존성 패키지를 업데이트했습니다.
  • public/favicons/favicon.svg
    • 새로운 SVG 파비콘 파일을 추가했습니다.
  • public/locales/en/translation.json
    • 새로운 영어 번역 파일을 추가했습니다.
  • public/locales/ko/translation.json
    • 새로운 한국어 번역 파일을 추가했습니다.
  • public/manifest.json
    • 새로운 웹 앱 매니페스트 파일을 추가했습니다.
  • public/mockServiceWorker.js
    • MSW 버전을 업데이트하고 요청 처리 로직을 개선했습니다.
  • scripts/utils/astUtils.ts
    • 템플릿 리터럴 처리를 위해 q.value.raw 대신 q.value.cooked를 사용하도록 AST 변환 로직을 수정했습니다.
  • setup.ts
    • 테스트 환경을 위한 i18n 설정을 추가하고 기본 언어를 한국어로 설정했습니다.
  • src/apis/apis/organization.ts
    • 기관 템플릿을 가져오는 새로운 API 엔드포인트를 추가했습니다.
  • src/apis/axiosInstance.ts
    • 액시오스 인터셉터에서 언어 설정을 고려한 홈 경로 리디렉션 로직을 추가했습니다.
  • src/apis/endpoints.ts
    • 새로운 organization API 엔드포인트를 추가했습니다.
  • src/apis/responses/organization.ts
    • 기관 템플릿 API 응답을 위한 새로운 타입 정의를 추가했습니다.
  • src/components/BackActionHandler.tsx
    • 뒤로 가기 동작 처리가 언어 설정을 인식하도록 업데이트했습니다.
  • src/components/DropdownMenu/DropdownMenu.tsx
    • 플레이스홀더 텍스트에 다국어 지원을 통합했습니다.
  • src/components/ErrorBoundary/ErrorPage.tsx
    • 오류 메시지와 홈 버튼 텍스트에 다국어 지원을 통합하고, 언어 설정을 인식하는 홈 경로 리디렉션을 적용했습니다.
  • src/components/ErrorBoundary/NotFoundPage.tsx
    • 메시지와 홈 버튼 텍스트에 다국어 지원을 통합하고, 언어 설정을 인식하는 홈 경로 리디렉션을 적용했습니다.
  • src/components/ErrorIndicator/ErrorIndicator.tsx
    • 기본 오류 메시지와 재시도 버튼에 다국어 지원을 통합했습니다.
  • src/components/GoToDebateEndButton/GoToDebateEndButton.tsx
    • 버튼 텍스트와 aria-label에 다국어 지원을 통합하고, 언어 설정을 인식하는 내비게이션을 적용했습니다.
  • src/components/GoogleButton.tsx
    • Google 로그인 버튼 컴포넌트를 제거했습니다.
  • src/components/HeaderTableInfo/HeaderTableInfo.tsx
    • "테이블 이름 없음" 텍스트에 다국어 지원을 통합했습니다.
  • src/components/HeaderTitle/HeaderTitle.tsx
    • "주제 없음" 텍스트에 다국어 지원을 통합했습니다.
  • src/components/LoadingIndicator/LoadingIndicator.tsx
    • 기본 로딩 메시지에 다국어 지원을 통합했습니다.
  • src/components/NotificationBadge/NotificationBadge.tsx
    • aria-label에 다국어 지원을 통합했습니다.
  • src/components/ProsAndConsTitle/PropsAndConsTitle.tsx
    • 기본 팀 이름에 다국어 지원을 통합했습니다.
  • src/components/RoundControlButton/RoundControlButton.tsx
    • 버튼 라벨("이전 차례", "다음 차례", "토론 종료")에 다국어 지원을 통합했습니다.
  • src/components/ShareModal/ShareModal.stories.tsx
    • createTableShareUrl 함수를 createTableShareUrlFromTable로 업데이트했습니다.
  • src/components/ShareModal/ShareModal.tsx
    • 메시지("QR 코드를 불러오지 못했어요", "링크가 클립보드에 복사됨", "링크 준비 중", "공유 링크 복사")에 다국어 지원을 통합했습니다.
  • src/components/SmallIconContainer/SmallIconContainer.tsx
    • 코드 서식을 약간 변경했습니다.
  • src/components/UpdateModal/MegaphoneAsset.tsx
    • 새로운 메가폰 SVG 자산 컴포넌트를 추가했습니다.
  • src/components/UpdateModal/NoticeAsset.tsx
    • 새로운 공지 SVG 자산 컴포넌트를 추가했습니다.
  • src/components/UpdateModal/UpdateModal.stories.tsx
    • UpdateModal 컴포넌트의 Storybook 스토리를 추가했습니다.
  • src/components/UpdateModal/UpdateModal.tsx
    • 패치 노트를 표시하기 위한 새로운 UpdateModal 컴포넌트를 추가했습니다.
  • src/components/UpdateModal/UpdateModalWrapper.tsx
    • UpdateModal을 위한 래퍼 컴포넌트를 추가하고, '일주일 간 보지 않기' 기능을 위한 로컬 스토리지 로직을 구현했습니다.
  • src/components/VolumeBar/VolumeBar.tsx
    • 음소거/음소거 해제 제목에 다국어 지원을 통합했습니다.
  • src/constants/debate_template.ts
    • 토론 템플릿 관련 상수를 제거했습니다.
  • src/constants/patch_note.ts
    • 패치 노트 데이터 및 유형을 위한 새로운 상수를 추가했습니다.
  • src/hooks/mutations/usePreventDuplicateMutation.ts
    • onSettled 콜백의 인수를 나머지 매개변수로 변경했습니다.
  • src/hooks/query/useGetOrganizationTemplates.ts
    • 기관 템플릿을 가져오는 새로운 훅을 추가했습니다.
  • src/hooks/useModal.tsx
    • 모달 닫기 버튼의 aria-label에 다국어 지원을 통합했습니다.
  • src/hooks/useTableShare.tsx
    • createTableShareUrl 함수를 createTableShareUrlFromTable로 업데이트하고 기본 URL 로직을 조정했습니다.
  • src/i18n.ts
    • i18n 백엔드의 loadPathVITE_BASE_PATH를 포함하도록 업데이트했습니다.
  • src/layout/components/header/LanguageSelector.tsx
    • 언어 선택을 위한 새로운 컴포넌트를 추가했습니다.
  • src/layout/components/header/StickyTriSectionHeader.tsx
    • LanguageSelector를 통합하고, 로그인/로그아웃 텍스트에 다국어 지원을 적용했으며, 언어 설정을 인식하는 홈 경로 리디렉션을 추가했습니다.
  • src/main.tsx
    • MSW의 처리되지 않은 요청 로직을 수정하여 /icon 경로를 무시하도록 했습니다.
  • src/mocks/handlers/global.ts
    • i18n 번역 파일, 기관 템플릿 및 정적 자산에 대한 모의 핸들러를 추가했습니다.
  • src/mocks/handlers/organization.ts
    • 기관 템플릿을 위한 새로운 MSW 핸들러를 추가했습니다.
  • src/mocks/handlers/static_asset.ts
    • 정적 자산(아이콘)을 위한 새로운 MSW 핸들러를 추가했습니다.
  • src/page/DebateEndPage/DebateEndPage.tsx
    • 다양한 텍스트와 언어 설정을 인식하는 내비게이션에 다국어 지원을 통합했습니다.
  • src/page/DebateEndPage/components/GoToOverviewButton.tsx
    • 버튼 텍스트와 aria-label에 다국어 지원을 통합하고, 언어 설정을 인식하는 내비게이션을 적용했습니다.
  • src/page/DebateVotePage/DebateVotePage.tsx
    • 다양한 텍스트와 언어 설정을 인식하는 내비게이션에 다국어 지원을 통합했습니다.
  • src/page/DebateVoteResultPage/DebateVoteResultPage.tsx
    • 다양한 텍스트와 언어 설정을 인식하는 내비게이션에 다국어 지원을 통합했습니다.
  • src/page/DebateVoteResultPage/components/VoteBar.tsx
    • 팀 라벨과 투표 수 표시에 다국어 지원을 통합했습니다.
  • src/page/DebateVoteResultPage/components/VoteDetailResult.tsx
    • 제목과 홈 버튼에 다국어 지원을 통합했습니다.
  • src/page/DebateVoteResultPage/components/WinnerCard.tsx
    • 팀 라벨과 왕관 alt 텍스트에 다국어 지원을 통합했습니다.
  • src/page/LandingPage/LandingPage.tsx
    • UpdateModalWrapper를 추가하고 다국어 지원을 통합했습니다.
  • src/page/LandingPage/components/Header.tsx
    • LanguageSelector를 통합하고 로그인/로그아웃 텍스트에 다국어 지원을 적용했습니다.
  • src/page/LandingPage/components/MainSection.tsx
    • 다양한 텍스트에 다국어 지원을 통합했습니다.
  • src/page/LandingPage/components/ReportSection.tsx
    • 다양한 텍스트에 다국어 지원을 통합했습니다.
  • src/page/LandingPage/components/ReviewSection.tsx
    • 다양한 텍스트에 다국어 지원을 통합했습니다.
  • src/page/LandingPage/components/ScrollHint.tsx
    • alt 텍스트에 다국어 지원을 통합했습니다.
  • src/page/LandingPage/components/TableSection.tsx
    • 다양한 텍스트에 다국어 지원을 통합했습니다.
  • src/page/LandingPage/components/TemplateApplicationSection.tsx
    • 다양한 텍스트에 다국어 지원을 통합했습니다.
  • src/page/LandingPage/components/TemplateCard.tsx
    • Organization 타입을 사용하도록 업데이트하고, 라벨에 다국어 지원을 통합했으며, createTableShareUrlFromEncodedData를 사용하도록 변경했습니다.
  • src/page/LandingPage/components/TemplateList.tsx
    • organizations prop을 받도록 업데이트했습니다.
  • src/page/LandingPage/components/TemplateSelection.tsx
    • API를 통해 템플릿을 가져오도록(useGetOrganizationTemplates) 업데이트하고, 메시지에 다국어 지원을 통합했으며, TemplateList 사용법을 업데이트했습니다.
  • src/page/LandingPage/components/TimeTableSection.tsx
    • 다양한 텍스트에 다국어 지원을 통합했습니다.
  • src/page/LandingPage/hooks/useLandingPageHandlers.ts
    • createTableShareUrl 함수를 createTableShareUrlFromTable로 업데이트하고 언어 설정을 인식하는 내비게이션을 적용했습니다.
  • src/page/OAuthPage/OAuth.tsx
    • 다국어 지원과 언어 설정을 인식하는 내비게이션을 통합했습니다.
  • src/page/TableComposition/TableCompositionPage.test.tsx
    • 테스트를 위해 언어 설정을 인식하는 경로를 추가했습니다.
  • src/page/TableComposition/TableCompositionPage.tsx
    • 오류 메시지와 기본 팀 이름에 다국어 지원을 통합했습니다.
  • src/page/TableComposition/components/TableNameAndType/TableNameAndType.tsx
    • 다양한 텍스트에 다국어 지원을 통합했습니다.
  • src/page/TableComposition/components/TimeBox/TimeBox.tsx
    • 시간 형식 지정, 발언 유형 라벨, 드래그 제목에 다국어 지원을 통합했습니다.
  • src/page/TableComposition/components/TimeBoxManageButtons/TimeBoxManageButtons.tsx
    • 버튼 aria-label과 모달 텍스트에 다국어 지원을 통합했습니다.
  • src/page/TableComposition/components/TimeBoxStep/TimeBoxStep.tsx
    • 버튼 텍스트에 다국어 지원을 통합했습니다.
  • src/page/TableComposition/components/TimerCreationContent/TimeInputGroup.tsx
    • "분"과 "초" 라벨에 다국어 지원을 통합했습니다.
  • src/page/TableComposition/components/TimerCreationContent/TimerCreationContent.tsx
    • 다양한 텍스트, 발언 유형 라벨, 벨 유형 라벨에 다국어 지원을 통합했습니다.
  • src/page/TableComposition/components/TimerCreationContent/TimerCreationContentMenuItem.tsx
    • 코드 서식을 약간 변경했습니다.
  • src/page/TableComposition/hook/useTableFrom.tsx
    • 다국어 지원과 언어 설정을 인식하는 내비게이션을 통합했습니다.
  • src/page/TableListPage/TableListPage.tsx
    • UpdateModalWrapper를 통합하고 헤더 제목에 다국어 지원을 적용했습니다.
  • src/page/TableListPage/components/Table.tsx
    • 버튼 aria-label과 모달 텍스트에 다국어 지원을 통합했습니다.
  • src/page/TableListPage/components/TableListPageContent.tsx
    • 다국어 지원과 언어 설정을 인식하는 내비게이션을 통합했습니다.
  • src/page/TableOverviewPage/TableOverviewPage.tsx
    • 버튼 alt 텍스트와 언어 설정을 인식하는 내비게이션에 다국어 지원을 통합했습니다.
  • src/page/TableOverviewPage/components/TeamSelectionModal/TeamSelectionModal.tsx
    • 다양한 텍스트에 다국어 지원을 통합했습니다.
  • src/page/TableSharingPage/TableSharingPage.tsx
    • 오류 메시지와 언어 설정을 인식하는 내비게이션에 다국어 지원을 통합했습니다.
  • src/page/TableSharingPage/components/LoggedInStoreDBModal.tsx
    • 모달 텍스트에 다국어 지원을 통합했습니다.
  • src/page/TimerPage/FeedbackTimerPage.tsx
    • 오류 메시지와 제목에 다국어 지원을 통합했습니다.
  • src/page/TimerPage/TimerPage.tsx
    • 다양한 텍스트와 버튼 제목에 다국어 지원을 통합했습니다.
  • src/page/TimerPage/components/CompactTimeoutTimer.tsx
    • 제목과 시간 조정 버튼에 다국어 지원을 통합했습니다.
  • src/page/TimerPage/components/FeedbackTimer.tsx
    • 시간 조정 라벨과 제목에 다국어 지원을 통합했습니다.
  • src/page/TimerPage/components/FirstUseToolTip.tsx
    • 다양한 텍스트에 다국어 지원을 통합했습니다.
  • src/page/TimerPage/components/LoginAndStoreModal.tsx
    • 모달 텍스트와 언어 설정을 인식하는 내비게이션에 다국어 지원을 통합했습니다.
  • src/page/TimerPage/components/NormalTimer.tsx
    • 발언 유형 라벨과 팀/발언자 표시에 다국어 지원을 통합했습니다.
  • src/page/TimerPage/components/TimeBasedTimer.tsx
    • 키보드 키 alt 텍스트와 타이머 라벨에 다국어 지원을 통합했습니다.
  • src/page/TimerPage/components/TimerController.tsx
    • 버튼 aria-label에 다국어 지원을 통합했습니다.
  • src/page/TimerPage/hooks/useTimerPageModal.ts
    • 다국어 지원과 언어 설정을 인식하는 내비게이션을 통합했습니다.
  • src/page/TimerPage/hooks/useTimerPageState.ts
    • toggleVolumeBar 함수를 메모이제이션했습니다.
  • src/page/VoteCompletePage/VoteCompletePage.tsx
    • 완료 메시지에 다국어 지원을 통합했습니다.
  • src/page/VoteParticipationPage/VoteParticipationPage.tsx
    • 다양한 텍스트와 언어 설정을 인식하는 내비게이션에 다국어 지원을 통합했습니다.
  • src/routes/LanguageWrapper.tsx
    • URL의 기본 언어 처리 및 일관된 언어 표시를 보장하기 위해 언어 라우팅 로직을 리팩토링했습니다.
  • src/routes/ProtectedRoute.tsx
    • 다국어 지원과 언어 설정을 인식하는 홈 경로 리디렉션을 통합했습니다.
  • src/routes/routes.tsx
    • createBrowserRouterVITE_BASE_PATH에서 가져온 basename으로 구성했습니다.
  • src/type/type.ts
    • DebateTemplate 타입을 업데이트하고 Organization 타입을 추가했습니다.
  • src/util/arrayEncoding.test.ts
    • createTableShareUrlFromTable에 대한 테스트를 업데이트하고 createTableShareUrlFromEncodedData에 대한 테스트를 추가했습니다.
  • src/util/arrayEncoding.ts
    • createTableShareUrl 함수를 createTableShareUrlFromTable로 이름을 변경하고 createTableShareUrlFromEncodedData를 추가했으며, 기본 URL 로직을 조정했습니다.
  • src/util/googleAuth.ts
    • VITE_BASE_PATH가 설정된 경우 Google OAuth URL에 state 매개변수를 추가했습니다.
  • src/util/languageRouting.ts
    • 언어 라우팅 로직을 위한 새로운 유틸리티 파일을 추가했습니다.
  • src/util/speechType.ts
    • 발언 유형 정규화 및 라벨을 위한 새로운 유틸리티 파일을 추가했습니다.
  • src/util/validateUserAgent.ts
    • 사용자 에이전트 유효성 검사 유틸리티 파일을 제거했습니다.
  • src/vite-env.d.ts
    • ImportMetaEnvVITE_BASE_PATH를 추가했습니다.
  • vite.config.ts
    • VITE_BASE_PATH를 사용하여 base 구성을 추가했습니다.
Ignored Files
  • Ignored by pattern: .github/workflows/** (3)
    • .github/workflows/Auto_PR_Setting.yml
    • .github/workflows/cleanup-preview.yml
    • .github/workflows/deploy-preview.yml
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.

@i-meant-to-be i-meant-to-be merged commit 7ad3aa4 into main Mar 9, 2026
4 checks passed
@i-meant-to-be i-meant-to-be deleted the deploy/#430 branch March 9, 2026 12:12
@i-meant-to-be i-meant-to-be deployed to DEPLOY_PROD March 9, 2026 12:12 — with GitHub Actions Active
Copy link

@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

이 PR은 배포를 위한 것으로, 기관별 템플릿을 API로 대체하고 국제화(i18n)를 위한 대규모 리팩토링 및 의존성 업데이트를 포함하고 있습니다. 전반적으로 코드의 일관성을 높이고 유지보수성을 개선하는 좋은 변경 사항들이 많습니다.

다만, package.json에서 typescript 버전 표기 방식이 비표준적이어서 수정이 필요합니다. 이 부분은 배포 전에 반드시 수정해야 합니다.

추가적으로 src/util/arrayEncoding.ts 파일에서 URL을 생성하는 로직이 중복되어 있어, 이를 개선하기 위한 리팩토링을 제안합니다.

Note: Security Review did not run due to the size of the PR.

"tailwindcss": "^3.4.16",
"tsx": "^4.21.0",
"typescript": "^5.7.2",
"typescript": "5.7",

Choose a reason for hiding this comment

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

medium

typescript의 버전이 "5.7"로 지정되어 있습니다. 이는 유효한 semver 범위가 아니며, 패키지 매니저에 따라 예기치 않은 동작을 유발할 수 있습니다. 명확성과 일관성을 위해 "^5.7.0" 또는 특정 버전(예: "5.7.2")으로 수정하는 것을 권장합니다.

Suggested change
"typescript": "5.7",
"typescript": "^5.7.2",

Comment on lines +23 to 44
export function createTableShareUrlFromTable(
baseUrl: string | undefined,
data: DebateTableData,
): string {
const encoded = encodeDebateTableData(data);
return `${baseUrl}/share?data=${encoded}`;
const resolvedBaseUrl =
baseUrl && baseUrl.trim() !== '' ? baseUrl : window.location.origin;
const normalizedBaseUrl = resolvedBaseUrl.replace(/\/+$/, '');
const basePath = import.meta.env.VITE_BASE_PATH;
const pathPrefix = basePath && basePath !== '/' ? basePath : '';
return `${normalizedBaseUrl}${pathPrefix}/share?data=${encoded}`;
}

export function createTableShareUrlFromEncodedData(encodeData: string): string {
const baseUrl = import.meta.env.VITE_SHARE_BASE_URL || window.location.origin;
const resolvedBaseUrl =
baseUrl && baseUrl.trim() !== '' ? baseUrl : window.location.origin;
const normalizedBaseUrl = resolvedBaseUrl.replace(/\/+$/, '');
const basePath = import.meta.env.VITE_BASE_PATH;
const pathPrefix = basePath && basePath !== '/' ? basePath : '';
return `${normalizedBaseUrl}${pathPrefix}/share?data=${encodeData}`;
}

Choose a reason for hiding this comment

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

medium

createTableShareUrlFromTable 함수와 createTableShareUrlFromEncodedData 함수 내에서 공유 URL을 생성하는 로직이 거의 동일하게 중복되고 있습니다. 코드의 중복을 줄이고 유지보수성을 높이기 위해 이 로직을 별도의 헬퍼 함수로 추출하는 것이 좋습니다.

function buildShareUrl(encodedData: string, baseUrl?: string): string {
  const resolvedBaseUrl =
    baseUrl && baseUrl.trim() !== '' ? baseUrl : window.location.origin;
  const normalizedBaseUrl = resolvedBaseUrl.replace(/\/+$/, '');
  const basePath = import.meta.env.VITE_BASE_PATH;
  const pathPrefix = basePath && basePath !== '/' ? basePath : '';
  return `${normalizedBaseUrl}${pathPrefix}/share?data=${encodedData}`;
}

export function createTableShareUrlFromTable(
  baseUrl: string | undefined,
  data: DebateTableData,
): string {
  const encoded = encodeDebateTableData(data);
  return buildShareUrl(encoded, baseUrl);
}

export function createTableShareUrlFromEncodedData(encodeData: string): string {
  const baseUrl = import.meta.env.VITE_SHARE_BASE_URL;
  return buildShareUrl(encodeData, baseUrl);
}

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

Labels

deploy develop에서 main으로의 배포

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

3 participants