initial commit
새로운 repository 를 만들었습니다.
This commit is contained in:
@@ -0,0 +1,2 @@
|
||||
@tailwind base;@tailwind components;@tailwind utilities;body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Oxygen","Ubuntu","Cantarell","Fira Sans","Droid Sans","Helvetica Neue",sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}code{font-family:source-code-pro,Menlo,Monaco,Consolas,"Courier New",monospace}.App{text-align:center}.App-logo{height:40vmin;pointer-events:none}@media (prefers-reduced-motion:no-preference){.App-logo{animation:App-logo-spin 20s linear infinite}}.App-header{background-color:#282c34;min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:calc(10px + 2vmin);color:#fff}.App-link{color:#61dafb}@keyframes App-logo-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}body{margin:0;font-family:"Arial",sans-serif;background:#fff}.container{height:100vh;width:100vw;max-width:1280px;margin:0 auto;flex-direction:column}.container,.title{display:flex;align-items:center;justify-content:center}.title{font-size:24px;font-weight:700;margin-bottom:40px}.url-form{display:flex;width:500px;background-color:#e5e5e5;border:1px solid #aaa;border-radius:5px;box-shadow:2px 2px 4px #ccc;overflow:hidden}.url-input{flex:1 1;padding:12px 16px;border:none;font-size:16px;font-weight:700;background-color:initial;outline:none}.check-button{background-color:#d6f32f;border:none;padding:0 16px;font-size:20px;cursor:pointer}.result-box{margin-top:50px;width:600px;background-color:#fafafa;padding:30px;text-align:center;border-radius:5px}.result-content{margin-top:10px;font-size:16px}
|
||||
/*# sourceMappingURL=main.c2e85bbc.chunk.css.map */
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"sources":["index.css","App.css"],"names":[],"mappings":"AAAA,cAAc,CACd,oBAAoB,CACpB,mBAAmB,CAGnB,KAEE,mJAEY,CACZ,kCAAmC,CACnC,iCACF,CAEA,KACE,yEAEF,CCjBA,KACE,iBACF,CAEA,UACE,aAAc,CACd,mBACF,CAEA,8CACE,UACE,2CACF,CACF,CAEA,YACE,wBAAyB,CACzB,gBAAiB,CACjB,YAAa,CACb,qBAAsB,CACtB,kBAAmB,CACnB,sBAAuB,CACvB,4BAA6B,CAC7B,UACF,CAEA,UACE,aACF,CAEA,yBACE,GACE,sBACF,CACA,GACE,uBACF,CACF,CAEA,KACE,QAAS,CACT,8BAAgC,CAChC,eACF,CAEA,WACE,YAAa,CACb,WAAY,CACZ,gBAAiB,CACjB,aAAc,CAEd,qBAGF,CAEA,kBANE,YAAa,CAEb,kBAAmB,CACnB,sBAUF,CAPA,OACE,cAAe,CACf,eAAiB,CACjB,kBAIF,CAEA,UACE,YAAa,CACb,WAAY,CACZ,wBAAyB,CACzB,qBAAsB,CACtB,iBAAkB,CAClB,2BAA4B,CAC5B,eACF,CAEA,WACE,QAAO,CACP,iBAAkB,CAClB,WAAY,CACZ,cAAe,CACf,eAAiB,CACjB,wBAA6B,CAC7B,YACF,CAEA,cACE,wBAAyB,CACzB,WAAY,CACZ,cAAe,CACf,cAAe,CACf,cACF,CAEA,YACE,eAAgB,CAChB,WAAY,CACZ,wBAAyB,CACzB,YAAa,CACb,iBAAkB,CAClB,iBACF,CAEA,gBACE,eAAgB,CAChB,cACF","file":"main.c2e85bbc.chunk.css","sourcesContent":["@tailwind base;\n@tailwind components;\n@tailwind utilities;\n\n\nbody {\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',\n 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',\n sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\ncode {\n font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New',\n monospace;\n}\n",".App {\n text-align: center;\n}\n\n.App-logo {\n height: 40vmin;\n pointer-events: none;\n}\n\n@media (prefers-reduced-motion: no-preference) {\n .App-logo {\n animation: App-logo-spin infinite 20s linear;\n }\n}\n\n.App-header {\n background-color: #282c34;\n min-height: 100vh;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n font-size: calc(10px + 2vmin);\n color: white;\n}\n\n.App-link {\n color: #61dafb;\n}\n\n@keyframes App-logo-spin {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n}\n\nbody {\n margin: 0;\n font-family: 'Arial', sans-serif;\n background: white;\n}\n\n.container {\n height: 100vh;\n width: 100vw;\n max-width: 1280px;\n margin: 0 auto;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n}\n\n.title {\n font-size: 24px;\n font-weight: bold;\n margin-bottom: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.url-form {\n display: flex;\n width: 500px;\n background-color: #e5e5e5;\n border: 1px solid #aaa;\n border-radius: 5px;\n box-shadow: 2px 2px 4px #ccc;\n overflow: hidden;\n}\n\n.url-input {\n flex: 1;\n padding: 12px 16px;\n border: none;\n font-size: 16px;\n font-weight: bold;\n background-color: transparent;\n outline: none;\n}\n\n.check-button {\n background-color: #d6f32f;\n border: none;\n padding: 0 16px;\n font-size: 20px;\n cursor: pointer;\n}\n\n.result-box {\n margin-top: 50px;\n width: 600px;\n background-color: #fafafa;\n padding: 30px;\n text-align: center;\n border-radius: 5px;\n}\n\n.result-content {\n margin-top: 10px;\n font-size: 16px;\n}\n"]}
|
||||
3
react-url-checker/build/static/js/2.73aa0cc9.chunk.js
Normal file
3
react-url-checker/build/static/js/2.73aa0cc9.chunk.js
Normal file
File diff suppressed because one or more lines are too long
@@ -0,0 +1,48 @@
|
||||
/*!
|
||||
* The buffer module from node.js, for the browser.
|
||||
*
|
||||
* @author Feross Aboukhadijeh <http://feross.org>
|
||||
* @license MIT
|
||||
*/
|
||||
|
||||
/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */
|
||||
|
||||
/**
|
||||
* @license React
|
||||
* react-dom-client.production.js
|
||||
*
|
||||
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @license React
|
||||
* react-dom.production.js
|
||||
*
|
||||
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @license React
|
||||
* react.production.js
|
||||
*
|
||||
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @license React
|
||||
* scheduler.production.js
|
||||
*
|
||||
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
File diff suppressed because one or more lines are too long
2
react-url-checker/build/static/js/main.6a620daf.chunk.js
Normal file
2
react-url-checker/build/static/js/main.6a620daf.chunk.js
Normal file
@@ -0,0 +1,2 @@
|
||||
(this["webpackJsonpreact-url-checker"]=this["webpackJsonpreact-url-checker"]||[]).push([[0],{10:function(e,t,a){e.exports=a(24)},18:function(e,t,a){},23:function(e,t,a){},24:function(e,t,a){"use strict";a.r(t);var l=a(2),r=a.n(l),n=a(9),c=a.n(n),s=(a(18),a(26));var m=()=>{const[e,t]=Object(l.useState)(""),[a,n]=Object(l.useState)(null),[c,m]=Object(l.useState)(!1),[o,u]=Object(l.useState)("");return r.a.createElement("div",{className:"flex flex-col min-h-screen bg-white"},r.a.createElement("main",{className:"flex-grow flex items-center justify-center"},r.a.createElement("form",{onSubmit:async t=>{t.preventDefault(),m(!0),n(null),u("");try{const t=await s.a.post("http://34.64.139.6:8000/predict",{url:e});n(t.data)}catch(a){console.error(a),u("\uc11c\ubc84 \uc624\ub958\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4.")}finally{m(!1)}},className:"space-y-4 w-full max-w-md mx-auto"},r.a.createElement("input",{type:"text",value:e,onChange:e=>t(e.target.value),placeholder:"Enter URL",className:"w-full p-3 border border-gray-300 rounded shadow",required:!0}),r.a.createElement("button",{type:"submit",className:"w-full p-2 bg-blue-500 text-white rounded hover:bg-blue-600 transition"},"\u2705 \uac80\uc0ac\ud558\uae30")),r.a.createElement("div",{className:"mt-6"},c&&r.a.createElement("p",null,"\ud83d\udd04 \ubd84\uc11d \uc911..."),o&&r.a.createElement("p",{className:"text-red-500"},"\u274c ",o),a&&r.a.createElement("div",{className:"mt-4 p-4 bg-gray-50 rounded shadow"},r.a.createElement("p",{className:"mb-2"},"\uc545\uc131 \ud655\ub960:"," ",r.a.createElement("strong",null,(100*parseFloat(a.malicious_probability)).toFixed(2),"%")),r.a.createElement("p",null,"\ud310\ubcc4 \uacb0\uacfc:"," ",r.a.createElement("strong",{className:a.is_malicious?"text-red-600":"text-green-600"},a.is_malicious?"\u26a0\ufe0f \uc545\uc131 URL":"\u2705 \uc815\uc0c1 URL"))))))};a(23);var o=function(){return r.a.createElement("div",{className:"min-h-screen bg-gray-100 flex flex-col justify-center"},r.a.createElement("div",{className:"container mx-auto px-4 text-center"},r.a.createElement("h1",{className:"text-3xl font-bold text-blue-600 mb-6"},"\ud83d\udd0d \uc545\uc131 URL \ud310\ubcc4\uae30"),r.a.createElement(m,null)))};c.a.createRoot(document.getElementById("root")).render(r.a.createElement(r.a.StrictMode,null,r.a.createElement(o,null)))}},[[10,1,2]]]);
|
||||
//# sourceMappingURL=main.6a620daf.chunk.js.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"sources":["components/UrlPredictor.jsx","App.js","index.js"],"names":["UrlPredictor","url","setUrl","useState","result","setResult","loading","setLoading","error","setError","React","createElement","className","onSubmit","async","e","preventDefault","response","axios","post","data","err","console","type","value","onChange","target","placeholder","required","parseFloat","malicious_probability","toFixed","is_malicious","App","ReactDOM","createRoot","document","getElementById","render","StrictMode"],"mappings":"sQAwEeA,MArEMA,KACnB,MAAOC,EAAKC,GAAUC,mBAAS,KACxBC,EAAQC,GAAaF,mBAAS,OAC9BG,EAASC,GAAcJ,oBAAS,IAChCK,EAAOC,GAAYN,mBAAS,IAqBnC,OACEO,IAAAC,cAAA,OAAKC,UAAU,uCACbF,IAAAC,cAAA,QAAMC,UAAU,8CAChBF,IAAAC,cAAA,QAAME,SAtBWC,UACnBC,EAAEC,iBACFT,GAAW,GACXF,EAAU,MACVI,EAAS,IAET,IACE,MAAMQ,QAAiBC,IAAMC,KAAK,kCAAmC,CACnElB,IAAKA,IAEPI,EAAUY,EAASG,MACnB,MAAOC,GACPC,QAAQd,MAAMa,GACdZ,EAAS,yEACV,QACCF,GAAW,KAOmBK,UAAU,qCACtCF,IAAAC,cAAA,SACEY,KAAK,OACLC,MAAOvB,EACPwB,SAAWV,GAAMb,EAAOa,EAAEW,OAAOF,OACjCG,YAAY,YACZf,UAAU,mDACVgB,UAAQ,IAEVlB,IAAAC,cAAA,UACEY,KAAK,SACLX,UAAU,0EACX,oCAKHF,IAAAC,cAAA,OAAKC,UAAU,QACZN,GAAWI,IAAAC,cAAA,SAAG,uCACdH,GAASE,IAAAC,cAAA,KAAGC,UAAU,gBAAe,UAAGJ,GACxCJ,GACCM,IAAAC,cAAA,OAAKC,UAAU,sCACbF,IAAAC,cAAA,KAAGC,UAAU,QAAO,6BACX,IACPF,IAAAC,cAAA,eAAqD,IAA3CkB,WAAWzB,EAAO0B,wBAA8BC,QAAQ,GAAG,MAEvErB,IAAAC,cAAA,SAAG,6BACM,IACPD,IAAAC,cAAA,UAAQC,UAAWR,EAAO4B,aAAe,eAAiB,kBACvD5B,EAAO4B,aAAe,gCAAc,iC,MC3CtCC,MAZf,WACE,OACFvB,IAAAC,cAAA,OAAKC,UAAU,yDACbF,IAAAC,cAAA,OAAKC,UAAU,sCACbF,IAAAC,cAAA,MAAIC,UAAU,yCAAwC,oDACtDF,IAAAC,cAACX,EAAY,SCLJkC,IAASC,WAAWC,SAASC,eAAe,SACpDC,OACH5B,IAAAC,cAACD,IAAM6B,WAAU,KACf7B,IAAAC,cAACsB,EAAG,U","file":"static/js/main.6a620daf.chunk.js","sourcesContent":["import React, { useState } from \"react\";\nimport axios from \"axios\";\n\nconst UrlPredictor = () => {\n const [url, setUrl] = useState(\"\");\n const [result, setResult] = useState(null);\n const [loading, setLoading] = useState(false);\n const [error, setError] = useState(\"\");\n\n const handleSubmit = async (e) => {\n e.preventDefault();\n setLoading(true);\n setResult(null);\n setError(\"\");\n\n try {\n const response = await axios.post(\"http://34.64.139.6:8000/predict\", {\n url: url,\n });\n setResult(response.data);\n } catch (err) {\n console.error(err);\n setError(\"서버 오류가 발생했습니다.\");\n } finally {\n setLoading(false);\n }\n };\n\n return (\n <div className=\"flex flex-col min-h-screen bg-white\">\n <main className=\"flex-grow flex items-center justify-center\">\n <form onSubmit={handleSubmit} className=\"space-y-4 w-full max-w-md mx-auto\">\n <input\n type=\"text\"\n value={url}\n onChange={(e) => setUrl(e.target.value)}\n placeholder=\"Enter URL\"\n className=\"w-full p-3 border border-gray-300 rounded shadow\"\n required\n />\n <button\n type=\"submit\"\n className=\"w-full p-2 bg-blue-500 text-white rounded hover:bg-blue-600 transition\"\n >\n ✅ 검사하기\n </button>\n </form>\n \n <div className=\"mt-6\">\n {loading && <p>🔄 분석 중...</p>}\n {error && <p className=\"text-red-500\">❌ {error}</p>}\n {result && (\n <div className=\"mt-4 p-4 bg-gray-50 rounded shadow\">\n <p className=\"mb-2\">\n 악성 확률:{\" \"}\n <strong>{(parseFloat(result.malicious_probability) * 100).toFixed(2)}%</strong>\n </p>\n <p>\n 판별 결과:{\" \"}\n <strong className={result.is_malicious ? \"text-red-600\" : \"text-green-600\"}>\n {result.is_malicious ? \"⚠️ 악성 URL\" : \"✅ 정상 URL\"}\n </strong>\n </p>\n </div>\n )}\n </div>\n </main>\n </div>\n\n );\n};\n\nexport default UrlPredictor;\n","// src/App.js\nimport React from \"react\";\nimport UrlPredictor from \"./components/UrlPredictor\";\nimport './App.css';\n\nfunction App() {\n return (\n<div className=\"min-h-screen bg-gray-100 flex flex-col justify-center\">\n <div className=\"container mx-auto px-4 text-center\">\n <h1 className=\"text-3xl font-bold text-blue-600 mb-6\">🔍 악성 URL 판별기</h1>\n <UrlPredictor />\n </div>\n</div>\n\n );\n}\n\nexport default App;\n","import React from 'react';\nimport ReactDOM from 'react-dom/client';\nimport './index.css';\nimport App from './App';\n\nconst root = ReactDOM.createRoot(document.getElementById('root'));\nroot.render(\n <React.StrictMode>\n <App />\n </React.StrictMode>\n);\n"],"sourceRoot":""}
|
||||
@@ -0,0 +1,2 @@
|
||||
!function(e){function r(r){for(var n,l,c=r[0],a=r[1],f=r[2],p=0,s=[];p<c.length;p++)l=c[p],Object.prototype.hasOwnProperty.call(o,l)&&o[l]&&s.push(o[l][0]),o[l]=0;for(n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n]);for(i&&i(r);s.length;)s.shift()();return u.push.apply(u,f||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,c=1;c<t.length;c++){var a=t[c];0!==o[a]&&(n=!1)}n&&(u.splice(r--,1),e=l(l.s=t[0]))}return e}var n={},o={1:0},u=[];function l(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,l),t.l=!0,t.exports}l.m=e,l.c=n,l.d=function(e,r,t){l.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},l.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},l.t=function(e,r){if(1&r&&(e=l(e)),8&r)return e;if(4&r&&"object"===typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(l.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var n in e)l.d(t,n,function(r){return e[r]}.bind(null,n));return t},l.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return l.d(r,"a",r),r},l.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},l.p="/";var c=this["webpackJsonpreact-url-checker"]=this["webpackJsonpreact-url-checker"]||[],a=c.push.bind(c);c.push=r,c=c.slice();for(var f=0;f<c.length;f++)r(c[f]);var i=a;t()}([]);
|
||||
//# sourceMappingURL=runtime-main.448eb57c.js.map
|
||||
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user