diff --git a/backend/routes/admin.js b/backend/routes/admin.js
index cb3cba6..c9b4169 100644
--- a/backend/routes/admin.js
+++ b/backend/routes/admin.js
@@ -1103,7 +1103,24 @@ router.delete(
return res.status(404).json({ error: "카테고리를 찾을 수 없습니다." });
}
- // TODO: 해당 카테고리를 사용하는 일정이 있는지 확인
+ // 기본 카테고리는 삭제 불가
+ if (existing[0].is_default === 1) {
+ return res
+ .status(400)
+ .json({ error: "기본 카테고리는 삭제할 수 없습니다." });
+ }
+
+ // 해당 카테고리를 사용하는 일정이 있는지 확인
+ const [usedSchedules] = await pool.query(
+ "SELECT COUNT(*) as count FROM schedules WHERE category_id = ?",
+ [id]
+ );
+ if (usedSchedules[0].count > 0) {
+ return res.status(400).json({
+ error: `해당 카테고리를 사용하는 일정이 ${usedSchedules[0].count}개 있어 삭제할 수 없습니다.`,
+ });
+ }
+
await pool.query("DELETE FROM schedule_categories WHERE id = ?", [id]);
res.json({ message: "카테고리가 삭제되었습니다." });
diff --git a/frontend/src/pages/pc/admin/AdminScheduleCategory.jsx b/frontend/src/pages/pc/admin/AdminScheduleCategory.jsx
index ded9802..8f97904 100644
--- a/frontend/src/pages/pc/admin/AdminScheduleCategory.jsx
+++ b/frontend/src/pages/pc/admin/AdminScheduleCategory.jsx
@@ -266,12 +266,21 @@ function AdminScheduleCategory() {
>
-
+ {category.is_default ? (
+
+
+
+ ) : (
+
+ )}
))}