diff --git a/.pnp.cjs b/.pnp.cjs
index 0d3b9251..479122f4 100755
--- a/.pnp.cjs
+++ b/.pnp.cjs
@@ -63,6 +63,7 @@ const RAW_RUNTIME_STATE =
["prettier", "npm:3.2.5"],\
["react", "npm:18.2.0"],\
["react-dom", "virtual:ae5aba791464d630ca9a0aea17b5f989316a30f061971dd4a341acf3391d54193e93acbbdbf841ea867d9fd77d6c54188d5cf4aabe94f970365b1efb3feb6d36#npm:18.2.0"],\
+ ["react-toastify", "virtual:67a01b8379dbfa206d4ad50c4ea9820edff287ac6e8e45e1c251d66e9a321bdbb9d5b5cf53117f97ad8d35663c2e78c57d82e9a46aa615d46102bbc530488947#npm:10.0.5"],\
["return-fetch", "npm:0.4.5"],\
["socket.io-client", "npm:2.5.0"],\
["storybook", "npm:8.0.0"],\
@@ -8432,6 +8433,15 @@ const RAW_RUNTIME_STATE =
"linkType": "HARD"\
}]\
]],\
+ ["clsx", [\
+ ["npm:2.1.1", {\
+ "packageLocation": "./.yarn/cache/clsx-npm-2.1.1-96125b98be-c4c8eb865f.zip/node_modules/clsx/",\
+ "packageDependencies": [\
+ ["clsx", "npm:2.1.1"]\
+ ],\
+ "linkType": "HARD"\
+ }]\
+ ]],\
["color", [\
["npm:4.2.3", {\
"packageLocation": "./.yarn/cache/color-npm-4.2.3-4a23227581-7fbe7cfb81.zip/node_modules/color/",\
@@ -11051,6 +11061,7 @@ const RAW_RUNTIME_STATE =
["prettier", "npm:3.2.5"],\
["react", "npm:18.2.0"],\
["react-dom", "virtual:ae5aba791464d630ca9a0aea17b5f989316a30f061971dd4a341acf3391d54193e93acbbdbf841ea867d9fd77d6c54188d5cf4aabe94f970365b1efb3feb6d36#npm:18.2.0"],\
+ ["react-toastify", "virtual:67a01b8379dbfa206d4ad50c4ea9820edff287ac6e8e45e1c251d66e9a321bdbb9d5b5cf53117f97ad8d35663c2e78c57d82e9a46aa615d46102bbc530488947#npm:10.0.5"],\
["return-fetch", "npm:0.4.5"],\
["socket.io-client", "npm:2.5.0"],\
["storybook", "npm:8.0.0"],\
@@ -15653,6 +15664,33 @@ const RAW_RUNTIME_STATE =
"linkType": "HARD"\
}]\
]],\
+ ["react-toastify", [\
+ ["npm:10.0.5", {\
+ "packageLocation": "./.yarn/cache/react-toastify-npm-10.0.5-86b63c99fc-66c68ec3d6.zip/node_modules/react-toastify/",\
+ "packageDependencies": [\
+ ["react-toastify", "npm:10.0.5"]\
+ ],\
+ "linkType": "SOFT"\
+ }],\
+ ["virtual:67a01b8379dbfa206d4ad50c4ea9820edff287ac6e8e45e1c251d66e9a321bdbb9d5b5cf53117f97ad8d35663c2e78c57d82e9a46aa615d46102bbc530488947#npm:10.0.5", {\
+ "packageLocation": "./.yarn/__virtual__/react-toastify-virtual-fab3ea1a3d/0/cache/react-toastify-npm-10.0.5-86b63c99fc-66c68ec3d6.zip/node_modules/react-toastify/",\
+ "packageDependencies": [\
+ ["react-toastify", "virtual:67a01b8379dbfa206d4ad50c4ea9820edff287ac6e8e45e1c251d66e9a321bdbb9d5b5cf53117f97ad8d35663c2e78c57d82e9a46aa615d46102bbc530488947#npm:10.0.5"],\
+ ["@types/react", "npm:18.2.65"],\
+ ["@types/react-dom", "npm:18.2.22"],\
+ ["clsx", "npm:2.1.1"],\
+ ["react", "npm:18.2.0"],\
+ ["react-dom", "virtual:ae5aba791464d630ca9a0aea17b5f989316a30f061971dd4a341acf3391d54193e93acbbdbf841ea867d9fd77d6c54188d5cf4aabe94f970365b1efb3feb6d36#npm:18.2.0"]\
+ ],\
+ "packagePeers": [\
+ "@types/react-dom",\
+ "@types/react",\
+ "react-dom",\
+ "react"\
+ ],\
+ "linkType": "HARD"\
+ }]\
+ ]],\
["read-pkg", [\
["npm:5.2.0", {\
"packageLocation": "./.yarn/cache/read-pkg-npm-5.2.0-50426bd8dc-b51a17d4b5.zip/node_modules/read-pkg/",\
diff --git a/package.json b/package.json
index 533351b1..7f0bb47f 100644
--- a/package.json
+++ b/package.json
@@ -22,6 +22,7 @@
"next": "^14.1.0",
"react": "^18",
"react-dom": "^18",
+ "react-toastify": "^10.0.5",
"return-fetch": "^0.4.5",
"socket.io-client": "^2",
"swiper": "^11.0.5",
diff --git a/src/app/layout.tsx b/src/app/layout.tsx
index 66315825..82a32c2e 100644
--- a/src/app/layout.tsx
+++ b/src/app/layout.tsx
@@ -1,3 +1,6 @@
+import { ToastContainer } from 'react-toastify';
+import 'react-toastify/dist/ReactToastify.css';
+
import { Footer } from '#/components/templates/Footer';
import { Header } from '#/components/templates/Header';
import { LoginPopup } from '#/components/templates/LoginPopup';
@@ -23,6 +26,7 @@ export default function RootLayout({ children }: { children: React.ReactNode })
{children}
+