{"id":676,"date":"2026-06-19T00:33:20","date_gmt":"2026-06-18T15:33:20","guid":{"rendered":"https:\/\/blog.gerd.kr\/?p=676"},"modified":"2026-06-19T00:33:20","modified_gmt":"2026-06-18T15:33:20","slug":"ai-%ec%99%80-%ed%95%a8%ea%bb%98%ed%95%9c-%ec%84%9c%eb%b2%84-%ec%b5%9c%ec%a0%81%ed%99%94-http-2","status":"publish","type":"post","link":"https:\/\/blog.gerd.kr\/?p=676","title":{"rendered":"AI \uc640 \ud568\uaed8\ud55c \uc11c\ubc84 \ucd5c\uc801\ud654 &#8211; HTTP\/2"},"content":{"rendered":"\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">\uadf8\ub7f0\ub370 \uac00\uc7a5 \uc911\uc694\ud55c \uc0ac\uc2e4\uc740 \uc5ec\uc804\ud788 \uc774\uac83\uc774\uc57c.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc989, Apache\uac00 TLS \uacc4\uce35\uc5d0\uc11c h2\ub97c \uad11\uace0\ud558\uc9c0 \uc54a\uace0 \uc788\uc74c.<\/p>\n<\/blockquote>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<h2 class=\"wp-block-heading\">\ud655\uc778\ud574\uc57c \ud560 \uac83<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Apache\uac00 \uc5b4\ub5a4 MPM\uc744 \uc4f0\ub294\uc9c0 \ud655\uc778\ud574\ubd10.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uacb0\uacfc\uac00 \uc544\ub9c8 \ub458 \uc911 \ud558\ub098\uc77c \uac70\uc57c.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\uc815\uc0c1<\/h3>\n\n\n\n<pre class=\"wp-block-preformatted\"><a><\/a><code>mpm_event_module (shared)<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ub610\ub294<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><a><\/a><code>mpm_worker_module (shared)<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\ubb38\uc81c \uac00\ub2a5\uc131<\/h3>\n\n\n\n<pre class=\"wp-block-preformatted\"><a><\/a><code>mpm_prefork_module (shared)<\/code><\/pre>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">gerd@miniboxx:\/etc\/apache2\/conf-available$ sudo apachectl -M | grep mpm<br>mpm_prefork_module (shared)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">\uc6d0\uc778 \ucc3e\uc740 \uac83 \uac19\ub124. \ud83d\udc4d<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ud604\uc7ac Apache\uac00:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><a><\/a><code>mpm_prefork_module (shared)<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ub85c \ub3d9\uc791 \uc911\uc774\uc57c.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>mod_http2<\/code>\ub294 \ub85c\ub4dc\ub418\uc5b4 \uc788\uc9c0\ub9cc, <strong>MPM<\/strong><strong>\uc774 prefork\uc774\uba74 HTTP\/2 \uc9c0\uc6d0\uc774 \uc0ac\uc2e4\uc0c1 \ube44\ud65c\uc131\ud654\ub418\uac70\ub098 \uc81c\ud55c\uc801\uc73c\ub85c \ub3d9\uc791<\/strong>\ud558\ub294 \uacbd\uc6b0\uac00 \ub9ce\uc544. \ub124\uac00 \ubcf8<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><a><\/a><code>ALPN: server accepted http\/1.1<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc640 \uc815\ud655\ud788 \uc77c\uce58\ud558\ub294 \uc99d\uc0c1\uc774\uc57c.<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<h2 class=\"wp-block-heading\">HTTP\/2\ub97c \uc4f0\uace0 \uc2f6\ub2e4\uba74<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\ubcf4\ud1b5 \uc774\ub7f0 \uc21c\uc11c\uc57c.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1. PHP-FPM \uc124\uce58 \ud655\uc778<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Ubuntu 24.04 \uae30\uc900 \uc608\uc2dc:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><a><\/a><code> <\/code><code>a2enmod mpm_event<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">2. \ud544\uc694\ud55c \ubaa8\ub4c8 \ud65c\uc131\ud654<\/h3>\n\n\n\n<pre class=\"wp-block-preformatted\"><a><\/a><code>sudo a2enmod proxy_fcgi setenvif<\/code>\n<code>sudo a2enconf php8.3-fpm<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">(\ubc84\uc804\uc740 \uc124\uce58\ub41c PHP\uc5d0 \ub530\ub77c \ub2e4\ub984)<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">3. mod_php \ube44\ud65c\uc131\ud654<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\uc608:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><a><\/a><code>sudo a2dismod php8.3<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">4. prefork \u2192 event \uc804\ud658<\/h3>\n\n\n\n<pre class=\"wp-block-preformatted\"><a><\/a><code>sudo a2dismod mpm_prefork<\/code>\n<code>sudo a2enmod mpm_event<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">5. Apache \uc7ac\uc2dc\uc791<\/h3>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>sudo systemctl restart apache2<\/code><\/pre>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc5ec\uae30\uae4c\uc9c0 \ud574\uc11c HTTP2 \uac00 \ud65c\uc131\ud654 \ub418\uc5c8\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc911\uac04\uc5d0 ChatGPT \uac00 \ub354 \uc790\uc138\ud788 \uc0c1\ud669\uc744 \uc0b4\ud3b4 \ubcf4\uae30 \uc704\ud574 \ub2e4\uc74c\uacfc \uac19\uc740 \uba85\ub839\uc758 \uc2e4\ud589\uc744 \uad8c\ud588\ub2e4.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">curl &#8211;http2-prior-knowledge -v https:\/\/blog.gerd.kr -o \/dev\/null<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">\uae38\uc5b4\uc11c \ub4a4\uc5d0 \ucca8\ubd80\ud558\uaca0\uc9c0\ub9cc, ChatGPT \ub294 \uc774 \uba85\ub839\uc758 \uacb0\uacfc\ub97c \ubcf4\uace0\ub294,<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">\uc774 \ucd9c\ub825 \ub355\ubd84\uc5d0 \uc6d0\uc778\uc774 \uac70\uc758 \ud655\uc2e4\ud574\uc84c\uc5b4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ud575\uc2ec \uc904:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><a><\/a><code>* ALPN: curl offers h2,http\/1.1<\/code>\n<code>...<\/code>\n<code>* ALPN: server accepted http\/1.1<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc989,<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><a><\/a><code>\ud074\ub77c\uc774\uc5b8\ud2b8<\/code><code>: HTTP\/2 <\/code><code>\uac00\ub2a5<\/code>\n<code>\uc11c\ubc84<\/code><code>: <\/code><code>\uc544\ub2c8<\/code><code>, HTTP\/1.1<\/code><code>\ub85c \ud560\uac8c<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc0c1\ud0dc\uc57c.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>Protocols h2 http\/1.1<\/code>\uc740 \uc124\uc815\ub418\uc5b4 \uc788\ub294\ub370\ub3c4 ALPN \ud611\uc0c1\uc5d0\uc11c h2\ub97c \uad11\uace0\ud558\uc9c0 \uc54a\uace0 \uc788\uc5b4.<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774\ub77c\ub294 \ubd84\uc11d\uc744 \ud588\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><strong>gerd@miniboxx<\/strong>:<strong>~<\/strong>$ curl --http2-prior-knowledge -v https:\/\/blog.gerd.kr -o \/dev\/null                                                                                                                                    % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current                                                                                                                                                                      Dload  Upload   Total   Spent    Left  Speed                                                                                                                                         0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0* Host blog.gerd.kr:443 was resolved.                                                                                                 * IPv6: (none)                                                                                                                                                                                                      * IPv4: 122.43.156.87                                                                                                                                                                                               *   Trying 122.43.156.87:443...                                                                                                                                                                                     * Connected to blog.gerd.kr (122.43.156.87) port 443                                                                                                                                                                * ALPN: curl offers h2,http\/1.1                                                                                                                                                                                     } [5 bytes data]                                                                                                                                                                                                    * TLSv1.3 (OUT), TLS handshake, Client hello (1):                                                                                                                                                                   } [512 bytes data]                                                                                                                                                                                                  *  CAfile: \/etc\/ssl\/certs\/ca-certificates.crt                                                                                                                                                                       *  CApath: \/etc\/ssl\/certs                                                                                                                                                                                           { [5 bytes data]                                                                                                                                                                                                    * TLSv1.3 (IN), TLS handshake, Server hello (2):                                                                                                                                                                    { [122 bytes data]                                                                                                                                                                                                  * TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):                                                                                                                                                            { [19 bytes data]                                                                                                                                                                                                   * TLSv1.3 (IN), TLS handshake, Certificate (11):                                                                                                                                                                    { [2054 bytes data]                                                                                                                                                                                                 * TLSv1.3 (IN), TLS handshake, CERT verify (15):                                                                                                                                                                    { [78 bytes data]                                                                                                                                                                                                   * TLSv1.3 (IN), TLS handshake, Finished (20):                                                                                                                                                                       { [52 bytes data]                                                                                                                                                                                                   * TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):                                                                                                                                                         } [1 bytes data]                                                                                                                                                                                                    * TLSv1.3 (OUT), TLS handshake, Finished (20):                                                                                                                                                                      } [52 bytes data]                                                                                                                                                                                                   * SSL connection using TLSv1.3 \/ TLS_AES_256_GCM_SHA384 \/ X25519 \/ id-ecPublicKey                                                                                                                                   * ALPN: server accepted h2                                                                                                                                                                                          * Server certificate:                                                                                                                                                                                               *  subject: CN=gerd.kr                                                                                                                                                                                              *  start date: May 12 09:38:34 2026 GMT                                                                                                                                                                             *  expire date: Aug 10 09:38:33 2026 GMT                                                                                                                                                                            *  subjectAltName: host \"blog.gerd.kr\" matched cert's \"blog.gerd.kr\"                                                                                                                                                *  issuer: C=US; O=Let's Encrypt; CN=E8                                                                                                                                                                             *  SSL certificate verify ok.                                                                                                                                                                                       *   Certificate level 0: Public key type EC\/prime256v1 (256\/128 Bits\/secBits), signed using ecdsa-with-SHA384                                                                                                       *   Certificate level 1: Public key type EC\/secp384r1 (384\/192 Bits\/secBits), signed using sha256WithRSAEncryption                                                                                                  *   Certificate level 2: Public key type RSA (4096\/152 Bits\/secBits), signed using sha256WithRSAEncryption                                                                                                          } [5 bytes data]                                                                                                                                                                                                    * using HTTP\/2                                                                                                                                                                                                      * [HTTP\/2] [1] OPENED stream for https:\/\/blog.gerd.kr\/                                                                                                                                                              * [HTTP\/2] [1] [:method: GET]                                                                                                                                                                                       * [HTTP\/2] [1] [:scheme: https]                                                                                                                                                                                     * [HTTP\/2] [1] [:authority: blog.gerd.kr]                                                                                                                                                                           * [HTTP\/2] [1] [:path: \/]                                                                                                                                                                                           * [HTTP\/2] [1] [user-agent: curl\/8.5.0]                                                                                                                                                                             * [HTTP\/2] [1] [accept: *\/*]                                                                                                                                                                                        } [5 bytes data]                                                                                                                                                                                                    &gt; GET \/ HTTP\/2                                                                                                                                                                                                      &gt; Host: blog.gerd.kr                                                                                                                                                                                                &gt; User-Agent: curl\/8.5.0                                                                                                                                                                                            &gt; Accept: *\/*                                                                                                                                                                                                       &gt;                                                                                                                                                                                                                   { [5 bytes data]                                                                                                                                                                                                    * TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):                                                                                                                                                               { [57 bytes data]                                                                                                                                                                                                   * TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):                                                                                                                                                               { [57 bytes data]                                                                                                                                                                                                   * old SSL session ID is stale, removing                                                                                                                                                                             { [5 bytes data]                                                                                                                                                                                                    &lt; HTTP\/2 200                                                                                                                                                                                                        &lt; link: ; rel=\"https:\/\/api.w.org\/\"                                                                                                                                     &lt; server-timing: wp-before-template;dur=58.34                                                                                                                                                                       &lt; cache-control: max-age=2592000                                                                                                                                                                                    &lt; expires: Sat, 18 Jul 2026 15:30:37 GMT                                                                                                                                                                            &lt; vary: Accept-Encoding                                                                                                                                                                                             &lt; content-type: text\/html; charset=UTF-8                                                                                                                                                                            &lt; date: Thu, 18 Jun 2026 15:30:37 GMT                                                                                                                                                                               &lt; server: Apache\/2.4.58 (Ubuntu)                                                                                                                                                                                    &lt;                                                                                                                                                                                                                   { [16160 bytes data]                                                                                                                                                                                                100 91823    0 91823    0     0   384k      0 --:--:-- --:--:-- --:--:--  386k                                                                                                                                      * Connection #0 to host blog.gerd.kr left intact                                                                                                                                                                    <strong>gerd@miniboxx<\/strong>:<strong>~<\/strong>$   <\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\uadf8\ub7f0\ub370 \uac00\uc7a5 \uc911\uc694\ud55c \uc0ac\uc2e4\uc740 \uc5ec\uc804\ud788 \uc774\uac83\uc774\uc57c. \uc989, Apache\uac00 TLS \uacc4\uce35\uc5d0\uc11c h2\ub97c \uad11\uace0\ud558\uc9c0 \uc54a\uace0 \uc788\uc74c. \ud655\uc778\ud574\uc57c \ud560 \uac83 Apache\uac00 \uc5b4\ub5a4 MPM\uc744 \uc4f0\ub294\uc9c0 \ud655\uc778\ud574\ubd10. \uacb0\uacfc\uac00 \uc544\ub9c8 \ub458 \uc911 \ud558\ub098\uc77c \uac70\uc57c. \uc815\uc0c1 mpm_event_module (shared) \ub610\ub294 mpm_worker_module (shared) \ubb38\uc81c \uac00\ub2a5\uc131 mpm_prefork_module (shared) gerd@miniboxx:\/etc\/apache2\/conf-available$ sudo apachectl -M | grep mpmmpm_prefork_module (shared) \uc6d0\uc778 \ucc3e\uc740 \uac83 \uac19\ub124. \ud83d\udc4d \ud604\uc7ac Apache\uac00: mpm_prefork_module (shared) [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[161],"tags":[187,191,193,195,192,194,118],"class_list":["post-676","post","type-post","status-publish","format-standard","hentry","category-ubuntu","tag-apache2","tag-http2","tag-mpm","tag-mpm_event","tag-mpm_prefork_module","tag-php-fpm","tag-ubuntu"],"_links":{"self":[{"href":"https:\/\/blog.gerd.kr\/index.php?rest_route=\/wp\/v2\/posts\/676","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.gerd.kr\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.gerd.kr\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.gerd.kr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.gerd.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=676"}],"version-history":[{"count":1,"href":"https:\/\/blog.gerd.kr\/index.php?rest_route=\/wp\/v2\/posts\/676\/revisions"}],"predecessor-version":[{"id":677,"href":"https:\/\/blog.gerd.kr\/index.php?rest_route=\/wp\/v2\/posts\/676\/revisions\/677"}],"wp:attachment":[{"href":"https:\/\/blog.gerd.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=676"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.gerd.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=676"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.gerd.kr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=676"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}