diff --git a/frontend/src/lib/components/DocumentTable.svelte b/frontend/src/lib/components/DocumentTable.svelte
new file mode 100644
index 0000000..c658d8a
--- /dev/null
+++ b/frontend/src/lib/components/DocumentTable.svelte
@@ -0,0 +1,142 @@
+
+
+
+
+
+ {#each columns as col}
+
+ {/each}
+
+
+
+ {#each sortedItems() as doc}
+
+ {/each}
+
diff --git a/frontend/src/routes/documents/+page.svelte b/frontend/src/routes/documents/+page.svelte
index 9f7b3a9..4c95469 100644
--- a/frontend/src/routes/documents/+page.svelte
+++ b/frontend/src/routes/documents/+page.svelte
@@ -4,11 +4,20 @@
import { api } from '$lib/api';
import { addToast } from '$lib/stores/ui';
import { Info } from 'lucide-svelte';
+ import { List, LayoutGrid } from 'lucide-svelte';
import DocumentCard from '$lib/components/DocumentCard.svelte';
+ import DocumentTable from '$lib/components/DocumentTable.svelte';
import PreviewPanel from '$lib/components/PreviewPanel.svelte';
import DocumentViewer from '$lib/components/DocumentViewer.svelte';
import UploadDropzone from '$lib/components/UploadDropzone.svelte';
+ // 뷰 모드 (localStorage 기억)
+ let viewMode = $state(typeof localStorage !== 'undefined' ? (localStorage.getItem('viewMode') || 'card') : 'card');
+ function toggleViewMode() {
+ viewMode = viewMode === 'card' ? 'table' : 'card';
+ if (typeof localStorage !== 'undefined') localStorage.setItem('viewMode', viewMode);
+ }
+
let documents = $state([]);
let total = $state(0);
let loading = $state(true);
@@ -168,6 +177,18 @@