{"id":1266,"date":"2022-02-28T13:48:23","date_gmt":"2022-02-28T04:48:23","guid":{"rendered":"http:\/\/mylittleforest.kr\/wordpress\/?p=1266"},"modified":"2025-01-15T11:32:52","modified_gmt":"2025-01-15T02:32:52","slug":"%eb%8f%99%ec%8b%9c%ed%86%b5%ec%97%ad-%ec%b1%84%ed%8c%85-%ed%94%84%eb%a1%9c%ea%b7%b8%eb%9e%a8-%eb%a7%8c%eb%93%a4%ea%b8%b0","status":"publish","type":"post","link":"http:\/\/mylittleforest.kr\/wordpress\/blog\/2022\/02\/28\/1266\/","title":{"rendered":"\ub3d9\uc2dc\ud1b5\uc5ed \ucc44\ud305 \ud504\ub85c\uadf8\ub7a8 \ub9cc\ub4e4\uae30"},"content":{"rendered":"\n<h2>\ub124\uc774\ubc84 \ud30c\ud30c\uace0 \ubc88\uc5ed API<\/h2>\n\n\n\n<p><a href=\"https:\/\/developers.naver.com\/docs\/nmt\/reference\/\" target=\"_blank\" rel=\"noreferrer noopener\">Papago NMT API<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/developers.naver.com\/apps\/\" target=\"_blank\" rel=\"noreferrer noopener\">\ub124\uc774\ubc84 API \uc774\uc6a9\uc2e0\uccad<\/a><\/p>\n\n\n\n<h3>Request \ubaa8\ub4c8<\/h3>\n\n\n\n<ul><li>NodeJS \uc571\uc5d0\uc11c HTTP \uc694\uccad \uae30\ub2a5<ul><li>Jquery \uc758 .ajax \ud568\uc218\uc640 \ube44\uc2b7<\/li><\/ul><\/li><li>my_littlechat&gt; npm install &#8211;save request<\/li><\/ul>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\n# request \uc0ac\uc6a9\ubc95\n\nvar request = require(&quot;request&quot;);\n\nrequest.get('\/books', function(error, response, body) {\n    \n});\n\nrequest.post('\/books', { body: { key: value } }, function(error, response, body) {\n    \n});\n\nrequest.put('\/books', { body: { key: value } }, function(error, response, body) {\n    \n});\n\nrequest.delete('\/books', function(error, response, body) {\n    \n});\n<\/pre><\/div>\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\napp.post('\/send', function(req, res) {\n    var message = {\n        sender: req.body.sender,\n        ko: req.body.ko,\n        en: req.body.en\n    };\n    console.log(message);\n\n    messages.push(message);\n    res.status(200).send({ message: &quot;Success&quot; });\n});\n<\/pre><\/div>\n\n\n<h2>\uc11c\ubc84 \uad6c\ud604<\/h2>\n\n\n\n<ul><li><a href=\"https:\/\/developers.naver.com\/docs\/nmt\/reference\/\" target=\"_blank\" rel=\"noreferrer noopener\">Papago NMT API Reference<\/a><\/li><\/ul>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\napp.post('\/send', function(req, res) {\n    var message = {\n        sender: req.body.sender,\n        ko: req.body.ko,\n        en: req.body.en\n    };\n    console.log(message);\n\n    var options = {\n        url: &quot;https:\/\/openapi.naver.com\/v1\/papago\/n2mt&quot;,\n        form: {\n            source: message.ko.length == 0 ? &quot;en&quot; : &quot;ko&quot;,\n            target: message.ko.length == 0 ? &quot;ko&quot; : &quot;en&quot;,\n            text: message.ko.length == 0 ? message.en : message.ko\n        },\n        headers: {\n            &quot;X-Naver-Client-Id&quot;: &quot;ID&quot;,\n            &quot;X-Naver-Client-Secret&quot;: &quot;KEY&quot;,\n            &quot;Content-Type&quot;: &quot;application\/x-www-form-urlencoded; charset=UTF-8&quot;\n        }\n    };\n\n    request.post(options, function(error, response) {\n        var result = JSON.parse(response.body).message.result;\n        message.ko = message.ko.length == 0 ? result.translatedText : message.ko;\n        message.en = message.en.length == 0 ? result.translatedText : message.en;\n\n        console.log(message);\n        messages.push(message);\n        res.status(200).send({ message: &quot;Success&quot; });\n    });    \n});\n\napp.get(&quot;\/receive&quot;, function(req, res) {\n    var result = { total: messages.length, messages: &#x5B;] };\n\n    if (messages.length &gt; req.query.from) {\n        result.messages = messages.slice(req.query.from);\n    }\n\n    res.status(200).send(result);\n});\n<\/pre><\/div>\n\n\n<h2>\ud074\ub77c\uc774\uc5b8\ud2b8 \uad6c\ud604<\/h2>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: xml; title: ; notranslate\" title=\"\">\n&lt;!DOCTYPE html&gt;\n&lt;html&gt;\n  &lt;head&gt;\n    &lt;meta charset=&quot;utf-8&quot;&gt;\n    &lt;title&gt;my little chat&lt;\/title&gt;\n    &lt;script src=&quot;https:\/\/code.jquery.com\/jquery-3.4.1.min.js&quot;&gt;&lt;\/script&gt;\n    &lt;style&gt;\n      .messages {\n        width: 500px;\n        height: 500px;\n        overflow: scroll;\n        background: #eeeeee;\n      }\n    &lt;\/style&gt;\n  &lt;\/head&gt;\n  &lt;body&gt;\n    &lt;div class=&quot;messages&quot; id=&quot;messages&quot;&gt;&lt;\/div&gt;\n    &lt;div&gt;\n      &lt;select id=&quot;selectBox&quot;&gt;\n        &lt;option value=&quot;ko&quot;&gt;\ud55c\uad6d\uc5b4&lt;\/option&gt;\n        &lt;option value=&quot;en&quot;&gt;\uc601\uc5b4&lt;\/option&gt;\n      &lt;\/select&gt;\n      \uc544\uc774\ub514: &lt;input type=&quot;text&quot; id=&quot;senderId&quot; \/&gt;\n      \ub0b4\uc6a9: &lt;input type=&quot;text&quot; id=&quot;chatInput&quot; \/&gt;\n      &lt;button id=&quot;sendButton&quot;&gt;\uc804\uc1a1&lt;\/button&gt;\n    &lt;\/div&gt;\n    &lt;script src=&quot;.\/chat.js&quot;&gt;&lt;\/script&gt;\n  &lt;\/body&gt;\n&lt;\/html&gt;\n<\/pre><\/div>\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\nvar curIndex = 0;\nvar language = &quot;ko&quot;;\nvar messages = &#x5B;];\n\nsetInterval(function() {\n    $.ajax(`http:\/\/localhost:3000\/receive?from=${curIndex}`).done(function(data) {\n        for (const message of data.messages) {\n            console.log(message);\n\n            $(&quot;#messages&quot;).append(\n                message.sender + &quot; : &quot; + (language == &quot;ko&quot; ? message.ko : message.en)\n            );\n            $(&quot;#messages&quot;).append(&quot;&lt;br\/&gt;&quot;)\n        }\n\n        curIndex = data.total;\n    });\n}, 1000);\n\n$(&quot;#sendButton&quot;).click(function() {\n    var message = {\n        ko: &quot;&quot;,\n        en: &quot;&quot;,\n        sender: $(&quot;#senderId&quot;).val()\n    }\n\n    if (language == &quot;ko&quot;) message.ko = $(&quot;#chatInput&quot;).val();\n    else message.en = $(&quot;#chatInput&quot;).val();\n\n    console.log(message);\n\n    $.ajax({\n        url: &quot;http:\/\/localhost:3000\/send&quot;,\n        method: &quot;POST&quot;,\n        data: JSON.stringify(message),\n        dataType: &quot;json&quot;,\n        contentType: &quot;application\/json&quot;\n    }).done(function() {\n        console.log(&quot;POST done&quot;);\n        $(&quot;#chatInput&quot;).val(&quot;&quot;);\n    });\n});\n\n$(&quot;#selectBox&quot;).change(function() {\n    language = $(&quot;#selectBox&quot;).val();\n    console.log(language);\n    $(&quot;messages&quot;).html(&quot;&quot;);\n    curIndex = 0;\n});\n<\/pre><\/div>\n\n\n<div class=\"wp-block-file\"><a href=\"http:\/\/mylittleforest.kr\/wordpress\/wp-content\/uploads\/2022\/02\/my_littlechat.zip\">my_littlechat<\/a><a href=\"http:\/\/mylittleforest.kr\/wordpress\/wp-content\/uploads\/2022\/02\/my_littlechat.zip\" class=\"wp-block-file__button\" download>\ub2e4\uc6b4\ub85c\ub4dc<\/a><\/div>\n","protected":false},"excerpt":{"rendered":"<p>\ub124\uc774\ubc84 \ud30c\ud30c\uace0 \ubc88\uc5ed API Papago NMT API \ub124\uc774\ubc84 API \uc774\uc6a9\uc2e0\uccad Request \ubaa8\ub4c8 NodeJS \uc571\uc5d0\uc11c HTTP \uc694\uccad \uae30\ub2a5 Jquery \uc758 .ajax \ud568\uc218\uc640 \ube44\uc2b7 my_littlechat&gt; npm install &#8211;save request \uc11c\ubc84 \uad6c\ud604 Papago NMT API Reference \ud074\ub77c\uc774\uc5b8\ud2b8 \uad6c\ud604<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false},"categories":[38,37],"tags":[],"_links":{"self":[{"href":"http:\/\/mylittleforest.kr\/wordpress\/wp-json\/wp\/v2\/posts\/1266"}],"collection":[{"href":"http:\/\/mylittleforest.kr\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/mylittleforest.kr\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/mylittleforest.kr\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/mylittleforest.kr\/wordpress\/wp-json\/wp\/v2\/comments?post=1266"}],"version-history":[{"count":9,"href":"http:\/\/mylittleforest.kr\/wordpress\/wp-json\/wp\/v2\/posts\/1266\/revisions"}],"predecessor-version":[{"id":1279,"href":"http:\/\/mylittleforest.kr\/wordpress\/wp-json\/wp\/v2\/posts\/1266\/revisions\/1279"}],"wp:attachment":[{"href":"http:\/\/mylittleforest.kr\/wordpress\/wp-json\/wp\/v2\/media?parent=1266"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/mylittleforest.kr\/wordpress\/wp-json\/wp\/v2\/categories?post=1266"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/mylittleforest.kr\/wordpress\/wp-json\/wp\/v2\/tags?post=1266"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}