{"id":1256,"date":"2026-01-11T23:33:57","date_gmt":"2026-01-11T14:33:57","guid":{"rendered":"https:\/\/absol.kr\/?p=1256"},"modified":"2026-01-11T23:33:57","modified_gmt":"2026-01-11T14:33:57","slug":"google-cloud-project-and-added-credentials-gcp-%ec%9e%90%ea%b2%a9%ec%a6%9d%eb%aa%85-%ec%84%a4%ec%a0%95-%eb%b0%a9%eb%b2%95","status":"publish","type":"post","link":"https:\/\/absol.kr\/?p=1256","title":{"rendered":"Google Cloud Project and added credentials. GCP \uc790\uaca9\uc99d\uba85 \uc124\uc815 \ubc29\ubc95"},"content":{"rendered":"\n<pre class=\"wp-block-preformatted\">Google Cloud Project and credentials to backend\/.env<br>Required .env Variables:<br>GOOGLE_CLIENT_ID=your_client_id<br>GOOGLE_CLIENT_SECRET=your_client_secret<br>GOOGLE_REDIRECT_URI=http:\/\/localhost:3100\/api\/auth\/google\/callback<\/pre>\n\n\n\n<p>Google Cloud Project\ub97c \uc124\uc815\ud558\uace0 \uc778\uc99d \uc815\ubcf4\ub97c\u00a0<code>backend\/.env<\/code>\u00a0\ud30c\uc77c\uc5d0 \ucd94\uac00\ud558\ub294 \ubc29\ubc95\uc740 Google OAuth 2.0\uc744 \uc0ac\uc6a9\ud574\uc11c \uc0ac\uc6a9\uc790 \uc778\uc99d\uc744 \ud560 \ub54c \uc8fc\ub85c \ud544\uc694\ud574\uc694. <\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1. Google Cloud Project \uc124\uc815\ud558\uae30<\/h3>\n\n\n\n<p>\uba3c\uc800 Google Cloud Platform(GCP) \ucf58\uc194\uc5d0\uc11c \uc0c8\ub85c\uc6b4 \ud504\ub85c\uc81d\ud2b8\ub97c \ub9cc\ub4e4\uace0, \ud544\uc694\ud55c API\ub97c \ud65c\uc131\ud654\ud574\uc57c \ud574\uc694.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Google Cloud \ucf58\uc194 \uc811\uc18d:<\/strong>\u00a0\uc6f9 \ube0c\ub77c\uc6b0\uc800\uc5d0\uc11c\u00a0<a href=\"https:\/\/console.cloud.google.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">Google Cloud \ucf58\uc194<\/a>\uc5d0 \uc811\uc18d\ud558\uace0 \ub85c\uadf8\uc778\ud574\uc8fc\uc138\uc694.<\/li>\n\n\n\n<li><strong>\uc0c8 \ud504\ub85c\uc81d\ud2b8 \uc0dd\uc131:<\/strong>\n<ul class=\"wp-block-list\">\n<li>\ucf58\uc194 \uc0c1\ub2e8 \uc67c\ucabd\uc5d0 \uc788\ub294 \ud504\ub85c\uc81d\ud2b8 \uc120\ud0dd \ub4dc\ub86d\ub2e4\uc6b4 \uba54\ub274\ub97c \ud074\ub9ad\ud574\uc8fc\uc138\uc694.<\/li>\n\n\n\n<li>&#8216;\uc0c8 \ud504\ub85c\uc81d\ud2b8&#8217;\ub97c \ud074\ub9ad\ud574\uc11c \ud504\ub85c\uc81d\ud2b8 \uc774\ub984\uc744 \uc9c0\uc815\ud558\uace0 \uc0dd\uc131\ud569\ub2c8\ub2e4. (\uc608:\u00a0<code>My Awesome App<\/code>\u00a0\ub610\ub294\u00a0<code>Backend Auth Project<\/code>)<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>API \ubc0f \uc11c\ube44\uc2a4 \ud65c\uc131\ud654:<\/strong>\n<ul class=\"wp-block-list\">\n<li>\uc67c\ucabd \ub0b4\ube44\uac8c\uc774\uc158 \uba54\ub274\uc5d0\uc11c &#8216;API \ubc0f \uc11c\ube44\uc2a4&#8217; > &#8216;\ub77c\uc774\ube0c\ub7ec\ub9ac&#8217;\ub85c \uc774\ub3d9\ud574\uc8fc\uc138\uc694.<\/li>\n\n\n\n<li>\uac80\uc0c9\ucc3d\uc5d0 &#8220;Google People API&#8221;\ub97c \uac80\uc0c9\ud574\uc11c \ud65c\uc131\ud654\ud574\uc8fc\uc138\uc694. (\ub2e4\ub978 Google \uc11c\ube44\uc2a4\ub3c4 \ud544\uc694\ud558\ub2e4\uba74 \uac19\uc774 \ud65c\uc131\ud654\ud574\uc8fc\uc2dc\uba74 \ub429\ub2c8\ub2e4.)<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">2. OAuth 2.0 \ud074\ub77c\uc774\uc5b8\ud2b8 ID \uc0dd\uc131\ud558\uae30<\/h3>\n\n\n\n<p>\uc774\uc81c \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc5d0\uc11c Google \ub85c\uadf8\uc778\uc744 \uc0ac\uc6a9\ud560 \uc218 \uc788\ub3c4\ub85d \uc778\uc99d \uc815\ubcf4\ub97c \ub9cc\ub4e4\uc5b4\uc57c \ud574\uc694.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\uc0ac\uc6a9\uc790 \uc778\uc99d \uc815\ubcf4 \uc0dd\uc131:<\/strong>\n<ul class=\"wp-block-list\">\n<li>\uc67c\ucabd \ub0b4\ube44\uac8c\uc774\uc158 \uba54\ub274\uc5d0\uc11c &#8216;API \ubc0f \uc11c\ube44\uc2a4&#8217; > &#8216;\uc0ac\uc6a9\uc790 \uc778\uc99d \uc815\ubcf4&#8217;\ub85c \uc774\ub3d9\ud574\uc8fc\uc138\uc694.<\/li>\n\n\n\n<li>\uc0c1\ub2e8\uc5d0 \uc788\ub294 &#8216;+ \uc0ac\uc6a9\uc790 \uc778\uc99d \uc815\ubcf4 \ub9cc\ub4e4\uae30&#8217; \ubc84\ud2bc\uc744 \ud074\ub9ad\ud558\uace0 &#8216;OAuth \ud074\ub77c\uc774\uc5b8\ud2b8 ID&#8217;\ub97c \uc120\ud0dd\ud569\ub2c8\ub2e4.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>\uc560\ud50c\ub9ac\ucf00\uc774\uc158 \uc720\ud615 \uc120\ud0dd:<\/strong>\n<ul class=\"wp-block-list\">\n<li>\uc560\ud50c\ub9ac\ucf00\uc774\uc158 \uc720\ud615\uc73c\ub85c &#8216;\uc6f9 \uc560\ud50c\ub9ac\ucf00\uc774\uc158&#8217;\uc744 \uc120\ud0dd\ud574\uc8fc\uc138\uc694.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>\uc774\ub984 \uc9c0\uc815:<\/strong>\n<ul class=\"wp-block-list\">\n<li>OAuth \ud074\ub77c\uc774\uc5b8\ud2b8 \uc774\ub984\uc744 \uc785\ub825\ud569\ub2c8\ub2e4. (\uc608:\u00a0<code>Web Client 1<\/code>)<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>\ub9ac\ub514\ub809\uc158 URI \ucd94\uac00:<\/strong>\n<ul class=\"wp-block-list\">\n<li>&#8216;\uc2b9\uc778\ub41c \ub9ac\ub514\ub809\uc158 URI&#8217; \uc139\uc158\uc5d0\uc11c &#8216;+ URI \ucd94\uac00&#8217; \ubc84\ud2bc\uc744 \ud074\ub9ad\ud558\uace0 \ub2e4\uc74c URL\uc744 \ucd94\uac00\ud574\uc8fc\uc138\uc694:\u00a0<code>http:\/\/localhost:3100\/api\/auth\/google\/callback<\/code><\/li>\n\n\n\n<li>\uc774\ub294 Google\uc774 \uc778\uc99d\uc774 \uc644\ub8cc\ub41c \ud6c4 \uc0ac\uc6a9\uc790\ub97c \ub3cc\ub824\ubcf4\ub0bc \uc8fc\uc18c\uc608\uc694. \ub85c\uceec \ud658\uacbd\uc5d0\uc11c \ud14c\uc2a4\ud2b8\ud560 \ub54c \uc8fc\ub85c \uc0ac\uc6a9\ud558\uc8e0. \ub098\uc911\uc5d0 \uc2e4\uc81c \uc11c\ubc84\uc5d0 \ubc30\ud3ec\ud560 \ub54c\ub294 \uc11c\ubc84\uc758 \ub3c4\uba54\uc778\uc73c\ub85c \ubcc0\uacbd\ud574\uc57c \ud574\uc694.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>\ud074\ub77c\uc774\uc5b8\ud2b8 ID \ubc0f \uc2dc\ud06c\ub9bf \ud655\uc778:<\/strong>\n<ul class=\"wp-block-list\">\n<li>&#8216;\ub9cc\ub4e4\uae30&#8217; \ubc84\ud2bc\uc744 \ud074\ub9ad\ud558\uba74\u00a0<code>\ud074\ub77c\uc774\uc5b8\ud2b8 ID<\/code>\uc640\u00a0<code>\ud074\ub77c\uc774\uc5b8\ud2b8 \uc2dc\ud06c\ub9bf<\/code>\uc774 \ud31d\uc5c5\uc73c\ub85c \ub098\ud0c0\ub0a0 \uac70\uc608\uc694. \uc774 \uac12\ub4e4\uc744 \uc798 \ubcf5\uc0ac\ud574\ub450\uc138\uc694. \uc774 \uac12\ub4e4\uc774 \ubc14\ub85c\u00a0<code>.env<\/code>\u00a0\ud30c\uc77c\uc5d0 \ud544\uc694\ud55c \uac12\ub4e4\uc774\uc5d0\uc694.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">3.&nbsp;<code>.env<\/code>&nbsp;\ud30c\uc77c\uc5d0 \uc778\uc99d \uc815\ubcf4 \ucd94\uac00\ud558\uae30<\/h3>\n\n\n\n<p>\ub9c8\uc9c0\ub9c9\uc73c\ub85c, \uc704\uc5d0\uc11c \uc5bb\uc740 \ud074\ub77c\uc774\uc5b8\ud2b8 ID\uc640 \uc2dc\ud06c\ub9bf\uc744&nbsp;<code>backend\/.env<\/code>&nbsp;\ud30c\uc77c\uc5d0 \ub123\uc5b4\uc8fc\uba74 \ub429\ub2c8\ub2e4.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong><code>backend\/.env<\/code>\u00a0\ud30c\uc77c \uc5f4\uae30:<\/strong>\u00a0<code>backend<\/code>\u00a0\ud3f4\ub354 \uc548\uc5d0 \uc788\ub294\u00a0<code>.env<\/code>\u00a0\ud30c\uc77c\uc744 \ud14d\uc2a4\ud2b8 \ud3b8\uc9d1\uae30\ub85c \uc5f4\uc5b4\uc8fc\uc138\uc694.<\/li>\n\n\n\n<li><strong>\ubcc0\uc218 \ucd94\uac00:<\/strong>\u00a0\uc544\ub798\uc640 \uac19\uc774 Google Cloud\uc5d0\uc11c \ubcf5\uc0ac\ud55c \uac12\ub4e4\uc744 \uc785\ub825\ud558\uace0 \uc800\uc7a5\ud569\ub2c8\ub2e4.\n<ul class=\"wp-block-list\">\n<li><code>GOOGLE_CLIENT_ID=\uc5ec\uae30_\ubcf5\uc0ac\ud55c_\ud074\ub77c\uc774\uc5b8\ud2b8_ID_\ubd99\uc5ec\ub123\uae30 <\/code><\/li>\n\n\n\n<li><code>GOOGLE_CLIENT_SECRET=\uc5ec\uae30_\ubcf5\uc0ac\ud55c_\ud074\ub77c\uc774\uc5b8\ud2b8_\uc2dc\ud06c\ub9bf_\ubd99\uc5ec\ub123\uae30 <\/code><\/li>\n\n\n\n<li><code>GOOGLE_REDIRECT_URI=http:\/\/<em>localhost<\/em>:3100\/api\/auth\/google\/callback<\/code><\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<p>\uc774\uc81c Google Cloud Project \uc124\uc815\uacfc&nbsp;<code>.env<\/code>&nbsp;\ud30c\uc77c \uad6c\uc131\uc774 \uc644\ub8cc\ub418\uc5c8\uc5b4\uc694! \uc774\ub807\uac8c \ud558\uba74 \ubc31\uc5d4\ub4dc \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc5d0\uc11c Google OAuth\ub97c \ud1b5\ud574 \uc0ac\uc6a9\uc790 \uc778\uc99d\uc744 \ucc98\ub9ac\ud560 \uc900\ube44\uac00 \ub41c\ub2f5\ub2c8\ub2e4.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Google Cloud Project and credentials to backend\/.envRequired .env Variables:GOOGLE_CLIENT_ID=your_client_idGOOGLE_CLIENT_SECRET=your_client_secretGOOGLE_REDIRECT_URI=http:\/\/localhost:3100\/api\/auth\/google\/callback Google Cloud Project\ub97c \uc124\uc815\ud558\uace0 \uc778\uc99d \uc815\ubcf4\ub97c\u00a0backend\/.env\u00a0\ud30c\uc77c\uc5d0 \ucd94\uac00\ud558\ub294 \ubc29\ubc95\uc740 Google OAuth 2.0\uc744 \uc0ac\uc6a9\ud574\uc11c \uc0ac\uc6a9\uc790 \uc778\uc99d\uc744 \ud560 \ub54c \uc8fc\ub85c \ud544\uc694\ud574\uc694. 1. Google Cloud Project \uc124\uc815\ud558\uae30 \uba3c\uc800 Google Cloud Platform(GCP) \ucf58\uc194\uc5d0\uc11c \uc0c8\ub85c\uc6b4 \ud504\ub85c\uc81d\ud2b8\ub97c \ub9cc\ub4e4\uace0, \ud544\uc694\ud55c API\ub97c \ud65c\uc131\ud654\ud574\uc57c \ud574\uc694. 2. OAuth 2.0 \ud074\ub77c\uc774\uc5b8\ud2b8 ID \uc0dd\uc131\ud558\uae30 \uc774\uc81c \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc5d0\uc11c Google \ub85c\uadf8\uc778\uc744 \uc0ac\uc6a9\ud560 &hellip; <a href=\"https:\/\/absol.kr\/?p=1256\" class=\"more-link\">\ub354 \ubcf4\uae30<span class=\"screen-reader-text\"> &#8220;Google Cloud Project and added credentials. GCP \uc790\uaca9\uc99d\uba85 \uc124\uc815 \ubc29\ubc95&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-1256","post","type-post","status-publish","format-standard","hentry","category-d-service"],"_links":{"self":[{"href":"https:\/\/absol.kr\/index.php?rest_route=\/wp\/v2\/posts\/1256","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/absol.kr\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/absol.kr\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/absol.kr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/absol.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1256"}],"version-history":[{"count":1,"href":"https:\/\/absol.kr\/index.php?rest_route=\/wp\/v2\/posts\/1256\/revisions"}],"predecessor-version":[{"id":1257,"href":"https:\/\/absol.kr\/index.php?rest_route=\/wp\/v2\/posts\/1256\/revisions\/1257"}],"wp:attachment":[{"href":"https:\/\/absol.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1256"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/absol.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1256"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/absol.kr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1256"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}