diff --git a/apps/web/src/app/my/school-email/_ui/SchoolEmailVerificationContent/index.tsx b/apps/web/src/app/my/school-email/_ui/SchoolEmailVerificationContent/index.tsx
index 78890319..d10a070b 100644
--- a/apps/web/src/app/my/school-email/_ui/SchoolEmailVerificationContent/index.tsx
+++ b/apps/web/src/app/my/school-email/_ui/SchoolEmailVerificationContent/index.tsx
@@ -1,6 +1,6 @@
"use client";
-import { useRouter } from "next/navigation";
+import { useRouter, useSearchParams } from "next/navigation";
import { useEffect, useMemo, useState } from "react";
import { useGetMyInfo, usePostConfirmSchoolEmail, usePostSchoolEmail } from "@/apis/MyPage";
import BlockBtn from "@/components/button/BlockBtn";
@@ -25,6 +25,7 @@ const formatTime = (seconds: number) => {
const SchoolEmailVerificationContent = () => {
const router = useRouter();
+ const searchParams = useSearchParams();
const { data: myInfo } = useGetMyInfo();
const postSchoolEmailMutation = usePostSchoolEmail();
const postConfirmSchoolEmailMutation = usePostConfirmSchoolEmail();
@@ -42,6 +43,7 @@ const SchoolEmailVerificationContent = () => {
const isCodeInputValid = code.length === CODE_LENGTH;
const isTimerExpired = remainingSeconds <= 0;
const progressValue = step === "email" ? 0 : step === "code" ? 50 : 100;
+ const shouldReturnToApply = searchParams?.get("returnTo") === "applicationApply";
useEffect(() => {
if (step !== "code" || remainingSeconds <= 0) return;
@@ -132,7 +134,9 @@ const SchoolEmailVerificationContent = () => {
- router.replace("/")}>홈으로
+ router.replace(shouldReturnToApply ? "/university/application/apply" : "/")}>
+ {shouldReturnToApply ? "지원하기로 돌아가기" : "홈으로"}
+
diff --git a/apps/web/src/app/my/school-email/page.tsx b/apps/web/src/app/my/school-email/page.tsx
index 170e4a56..f9e13901 100644
--- a/apps/web/src/app/my/school-email/page.tsx
+++ b/apps/web/src/app/my/school-email/page.tsx
@@ -1,6 +1,8 @@
import type { Metadata } from "next";
+import { Suspense } from "react";
import TopDetailNavigation from "@/components/layout/TopDetailNavigation";
+import CloudSpinnerPage from "@/components/ui/CloudSpinnerPage";
import { NO_INDEX_ROBOTS } from "@/utils/seo";
import SchoolEmailVerificationContent from "./_ui/SchoolEmailVerificationContent";
@@ -14,7 +16,9 @@ const SchoolEmailVerificationPage = () => {
return (
<>
-
+ }>
+
+
>
);
};
diff --git a/apps/web/src/app/university/application/apply/ApplyPageContent.tsx b/apps/web/src/app/university/application/apply/ApplyPageContent.tsx
index 80f29ff1..7421498c 100644
--- a/apps/web/src/app/university/application/apply/ApplyPageContent.tsx
+++ b/apps/web/src/app/university/application/apply/ApplyPageContent.tsx
@@ -1,7 +1,7 @@
"use client";
import { useRouter } from "next/navigation";
-import { useMemo, useState } from "react";
+import { useEffect, useMemo, useState } from "react";
import { usePostSubmitApplication } from "@/apis/applications";
import { useGetMyGpaScore, useGetMyLanguageTestScore } from "@/apis/Scores";
import { useUniversitySearch } from "@/apis/universities";
@@ -23,6 +23,8 @@ const APPLY_PROGRESS_TOTAL_STEPS = 5;
const ApplyPageContent = () => {
const router = useRouter();
const homeUniversityId = useAuthStore((state) => state.homeUniversityId);
+ const isAuthInitialized = useAuthStore((state) => state.isInitialized);
+ const isAuthenticated = useAuthStore((state) => state.isAuthenticated);
const [step, setStep] = useState(1);
const maxChoiceCount = getHomeUniversityById(homeUniversityId)?.maxChoiceCount ?? DEFAULT_MAX_CHOICE_COUNT;
const universitySearchOptions = useMemo(
@@ -46,6 +48,14 @@ const ApplyPageContent = () => {
const [curGpaScore, setCurGpaScore] = useState(null);
const [curUniversityList, setCurUniversityList] = useState([]);
+ useEffect(() => {
+ if (!isAuthInitialized || !isAuthenticated || homeUniversityId !== null) {
+ return;
+ }
+
+ router.replace("/my/school-email?returnTo=applicationApply");
+ }, [homeUniversityId, isAuthInitialized, isAuthenticated, router]);
+
// 다음 스텝으로 넘어가기
const goNextStep = () => setStep((prev) => prev + 1);
// 이전 스텝으로 돌아가기
@@ -89,6 +99,10 @@ const ApplyPageContent = () => {
const hasSelectedUniversity = curUniversityList.some((universityId) => universityId > 0);
const progressStep = step === 3 && hasSelectedUniversity ? APPLY_PROGRESS_TOTAL_STEPS : step + 1;
+ if (isAuthInitialized && isAuthenticated && homeUniversityId === null) {
+ return null;
+ }
+
return (
<>