diff --git a/src/app/mydashboard/layout.tsx b/src/app/mydashboard/layout.tsx
index 371f2f8..a7f359c 100644
--- a/src/app/mydashboard/layout.tsx
+++ b/src/app/mydashboard/layout.tsx
@@ -1,11 +1,12 @@
import Sidebar from '@/components/Sidebar/Sidebar';
import { ReactNode } from 'react';
+import Header from '@/components/dashboard-header/Header';
export default function Layout({ children }: { children: ReactNode }) {
return (
-
+
{children}
);
diff --git a/src/components/dashboard-header/Header.tsx b/src/components/dashboard-header/Header.tsx
new file mode 100644
index 0000000..38c0d3a
--- /dev/null
+++ b/src/components/dashboard-header/Header.tsx
@@ -0,0 +1,72 @@
+'use client';
+
+import React from 'react';
+import { usePathname } from 'next/navigation';
+import Image from 'next/image';
+import Crown from '@/assets/icons/crown.svg';
+import Title from './Title';
+import SettingBtn from './SettingBtn';
+import Members from './Members';
+import Profile from './Profile';
+
+interface HeaderProps {
+ title?: string;
+ showCrown?: boolean;
+ showSetting?: boolean;
+ showMembers?: boolean;
+ showProfile?: boolean;
+}
+
+const titleMap: { [key: string]: string } = {
+ '/mydashboard': '내 대시보드',
+ '/mypage': '계정관리',
+};
+
+// TODO : API 연동 이후 추가 작업 예정, 우선 mock 데이터로 집어넣어놨습니다.
+interface UserType {
+ nickname: string;
+ profileImageUrl: string;
+}
+
+const mockUsers: UserType[] = [
+ { nickname: '배유철', profileImageUrl: 'B' },
+ { nickname: '김철수', profileImageUrl: 'K' },
+ { nickname: '이영희', profileImageUrl: 'L' },
+];
+
+export default function Header({ showCrown = false, showSetting = false, showMembers = false, showProfile = false }: HeaderProps) {
+ const pathname = usePathname();
+ const title = titleMap[pathname] || '내 대시보드';
+ const handleSettingClick = () => {
+ console.log('관리 버튼 클릭');
+ // TODO : 디버깅 용도 console.log API 기능 구현 후 수정 예정
+ };
+
+ const handleInviteClick = () => {
+ console.log('초대 버튼 클릭');
+ // TODO : 디버깅 용도 console.log API 기능 구현 후 수정 예정
+ };
+
+ const handleProfileClick = () => {
+ console.log('프로필 버튼 클릭');
+ // TODO : 디버깅 용도 console.log API 기능 구현 후 수정 예정
+ };
+
+ return (
+
+ );
+}
diff --git a/src/components/dashboard-header/Members.tsx b/src/components/dashboard-header/Members.tsx
new file mode 100644
index 0000000..568c7d5
--- /dev/null
+++ b/src/components/dashboard-header/Members.tsx
@@ -0,0 +1,17 @@
+import React from 'react';
+
+interface MembersProps {
+ users: { profileImageUrl: string }[];
+}
+
+export default function Members({ users }: MembersProps) {
+ return (
+
+ {users.map((user, index) => (
+
+ {user.profileImageUrl}
+
+ ))}
+
+ );
+}
diff --git a/src/components/dashboard-header/Profile.tsx b/src/components/dashboard-header/Profile.tsx
new file mode 100644
index 0000000..327c094
--- /dev/null
+++ b/src/components/dashboard-header/Profile.tsx
@@ -0,0 +1,16 @@
+import React from 'react';
+
+interface ProfileProps {
+ nickname: string;
+ profileImageUrl: string;
+ onClick: () => void;
+}
+
+export default function Profile({ nickname, profileImageUrl, onClick }: ProfileProps) {
+ return (
+
+ );
+}
diff --git a/src/components/dashboard-header/SettingBtn.tsx b/src/components/dashboard-header/SettingBtn.tsx
new file mode 100644
index 0000000..679aca8
--- /dev/null
+++ b/src/components/dashboard-header/SettingBtn.tsx
@@ -0,0 +1,30 @@
+import React from 'react';
+import Image from 'next/image';
+import Setting from '@/assets/icons/setting.svg';
+import AddBox from '@/assets/icons/add_box.svg';
+
+interface SettingBtnProps {
+ onSettingClick: () => void;
+ onInviteClick: () => void;
+}
+
+export default function SettingBtn({ onSettingClick, onInviteClick }: SettingBtnProps) {
+ return (
+
+
+
+
+ );
+}
diff --git a/src/components/dashboard-header/Title.tsx b/src/components/dashboard-header/Title.tsx
new file mode 100644
index 0000000..c124769
--- /dev/null
+++ b/src/components/dashboard-header/Title.tsx
@@ -0,0 +1,13 @@
+import React from 'react';
+
+interface TitleProps {
+ title?: string;
+}
+
+export default function Title({ title }: TitleProps) {
+ return (
+
+ {title}
+
+ );
+}