diff --git a/mosu-app/src/middleware.ts b/mosu-app/src/middleware.ts
new file mode 100644
index 00000000..91e4e7b6
--- /dev/null
+++ b/mosu-app/src/middleware.ts
@@ -0,0 +1,19 @@
+import { NextRequest, NextResponse } from "next/server";
+
+export const config = {
+ matcher: ["/((?!api|_next/static|_next/image|favicon.ico).*)"],
+};
+
+export function middleware(request: NextRequest) {
+ const isMaintenanceMode = process.env.MAINTENANCE_MODE === "true";
+
+ if (request.nextUrl.pathname === "/maintenance") {
+ return NextResponse.next();
+ }
+
+ if (isMaintenanceMode) {
+ return NextResponse.redirect(new URL("/maintenance", request.url));
+ }
+
+ return NextResponse.next();
+}
diff --git a/mosu-app/src/pages/_app.tsx b/mosu-app/src/pages/_app.tsx
index f075362f..7358b37f 100644
--- a/mosu-app/src/pages/_app.tsx
+++ b/mosu-app/src/pages/_app.tsx
@@ -17,8 +17,6 @@ import { GlobalLayout } from "@/apps/ui/GlobalLayout";
import { BannerProvider } from "@/features/banner/contexts/BannerProvider";
-import { useOverlay } from "@/shared/hooks/useOverlay";
-
type AppPropsWithLayout = AppProps & {
Component: NextPage & { layout?: (page: React.ReactNode) => React.ReactNode };
};
@@ -34,55 +32,10 @@ export default function App({ Component, pageProps }: AppPropsWithLayout) {
const Page = Layout(
- 「모의가 아닌 진짜 수능」은 기존에 시험지 지참 방식으로만 운영되었으나, 이번에 시대인재 서바이벌 프로를 - 도입하여 학생들에게 ① 개인 시험지 지참 방식 또는 ② 서바이벌 프로 및 더 프리미엄 모의고사 응시 두 가지 - 선택지를 제공하게 되었습니다. -
-- 이에 따라 금일부터 홈페이지 리뉴얼 작업이 진행되며, 당분간은 홈페이지 결제가 아닌 선착순 사전 예약 신청 - 방식으로 접수를 받습니다. -
-- 리뉴얼 완료 후에는 예약자분들께 문자로 상세 안내를 드릴 예정이며, 기존 신청자분들께도 별도로 안내 문자가 - 발송될 예정입니다. -
-- - 선착순 사전 예약하기 - -
-자세한 사항은 카카오톡 채널 또는 공식 인스타그램을 통해 확인 부탁드립니다.
-- 카카오톡 채널 : - - https://pf.kakao.com/_xhHxjxin - -
-인스타그램 :
- - https://www.instagram.com/mosu2627/ - -새로운 응시 방식 도입 및 홈페이지 리뉴얼 안내
++ 기존 시험지 지참 방식으로만 운영되던 「모의가 아닌 진짜 수능」이 시대인재 서바이벌 프로를 + 도입하여 두 가지 응시 선택지를 제공합니다. +
++ 금일부터 홈페이지 리뉴얼 작업이 진행됨에 따라, 당분간은 선착순 사전 예약 신청 방식으로 + 접수를 받습니다. +
+선착순 사전 예약 신청 링크
+ + 예약 신청 바로가기 + +