diff --git a/daily-thought-frontend/src/hooks/useDebounce.ts b/daily-thought-frontend/src/hooks/useDebounce.ts
new file mode 100644
index 0000000000000000000000000000000000000000..c55868fa6bd0d826d216c8fbce0936202e878fc9
--- /dev/null
+++ b/daily-thought-frontend/src/hooks/useDebounce.ts
@@ -0,0 +1,17 @@
+import { useEffect, useState } from 'react'
+
+function useDebounce<T>(value: T, delay?: number): T {
+  const [debouncedValue, setDebouncedValue] = useState<T>(value)
+
+  useEffect(() => {
+    const timer = setTimeout(() => setDebouncedValue(value), delay || 500)
+
+    return () => {
+      clearTimeout(timer)
+    }
+  }, [value, delay])
+
+  return debouncedValue
+}
+
+export default useDebounce
\ No newline at end of file