{"id":1996,"date":"2024-10-03T12:47:50","date_gmt":"2024-10-03T03:47:50","guid":{"rendered":"https:\/\/hyunsu.com\/wordpress\/?p=1996"},"modified":"2024-10-03T14:56:18","modified_gmt":"2024-10-03T05:56:18","slug":"%ed%8c%8c%ec%9d%b4%ec%8d%ac%ec%9c%bc%eb%a1%9c-graphql-%ec%84%9c%eb%b2%84%ec%97%90-%ec%a0%91%ea%b7%bc%ed%95%98%ea%b8%b0","status":"publish","type":"post","link":"https:\/\/hyunsu.com\/wordpress\/?p=1996","title":{"rendered":"GraphQL \uc11c\ubc84\uc5d0 \ud30c\uc774\uc36c\uc73c\ub85c \uc811\uadfc\ud558\uae30"},"content":{"rendered":"\n<p>\ud30c\uc774\uc36c\uc5d0\uc11c\ub294 <strong><code>requests<\/code><\/strong> \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \uc0ac\uc6a9\ud558\uc5ec GraphQL \uc11c\ubc84\uc5d0 HTTP \uc694\uccad\uc744 \ubcf4\ub0b4\uace0, \ub370\uc774\ud130\ub97c \uac00\uc838\uc62c \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ub610\ud55c **<code>gql<\/code>**\uc774\ub77c\ub294 \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \uc0ac\uc6a9\ud558\uba74 \uc880 \ub354 \uc9c1\uad00\uc801\uc778 \ubc29\uc2dd\uc73c\ub85c GraphQL \ucffc\ub9ac\uc640 \ubba4\ud14c\uc774\uc158\uc744 \uc791\uc131\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ub450 \uac00\uc9c0 \ubc29\uc2dd \ubaa8\ub450 \uc608\uc81c\ub85c \ubcf4\uc5ec\ub4dc\ub9b4\uac8c\uc694.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>1. <code>requests<\/code> \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \uc0ac\uc6a9\ud55c \uc608\uc81c<\/strong><\/h3>\n\n\n\n<p>\uba3c\uc800 <code>requests<\/code> \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \uc774\uc6a9\ud55c \uae30\ubcf8\uc801\uc778 GraphQL \ud074\ub77c\uc774\uc5b8\ud2b8 \uc608\uc81c\uc785\ub2c8\ub2e4.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">\uc124\uce58:<\/h4>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>pip install requests<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">GraphQL \ucffc\ub9ac \uc608\uc81c:<\/h4>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>import requests<br><br># GraphQL \uc5d4\ub4dc\ud3ec\uc778\ud2b8 \uc124\uc815<br>url = 'http:\/\/localhost:4000\/graphql'<br><br># GraphQL \ucffc\ub9ac \uc791\uc131<br>query = \"\"\"<br>{<br>  user(id: 1) {<br>    name<br>    email<br>  }<br>}<br>\"\"\"<br><br># \uc694\uccad \ubcf4\ub0b4\uae30<br>response = requests.post(url, json={'query': query})<br><br># \uc751\ub2f5 \uacb0\uacfc \ucd9c\ub825<br>print(response.json())<\/code><\/pre>\n\n\n\n<p>\uc774 \ucf54\ub4dc\ub294 \ud30c\uc774\uc36c\uc758 <code>requests<\/code> \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \uc0ac\uc6a9\ud558\uc5ec GraphQL \uc11c\ubc84\uc5d0 \ucffc\ub9ac\ub97c \ubcf4\ub0b4\ub294 \uc608\uc81c\uc785\ub2c8\ub2e4. \uc774\ub54c \ucffc\ub9ac\ub97c JSON \ud615\uc2dd\uc73c\ub85c \uc11c\ubc84\uc5d0 \uc804\uc1a1\ud558\uace0, \uc11c\ubc84\uc758 \uc751\ub2f5\uc744 JSON\uc73c\ub85c \ucd9c\ub825\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">\uacb0\uacfc:<\/h4>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>{<br>  \"data\": {<br>    \"user\": {<br>      \"name\": \"John\",<br>      \"email\": \"john@example.com\"<br>    }<br>  }<br>}<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">GraphQL \ubba4\ud14c\uc774\uc158 \uc608\uc81c:<\/h4>\n\n\n\n<p>\uc774\ubc88\uc5d0\ub294 \uc0ac\uc6a9\uc790\ub97c \ucd94\uac00\ud558\ub294 \ubba4\ud14c\uc774\uc158 \uc608\uc81c\ub97c \uc0b4\ud3b4\ubcf4\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>import requests<br><br># GraphQL \uc5d4\ub4dc\ud3ec\uc778\ud2b8 \uc124\uc815<br>url = 'http:\/\/localhost:4000\/graphql'<br><br># GraphQL \ubba4\ud14c\uc774\uc158 \uc791\uc131<br>mutation = \"\"\"<br>mutation {<br>  addUser(name: \"Alice\", email: \"alice@example.com\") {<br>    id<br>    name<br>    email<br>  }<br>}<br>\"\"\"<br><br># \uc694\uccad \ubcf4\ub0b4\uae30<br>response = requests.post(url, json={'query': mutation})<br><br># \uc751\ub2f5 \uacb0\uacfc \ucd9c\ub825<br>print(response.json())<\/code><\/pre>\n\n\n\n<p>\uc774 \ucf54\ub4dc \uc5ed\uc2dc <code>requests<\/code> \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \uc0ac\uc6a9\ud558\uc5ec, \uc0c8\ub85c\uc6b4 \uc0ac\uc6a9\uc790\ub97c \ucd94\uac00\ud558\ub294 \ubba4\ud14c\uc774\uc158\uc744 \uc11c\ubc84\uc5d0 \ubcf4\ub0b4\uace0 \uacb0\uacfc\ub97c \ucd9c\ub825\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>2. <code>gql<\/code> \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \uc0ac\uc6a9\ud55c \uc608\uc81c<\/strong><\/h3>\n\n\n\n<p>**<code>gql<\/code>**\uc740 GraphQL \ucffc\ub9ac \ubc0f \ubba4\ud14c\uc774\uc158\uc744 \uc880 \ub354 Pythonic\ud558\uac8c \uc791\uc131\ud560 \uc218 \uc788\ub294 \ub77c\uc774\ube0c\ub7ec\ub9ac\uc785\ub2c8\ub2e4.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">\uc124\uce58:<\/h4>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>pip install gql requests<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">GraphQL \ucffc\ub9ac \uc608\uc81c:<\/h4>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>from gql import gql, Client<br>from gql.transport.requests import RequestsHTTPTransport<br><br># GraphQL \uc5d4\ub4dc\ud3ec\uc778\ud2b8 \uc124\uc815<br>transport = RequestsHTTPTransport(<br>    url='http:\/\/localhost:4000\/graphql',<br>    use_json=True<br>)<br><br>client = Client(transport=transport, fetch_schema_from_transport=True)<br><br># GraphQL \ucffc\ub9ac \uc791\uc131<br>query = gql(\"\"\"<br>{<br>  user(id: 1) {<br>    name<br>    email<br>  }<br>}<br>\"\"\")<br><br># \ucffc\ub9ac \uc2e4\ud589<br>response = client.execute(query)<br><br># \uc751\ub2f5 \uacb0\uacfc \ucd9c\ub825<br>print(response)<\/code><\/pre>\n\n\n\n<p><code>gql<\/code> \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \uc0ac\uc6a9\ud558\uba74 GraphQL \ucffc\ub9ac\ub97c \uc27d\uac8c \uc2e4\ud589\ud560 \uc218 \uc788\uc73c\uba70, \ucffc\ub9ac \ubb38\ubc95\ub3c4 \ubcf4\ub2e4 \uc9c1\uad00\uc801\uc785\ub2c8\ub2e4.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">\uacb0\uacfc:<\/h4>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>{<br>  \"user\": {<br>    \"name\": \"John\",<br>    \"email\": \"john@example.com\"<br>  }<br>}<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">GraphQL \ubba4\ud14c\uc774\uc158 \uc608\uc81c:<\/h4>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>from gql import gql, Client<br>from gql.transport.requests import RequestsHTTPTransport<br><br># GraphQL \uc5d4\ub4dc\ud3ec\uc778\ud2b8 \uc124\uc815<br>transport = RequestsHTTPTransport(<br>    url='http:\/\/localhost:4000\/graphql',<br>    use_json=True<br>)<br><br>client = Client(transport=transport, fetch_schema_from_transport=True)<br><br># GraphQL \ubba4\ud14c\uc774\uc158 \uc791\uc131<br>mutation = gql(\"\"\"<br>mutation {<br>  addUser(name: \"Alice\", email: \"alice@example.com\") {<br>    id<br>    name<br>    email<br>  }<br>}<br>\"\"\")<br><br># \ubba4\ud14c\uc774\uc158 \uc2e4\ud589<br>response = client.execute(mutation)<br><br># \uc751\ub2f5 \uacb0\uacfc \ucd9c\ub825<br>print(response)<\/code><\/pre>\n\n\n\n<p>\uc774 \uc608\uc81c\uc5d0\uc11c\ub294 <code>gql<\/code> \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc0c8\ub85c\uc6b4 \uc0ac\uc6a9\uc790\ub97c \ucd94\uac00\ud558\ub294 \ubba4\ud14c\uc774\uc158\uc744 \uc2e4\ud589\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\uacb0\ub860<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><code>requests<\/code> \ub77c\uc774\ube0c\ub7ec\ub9ac\ub294 HTTP \uc694\uccad\uc744 \uc27d\uac8c \ucc98\ub9ac\ud560 \uc218 \uc788\uc73c\uba70, GraphQL \uc694\uccad\ub3c4 \ub2e8\uc21c\ud558\uac8c \ubcf4\ub0bc \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/li>\n\n\n\n<li><code>gql<\/code> \ub77c\uc774\ube0c\ub7ec\ub9ac\ub294 GraphQL \ucffc\ub9ac\uc640 \ubba4\ud14c\uc774\uc158\uc744 \uc870\uae08 \ub354 \uc9c1\uad00\uc801\uc774\uace0 \uac04\uacb0\ud558\uac8c \uc791\uc131\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/li>\n<\/ol>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\ud30c\uc774\uc36c\uc5d0\uc11c\ub294 requests \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \uc0ac\uc6a9\ud558\uc5ec GraphQL \uc11c\ubc84\uc5d0 HTTP \uc694\uccad\uc744 \ubcf4\ub0b4\uace0, \ub370\uc774\ud130\ub97c \uac00\uc838\uc62c \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ub610\ud55c **gql**\uc774\ub77c\ub294 \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \uc0ac\uc6a9\ud558\uba74 \uc880 \ub354 \uc9c1\uad00\uc801\uc778 \ubc29\uc2dd\uc73c\ub85c GraphQL \ucffc\ub9ac\uc640 \ubba4\ud14c\uc774\uc158\uc744 \uc791\uc131\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ub450 \uac00\uc9c0 \ubc29\uc2dd \ubaa8\ub450 \uc608\uc81c\ub85c \ubcf4\uc5ec\ub4dc\ub9b4\uac8c\uc694. 1. requests \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \uc0ac\uc6a9\ud55c \uc608\uc81c \uba3c\uc800 requests \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \uc774\uc6a9\ud55c \uae30\ubcf8\uc801\uc778 GraphQL \ud074\ub77c\uc774\uc5b8\ud2b8 \uc608\uc81c\uc785\ub2c8\ub2e4. \uc124\uce58: pip install requests GraphQL \ucffc\ub9ac \uc608\uc81c: import requests# [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[55],"tags":[],"class_list":["post-1996","post","type-post","status-publish","format-standard","hentry","category-coding"],"_links":{"self":[{"href":"https:\/\/hyunsu.com\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/1996","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hyunsu.com\/wordpress\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/hyunsu.com\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/hyunsu.com\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/hyunsu.com\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1996"}],"version-history":[{"count":2,"href":"https:\/\/hyunsu.com\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/1996\/revisions"}],"predecessor-version":[{"id":2015,"href":"https:\/\/hyunsu.com\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/1996\/revisions\/2015"}],"wp:attachment":[{"href":"https:\/\/hyunsu.com\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1996"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hyunsu.com\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1996"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hyunsu.com\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1996"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}