Skip to content

Comments

feat: 점검 시간 접근 차단을 위한 MaintenanceGuard 적용#390

Merged
nijuy merged 11 commits intodevelopfrom
feat/maintenance-guard
Feb 9, 2026
Merged

feat: 점검 시간 접근 차단을 위한 MaintenanceGuard 적용#390
nijuy merged 11 commits intodevelopfrom
feat/maintenance-guard

Conversation

@nijuy
Copy link
Collaborator

@nijuy nijuy commented Feb 9, 2026

💻 개요

  • 신규 피처

📋 변경 및 추가 사항

  • MaintenanceGuard를 적용해 점검 시간에는 페이지 접근이 불가하게 막았습니다.

    • 점검 중에 접근 시 점검 페이지로 이동합니다 (/maintenance)
    • 랜딩 페이지는 예외적으로 접근 허용~~!
  • maintenance.constants.ts에 점검 시간 상수 / 현재 점검 여부 확인용 함수를 추가했습니다

점검 중에는 점검 페이지로 이동 점검 아닐 때 /maintenance 접근 불가
점검중 점검아님~~!

💬 To. 리뷰어

@nijuy nijuy self-assigned this Feb 9, 2026
@gemini-code-assist
Copy link

Summary of Changes

Hello @nijuy, 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은 서비스 점검 기간 동안 사용자 접근을 관리하기 위한 새로운 기능을 도입합니다. MaintenanceGuard 컴포넌트를 구현하여, 미리 정의된 점검 시간 동안 사용자가 애플리케이션에 접근하려고 할 때 전용 점검 페이지로 리다이렉트되도록 합니다. 이를 통해 서비스 중단 시에도 통제된 사용자 경험을 제공하며, 메인 랜딩 페이지는 계속 접근 가능하도록 유지됩니다.

Highlights

  • MaintenanceGuard 적용: MaintenanceGuard 컴포넌트를 도입하여 서비스 점검 시간 동안 사용자 접근을 효과적으로 차단합니다.
  • 점검 페이지로 리다이렉트: 점검 시간 중 서비스에 접근하려는 사용자는 전용 점검 페이지(/maintenance)로 자동 리다이렉트되어 점검 정보를 확인할 수 있습니다.
  • 랜딩 페이지 예외 처리: 메인 랜딩 페이지(PATH.MAIN)는 점검 중에도 접근이 허용되어, 사용자가 서비스 상태를 확인할 수 있도록 합니다.
  • 점검 시간 상수 및 유틸리티 함수 추가: maintenance.constant.ts 파일을 새로 추가하여 점검 시작/종료 시간 상수를 정의하고, 현재 점검 여부를 확인하는 isInMaintenance 유틸리티 함수를 제공합니다.
  • 새로운 점검 페이지 컴포넌트: ServiceMaintenancePage 컴포넌트를 추가하여 점검 관련 상세 정보를 사용자에게 시각적으로 전달합니다.
  • 경로 상수 업데이트: PATH.constant.ts/maintenance 경로와 공식 인스타그램 링크를 추가하여 관련 기능을 지원합니다.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Changelog
  • src/App.tsx
    • isInMaintenance, ServiceMaintenancePage, MaintenanceGuard를 임포트했습니다.
    • 메인 Routes 컴포넌트를 MaintenanceGuard로 감쌌습니다.
    • /maintenance 경로에 ServiceMaintenancePage를 연결하는 새로운 Route를 추가했습니다.
    • useEffectupdateProfile 호출 조건에 isInMaintenance()를 추가했습니다.
  • src/constants/maintenance.constant.ts
    • 새 파일이 생성되었습니다.
    • MAINTENANCE_STARTMAINTENANCE_END 상수를 정의합니다.
    • 현재 시간이 점검 기간 내에 있는지 확인하는 isInMaintenance 함수를 내보냅니다.
  • src/constants/path.constant.ts
    • MAINTENANCE: '/maintenance' 경로를 추가했습니다.
    • INSTAGRAM 링크를 추가했습니다.
  • src/pages/MaintenanceGuard.tsx
    • 새 파일이 생성되었습니다.
    • MaintenanceGuard 컴포넌트를 정의합니다.
    • 서비스가 점검 중이고 현재 경로가 화이트리스트(메인 페이지 또는 점검 페이지)에 없는 경우를 확인합니다.
    • 조건이 충족되면 /maintenance로 리다이렉트합니다.
  • src/pages/maintenance/ServiceMaintenancePage.tsx
    • 새 파일이 생성되었습니다.
    • ServiceMaintenancePage 컴포넌트를 정의합니다.
    • 점검 시작/종료 시간, 영향, 공식 SNS 링크를 포함한 점검 정보를 표시합니다.
    • 현재 점검 중이 아닌 경우 PATH.MAIN으로 리다이렉트합니다.
Activity
  • 이 PR에 대한 활동 내역(댓글, 리뷰 등)은 제공되지 않았습니다.
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

@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

점검 시간에는 페이지 접근을 막는 MaintenanceGuard를 추가하신 것을 확인했습니다. 전반적으로 잘 구현되었지만, 몇 가지 개선점을 제안합니다. MaintenanceGuard에서 헬퍼 함수의 위치를 조정하여 렌더링 성능을 개선할 수 있고, ServiceMaintenancePage에서는 사용자에게 표시되는 점검 시간이 사용자의 시간대와 관계없이 항상 한국 표준시(KST)로 표시되도록 수정해야 합니다. 자세한 내용은 각 파일의 주석을 참고해주세요.

@nijuy nijuy merged commit ee96bff into develop Feb 9, 2026
1 check passed
@nijuy nijuy deleted the feat/maintenance-guard branch February 9, 2026 11:47
nijuy added a commit that referenced this pull request Feb 9, 2026
* feat(constants): 점검 기간을 관리하는 상수/함수 추가

* feat(pages): 점검 페이지 추가

* feat(App): 최상위에 MaintenanceGuard 추가

* chore: 불필요한 조건문 & 개행 삭제

* feat(ServiceMaintenancePage): 점검 기간 아닐 때는 접근을 막는다

* feat(App): 점검 중에는 updateProfile()을 호출하지 않는다

* chore: 피버타임 배포용 점검 시간 수정

* refactor(MaintenanceGuard): isWhitelisted 함수를 컴포넌트 외부로 이동

* feat(ServiceMaintenancePage): toLocaleString()에 타임존 옵션 지정

* feat(ServiceMaintenancePage): 번역 적용

* chore: 피버타임 배포용 점검 시간 수정

- 조금 당겼음
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant