Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
16 commits
Select commit Hold shift + click to select a range
b8bc339
♻️ (#3, #4) 초기 폴더 ꡬ쑰 및 파일, 라이브러리 μ„ΈνŒ… (#6)
daaoooy Nov 27, 2025
9e16c1f
πŸ’„ (#5) Pretendard 폰트 적용 (#7)
daaoooy Nov 27, 2025
e192deb
πŸ› (#11) .gitattributes μ„€μ • 좩돌 버그 ν•΄κ²° (#12)
daaoooy Nov 27, 2025
3ca598a
πŸ’„(#10) λ””μžμΈ 토큰 μ„ΈνŒ… (#13)
daaoooy Nov 27, 2025
7001f73
πŸ’„ (#14) νŒŒλΉ„μ½˜ μ„€μ • 및 적용 (#15)
daaoooy Nov 27, 2025
861be66
✨ (#9, #16) λΌμš°νŒ… μ •μ˜ + μ‚¬μ΄λ“œλ°” κ΅¬ν˜„ (#17)
daaoooy Nov 29, 2025
8501031
πŸ› (#19, #20) μ‚¬μ΄λ“œλ°” 툴팁 버그, Vercel 404 μ—λŸ¬ ν•΄κ²° (#21)
daaoooy Nov 29, 2025
aae0685
πŸ’š Branch에 release 브랜치 μΆ”κ°€ (#26)
daaoooy Nov 29, 2025
749bf2a
✨ (#8) 메인 νŽ˜μ΄μ§€ μ œμž‘ (#27)
daaoooy Dec 1, 2025
6fbb4a3
πŸ”€ sync main into develop (#29)
daaoooy Dec 1, 2025
128407c
πŸ”€ sync main into develop (#30)
daaoooy Dec 1, 2025
94a9926
Merge branch 'develop' of https://github.com/ktc-boost/boost-docs int…
daaoooy Dec 1, 2025
0f2a9c9
♻️ (#31) μ‚¬μ΄λ“œλ°” λͺ©λ‘μ— λ§žμΆ”μ–΄ νŽ˜μ΄μ§€ μˆ˜μ •
daaoooy Dec 4, 2025
b7807bb
♻️ (#31) μ‚¬μ΄λ“œλ°” λͺ©λ‘ μˆ˜μ •
daaoooy Dec 4, 2025
0a9057b
✨ (#31) μ• λ‹ˆλ©”μ΄μ…˜ μ»΄ν¬λ„ŒνŠΈ 및 νŽ˜μ΄μ§€ μ„€λͺ… μΆ”κ°€
daaoooy Dec 4, 2025
bd38a6a
Merge pull request #32 from ktc-boost/refactor/31-sidebar
daaoooy Dec 4, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
132 changes: 91 additions & 41 deletions src/app/routes/AppRouter.tsx
Original file line number Diff line number Diff line change
@@ -1,29 +1,30 @@
import { createBrowserRouter, RouterProvider } from "react-router-dom";
import { ROUTE_PATH } from "@/app/routes/routeConstants";

import OverviewPage from "@/pages/overview/Overview";
import ResourcesPage from "@/pages/overview/Resources";
import MembersPage from "@/pages/overview/Members";
import ProjectOverviewPage from "@/pages/overview/ProjectOverview";
import TeamResourcesPage from "@/pages/overview/TeamResources";
import TeamMembersPage from "@/pages/overview/TeamMembers";

import EnvironmentPage from "@/pages/onboarding/Environment";
import SetupPage from "@/pages/onboarding/Setup";
import RunPage from "@/pages/onboarding/Run";
import StructurePage from "@/pages/onboarding/Structure";
import OnboardingResourcesPage from "@/pages/onboarding/Resources";
import FrontendOnboardingPage from "@/pages/onboarding/FrontendOnboarding";
import BackendOnboardingPage from "@/pages/onboarding/BackendOnboarding";

import WorkflowPage from "@/pages/dev-guide/Workflow";
import GitPage from "@/pages/dev-guide/Git";
import ReviewPage from "@/pages/dev-guide/Review";
import TestPage from "@/pages/dev-guide/Test";
import CommonDevGuidePage from "@/pages/dev-guide/CommonDevGuide";
import FrontendDevGuidePage from "@/pages/dev-guide/FrontendDevGuide";
import BackendDevGuidePage from "@/pages/dev-guide/BackendDevGuide";

import FrontendIntroPage from "@/pages/frontend/Intro";
import DesignSystemPage from "@/pages/frontend/DesignSystem";
import TechStackPage from "@/pages/frontend/TechStack";
import FrontendIssuesPage from "@/pages/frontend/Issues";
import FrontendGettingStartPage from "@/pages/frontend/GettingStart";
import FrontenDesignSystemPage from "@/pages/frontend/DesignSystem";
import FrontendKeyFeaturesPage from "@/pages/frontend/KeyFeatures";
import FrontendTechStackPage from "@/pages/frontend/TechStack";
import FrontendTroubleShootingPage from "@/pages/frontend/TroubleShooting";
import FrontendPerformancePage from "@/pages/frontend/Performance";
import FrontendCiCdPage from "@/pages/frontend/CiCd";

import BackendArchPage from "@/pages/backend/Architecture";
import BackendERDPage from "@/pages/backend/Erd";
import BackendIssuesPage from "@/pages/backend/Issues";
import BackendErdPage from "@/pages/backend/Erd";
import BackendArchitecturePage from "@/pages/backend/Architecture";
import BackendTroubleShootingPage from "@/pages/backend/TroubleShooting";
import BackendPerformancePage from "@/pages/backend/Performance";
import BackendTechStackPage from "@/pages/backend/TechStack";

import DeployCIPage from "@/pages/deployment/Ci";
import DeployCDPage from "@/pages/deployment/Cd";
Expand All @@ -40,35 +41,84 @@ const router = createBrowserRouter([
path: "/",
element: <AppLayout />,
children: [
{ path: ROUTE_PATH.OVERVIEW_PROJECT_OVERVIEW, element: <OverviewPage /> },
{ path: ROUTE_PATH.OVERVIEW_RESOURCES, element: <ResourcesPage /> },
{ path: ROUTE_PATH.OVERVIEW_MEMBERS, element: <MembersPage /> },
// ν”„λ‘œμ νŠΈ κ°œμš”
{ path: ROUTE_PATH.OVERVIEW.PROJECT, element: <ProjectOverviewPage /> },
{ path: ROUTE_PATH.OVERVIEW.RESOURCES, element: <TeamResourcesPage /> },
{ path: ROUTE_PATH.OVERVIEW.MEMBERS, element: <TeamMembersPage /> },

{ path: ROUTE_PATH.ONBOARDING_ENV, element: <EnvironmentPage /> },
{ path: ROUTE_PATH.ONBOARDING_SETUP, element: <SetupPage /> },
{ path: ROUTE_PATH.ONBOARDING_RUN, element: <RunPage /> },
{ path: ROUTE_PATH.ONBOARDING_STRUCTURE, element: <StructurePage /> },
// μ˜¨λ³΄λ”© κ°€μ΄λ“œ
{
path: ROUTE_PATH.ONBOARDING_RESOURCES,
element: <OnboardingResourcesPage />,
path: ROUTE_PATH.ONBOARDING.FRONTEND,
element: <FrontendOnboardingPage />,
},
{
path: ROUTE_PATH.ONBOARDING.BACKEND,
element: <BackendOnboardingPage />,
},

{ path: ROUTE_PATH.PROCESS_WORKFLOW, element: <WorkflowPage /> },
{ path: ROUTE_PATH.PROCESS_GIT, element: <GitPage /> },
{ path: ROUTE_PATH.PROCESS_REVIEW, element: <ReviewPage /> },
{ path: ROUTE_PATH.PROCESS_TEST, element: <TestPage /> },
// 개발 κ°€μ΄λ“œ
{
path: ROUTE_PATH.DEVELOPER_GUIDE.COMMON,
element: <CommonDevGuidePage />,
},
{
path: ROUTE_PATH.DEVELOPER_GUIDE.FRONTEND,
element: <FrontendDevGuidePage />,
},
{
path: ROUTE_PATH.DEVELOPER_GUIDE.BACKEND,
element: <BackendDevGuidePage />,
},

{ path: ROUTE_PATH.FRONTEND_INTRO, element: <FrontendIntroPage /> },
{ path: ROUTE_PATH.FRONTEND_DESIGN, element: <DesignSystemPage /> },
{ path: ROUTE_PATH.FRONTEND_TECHSTACK, element: <TechStackPage /> },
{ path: ROUTE_PATH.FRONTEND_ISSUES, element: <FrontendIssuesPage /> },
// ν”„λ‘ νŠΈμ—”λ“œ λ¬Έμ„œ
{
path: ROUTE_PATH.FRONTEND.GETTING_STARTED,
element: <FrontendGettingStartPage />,
},
{
path: ROUTE_PATH.FRONTEND.DESIGN,
element: <FrontenDesignSystemPage />,
},
{
path: ROUTE_PATH.FRONTEND.TECHSTACK,
element: <FrontendTechStackPage />,
},
{
path: ROUTE_PATH.FRONTEND.KEY_FEATURES,
element: <FrontendKeyFeaturesPage />,
},
{
path: ROUTE_PATH.FRONTEND.TROUBLE_SHOOTING,
element: <FrontendTroubleShootingPage />,
},
{
path: ROUTE_PATH.FRONTEND.PERFORMANCE,
element: <FrontendPerformancePage />,
},
{
path: ROUTE_PATH.FRONTEND.CICD,
element: <FrontendCiCdPage />,
},

{ path: ROUTE_PATH.BACKEND_ARCH, element: <BackendArchPage /> },
{ path: ROUTE_PATH.BACKEND_ERD, element: <BackendERDPage /> },
{ path: ROUTE_PATH.BACKEND_ISSUES, element: <BackendIssuesPage /> },
// λ°±μ—”λ“œ λ¬Έμ„œ
{
path: ROUTE_PATH.BACKEND.ARCHITECTURE,
element: <BackendArchitecturePage />,
},
{ path: ROUTE_PATH.BACKEND.TECHSTACK, element: <BackendTechStackPage /> },
{ path: ROUTE_PATH.BACKEND.ERD, element: <BackendErdPage /> },
{
path: ROUTE_PATH.BACKEND.TROUBLE_SHOOTING,
element: <BackendTroubleShootingPage />,
},
{
path: ROUTE_PATH.BACKEND.PERFORMANCE,
element: <BackendPerformancePage />,
},

{ path: ROUTE_PATH.DEPLOY_CI, element: <DeployCIPage /> },
{ path: ROUTE_PATH.DEPLOY_CD, element: <DeployCDPage /> },
// 배포 ν”„λ‘œμ„ΈμŠ€
{ path: ROUTE_PATH.DEPLOYMENT.CI, element: <DeployCIPage /> },
{ path: ROUTE_PATH.DEPLOYMENT.CD, element: <DeployCDPage /> },
],
},
]);
Expand Down
94 changes: 39 additions & 55 deletions src/app/routes/routeConstants.ts
Original file line number Diff line number Diff line change
@@ -1,59 +1,43 @@
export const ROUTE_PATH = {
ROOT: "/",

OVERVIEW_PROJECT_OVERVIEW: "/overview/project-overview",
OVERVIEW_RESOURCES: "/overview/resources",
OVERVIEW_MEMBERS: "/overview/members",

ONBOARDING_ENV: "/onboarding/environment",
ONBOARDING_SETUP: "/onboarding/setup",
ONBOARDING_RUN: "/onboarding/run",
ONBOARDING_STRUCTURE: "/onboarding/structure",
ONBOARDING_RESOURCES: "/onboarding/resources",

PROCESS_WORKFLOW: "/process/workflow",
PROCESS_GIT: "/process/git",
PROCESS_REVIEW: "/process/review",
PROCESS_TEST: "/process/test",

FRONTEND_INTRO: "/frontend/intro",
FRONTEND_DESIGN: "/frontend/design-system",
FRONTEND_TECHSTACK: "/frontend/tech-stack",
FRONTEND_ISSUES: "/frontend/issues",

BACKEND_ARCH: "/backend/architecture",
BACKEND_ERD: "/backend/erd",
BACKEND_ISSUES: "/backend/issues",

DEPLOY_CI: "/deployment/ci",
DEPLOY_CD: "/deployment/cd",
};

export const ROUTES = {
OVERVIEW: () => ROUTE_PATH.OVERVIEW_PROJECT_OVERVIEW,
OVERVIEW_RESOURCES: () => ROUTE_PATH.OVERVIEW_RESOURCES,
OVERVIEW_MEMBERS: () => ROUTE_PATH.OVERVIEW_MEMBERS,

ONBOARDING_ENV: () => ROUTE_PATH.ONBOARDING_ENV,
ONBOARDING_SETUP: () => ROUTE_PATH.ONBOARDING_SETUP,
ONBOARDING_RUN: () => ROUTE_PATH.ONBOARDING_RUN,
ONBOARDING_STRUCTURE: () => ROUTE_PATH.ONBOARDING_STRUCTURE,
ONBOARDING_RESOURCES: () => ROUTE_PATH.ONBOARDING_RESOURCES,

PROCESS_WORKFLOW: () => ROUTE_PATH.PROCESS_WORKFLOW,
PROCESS_GIT: () => ROUTE_PATH.PROCESS_GIT,
PROCESS_REVIEW: () => ROUTE_PATH.PROCESS_REVIEW,
PROCESS_TEST: () => ROUTE_PATH.PROCESS_TEST,

FRONTEND_INTRO: () => ROUTE_PATH.FRONTEND_INTRO,
FRONTEND_DESIGN: () => ROUTE_PATH.FRONTEND_DESIGN,
FRONTEND_TECHSTACK: () => ROUTE_PATH.FRONTEND_TECHSTACK,
FRONTEND_ISSUES: () => ROUTE_PATH.FRONTEND_ISSUES,

BACKEND_ARCH: () => ROUTE_PATH.BACKEND_ARCH,
BACKEND_ERD: () => ROUTE_PATH.BACKEND_ERD,
BACKEND_ISSUES: () => ROUTE_PATH.BACKEND_ISSUES,

DEPLOY_CI: () => ROUTE_PATH.DEPLOY_CI,
DEPLOY_CD: () => ROUTE_PATH.DEPLOY_CD,
OVERVIEW: {
PROJECT: "/overview/project-overview",
RESOURCES: "/overview/team-resources",
MEMBERS: "/overview/team-members",
},

ONBOARDING: {
FRONTEND: "/onboarding/frontend",
BACKEND: "/onboarding/backend",
},

DEVELOPER_GUIDE: {
COMMON: "/developer-guide/common",
FRONTEND: "/developer-guide/frontend",
BACKEND: "/developer-guide/backend",
},

FRONTEND: {
GETTING_STARTED: "/frontend/getting-start",
DESIGN: "/frontend/design-system",
TECHSTACK: "/frontend/tech-stack",
KEY_FEATURES: "/frontend/key-features",
TROUBLE_SHOOTING: "/frontend/trouble-shooting",
PERFORMANCE: "/frontend/performance-optimization",
CICD: "/frontend/ci-cd",
},

BACKEND: {
ARCHITECTURE: "/backend/architecture",
ERD: "/backend/erd",
TECHSTACK: "/backend/tech-stack",
TROUBLE_SHOOTING: "/backend/trouble-shooting",
PERFORMANCE: "/backend/performance-optimization",
},

DEPLOYMENT: {
CI: "/deployment/ci",
CD: "/deployment/cd",
},
};
2 changes: 1 addition & 1 deletion src/features/main/components/MainHero.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import { ROUTE_PATH } from "@/app/routes/routeConstants";

const MainHero = () => {
const navigate = useNavigate();
const goToOverview = () => navigate(ROUTE_PATH.OVERVIEW_PROJECT_OVERVIEW);
const goToOverview = () => navigate(ROUTE_PATH.OVERVIEW.PROJECT);

return (
<section
Expand Down
51 changes: 29 additions & 22 deletions src/features/sidebar/constants/sidebarConstants.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import {
CloudUpload,
} from "lucide-react";
import BoostRocket from "@/shared/assets/boost/boost-rocket-2d.png";
import { ROUTES } from "@/app/routes/routeConstants";
import { ROUTE_PATH } from "@/app/routes/routeConstants";

export const sidebarItems = {
header: {
Expand All @@ -21,30 +21,26 @@ export const sidebarItems = {
title: "ν”„λ‘œμ νŠΈ κ°œμš”",
icon: Book,
items: [
{ title: "λ¬Έμ„œ/ν”„λ‘œμ νŠΈ κ°œμš”", path: ROUTES.OVERVIEW() },
{ title: "νŒ€ λ¦¬μ†ŒμŠ€", path: ROUTES.OVERVIEW_RESOURCES() },
{ title: "νŒ€μ› 정보", path: ROUTES.OVERVIEW_MEMBERS() },
{ title: "ν”„λ‘œμ νŠΈ/λ¬Έμ„œ κ°œμš”", path: ROUTE_PATH.OVERVIEW.PROJECT },
{ title: "νŒ€ λ¦¬μ†ŒμŠ€", path: ROUTE_PATH.OVERVIEW.RESOURCES },
{ title: "νŒ€μ› 정보", path: ROUTE_PATH.OVERVIEW.MEMBERS },
],
},
{
title: "μ˜¨λ³΄λ”© κ°€μ΄λ“œ",
icon: BookOpen,
items: [
{ title: "ν™˜κ²½ μ„ΈνŒ…", path: ROUTES.ONBOARDING_ENV() },
{ title: "ν”„λ‘œμ νŠΈ κ°€μ Έμ˜€κΈ°", path: ROUTES.ONBOARDING_SETUP() },
{ title: "μ‹€ν–‰ 방법", path: ROUTES.ONBOARDING_RUN() },
{ title: "κΈ°λ³Έ ꡬ쑰 μ•ˆλ‚΄", path: ROUTES.ONBOARDING_STRUCTURE() },
{ title: "μ°Έκ³  자료 / 지원 채널", path: ROUTES.ONBOARDING_RESOURCES() },
{ title: "FE μ˜¨λ³΄λ”© κ°€μ΄λ“œ", path: ROUTE_PATH.ONBOARDING.FRONTEND },
{ title: "BE μ˜¨λ³΄λ”© 가이든", path: ROUTE_PATH.ONBOARDING.BACKEND },
],
},
{
title: "개발 κ°€μ΄λ“œ",
icon: Settings,
items: [
{ title: "μž‘μ—… 흐름", path: ROUTES.PROCESS_WORKFLOW() },
{ title: "Git/Commit κ·œμΉ™", path: ROUTES.PROCESS_GIT() },
{ title: "μ½”λ“œ 리뷰 κΈ°μ€€", path: ROUTES.PROCESS_REVIEW() },
{ title: "ν…ŒμŠ€νŠΈ 및 QA 절차", path: ROUTES.PROCESS_TEST() },
{ title: "곡톡 개발 κ°€μ΄λ“œ", path: ROUTE_PATH.DEVELOPER_GUIDE.COMMON },
{ title: "FE 개발 κ°€μ΄λ“œ", path: ROUTE_PATH.DEVELOPER_GUIDE.FRONTEND },
{ title: "BE 개발 κ°€μ΄λ“œ", path: ROUTE_PATH.DEVELOPER_GUIDE.BACKEND },
],
},
],
Expand All @@ -53,27 +49,38 @@ export const sidebarItems = {
title: "ν”„λ‘ νŠΈμ—”λ“œ λ¬Έμ„œ",
icon: LaptopMinimal,
items: [
{ title: "μ†Œκ°œ", path: ROUTES.FRONTEND_INTRO() },
{ title: "λ””μžμΈ μ‹œμŠ€ν…œ", path: ROUTES.FRONTEND_DESIGN() },
{ title: "기술 μŠ€νƒ 및 μ„ μ • κ·Όκ±°", path: ROUTES.FRONTEND_TECHSTACK() },
{ title: "이슈 및 ν•΄κ²° κ³Όμ •", path: ROUTES.FRONTEND_ISSUES() },
{ title: "μ‹œμž‘ν•˜κΈ°", path: ROUTE_PATH.FRONTEND.GETTING_STARTED },
{ title: "λ””μžμΈ μ‹œμŠ€ν…œ", path: ROUTE_PATH.FRONTEND.DESIGN },
{
title: "기술 μŠ€νƒ 및 μ„ μ • κ·Όκ±°",
path: ROUTE_PATH.FRONTEND.TECHSTACK,
},
{ title: "μ£Όμš” κΈ°λŠ₯", path: ROUTE_PATH.FRONTEND.KEY_FEATURES },
{ title: "νŠΈλŸ¬λΈ” μŠˆνŒ…", path: ROUTE_PATH.FRONTEND.TROUBLE_SHOOTING },
{ title: "μ„±λŠ₯ μ΅œμ ν™”", path: ROUTE_PATH.FRONTEND.PERFORMANCE },
{ title: "CI/CD", path: ROUTE_PATH.FRONTEND.CICD },
],
},
{
title: "λ°±μ—”λ“œ λ¬Έμ„œ",
icon: Server,
items: [
{ title: "μ•„ν‚€ν…μ²˜", path: ROUTES.BACKEND_ARCH() },
{ title: "ERD", path: ROUTES.BACKEND_ERD() },
{ title: "이슈 및 ν•΄κ²° κ³Όμ •", path: ROUTES.BACKEND_ISSUES() },
{
title: "기술 μŠ€νƒ 및 μ„ μ • κ·Όκ±°",
path: ROUTE_PATH.BACKEND.TECHSTACK,
},
{ title: "μ•„ν‚€ν…μ²˜", path: ROUTE_PATH.BACKEND.ARCHITECTURE },
{ title: "ERD", path: ROUTE_PATH.BACKEND.ERD },
{ title: "νŠΈλŸ¬λΈ” μŠˆνŒ…", path: ROUTE_PATH.BACKEND.TROUBLE_SHOOTING },
{ title: "μ„±λŠ₯ μ΅œμ ν™”", path: ROUTE_PATH.BACKEND.PERFORMANCE },
],
},
{
title: "배포 ν”„λ‘œμ„ΈμŠ€",
icon: CloudUpload,
items: [
{ title: "CI", path: ROUTES.DEPLOY_CI() },
{ title: "CD", path: ROUTES.DEPLOY_CD() },
{ title: "CI", path: ROUTE_PATH.DEPLOYMENT.CI },
{ title: "CD", path: ROUTE_PATH.DEPLOYMENT.CD },
],
},
],
Expand Down
9 changes: 6 additions & 3 deletions src/pages/backend/Architecture.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
const ArchitecturePage = () => {
return <div>Backend - Architecture νŽ˜μ΄μ§€</div>;
import AnimatedTextBlock from "@/shared/components/animations/AnimatedTextBlock";
import { PageDescriptions } from "@/shared/constants/pageDescriptions";

const BackendArchitecturePage = () => {
return <AnimatedTextBlock items={PageDescriptions.BACKEND.ARCHITECTURE} />;
};

export default ArchitecturePage;
export default BackendArchitecturePage;
9 changes: 6 additions & 3 deletions src/pages/backend/Erd.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
const ErdPage = () => {
return <div>Backend - Erd νŽ˜μ΄μ§€</div>;
import AnimatedTextBlock from "@/shared/components/animations/AnimatedTextBlock";
import { PageDescriptions } from "@/shared/constants/pageDescriptions";

const BackendErdPage = () => {
return <AnimatedTextBlock items={PageDescriptions.BACKEND.ERD} />;
};

export default ErdPage;
export default BackendErdPage;
5 changes: 0 additions & 5 deletions src/pages/backend/Issues.tsx

This file was deleted.

8 changes: 8 additions & 0 deletions src/pages/backend/Performance.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
import AnimatedTextBlock from "@/shared/components/animations/AnimatedTextBlock";
import { PageDescriptions } from "@/shared/constants/pageDescriptions";

const BackendPerformancePage = () => {
return <AnimatedTextBlock items={PageDescriptions.BACKEND.PERFORMANCE} />;
};

export default BackendPerformancePage;
Loading