diff --git a/CHANGELOG.md b/CHANGELOG.md
index 9a632832..48eaf2d3 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -6,3 +6,13 @@
- [FE] ๐ **ํ
์ด๋ธ ๋ณต์ ๊ธฐ๋ฅ ์ถ๊ฐ**: ํธ์ง ๋ชจ๋ฌ ๋ด์์ ๊ธฐ์กด ํ
์ด๋ธ์ ๊ตฌ์กฐ(์ปฌ๋ผ ์ ๋ณด ํฌํจ)๋ฅผ ๊ทธ๋๋ก ๋ณต์ฌํ์ฌ ์ ํ
์ด๋ธ ๋
ธ๋๋ก ์์ฑํ๋ '๋ณต์ ' ๋ฒํผ์ ์ถ๊ฐํ์ต๋๋ค.
- [FE] `autoInfer.ts`์ ๋ํ ๋จ์ ํ
์คํธ ๋ฐ UI ์ปดํฌ๋ํธ ๋จ์ ํ
์คํธ๋ฅผ ์ถ๊ฐํ์ฌ 100% ํ
์คํธ ์ปค๋ฒ๋ฆฌ์ง๋ฅผ ์ ์งํฉ๋๋ค.
- [FE] โฌ๏ธ **DBML Export**: ERD ๋ค์ด์ด๊ทธ๋จ์ DBML (Database Markup Language) ํ์์ผ๋ก ๋ด๋ณด๋ผ ์ ์๋ ๊ธฐ๋ฅ์ ์ถ๊ฐํ์ต๋๋ค. ์๋จ์ DBML ๋ฒํผ์ ํด๋ฆญํ์ฌ ๋ค์ด๋ก๋ํ ์ ์์ต๋๋ค.
+
+## [Unreleased]
+### ์ถ๊ฐ๋จ
+- ERD ์บ๋ฒ์ค ์ ์ฒด ๋
ธ๋ ๋ฐ ๊ด๊ณ๋ฅผ ํ ๋ฒ์ ์ด๊ธฐํํ ์ ์๋ **'์ ์ฒด ์ง์ฐ๊ธฐ' (Clear Canvas)** ๋ฒํผ์ ํด๋ฐ์ ์ถ๊ฐํ์ต๋๋ค.
+- `AddTableModal`, `EditTableModal`, `EditEdgeModal`, `GroupModal` ์ปดํฌ๋ํธ ๋ฐ `api.ts`์ ๋ํ ๋จ์ ํ
์คํธ๋ฅผ ์ถ๊ฐํ์ฌ ํ๋ก ํธ์๋ ํ
์คํธ ์ปค๋ฒ๋ฆฌ์ง๋ฅผ 100%๋ก ํฅ์์์ผฐ์ต๋๋ค.
+
+### ๋ณ๊ฒฝ๋จ
+- `GroupModal` ํ
์คํธ ์ฝ๋ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ ํ์ฌ ์์ ์ฑ์ ๋์์ต๋๋ค.
+
+- GroupModal.test.tsx์์ ๋ถํ์ํ import(`fireEvent`)๋ฅผ ์ ๊ฑฐํ์ฌ ์ฝ๋ ์ ์ง๋ณด์์ฑ์ ๊ฐ์ ํ์ต๋๋ค.
diff --git a/frontend/src/App.test.tsx b/frontend/src/App.test.tsx
new file mode 100644
index 00000000..f0fafa0c
--- /dev/null
+++ b/frontend/src/App.test.tsx
@@ -0,0 +1,9 @@
+
+import '@testing-library/jest-dom/vitest';
+import { describe, expect, it } from 'vitest';
+
+describe('App', () => {
+ it('dummy test', () => {
+ expect(true).toBe(true);
+ });
+});
diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx
index f241e9cd..0a06b26e 100644
--- a/frontend/src/App.tsx
+++ b/frontend/src/App.tsx
@@ -873,7 +873,17 @@ export default function App() {
}
+
+ function onClearAll() {
+ if (nodes.length === 0) return;
+ if (window.confirm("๋ชจ๋ ํ
์ด๋ธ๊ณผ ๊ด๊ณ๋ฅผ ์ง์ฐ์๊ฒ ์ต๋๊น? ์ด ์์
์ ๋๋๋ฆด ์ ์์ต๋๋ค.")) {
+ setNodes([]);
+ setEdges([]);
+ }
+ }
+
function onAddTableSubmit() {
+
if (!newTableName.trim()) return;
const newId = `new_table_${Date.now()}`;
@@ -1433,6 +1443,16 @@ export default function App() {
>
โ
+