diff --git a/.jules/palette.md b/.jules/palette.md
index bd0f73248..ab0630a44 100644
--- a/.jules/palette.md
+++ b/.jules/palette.md
@@ -57,3 +57,6 @@
## 2026-07-30 - Add window.confirm for destructive actions
**Learning:** Destructive actions like deleting groups and edge relationships previously occurred immediately without user confirmation.
**Action:** Always wrap delete operations with window.confirm() dialogs and ensure corresponding tests successfully mock window.confirm.
+## 2026-08-14 - Confirm destructive actions like table deletion
+**Learning:** Destructive actions such as deleting a table require explicit user confirmation to prevent accidental data loss.
+**Action:** Always wrap delete operations with window.confirm() dialogs and ensure corresponding tests successfully mock window.confirm.
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 35613431a..2df20800c 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,7 +1,11 @@
# Changelog
## Unreleased
+
+- [FE] π‘οΈ **ν
μ΄λΈ μμ νμΈ**: νΈμ§ λͺ¨λ¬μμ ν
μ΄λΈ μ΄λ¦μ ν¬ν¨ν νμΈ λνμμλ₯Ό νμνκ³ , μ¬μ©μκ° λͺ
μμ μΌλ‘ νμΈν κ²½μ°μλ§ κΈ°μ‘΄ μμ κ²½λ‘λ₯Ό μ€νν©λλ€. μ·¨μνλ©΄ ν
μ΄λΈμ κ·Έλλ‘ λ³΄μ‘΄ν©λλ€.
+
- [BE] π **Cryptography 50+ 보μ κ²½κ³ κ°±μ **: `pyproject.toml`κ³Ό λ hash-locked μꡬμ¬ν νμΌμ λμΌν Cryptography 50+ ν΄μμΌλ‘ μ ν©ννμ¬ PKCS#7 μ€λ₯Β·νμ΄λ° ꡬλΆμΌλ‘ μΈν CVE-2026-69247 μνλ₯Ό μ€μ μ€μΉΒ·κ²μ¦ κ²½λ‘μ λ°μνμ΅λλ€.
+
- [FE] β‘ **κ²μ λ
Έλ μ°Έμ‘° μμ ν λ° μμ°¨ μ€λ
μ· ν΄λ§**: κ°μ μ κ·ν κ²μμ΄μ μλ³Έ ν
μ΄λΈ λ°μ΄ν°μλ μ₯μλ `node.data` μ°Έμ‘°λ₯Ό μ¬μ¬μ©νμ¬ λλκ·Έ μ€ λΆνμν νμ λ λλ§κ³Ό ν λΉμ μ€μ
λλ€. μ€λ
μ· ν΄λ§μ μ΄μ μμ²μ΄ λλ λ€μλ§ λ€μ μμ²μ μμ½νλ©°, μ ν λ³κ²½Β·μΈλ§μ΄νΈ ν λμ°©ν μ€λλ μ±κ³΅ λλ μ€ν¨ μλ΅μ 무μν©λλ€.
- [BE] π **곡μ export μ κ²½λ‘ redaction**: κ³΅κ° shareμ SQL / index-design / reversing-spec exportμμ μ½λ©νΈΒ·`example_value`λ₯Ό μ κ±°ν©λλ€. λ¨μ ν
μ€νΈλ‘ λμΆμ μ°¨λ¨ν©λλ€.
- [BE] π οΈ **ν¨μ μΈλ±μ€ μ€λ³΅ μ€ν μμ **: `lower(email)` λ± expression indexλ₯Ό νλ¬Έ μ»¬λΌ μΈλ±μ€μ μ€λ³΅μΌλ‘ μλͺ» νλ¨νμ§ μλλ‘ κ΄νΈ νμλ₯Ό κ°ννμ΅λλ€.
diff --git a/frontend/src/components/modals/EditTableModal.test.tsx b/frontend/src/components/modals/EditTableModal.test.tsx
index 1a8c9af5e..c492797b6 100644
--- a/frontend/src/components/modals/EditTableModal.test.tsx
+++ b/frontend/src/components/modals/EditTableModal.test.tsx
@@ -46,6 +46,54 @@ describe('EditTableModal', () => {
expect(screen.getByRole('checkbox', { name: 'test_col NN μ€μ ' })).toBeInTheDocument();
});
+ it('deletes a table when ν
μ΄λΈ μμ is clicked and confirmed', async () => {
+ const onDeleteTableMock = vi.fn();
+ const editingNode = {
+ id: 'table-1',
+ type: 'table',
+ position: { x: 0, y: 0 },
+ data: {
+ title: 'test_table',
+ comment: '',
+ columns: []
+ }
+ };
+
+ vi.spyOn(window, 'confirm').mockReturnValue(true);
+
+ render(