안녕하세요! 오늘은 Backstage의 사용자 경험을 결정짓는 가장 중요한 요소 중 하나인 '테마(Theme) 커스터마이징'에 대해 심층적으로 다뤄보겠습니다. 🎨
Backstage는 단순히 기능을 제공하는 툴을 넘어, 우리 회사의 브랜드 아이덴티티를 투영할 수 있는 플랫폼이어야 합니다. 기본 제공되는 테마도 훌륭하지만, 회사의 로고 색상이나 디자인 가이드에 맞춰 테마를 변경하는 것은 개발자들의 소속감을 높이는 데 큰 역할을 하죠. Backstage에서 권장하는 테마 커스터마이징 기법을 단계별로 완벽히 정리해 드립니다! 💡

🏗️ Backstage 테마 시스템의 기초: Material UI
Backstage의 UI는 Material UI (MUI)를 기반으로 구축되었습니다. 따라서 테마를 커스터마이징한다는 것은 곧 MUI의 테마 시스템을 활용한다는 의미와 같습니다.
Backstage는 크게 두 가지 수준의 커스터마이징 방식을 제공합니다.
- Light/Dark 모드 전환 및 기본 색상 변경
- 완전한 커스텀 테마 생성 및 적용
🌟 1단계: 기본 색상 및 폰트 커스터마이징 (추천 방식)
가장 권장되는 방식은 Backstage에서 제공하는 createUnifiedTheme 함수를 사용하는 것입니다. 이 함수는 MUI 테마를 Backstage의 특수한 요구사항에 맞게 확장해 줍니다.
✅ 주요 설정 항목
- Palette: 주색상(Primary), 보조색상(Secondary), 배경색 등을 지정합니다.
- Typography: 폰트 패밀리, 크기, 굵기 등을 설정합니다.
- Default Page Themes: Backstage 특유의 헤더 그라데이션 등을 정의합니다.
🛠️ 2단계: 실제 코드 적용하기 (패키지: packages/app)
테마 작업은 프론트엔드 앱인 packages/app 폴더 내에서 이루어집니다.
📝 커스텀 테마 정의 예시 (src/theme/myTheme.ts)
TypeScript
import { createUnifiedTheme, themes } from '@backstage/theme';
export const myCustomTheme = createUnifiedTheme({
palette: {
...themes.light.palette,
primary: {
main: '#3498db', // 우리 회사의 메인 블루 컬러!
},
secondary: {
main: '#2ecc71',
},
},
fontFamily: 'Roboto, Arial',
/* 헤더 테마 등을 추가로 정의할 수 있습니다 */
});
📝 앱에 테마 등록하기 (src/App.tsx)
정의한 테마를 App.tsx의 createApp 함수에 등록해야 합니다.
TypeScript
import { myCustomTheme } from './theme/myTheme';
const app = createApp({
apis: ...,
themes: [
{
id: 'my-theme',
title: 'Company Theme',
variant: 'light',
Provider: ({ children }) => (
<ThemeProvider theme={myCustomTheme}>
{children}
</ThemeProvider>
),
},
// 기존 dark 테마 등도 함께 유지할 수 있습니다.
],
});
🎨 3단계: 페이지별 헤더 테마 커스텀 (Advanced)
Backstage는 엔티티 타입(Service, API, Website 등)에 따라 상단 헤더의 색상이나 패턴을 다르게 가져갈 수 있는 기능을 제공합니다. 이를 통해 사용자가 현재 어떤 종류의 자원을 보고 있는지 직관적으로 알 수 있게 합니다.
- Shape: 헤더에 들어갈 기하학적 무늬를 선택합니다.
- Colors: 그라데이션에 사용될 색상 조합을 지정합니다.
💡 테마 커스터마이징 시 꼭 기억해야 할 팁!
- 접근성 준수: 색상을 바꿀 때 텍스트와 배경의 대비가 충분한지 꼭 확인하세요. ♿
- 일관성 유지: 모든 플러그인이 동일한 테마를 공유하므로, 특정 화면에서만 튀는 색상은 피하는 것이 좋습니다.
- 다크 모드 배려: 라이트 모드만 만들지 마세요! 개발자들은 다크 모드를 사랑합니다. 🌙
🏁 결론: 테마는 개발자 경험의 시작입니다
Backstage에서 권장하는 테마 커스터마이징 기법의 핵심은 createUnifiedTheme을 통해 MUI 테마를 확장하고, 이를 앱의 themes 배열에 등록하는 것입니다.
이 방식을 사용하면 Backstage의 모든 코어 컴포넌트와 플러그인에 일관된 스타일이 즉시 적용됩니다. 지금 바로 우리 회사만의 독창적인 개발자 포털을 디자인해 보세요! 🚀
'클라우드 > Backstage' 카테고리의 다른 글
| Backstage 마스터하기: 소스 코드로 향하는 지도, source-location 어노테이션 완벽 가이드 (0) | 2025.12.27 |
|---|---|
| Backstage 모노레포의 보물창고, "common-library" 완벽 활용법 (0) | 2025.12.27 |
| Backstage 패키지 수사대: 5초 만에 프론트엔드 플러그인 찾아내기 (0) | 2025.12.26 |
| Backstage의 보이지 않는 영웅: 백엔드 플러그인의 책임과 역할 총정리 (0) | 2025.12.26 |
| Backstage에 활력을! TechDocs 완벽 설치 및 Yarn 워크스페이스 설정 가이드 (0) | 2025.12.26 |