{"id":759,"date":"2024-01-25T21:06:55","date_gmt":"2024-01-25T12:06:55","guid":{"rendered":"https:\/\/dohokin.com\/?p=759"},"modified":"2024-01-28T20:45:42","modified_gmt":"2024-01-28T11:45:42","slug":"django-channels%ec%99%80-daphne","status":"publish","type":"post","link":"https:\/\/dohokin.com\/?p=759","title":{"rendered":"Django Channels\uc640 daphne"},"content":{"rendered":"\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/dohokin.com\/wp-content\/uploads\/2024\/01\/image-2.png\" alt=\"\" class=\"wp-image-761\"\/><\/figure>\n\n\n\n<p>Django Channels\ub294 Django \uc6f9 \ud504\ub808\uc784\uc6cc\ud06c\uc758 \uae30\ub2a5\uc744 \ud655\uc7a5\ud558\uc5ec \ube44\ub3d9\uae30 \uae30\ub2a5\uacfc \uc6f9\uc18c\ucf13\uc744 \uc9c0\uc6d0\ud558\ub294 \ucd94\uac00 \uae30\ub2a5\uc785\ub2c8\ub2e4. \uae30\ubcf8\uc801\uc73c\ub85c Django\ub294 \ub3d9\uae30\uc801\uc774\uace0 \uc694\uccad-\uc751\ub2f5 \uae30\ubc18\uc758 \uc6f9 \ud504\ub808\uc784\uc6cc\ud06c\ub85c \uc124\uacc4\ub418\uc5c8\uc73c\uba70, \uc774\ub7ec\ud55c \uad6c\uc870\ub294 \ub300\ubd80\ubd84\uc758 \uc6f9 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc5d0 \uc801\ud569\ud558\uc9c0\ub9cc, \uc2e4\uc2dc\uac04 \uae30\ub2a5\uc774\ub098 \ube44\ub3d9\uae30 \ucc98\ub9ac\uac00 \ud544\uc694\ud55c \uacbd\uc6b0\uc5d0\ub294 \ud55c\uacc4\uac00 \uc788\uc2b5\ub2c8\ub2e4. \uc774\ub54c Django Channels\uac00 \uc911\uc694\ud55c \uc5ed\ud560\uc744 \ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Django Channels\uc758 \uc8fc\uc694 \uae30\ub2a5<\/h3>\n\n\n\n<ol>\n<li><strong>\uc6f9\uc18c\ucf13 \uc9c0\uc6d0<\/strong>: \uc6f9\uc18c\ucf13\uc740 \ube0c\ub77c\uc6b0\uc800\uc640 \uc11c\ubc84 \uac04\uc758 \uc591\ubc29\ud5a5 \ud1b5\uc2e0\uc744 \uac00\ub2a5\ud558\uac8c \ud574\uc8fc\ub294 \ud504\ub85c\ud1a0\ucf5c\uc785\ub2c8\ub2e4. Channels\ub97c \ud1b5\ud574 Django\uc5d0\uc11c \uc6f9\uc18c\ucf13 \uae30\ubc18\uc758 \uc2e4\uc2dc\uac04 \uae30\ub2a5\uc744 \uad6c\ud604\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774\ub97c \ud1b5\ud574 \ucc44\ud305 \uc560\ud50c\ub9ac\ucf00\uc774\uc158, \uc2e4\uc2dc\uac04 \uc54c\ub9bc, \ub77c\uc774\ube0c \ub370\uc774\ud130 \uc5c5\ub370\uc774\ud2b8 \ub4f1\uc744 \uad6c\ud604\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/li>\n\n\n\n<li><strong>\ube44\ub3d9\uae30 \ucc98\ub9ac<\/strong>: Channels\ub294 Django\uc5d0 \ube44\ub3d9\uae30 \ubdf0\uc640 \ubbf8\ub4e4\uc6e8\uc5b4\ub97c \ub3c4\uc785\ud558\uc5ec, \ube44\ub3d9\uae30 Python \uae30\ub2a5\uc744 \ud65c\uc6a9\ud560 \uc218 \uc788\ub3c4\ub85d \ud574\uc90d\ub2c8\ub2e4. \uc774\ub97c \ud1b5\ud574 I\/O \ubc14\uc6b4\ub4dc \uc791\uc5c5, \uae34 \uc791\uc5c5 \ucc98\ub9ac, \ube44\ub3d9\uae30 API \ud638\ucd9c \ub4f1\uc744 \ud6a8\uc728\uc801\uc73c\ub85c \ucc98\ub9ac\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/li>\n\n\n\n<li><strong>\ucc44\ub110 \ub808\uc774\uc5b4(Channels Layer)<\/strong>: Channels Layer\ub294 Django \uc560\ud50c\ub9ac\ucf00\uc774\uc158 \uac04\uc5d0, \ud639\uc740 Django \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uacfc \uc678\ubd80 \uc11c\ube44\uc2a4 \uac04\uc5d0 \uba54\uc2dc\uc9c0\ub97c \uc804\uc1a1\ud558\ub294 \uba54\ucee4\ub2c8\uc998\uc744 \uc81c\uacf5\ud569\ub2c8\ub2e4. \uc774\ub97c \ud1b5\ud574 \ub2e4\uc591\ud55c \ucee8\uc288\uba38(consumer) \uac04\uc5d0 \uba54\uc2dc\uc9c0\ub97c \uad50\ud658\ud560 \uc218 \uc788\uc73c\uba70, \uc8fc\ub85c \uc6f9\uc18c\ucf13 \uc5f0\uacb0\uc5d0\uc11c \uc0ac\uc6a9\ub429\ub2c8\ub2e4.<\/li>\n\n\n\n<li><strong>\uc2a4\ucf00\uc77c \uc544\uc6c3<\/strong>: Channels\ub294 Django \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc758 \uc2a4\ucf00\uc77c \uc544\uc6c3\uc744 \ub3c4\uc640\uc8fc\ub294 \uc544\ud0a4\ud14d\ucc98\ub97c \uc81c\uacf5\ud569\ub2c8\ub2e4. Channels Layer\ub97c \ud1b5\ud574 \uc5ec\ub7ec \uc11c\ubc84\uac00 \uba54\uc2dc\uc9c0\ub97c \uacf5\uc720\ud558\uace0 \ucc98\ub9ac\ud560 \uc218 \uc788\ub3c4\ub85d \ud568\uc73c\ub85c\uc368, \ub354 \ub9ce\uc740 \uc0ac\uc6a9\uc790\uc640\uc758 \uc2e4\uc2dc\uac04 \uc5f0\uacb0\uc744 \uc9c0\uc6d0\ud569\ub2c8\ub2e4.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">\uc0ac\uc6a9 \uc0ac\ub840<\/h3>\n\n\n\n<ul>\n<li><strong>\ucc44\ud305 \uc560\ud50c\ub9ac\ucf00\uc774\uc158<\/strong>: \uc0ac\uc6a9\uc790 \uac04\uc758 \uc2e4\uc2dc\uac04 \ucc44\ud305 \uae30\ub2a5 \uad6c\ud604<\/li>\n\n\n\n<li><strong>\uc2e4\uc2dc\uac04 \uc54c\ub9bc \uc2dc\uc2a4\ud15c<\/strong>: \uc0ac\uc6a9\uc790\uc5d0\uac8c \uc2e4\uc2dc\uac04\uc73c\ub85c \uc911\uc694 \uc815\ubcf4\ub97c \uc54c\ub9ac\ub294 \uae30\ub2a5<\/li>\n\n\n\n<li><strong>\ub77c\uc774\ube0c \ub370\uc774\ud130 \ud53c\ub4dc<\/strong>: \uc8fc\uc2dd, \uc2a4\ud3ec\uce20 \uacbd\uae30 \ub4f1 \uc2e4\uc2dc\uac04\uc73c\ub85c \ubcc0\ud558\ub294 \ub370\uc774\ud130\uc758 \ub77c\uc774\ube0c \uc5c5\ub370\uc774\ud2b8<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\uc124\uce58 \ubc0f \uc124\uc815<\/h3>\n\n\n\n<p>Django Channels\ub294 \ubcc4\ub3c4\uc758 \ud328\ud0a4\uc9c0\ub85c \uc81c\uacf5\ub418\uba70, <code>pip<\/code>\ub97c \ud1b5\ud574 \uc124\uce58\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#0F111A\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\"pip install channels\" style=\"color:#babed8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki material-theme-ocean\" style=\"background-color: #0F111A\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #FFCB6B\">pip<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">install<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">channels<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>\uc124\uce58 \ud6c4, <code>settings.py<\/code>\uc5d0 <code>channels<\/code>\ub97c <code>INSTALLED_APPS<\/code>\uc5d0 \ucd94\uac00\ud558\uace0, ASGI(Asynchronous Server Gateway Interface) \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc73c\ub85c \uc124\uc815\uc744 \ubcc0\uacbd\ud574\uc57c \ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<p>Django Channels\ub97c \ud1b5\ud574 Django\uc758 \uae30\ub2a5\uc744 \ub118\uc5b4\uc11c\ub294 \ub354 \ub2e4\uc591\ud55c \ube44\ub3d9\uae30 \ubc0f \uc2e4\uc2dc\uac04 \uae30\ub2a5\uc744 \uad6c\ud604\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uadf8\ub7ec\ub098 \ud504\ub85c\uc81d\ud2b8\uc758 \ubcf5\uc7a1\ub3c4\uac00 \uc99d\uac00\ud558\uace0, \ucd94\uac00\uc801\uc778 \uad6c\uc131 \ubc0f \uad00\ub9ac\uac00 \ud544\uc694\ud560 \uc218 \uc788\uc73c\ubbc0\ub85c \ud504\ub85c\uc81d\ud2b8\uc758 \uc694\uad6c\uc0ac\ud56d\uacfc \ub9ac\uc18c\uc2a4\ub97c \uace0\ub824\ud558\uc5ec \uc0ac\uc6a9\uc744 \uacb0\uc815\ud574\uc57c \ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<p>Daphne\ub294 Django Channels\uc758 \uc911\uc694\ud55c \ucef4\ud3ec\ub10c\ud2b8 \uc911 \ud558\ub098\ub85c, ASGI(Asynchronous Server Gateway Interface) \uc11c\ubc84\uc785\ub2c8\ub2e4. \uae30\uc874\uc758 Django\ub294 WSGI(Web Server Gateway Interface)\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc694\uccad\uc744 \ucc98\ub9ac\ud558\ub294 \ub3d9\uae30\uc801 \uc11c\ubc84\ub97c \uc0ac\uc6a9\ud588\uc2b5\ub2c8\ub2e4. \uadf8\ub7ec\ub098 Django Channels\uc758 \ub3c4\uc785\uc73c\ub85c \ube44\ub3d9\uae30 \ucc98\ub9ac\uac00 \ud544\uc694\ud574\uc84c\uace0, \uc774\ub97c \uc704\ud574 ASGI \uc11c\ubc84\uc778 Daphne\uac00 \uc0ac\uc6a9\ub429\ub2c8\ub2e4.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Daphne\uc758 \uc8fc\uc694 \uae30\ub2a5<\/h3>\n\n\n\n<ol>\n<li><strong>\ube44\ub3d9\uae30 \ucc98\ub9ac \uc9c0\uc6d0<\/strong>: Daphne\ub294 \ube44\ub3d9\uae30 \ud504\ub85c\ud1a0\ucf5c\uc778 ASGI\ub97c \uc9c0\uc6d0\ud569\ub2c8\ub2e4. \uc774\ub97c \ud1b5\ud574 \uc6f9\uc18c\ucf13, HTTP2, \uae30\ud0c0 \ube44\ub3d9\uae30 \ud504\ub85c\ud1a0\ucf5c\uc744 \ucc98\ub9ac\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/li>\n\n\n\n<li><strong>\uc6f9\uc18c\ucf13 \uc5f0\uacb0 \uad00\ub9ac<\/strong>: \uc6f9\uc18c\ucf13\uc740 Daphne\uc758 \ud575\uc2ec \uae30\ub2a5 \uc911 \ud558\ub098\ub85c, \uc2e4\uc2dc\uac04 \uc591\ubc29\ud5a5 \ud1b5\uc2e0\uc744 \uac00\ub2a5\ud558\uac8c \ud569\ub2c8\ub2e4. \uc774\ub97c \ud1b5\ud574 \ucc44\ud305 \uc560\ud50c\ub9ac\ucf00\uc774\uc158, \uc2e4\uc2dc\uac04 \uc54c\ub9bc \ub4f1\uc744 \uad6c\ud604\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/li>\n\n\n\n<li><strong>Channels\uc640\uc758 \ud1b5\ud569<\/strong>: Daphne\ub294 Django Channels\uc640 \uae34\ubc00\ud558\uac8c \ud1b5\ud569\ub418\uc5b4 \uc788\uc73c\uba70, Channels\uc5d0\uc11c \uc815\uc758\ub41c \ub77c\uc6b0\ud305 \ubc0f \ucc44\ub110 \ub808\uc774\uc5b4\uc640 \ud568\uaed8 \uc791\ub3d9\ud569\ub2c8\ub2e4.<\/li>\n\n\n\n<li><strong>\ud655\uc7a5\uc131 \ubc0f \uc131\ub2a5<\/strong>: Daphne\ub294 \ub3d9\uc2dc\uc5d0 \uc5ec\ub7ec \uc5f0\uacb0\uc744 \ucc98\ub9ac\ud560 \uc218 \uc788\uc73c\uba70, \ub2e4\uc591\ud55c \ud658\uacbd\uc5d0\uc11c\uc758 \ud655\uc7a5\uc131\uacfc \uc131\ub2a5\uc744 \uc81c\uacf5\ud569\ub2c8\ub2e4.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">\uc124\uce58 \ubc0f \uc0ac\uc6a9<\/h3>\n\n\n\n<p>Daphne\ub294 pip\ub97c \ud1b5\ud574 \uc124\uce58\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#0F111A\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\"pip install daphne\" style=\"color:#babed8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki material-theme-ocean\" style=\"background-color: #0F111A\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #FFCB6B\">pip<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">install<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">daphne<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>\uc124\uce58 \ud6c4, Django \ud504\ub85c\uc81d\ud2b8\uc758 ASGI \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 Daphne \uc11c\ubc84\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc2e4\ud589\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc608\ub97c \ub4e4\uc5b4, \ud504\ub85c\uc81d\ud2b8\uc758 <code>asgi.py<\/code> \ud30c\uc77c\uc744 \uc0ac\uc6a9\ud558\uc5ec Daphne \uc11c\ubc84\ub97c \uc2dc\uc791\ud558\ub294 \uba85\ub839\uc740 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#0F111A\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\"daphne -p 8001 myproject.asgi:application\" style=\"color:#babed8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki material-theme-ocean\" style=\"background-color: #0F111A\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #FFCB6B\">daphne<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">-p<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #F78C6C\">8001<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">myproject.asgi:application<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>\uc774 \uba85\ub839\uc740 8001 \ud3ec\ud2b8\uc5d0\uc11c <code>myproject<\/code>\uc758 ASGI \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 Daphne \uc11c\ubc84\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc2e4\ud589\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\uc8fc\uc758\uc0ac\ud56d<\/h3>\n\n\n\n<p>Daphne\ub294 \ud504\ub85c\ub355\uc158 \ud658\uacbd\uc5d0\uc11c \uc0ac\uc6a9\ub420 \ub54c, \ubcf4\ud1b5 Nginx \uac19\uc740 \ub9ac\ubc84\uc2a4 \ud504\ub85d\uc2dc \ub4a4\uc5d0 \uc704\uce58\ud569\ub2c8\ub2e4. \uc774\ub294 \ubcf4\uc548\uacfc \uc131\ub2a5 \ucd5c\uc801\ud654\ub97c \uc704\ud574 \uc911\uc694\ud569\ub2c8\ub2e4. Nginx\ub294 \uc815\uc801 \ud30c\uc77c\uc744 \ucc98\ub9ac\ud558\uace0, HTTPS\ub97c \uad00\ub9ac\ud558\ub294 \ub4f1\uc758 \uc5ed\ud560\uc744 \uc218\ud589\ud558\uba70, \uc2e4\uc81c ASGI \uc694\uccad\uc740 Daphne\ub85c \uc804\ub2ec\ub429\ub2c8\ub2e4.<\/p>\n\n\n\n<p>Daphne\ub294 Django Channels\uc640 \ud568\uaed8 \uc0ac\uc6a9\ud560 \ub54c Django \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc5d0 \ube44\ub3d9\uae30 \ubc0f \uc2e4\uc2dc\uac04 \uae30\ub2a5\uc744 \uc81c\uacf5\ud558\ub294 \uac15\ub825\ud55c \ub3c4\uad6c\uc785\ub2c8\ub2e4.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Django Channels\uc640 daphne<\/p>\n","protected":false},"author":1,"featured_media":761,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[19],"tags":[96,97,95],"_links":{"self":[{"href":"https:\/\/dohokin.com\/index.php?rest_route=\/wp\/v2\/posts\/759"}],"collection":[{"href":"https:\/\/dohokin.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dohokin.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dohokin.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/dohokin.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=759"}],"version-history":[{"count":3,"href":"https:\/\/dohokin.com\/index.php?rest_route=\/wp\/v2\/posts\/759\/revisions"}],"predecessor-version":[{"id":1551,"href":"https:\/\/dohokin.com\/index.php?rest_route=\/wp\/v2\/posts\/759\/revisions\/1551"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/dohokin.com\/index.php?rest_route=\/wp\/v2\/media\/761"}],"wp:attachment":[{"href":"https:\/\/dohokin.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=759"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dohokin.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=759"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dohokin.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=759"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}