React

실전 대시보드 UI 만들기 – MUI 또는 Ant Design으로 관리자 화면 구성하기

jonbeo 2025. 6. 15. 10:30
반응형

 

 

지금까지 MUI와 Ant Design의 기본 사용법과 커스터마이징 방법을 배워봤다면,
이번엔 그걸 직접 관리자 페이지 레이아웃에 적용해보는 실습을 해볼 차례입니다.

사이드바 + 상단바 + 콘텐츠 영역으로 구성된 기본적인 대시보드 틀을 구현해볼게요.


✅ 구조 설계 미리보기

+-------------------------------+
|          Header Bar           |
+------------+------------------+
| Sidebar    |   Main Content   |
+------------+------------------+

 


 

✅ MUI 버전 예제

import { Box, AppBar, Toolbar, Drawer, Typography } from '@mui/material';

const drawerWidth = 240;

function Dashboard() {
  return (
    <Box sx={{ display: 'flex' }}>
      <AppBar position="fixed" sx={{ zIndex: 1201 }}>
        <Toolbar>
          <Typography variant="h6">대시보드</Typography>
        </Toolbar>
      </AppBar>

      <Drawer
        variant="permanent"
        sx={{ width: drawerWidth, [`& .MuiDrawer-paper`]: { width: drawerWidth } }}
      >
        <Toolbar />
        <Box sx={{ p: 2 }}>사이드바 메뉴</Box>
      </Drawer>

      <Box component="main" sx={{ flexGrow: 1, p: 3, mt: 8 }}>
        메인 콘텐츠 영역
      </Box>
    </Box>
  );
}

 


 

✅ Ant Design 버전 예제

import { Layout, Menu } from 'antd';
const { Header, Sider, Content } = Layout;

function Dashboard() {
  return (
    <Layout style={{ minHeight: '100vh' }}>
      <Header style={{ color: '#fff', fontSize: 20 }}>대시보드</Header>
      <Layout>
        <Sider width={200}>
          <Menu
            mode="inline"
            defaultSelectedKeys={['1']}
            items={[
              { key: '1', label: '홈' },
              { key: '2', label: '사용자 관리' },
            ]}
          />
        </Sider>
        <Layout style={{ padding: '24px' }}>
          <Content>메인 콘텐츠 영역</Content>
        </Layout>
      </Layout>
    </Layout>
  );
}

 


 

🧩 공통 기능 추천 요소

  • 아이콘 메뉴 (@mui/icons-material, @ant-design/icons)
  • 반응형 처리 (Drawer or Sider 토글 기능)
  • 테이블/카드/그래프 등 컴포넌트 삽입 확장 가능
  • 로그인 → 토큰 기반 인증 연동도 이후 확장 가능
반응형