{"id":240,"date":"2025-10-16T11:33:30","date_gmt":"2025-10-16T02:33:30","guid":{"rendered":"https:\/\/hed-g.me\/?p=240"},"modified":"2025-10-16T11:33:30","modified_gmt":"2025-10-16T02:33:30","slug":"%e1%84%91%e1%85%b3%e1%84%85%e1%85%a9%e1%86%ab%e1%84%90%e1%85%b3%e1%84%8b%e1%85%a6%e1%86%ab%e1%84%83%e1%85%b3-%e1%84%80%e1%85%a2%e1%84%87%e1%85%a1%e1%86%af%e1%84%8c%e1%85%a1%e1%84%85%e1%85%b3%e1%86%af","status":"publish","type":"post","link":"https:\/\/hed-g.me\/?p=240","title":{"rendered":"\u1111\u1173\u1105\u1169\u11ab\u1110\u1173\u110b\u1166\u11ab\u1103\u1173 \u1100\u1162\u1107\u1161\u11af\u110c\u1161\u1105\u1173\u11af \u110b\u1171\u1112\u1161\u11ab \u110b\u1175\u11ab\u110c\u1173\u11bc \u1106\u1166\u110f\u1165\u1102\u1175\u110c\u1173\u11b7(\u110f\u116e\u110f\u1175\u110b\u116a \u1109\u1166\u1109\u1167\u11ab, JWT, HttpOnly)"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">\uc778\uc99d\uacfc \uc0c1\ud0dc \uad00\ub9ac\uc758 \ud544\uc694\uc131<\/h2>\n\n\n\n<p>\uc6f9\uc740 \ubcf8\ub798 \ubb34\uc0c1\ud0dc(Stateless) \ud504\ub85c\ud1a0\ucf5c\uc778 HTTP \uc704\uc5d0\uc11c \ub3d9\uc791,<\/p>\n\n\n\n<p>\uc989 \ud074\ub77c\uc774\uc5b8\ud2b8\uac00 \uc694\uccad\uc744 \ubcf4\ub0bc \ub54c\ub9c8\ub2e4 \uc11c\ubc84\ub294 \uc774 \uc694\uccad\uc774 \ub204\uad6c\ub85c\ubd80\ud130 \uc654\ub294\uc9c0\ub97c \uae30\ubcf8\uc801\uc73c\ub85c \uc54c \uc218 \uc5c6\ub2e4.(\uac80\uc99d \uc548\ub428)<\/p>\n\n\n\n<p>\uc0ac\uc6a9\uc790\uac00 \ub85c\uadf8\uc778\uc744 \ud574\ub3c4 \ub2e4\uc74c \uc694\uccad\uc5d0\uc11c \uc11c\ubc84\ub294 \uadf8 \uc0ac\uc6a9\uc790\uac00 \uc5ec\uc804\ud788 \ub85c\uadf8\uc778 \uc0c1\ud0dc\uc778\uc9c0 \uc54c \uc218 \uc5c6\ub2e4.<\/p>\n\n\n\n<p>\ub530\ub77c\uc11c, \uc778\uc99d \uc0c1\ud0dc\ub97c \uc720\uc9c0\ud558\uae30 \uc704\ud55c \uba54\ucee4\ub2c8\uc998\uc744 \ud544\uc694\ub85c \ud55c\ub2e4.<\/p>\n\n\n\n<p>\u2192 \ucfe0\ud0a4, \uc138\uc158, JWT<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\ucfe0\ud0a4(Cookie)<\/h2>\n\n\n\n<p>\ube0c\ub77c\uc6b0\uc800\uac00 \uc800\uc7a5\ud558\ub294 \uc791\uc740 \ub370\uc774\ud130. \uc0c1\ud0dc \uc720\uc9c0\uc758 \uae30\ubcf8 \ub2e8\uc704,<\/p>\n\n\n\n<p>\uc0c1\ud0dc \uc720\uc9c0\ub97c \uc704\ud574 \uc0ac\uc6a9\ud55c\ub2e4. (Session ID \ubcf4\uad00, \ub85c\uadf8\uc778 \uc0c1\ud0dc \uc720\uc9c0, \uc0ac\uc6a9\uc790 \uc124\uc815 \uac12 \uc800\uc7a5 \ub4f1)<\/p>\n\n\n\n<p>\uc11c\ubc84\uac00 \uc751\ub2f5 \uc2dc Set-Cookie \ud5e4\ub354\ub97c \ub0b4\ub824\uc8fc\uba74, \ube0c\ub77c\uc6b0\uc800\ub294 \uc774\ud6c4 \ud574\ub2f9 \ub3c4\uba54\uc778 \uc694\uccad\ub9c8\ub2e4<\/p>\n\n\n\n<p>\uc790\ub3d9\uc73c\ub85c Cookie \ud5e4\ub354\ub97c \ubd99\uc778\ub2e4.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\uc7a5\uc810<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\ube0c\ub77c\uc6b0\uc800\uc5d0 \ud45c\uc900 \uae30\ub2a5\uc73c\ub85c \ub0b4\uc7a5\ub418\uc5b4 \uc788\ub2e4. \uc989, \ubcc4\ub3c4\uc758 \uad6c\ud604\uc774 \ud544\uc694\uc5c6\ub2e4.<\/li>\n\n\n\n<li>\uc11c\ubc84\uc640 \ud074\ub77c\uc774\uc5b8\ud2b8 \uac04 \uc0c1\ud0dc \uacf5\uc720\uac00 \uac04\ub2e8\ud568.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\ub2e8\uc810<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\uc6a9\ub7c9 \uc81c\ud55c(4KB), \ub3c4\uba54\uc778\ubcc4 \uac1c\uc218 \uc81c\ud55c.<\/li>\n\n\n\n<li>\ubbfc\uac10\ud55c \uc815\ubcf4 \uc800\uc7a5 \uc2dc \ubcf4\uc548 \ucde8\uc57d\ud568.(XSS, \ud0c8\ucde8)<\/li>\n\n\n\n<li>\ud074\ub77c\uc774\uc5b8\ud2b8\uc5d0\uc11c \uc218\uc815\uc774 \uac00\ub2a5\ud568<\/li>\n<\/ul>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\uc138\uc158(Session)<\/h2>\n\n\n\n<p>\uc11c\ubc84\uc5d0\uc11c \uad00\ub9ac\ud558\ub294 \uc0ac\uc6a9\uc790 \uc0c1\ud0dc.<\/p>\n\n\n\n<p>\uc548\uc815\uc801\uc774\uc9c0\ub9cc \ud655\uc7a5\uc131\uc5d0\ub294 \ud55c\uacc4\uac00 \uc874\uc7ac\ud55c\ub2e4.<\/p>\n\n\n\n<p>\ubcf4\ud1b5 \uc11c\ubc84\ub294 \uc0ac\uc6a9\uc790\uac00 \ub85c\uadf8\uc778\ud558\uba74 \uace0\uc720\ud55c \uc138\uc158 ID\ub97c \ubc1c\uae09,<\/p>\n\n\n\n<p>\uc774 \uc138\uc158 ID\ub294 \ud074\ub77c\uc774\uc5b8\ud2b8\uc758 \ucfe0\ud0a4\uc5d0 \uc800\uc7a5\ub418\uace0, \uc694\uccad \uc2dc \ud568\uaed8 \uc804\uc1a1\ub41c\ub2e4.<\/p>\n\n\n\n<p>\uc11c\ubc84\ub294 \uc774 \uc138\uc158 ID\ub97c \uc870\ud68c\ud558\uc5ec \ud574\ub2f9 \uc0ac\uc6a9\uc790\uc758 \ub85c\uadf8\uc778 \uc0c1\ud0dc\ub098 \ub370\uc774\ud130\ub97c \ud655\uc778\ud55c\ub2e4.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\uc7a5\uc810<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\uc2e4\uc81c \uc911\uc694\ud55c \ub370\uc774\ud130\ub97c \uc11c\ubc84\uc5d0 \uc800\uc7a5\ud558\uba74 \ud074\ub77c\uc774\uc5b8\ud2b8 \uc720\ucd9c \uc704\ud5d8\uc774 \ub0ae\ub2e4<\/li>\n\n\n\n<li>\uc11c\ubc84\uac00 \uc138\uc158 \ub9cc\ub8cc, \uac15\uc81c \ub85c\uadf8\uc544\uc6c3 \ub4f1\uc744 \uc81c\uc5b4\ud560 \uc218 \uc788\ub2e4.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\ub2e8\uc810<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\uc11c\ubc84 \uba54\ubaa8\ub9ac\/\uc2a4\ud1a0\ub9ac\uc9c0\ub97c \uc810\uc720 \u2192 \ud2b8\ub798\ud53d\uc774 \ub9ce\uc73c\uba74 \ud655\uc7a5\uc131 \ubb38\uc81c\uac00 \uc0dd\uae40.<\/li>\n\n\n\n<li>\uc11c\ubc84 \uac04 \uc138\uc158 \uacf5\uc720\uac00 \ud544\uc694 \u2192 Redis \uac19\uc740 \uc911\uc559 \uc800\uc7a5\uc18c \ud544\uc694.<\/li>\n\n\n\n<li>\uc11c\ubc84\ub9ac\uc2a4, \ubb34\uc0c1\ud0dc \uc544\ud0a4\ud14d\ucc98\uc5d0\uc11c\ub294 \ud604\uc2e4\uc801\uc73c\ub85c \uc5b4\ub835\ub2e4.<\/li>\n<\/ul>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">JWT(JSON Web Token)<\/h2>\n\n\n\n<p>\uc138\uc158\uc744 \uc11c\ubc84\uc5d0 \uc800\uc7a5\ud558\uc9c0 \uc54a\uace0, \ud1a0\ud070 \uc790\uccb4\uc5d0 \uc0ac\uc6a9\uc790 \uc0c1\ud0dc\ub97c \ub2f4\ub294 \ubc29\uc2dd.<\/p>\n\n\n\n<p>\uc0c1\ud0dc\ub97c \ud1a0\ud070 \uc790\uccb4\uc5d0 \ub2f4\uae30 \ub54c\ubb38\uc5d0 \uc11c\ubc84 \ud655\uc7a5\uc131\uc5d0 \uc720\ub9ac\ud558\uc9c0\ub9cc \ud0c8\ucde8 \uc2dc \uc704\ud5d8\ud560 \uc218 \uc788\uc74c.<\/p>\n\n\n\n<p>\ub85c\uadf8\uc778 \uc131\uacf5 \uc2dc \uc11c\ubc84\uac00 \uc11c\uba85\ub41c JWT\ub97c \ubc1c\uae09,<\/p>\n\n\n\n<p>\ud074\ub77c\uc774\uc5b8\ud2b8\ub294 JWT\ub97c \ub85c\uceec \uc2a4\ud1a0\ub9ac\uc9c0, \uc138\uc158 \uc2a4\ud1a0\ub9ac\uc9c0, \ud639\uc740 \ucfe0\ud0a4\uc5d0 \uc800\uc7a5. \uc774\ud6c4 API \uc694\uccad\uc2dc, \ud5e4\ub354\uc5d0 \ud3ec\ud568<\/p>\n\n\n\n<p>\uc11c\ubc84\ub294 \uc11c\uba85\ub9cc \uac80\uc99d\ud558\uba74 \uc694\uccad\uc790 \uc2dd\ubcc4 \uac00\ub2a5.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Authorization: Bearer &lt;token&gt;<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\uc7a5\uc810<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\ubb34\uc0c1\ud0dc(Stateless) \u2192 \uc11c\ubc84 \ud655\uc7a5\uc131\uc5d0 \uc720\ub9ac.<\/li>\n\n\n\n<li>\ub2e4\uc591\ud55c \uc11c\ube44\uc2a4\/\ub3c4\uba54\uc778 \uac04 \uc778\uc99d \uacf5\uc720(SSO)\uc5d0 \uc720\uc6a9\ud568<\/li>\n\n\n\n<li>JSON \ud3ec\ub9f7 \u2192 \uc77d\uae30\/\ud30c\uc2f1 \uc26c\uc6c0.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\ub2e8\uc810<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\ud1a0\ud070 \uc790\uccb4\uac00 \uae38\ub2e4. \uc989, HTTP \ud5e4\ub354 \ubd80\ub2f4.<\/li>\n\n\n\n<li>\ud1a0\ud070\uc774 \ud0c8\ucde8\ub418\uba74 \ub9cc\ub8cc\ub420 \ub54c\uae4c\uc9c0 \uc545\uc6a9\uc774 \uac00\ub2a5\ud568(\uc11c\ubc84\uc5d0\uc11c \uac15\uc81c \ud3d0\uae30 \uc5b4\ub824\uc6c0)<\/li>\n\n\n\n<li>\ub85c\uceec \uc2a4\ud1a0\ub9ac\uc9c0\/\uc138\uc158 \uc2a4\ud1a0\ub9ac\uc9c0 \uc800\uc7a5 \uc2dc XSS \uacf5\uaca9\uc5d0 \ucde8\uc57d.<\/li>\n<\/ul>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">HttpOnly ?<\/h2>\n\n\n\n<p>\ucfe0\ud0a4\ub97c \uc548\uc804\ud558\uac8c \uc9c0\ud0a4\ub294 \ucd5c\uc18c\ud55c\uc758 \ubcf4\uc548 \uc635\uc158,<\/p>\n\n\n\n<p>\ucfe0\ud0a4\ub97c \uc0ac\uc6a9\ud560 \ub54c \ubcf4\uc548\uc744 \uac15\ud654\ud558\ub824\uba74 HttpOnly \uc635\uc158\uc744 \ubc18\ub4dc\uc2dc \uace0\ub824\ud574\uc57c \ud55c\ub2e4.<\/p>\n\n\n\n<p>HttpOnly \ucfe0\ud0a4\ub294 \uc790\ubc14\uc2a4\ud06c\ub9bd\ud2b8(document.cookie)\ub85c \uc811\uadfc\ud560 \uc218 \uc5c6\uace0,<\/p>\n\n\n\n<p>\uc624\uc9c1 HTTP \uc694\uccad\uc5d0\ub9cc \uc790\ub3d9\uc73c\ub85c \ucca8\ubd80\ub41c\ub2e4.<\/p>\n\n\n\n<p>\u2192 \uc989, XSS \uacf5\uaca9\uc790\uac00 \uc790\ubc14\uc2a4\ud06c\ub9bd\ud2b8\ub97c \uc8fc\uc785\ud558\ub354\ub77c\ub3c4 \ucfe0\ud0a4 \uac12\uc744 \uc77d\uc5b4\ub0b4\uae30 \uc5b4\ub835\ub2e4.<\/p>\n\n\n\n<p>\ubcf4\ud1b5 \uc138\uc158 ID\ub098 JWT Access Token\uc744 \ucfe0\ud0a4\uc5d0 \uc800\uc7a5\ud560 \ub54c<\/p>\n\n\n\n<p>HttpOnly + Secure \uc635\uc158\uc744 \ud568\uaed8 \uc124\uc815\ud55c\ub2e4.<\/p>\n\n\n\n<p>*Secure: HTTPS\uc5d0\uc11c\ub9cc \uc804\uc1a1<\/p>\n\n\n\n<p>*SameSite: \ud06c\ub85c\uc2a4\uc0ac\uc774\ud2b8 \uc694\uccad \uc2dc \ucfe0\ud0a4 \uc804\uc1a1 \uc81c\ud55c(CSRF \ubc29\uc5b4)<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\uc2e4\ubb34\uc5d0\uc11c \uc0ac\uc6a9\ud560 \ub54c<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">\uc18c\uaddc\ubaa8 \uc11c\ube44\uc2a4\uc5d0\uc11c \uc778\uc99d \uba54\ucee4\ub2c8\uc998<\/h3>\n\n\n\n<p>\ub2e8\uc21c \ub85c\uadf8\uc778 \uc720\uc9c0\uc5d0\uc11c\ub294 \ub2e4\uc74c\uacfc \uac19\uc774 \uc548\uc804\ud558\uace0 \uac04\ub2e8\ud558\uac8c \uc124\uacc4\ud560 \uc218 \uc788\ub2e4<\/p>\n\n\n\n<p>\u2192 \uc138\uc158 \uae30\ubc18 + HttpOnly \ucfe0\ud0a4<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\ub300\uaddc\ubaa8\/\ubd84\uc0b0 \uc544\ud0a4\ud14d\ucc98 \uc11c\ube44\uc2a4\uc5d0\uc11c\uc758 \uc778\uc99d \uba54\ucee4\ub2c8\uc998<\/h3>\n\n\n\n<p>JWT \uae30\ubc18 \ud1a0\ud070 \uc778\uc99d\uc73c\ub85c \uc124\uacc4\ud558\uba74 \uc11c\ubc84 \ud655\uc7a5\uc131\uc5d0 \uc720\ub9ac.<\/p>\n\n\n\n<p>\ub2e8, Refresh Token + \uc9e7\uc740 Access Token \uc8fc\uae30\ub85c \ubcf4\uc644\ud574\uc57c \ubcf4\uc548\uc744 \uac15\ud654\ud560 \uc218 \uc788\uc74c<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\ubcf4\uc548 \uac15\ud654\uc5d0 \uc788\uc5b4\uc11c \ud544\uc694\ud55c \ubd80\ubd84<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\ubbfc\uac10\ud55c \ub370\uc774\ud130\ub294 \ucfe0\ud0a4\/\uc2a4\ud1a0\ub9ac\uc9c0\uc5d0 \uc9c1\uc811 \uc800\uc7a5\ud558\uc9c0 \uc54a\ub3c4\ub85d \ud560 \uac83.<\/li>\n\n\n\n<li>HttpOnly, Secure, SameSite \uc635\uc158\uc744 \uc801\uadf9 \uc0ac\uc6a9<\/li>\n\n\n\n<li>JWT\ub294 \uaf2d \uc9e7\uc740 \uc218\uba85 + Refresh Token \uad6c\uc870\ub85c \uc6b4\uc601\ud558\ub3c4\ub85d \ud55c\ub2e4.<\/li>\n<\/ul>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\uc778\uc99d\uacfc \uc0c1\ud0dc \uad00\ub9ac\uc758 \ud544\uc694\uc131 \uc6f9\uc740 \ubcf8\ub798 \ubb34\uc0c1\ud0dc(Stateless) \ud504\ub85c\ud1a0\ucf5c\uc778 HTTP \uc704\uc5d0\uc11c \ub3d9\uc791, \uc989 \ud074\ub77c\uc774\uc5b8\ud2b8\uac00 \uc694\uccad\uc744 \ubcf4\ub0bc \ub54c\ub9c8\ub2e4 \uc11c\ubc84\ub294 \uc774 \uc694\uccad\uc774 \ub204\uad6c\ub85c\ubd80\ud130 \uc654\ub294\uc9c0\ub97c \uae30\ubcf8\uc801\uc73c\ub85c \uc54c \uc218 \uc5c6\ub2e4.(\uac80\uc99d \uc548\ub428) \uc0ac\uc6a9\uc790\uac00 \ub85c\uadf8\uc778\uc744 \ud574\ub3c4 \ub2e4\uc74c \uc694\uccad\uc5d0\uc11c \uc11c\ubc84\ub294 \uadf8 \uc0ac\uc6a9\uc790\uac00 \uc5ec\uc804\ud788 \ub85c\uadf8\uc778 \uc0c1\ud0dc\uc778\uc9c0 \uc54c \uc218 \uc5c6\ub2e4. \ub530\ub77c\uc11c, \uc778\uc99d \uc0c1\ud0dc\ub97c \uc720\uc9c0\ud558\uae30 \uc704\ud55c \uba54\ucee4\ub2c8\uc998\uc744 \ud544\uc694\ub85c \ud55c\ub2e4. \u2192 \ucfe0\ud0a4, \uc138\uc158, JWT \ucfe0\ud0a4(Cookie) \ube0c\ub77c\uc6b0\uc800\uac00 \uc800\uc7a5\ud558\ub294 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[41],"tags":[168,72,165,167,164,170],"class_list":["post-240","post","type-post","status-publish","format-standard","hentry","category-computer-science","tag-jwt","tag-72","tag-165","tag-167","tag-164","tag-170"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/hed-g.me\/index.php?rest_route=\/wp\/v2\/posts\/240","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hed-g.me\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/hed-g.me\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/hed-g.me\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/hed-g.me\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=240"}],"version-history":[{"count":1,"href":"https:\/\/hed-g.me\/index.php?rest_route=\/wp\/v2\/posts\/240\/revisions"}],"predecessor-version":[{"id":241,"href":"https:\/\/hed-g.me\/index.php?rest_route=\/wp\/v2\/posts\/240\/revisions\/241"}],"wp:attachment":[{"href":"https:\/\/hed-g.me\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=240"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hed-g.me\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=240"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hed-g.me\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=240"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}