diff --git a/src/user/ui-profile/Calendar.tsx b/src/user/ui-profile/Calendar.tsx
new file mode 100644
index 00000000..69ffbe35
--- /dev/null
+++ b/src/user/ui-profile/Calendar.tsx
@@ -0,0 +1,76 @@
+import React, { useState } from 'react';
+import Image from 'next/image';
+import { subMonths } from 'date-fns';
+import { Button } from '@/components/ui/button';
+import { DropdownMenu, DropdownMenuContent, DropdownMenuRadioGroup, DropdownMenuItem, DropdownMenuSeparator, DropdownMenuTrigger } from '@/components/ui/dropdown-menu';
+import ARROW_BOTTOM_ICON from '../../../public/icon/arrow-bottom-icon.svg';
+import ARROW_RIGHT_ICON from '../../../public/icon/arrow-right-icon.svg';
+import ARROW_LEFT_ICON from '../../../public/icon/arrow-left-icon.svg';
+import useCalendar from '../../hooks/useCalendar';
+import { DAY_LIST, DATE_MONTH_FIXER, DEFAULT_TRASH_VALUE } from '../utill/constants';
+
+export default function Calendar() {
+ const [position, setPosition] = useState
('bottom');
+ const { weekCalendarList, currentDate, setCurrentDate } = useCalendar();
+
+ // 이전 달 클릭
+ const handlePrevMonth = () => setCurrentDate((prevDate) => subMonths(prevDate, DATE_MONTH_FIXER));
+ // 다음 달 클릭
+ const handleNextMonth = () => setCurrentDate((prevDate) => subMonths(prevDate, -DATE_MONTH_FIXER));
+
+ return (
+
+ {/* 캘린더 헤더 */}
+
+
+
{`${currentDate.getFullYear()}년 ${currentDate.getMonth() + 1}월`}
+
+
+
+
+
+
+
+ EmotionSelector 추가 예정
+
+
+
+
+
+
+
+
+
+ {/* 캘린더 */}
+
+
+ {DAY_LIST.map((day) => (
+
+ {day}
+
+ ))}
+
+ {weekCalendarList.map((week, weekIndex) => (
+ // eslint-disable-next-line react/no-array-index-key
+
+ {week.map((day, dayIndex) => (
+ // eslint-disable-next-line react/no-array-index-key
+
+ {day === DEFAULT_TRASH_VALUE ? '' : day}
+
+ ))}
+
+ ))}
+
+
+ );
+}
diff --git a/src/user/utill/constants.ts b/src/user/utill/constants.ts
index e8d8b154..ca63a32d 100644
--- a/src/user/utill/constants.ts
+++ b/src/user/utill/constants.ts
@@ -1,3 +1,11 @@
-export const MAX_FILE_SIZE = 1024 * 1024 * 5; // 5MB
-export const ACCEPTED_IMAGE_TYPES = ['image/jpeg', 'image/jpg', 'image/png'];
-export const sampleImage = '/ProfileTestImage.jpg';
+// 파일 업로드 관련
+export const MAX_FILE_SIZE = 1024 * 1024 * 5; // 파일 업로드 최대 용량 5MB
+export const ACCEPTED_IMAGE_TYPES = ['image/jpeg', 'image/jpg', 'image/png']; // 허용 가능 확장자
+export const sampleImage = '/ProfileTestImage.jpg'; // 초기프로필 이미지
+
+// 캘린더 관련 상수
+export const DAY_LIST = ['일', '월', '화', '수', '목', '금', '토']; // 요일
+export const DATE_MONTH_FIXER = 1; // 날짜 조정 상수 (현재 사용되지 않음, 필요에 따라 활용 가능)
+export const CALENDAR_LENGTH = 42; // 6주에 맞추어 캘린더의 총 길이를 42로 설정
+export const DAY_OF_WEEK = 7; // 한 주의 날 수 (일~토)
+export const DEFAULT_TRASH_VALUE = -1; // 기본값 설정 (필요에 따라 사용 가능)