PLM 솔루션에 오신 것을 환영합니다!
diff --git a/frontend/components/layout/AppLayout.tsx b/frontend/components/layout/AppLayout.tsx
index bc5473c5..35597eb3 100644
--- a/frontend/components/layout/AppLayout.tsx
+++ b/frontend/components/layout/AppLayout.tsx
@@ -22,6 +22,8 @@ import { useProfile } from "@/hooks/useProfile";
import { MenuItem } from "@/lib/api/menu";
import { MainHeader } from "./MainHeader";
import { ProfileModal } from "./ProfileModal";
+import { PageHeader } from "./PageHeader";
+import { getPageInfo } from "@/constants/pageInfo";
// useAuth의 UserInfo 타입을 확장
interface ExtendedUserInfo {
@@ -304,9 +306,9 @@ export function AppLayout({ children }: AppLayoutProps) {
if (!user) {
return (
-
);
@@ -379,7 +381,10 @@ export function AppLayout({ children }: AppLayoutProps) {
{/* 가운데 컨텐츠 영역 */}
-
{children}
+
+
+ {children}
+
{/* 프로필 수정 모달 */}
diff --git a/frontend/components/layout/PageHeader.tsx b/frontend/components/layout/PageHeader.tsx
new file mode 100644
index 00000000..63318807
--- /dev/null
+++ b/frontend/components/layout/PageHeader.tsx
@@ -0,0 +1,21 @@
+interface PageHeaderProps {
+ title: string;
+ description?: string;
+}
+
+/**
+ * 페이지 상단 헤더 컴포넌트
+ * 제목, 설명, 추가 버튼 등을 표시
+ */
+export function PageHeader({ title, description }: PageHeaderProps) {
+ return (
+
+
+
+
{title}
+ {description &&
{description}
}
+
+
+
+ );
+}
diff --git a/frontend/constants/pageInfo.ts b/frontend/constants/pageInfo.ts
new file mode 100644
index 00000000..3652cdbf
--- /dev/null
+++ b/frontend/constants/pageInfo.ts
@@ -0,0 +1,64 @@
+/**
+ * 페이지별 제목과 설명 정보
+ */
+export interface PageInfo {
+ title: string;
+ description?: string;
+}
+
+export const PAGE_INFO: Record
= {
+ // 메인 대시보드
+ "/main": {
+ title: "대시보드",
+ description: "PLM 시스템의 주요 현황을 확인하세요",
+ },
+
+ // 관리자 페이지들
+ "/admin": {
+ title: "관리자 대시보드",
+ description: "시스템 관리 및 모니터링",
+ },
+ "/admin/company": {
+ title: "회사 관리",
+ description: "회사 정보를 등록하고 관리합니다",
+ },
+ "/admin/userMng": {
+ title: "사용자 관리",
+ description: "시스템 사용자를 관리합니다",
+ },
+ "/admin/menu": {
+ title: "메뉴 관리",
+ description: "시스템 메뉴를 관리합니다",
+ },
+ "/admin/i18n": {
+ title: "다국어 관리",
+ description: "다국어 번역을 관리합니다",
+ },
+ "/admin/tableMng": {
+ title: "테이블 타입 관리",
+ description: "데이터베이스 테이블 타입을 관리합니다",
+ },
+
+ // 기타 페이지들
+ "/multilang": {
+ title: "다국어 설정",
+ description: "언어 설정을 변경합니다",
+ },
+ "/dashboard": {
+ title: "대시보드",
+ description: "PLM 시스템 현황",
+ },
+
+ // 기본값 (매핑되지 않은 페이지)
+ default: {
+ title: "PLM 솔루션",
+ description: "제품 수명 주기 관리 시스템",
+ },
+};
+
+/**
+ * 현재 경로에 맞는 페이지 정보를 반환
+ */
+export function getPageInfo(pathname: string): PageInfo {
+ return PAGE_INFO[pathname] || PAGE_INFO["default"];
+}