diff --git a/src/app/(with-header-sidebar)/mypage/_components/AlertModal.module.css b/src/app/(with-header-sidebar)/mypage/_components/AlertModal.module.css
new file mode 100644
index 0000000..1921720
--- /dev/null
+++ b/src/app/(with-header-sidebar)/mypage/_components/AlertModal.module.css
@@ -0,0 +1,31 @@
+.modal {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ gap: 32px;
+ font-size: 16px;
+ font-weight: 500;
+ line-height: 26px;
+ color: var(--black-100);
+ padding: 32px 40px;
+}
+
+.button {
+ font-size: 14px;
+ font-weight: 600;
+ line-height: 24px;
+ padding: 9px 83.5px;
+}
+
+@media screen and (min-width: 768px) {
+ .modal {
+ font-size: 20px;
+ line-height: 32px;
+ padding: 40px 64px;
+ }
+ .button {
+ font-size: 16px;
+ line-height: 26px;
+ padding: 11px 106px;
+ }
+}
diff --git a/src/app/(with-header-sidebar)/mypage/_components/AlertModal.tsx b/src/app/(with-header-sidebar)/mypage/_components/AlertModal.tsx
new file mode 100644
index 0000000..1150b36
--- /dev/null
+++ b/src/app/(with-header-sidebar)/mypage/_components/AlertModal.tsx
@@ -0,0 +1,17 @@
+import { ReactNode } from 'react';
+import Button from '@/components/Button';
+import styles from './AlertModal.module.css';
+import useModalStore from '../_store/modalStore';
+
+export default function AlertModal({ children }: { children: ReactNode }) {
+ const { closeModal } = useModalStore();
+
+ return (
+
+ {children}
+
+
+ );
+}
diff --git a/src/app/mypage/components/FileInput.module.css b/src/app/(with-header-sidebar)/mypage/_components/FileInput.module.css
similarity index 60%
rename from src/app/mypage/components/FileInput.module.css
rename to src/app/(with-header-sidebar)/mypage/_components/FileInput.module.css
index f9a08af..767db80 100644
--- a/src/app/mypage/components/FileInput.module.css
+++ b/src/app/(with-header-sidebar)/mypage/_components/FileInput.module.css
@@ -20,6 +20,26 @@
display: none;
}
+.image {
+ border-radius: 8px;
+}
+
+.hoverContent {
+ opacity: 0;
+ transition: opacity 0.3s ease-in-out;
+}
+
+.label:hover .image {
+ filter: brightness(50%);
+ transition: filter 0.3s ease-in-out;
+}
+
+.label:hover .hoverContent {
+ opacity: 1;
+ transition: opacity 0.3s ease-in-out;
+ z-index: 1;
+}
+
@media screen and (min-width: 768px) {
.label {
width: 182px;
diff --git a/src/app/mypage/components/FileInput.tsx b/src/app/(with-header-sidebar)/mypage/_components/FileInput.tsx
similarity index 78%
rename from src/app/mypage/components/FileInput.tsx
rename to src/app/(with-header-sidebar)/mypage/_components/FileInput.tsx
index 11f1b56..9bd3793 100644
--- a/src/app/mypage/components/FileInput.tsx
+++ b/src/app/(with-header-sidebar)/mypage/_components/FileInput.tsx
@@ -1,3 +1,5 @@
+'use client';
+
import { useEffect } from 'react';
import { ChangeEvent, useState } from 'react';
import Image from 'next/image';
@@ -31,7 +33,16 @@ export default function FileInput({ name, setValue, url, id }: FileInputProps) {
<>