๋ฌธ์ ๋ฅผ ํ๋์ฉ ํด๊ฒฐํ๊ฒ ์ต๋๋ค.
์ฟ ํค ์์ด ์น์ฌ์ดํธ/์ฑ ๋ณดํธ
์ด๊ฒ์ ๋ณธ์ง์ ์ผ๋ก ๋ฐ๋์งํ์ง _์์ต๋๋ค_. ์ฟ ํค๋ ๋งค์ฐ ํน์ ํ ๋ชฉ์ ์ ์ํด ์กด์ฌํ๋ฉฐ ๊ทธ ๋ชฉ์ ์ ์ํด ์ ์๋ํฉ๋๋ค.
์ฟ ํค๊ฐ ์๋ค๋ ๊ฒ์ ์น์ฌ์ดํธ์ ์ฑ๊ฐ์ ์ฟ ํค ๋ฉ์์ง๊ฐ ์๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค(์ฐธ์กฐ: e-Privacy Directive)
์ด๊ฒ์ ์ ์ ๊ฐ์ธ ์ ๋ณด ๋ณดํธ ์ง์นจ์ด ์๋ํ๋ ๋ฐฉ์์ด ์๋๋๋ค . ๊ธฐ์ ์ ์ผ๋ก ํ์ํ ์ธ์ (์ฆ, ๋ถ์/์ถ์ /๋ฑ์ ์ํ ๊ฒ์ด ์๋๋ผ ๊ณ์ ๋๋ ์ ์ฌํ ์์ ์ ์ถ์ ํ๊ธฐ ์ํ ๊ฒ)์ ์ฒ์๋ถํฐ ๋์ ์ฒด๊ณ์ ํด๋นํ์ง _์์ต๋๋ค_.
๋ง์ฐฌ๊ฐ์ง๋ก ์ฟ ํค๋ ์ง์นจ ์ด๋์๋ ๋ช ์์ ์ผ๋ก ์ธ๊ธ๋์ง _์์ผ๋ฉฐ_ ์ฐธ์กฐํ ์๋๋ ์์ต๋๋ค. ๋นํ์์ ์ธ ๋ชฉ์ ์ผ๋ก ์์ฉ ํ๋ก๊ทธ๋จ์ด ์ฌ์ฉ์ ์์คํ ์ ์ ์ฅํ๋ _๋ชจ๋ _ ์ข ๋ฅ์ ์๊ตฌ ์๋ณ์๋ ์ง์นจ์ ํด๋นํ๋ฉฐ ์ฌ๊ธฐ์๋ ์ ์ฅ๋ JWT๊ฐ ํฌํจ๋ฉ๋๋ค. ๋ค๋ฅธ ๋ฉ์ปค๋์ฆ์ ์ํด.
์ํ ๋น์ ์ฅ ์ธ์ฆ(์ํ ํ์ฅ ๊ฐ์ํ)
์ด๊ฒ์ ์คํด์ ์์ง๊ฐ ์์ต๋๋ค. '์ํ ๋น์ ์ฅ ์ธ์ '์ ๋ณด์๊ณผ ๊ด๋ จํ์ฌ ๋ค์๊ณผ ๊ฐ์ ๋ง์ ์๋ก์ด ๋ฌธ์ ๋ฅผ ๋์ ํฉ๋๋ค.
... ๊ฑฐ์ ์๋ฌด๋ ์ค์ ๋ก ๊ฐ๊ณ ์์ง ์์ ๋ฌธ์ ๋ฅผ 'ํด๊ฒฐ'ํ๋ ๋์ - 99.99%์ ๊ฒฝ์ฐ ์ธ์ ์ stateless๋ก ํ์ฅํ ํ์๊ฐ _ํ์ํ์ง ์์ต๋๋ค_.
์ ์ฉ ์์ง ํ์ฅ ์ธ์ ์คํ ๋ฆฌ์ง ์๋ฒ ์คํ(์: Redis ์ฌ์ฉ), '๊ณ ์ ์ธ์ ', ์ง๋ฆฌ์ ์ผ๋ก ํด๋ฌ์คํฐ๋ ์ธ์ ์๋ฒ ๋ฑ๊ณผ ๊ฐ์ ๊ฐ๋จํ ๊ธฐ์ ์ด ๋ง์ด ์์ต๋๋ค. Reddit, _๊ฑฐ์ ํ์คํ_ ์ํ ๋น์ ์ฅ ์ธ์ ์ด ํ์ํ์ง ์์ต๋๋ค.
CSRF(๊ต์ฐจ ์ฌ์ดํธ ์์ฒญ ์์กฐ) ๊ณต๊ฒฉ์ ๋ฐฉ์ง(์ํ)ํฉ๋๋ค.
์ด๊ฒ์ ๋ฏฟ์ ์ ์์ ์ ๋๋ก ์คํด์ ์์ง๊ฐ ์๊ณ ํด๋ก์ด ์ง์ ์ ๋๋ค. JWT๋ CSRF ์ํ๊ฐ _์๋๋๋ค. JWT ์์ ์๋ ๋๋ต ๋ ๊ฐ์ง ์ ํ์ด ์์ต๋๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก JWT๋ ์ธ์ ์ฉ์ด _์๋_์ ๋๋ค. ์คํ๋ ค JWT๋ ์ฃผ๋ก ์ ๋ขฐํ ์ ์๋ ์ 3์๋ฅผ ํตํด ์ฒญ๊ตฌ๋ฅผ ์ ์กํ๋ ๋์์ ๋ณ์กฐ๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํ ๊ฒ์ ๋๋ค.
์ต์ํ ์ ์ฒด "์?" ์น์ ์ ์ ๊ฑฐํด์ผ ํ์ง๋ง(๋จ์ํ ์๋ชป๋๊ณ ์ ํดํ ์กฐ์ธ์ ์ ๊ณตํ๊ธฐ ๋๋ฌธ์) ์์งํ ์ ์ฒด ์ ์ฅ์์ ์ ์ ์ด๋ฏ๋ก ์ ์ฒด ์ ์ฅ์์ ์กด์ฌ๋ฅผ ์ฌ๊ณ ํด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ๊ฐ๋ฐ์๋ค์๊ฒ ์ด๋ ๊ฒ ํด๋ก์ด ์กฐ์ธ์ ํ๋ ๊ฒ์ _์ฌ๊ฐํ๊ฒ_ ๋ฌด์ฑ ์ํฉ๋๋ค.
์ผ๋ถ ์ฌ๋๋ค์ ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ๋ณด๊ธฐ ์์ํ์ง โโ์ผ๋ง ๋์ง ์์ ์ฌ๋์ผ๋ก์ ์๊ฐํ ๊ฑฐ๋ฆฌ๋ฅผ ํ์คํ ์ ๊ณตํ๊ณ ์๋ ์ฐ๋ ค ์ฌํญ์ ์ ์๊ฐํ๊ณ ๋ช ํํ๊ฒ ํํํ์ต๋๋ค. Node.js๋ก JWT ์ธ์ฆ ์์ ์์ ๋ฅผ ๋ง๋๋ ๋น ๋ฅธ ์์ ๋ฅผ ์ฐพ๊ณ ์์์ต๋๋ค. JWT์ ๋ํ ์ ์ ๊ด์ฌ์ CORS ๋ฌธ์ ๋ฅผ ํผํ๋ฉด์ REST API ๋ฐ js ํด๋ผ์ด์ธํธ ๋ชจ๋์ ๋ํ ์ธ์ ๊ด๋ฆฌ์ ๋ํ ์ต์ ๋ชจ๋ฒ ์ฌ๋ก ์ ๊ทผ ๋ฐฉ์์ ์ ๊ณตํ๋ ๊ฒ์ ๋๋ค. ๋๋ ๋ณด์์ ์ฝ๊ฐ ๊ด์ฌ์ด ์์ง๋ง ์ด๊ฒ์ OAUTH์ ๊ฐ์ ๋ณด๋ค ํฌ๊ด์ ์ธ ๋ณด์ ์ ๊ทผ ๋ฐฉ์์์ ํ ํฐ์ด ํ ์ ์๋ ์ญํ ์ ๊ฐ์ฌํ์ง๋ง JWT๋ฅผ ์ฌ์ฉํ๋ ๋๊ธฐ๋ ์๋๋๋ค. ์ด ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ์ฒ์ ์ฝ์์ ๋ JWT ์ฌ์ฉ ๋ฑ์ ๋ํ ์ง์์ ์์ผ๋ฉด์ ์ ์๊ฐ ์์งํ ๋ง์ ๋ฉ๋ชจ๊ฐ ํฌํจ๋์ด ์๋ ๊ฒ์ฒ๋ผ ๋ณด์์ต๋๋ค. ์ด ๋ฆฌํฌ์งํ ๋ฆฌ์ ๋ํ ํฌ์๋ ๊ฑฐ์ ์์ง๋ง ์ผ๋ถ ์ง์ ๋๊ตฌ, ์ฐธ์กฐ์ ํจ๊ป ํ๋ซํผ๋ณ, ๋ก๊ทธ์ธ/๋ก๊ทธ์์์ ์ต์ํ์ ์์ ์์ ๋ฅผ ์ํ ์ฅ์์ ๋๋ค. ์จ๋ณด๋ฉ ๊ธฐ์ ์ ๊ธฐ์ด๋ก์ ๊ทธ๋ฆฌ๊ณ ์ด๋ณด์๋ก์ ์ ๋ ์ด ๋ฆฌํฌ์งํ ๋ฆฌ์ ๋ชฉํ๊ฐ ์ข๋ค๊ณ ์๊ฐํ์ง๋ง ์๋ง๋ README๋ ์ด๋ฌํ ์ ํ์ JWT ์ฌ์ฉ ๋ชฉ์ ์ ๋ํด ์ง์งํ๊ฒ ๋ค์ ์์ฑํ๊ณ ๋ค์ ์ง์คํด์ผ ํ ํ์๊ฐ ์์ ๊ฒ์ ๋๋ค. ๋ญ๊ฐ ์ ์ํ๋ ค๊ณ ํ๋ฉด ๊ธฐ์ฉ๋๋ค .. joepie91 - ๋น์ ์ ๋ถ๋ช ํ ๋ฌธ์ ๋ฅผ ์ ์ดํดํ๊ณ ์์ต๋๋ค .. ์ด๋ฐ ์ข ๋ฅ์ JWT ์ฌ์ฉ์ ์ง์ ํ ์ด์ ์ด ์ค์ ๋ก ๋ฌด์์ธ์ง์ ๋ํ ๋ช ๊ฐ์ง ์๊ฐ์ ์ ๊ณตํ ์ ์์ต๋๊น?
์๋
ํ์ธ์ @joepie91๋ , ์ฐ๋ฆฌ๋ JWT์ ๋ํ ์ฐ๋ฆฌ์ ๋
ธํธ๋ฅผ _์ฝ๊ณ _ ๋ฐ๊ฒฌํ _stoked_์
๋๋ค!
์๊ฐ์ ๋ด์ด ์ด ๋ฌธ์ ๋ฅผ ์ด์ด ์ฐ๋ ค ์ฌํญ์ ์ ๊ธฐํด ์ฃผ์
์ ๊ฐ์ฌํฉ๋๋ค. โค๏ธ
๊ทํ์ ์ฐ๋ ค ์ฌํญ์ _๋ณ๋์_ ๋ฌธ์ ๋ก ๋๋๊ฑฐ๋ ์ต์ํ ๋ฒํธ๋ฅผ ๋งค๊ฒจ ๋
ผ์ํ๊ธฐ ์ฝ๋๋ก ํด์ฃผ์๋ฉด _๊ธฐ์ฉ๋๋ค_.
์ฐ๋ฆฌ๋ ์ด ๋ฉ๋ชจ์ ๋ด์ฉ์ด "_Dangerous_"๋ผ๋ ๊ฒ์ _์ ์คํ_ ๋์ํ์ง ์์ต๋๋ค .
_ ์ฟ ํค _ > EU ePrivacy ์ง์นจ Recital 25 ,
cookies
_ ๋ช ์์ ์ผ๋ก _ 5๋ฒ
๋ณด๋ค:
https://en.wikipedia.org/wiki/Directive_on_Privacy_and_Electronic_Communications#Cookies
๋๋:
http://eur-lex.europa.eu/LexUriServ/LexUriServ.do?uri=CELEX :32002L0058:EN:HTML
๋ฌผ๋ก _๋ง์_ ์น์ฌ์ดํธ/์ฑ(_ํ์ฌ ์ถ์ ์ฟ ํค ๋ฅผ ์ฌ์ฉํ์ง ์์_)์ โstrictly necessary for the delivery of a service requested by the userโ
...์ ์ํฉ๋๋ค. ์ด๊ฒ์ด ์ฟ ํค ๋ฅผ https://github.com/dwyl/hapi-auth-jwt2#want -to-sendstore-your-jwt-in-a-cookie
์ฐ๋ฆฌ๊ฐ ์ธ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ /์ ํ ํฐ ๊ฒ์ _agree_ ๋์ _> _localStorage์ JWT๋ฅผ ์ ์ฅ
localStorage
์๋ฐ ์คํฌ๋ฆฝํธ๋ฅผ _required ์์์ ์๋ฏธ _we ์ฐ๋ฆฌ๋ ์ ์ง์ ๊ฐ์ ์ ์ ํธ ํ๋ ๊ฐ์ดํ์ง ์์ต๋๋ค (_, ์ด๊ฒ์ ๋ค๋ฅธ ์ต์ ์์ฃผ์ํ๋ ์๋ฏธ๋์๋ค ..._).localStorage
๋ BaaS๊ฐ ์ผ๋ฐ์ ์ผ๋ก ์ฟ ํค๋ฅผ ํ์ฉํ์ง ์๊ธฐ ๋๋ฌธ์ "_Backend-as-a-Service_"๋ก ๊ตฌ์ถ๋ _ ๋ชจ๋ _ ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋ง๋ค์ด์ง๋ ๋ฐฉ๋ฒ์ ๋๋ค... Google Firebase๋ฅผ ์ฌ์ฉํ๋ 50๋ง ๊ฐ๋ฐ์๊ฐ ๊ทธ๊ฒ์ "_์๋ชป_"ํ๊ณ ...? (_์ด๊ฒ์ ํ๋ฅญํ - ๋ณ๋์ ํ ๋ก ์ด ๋ ๊ฒ์ ๋๋ค...!_)์ํ ๋น์ ์ฅ ์ธ์ ์ ๊ธฐ๋ณธ ์ ๊ณต
exp
(_๋ง๋ฃ ์๊ฐ _) ์ต์ ์ด ์๊ธฐ ์ธ์ ID (jti
) _inside_ Redis ์คํ ์ด์์ ์กฐํ๋๋JWT
๋ JWT๊ฐ ๊ฒ์ฆ๋ _ํ_์ ๋๋ค. ์ฆ, ์ฌ์ฉ์๊ฐ ๋ก๊ทธ์์ํ๊ฑฐ๋ ์ฅ์น๋ฅผ ๋๋๋นํ์ฌ ํ์ฑ ์ธ์ ์ ์ทจ์ํด์ผ ํ๋ ๊ฒฝ์ฐ ์ธ์ ์ _ ๋ฌดํจํ _ํ ์ ์์ต๋๋ค.
์, JWT์ _primary_ ๋ชฉ์ ์ pass claims between parties in web application environment
ํ๋ ๊ฒ์
๋๋ค. ๋ฐ๋ก ์ด๊ฒ์ด ์ฐ๋ฆฌ๊ฐ JWT๋ฅผ ์ฌ์ฉํ๋ _์ ํํ_์
๋๋ค.
์ธ์ ID ๋๋ ํ ํฐ์ ๋จ์ํ ์๋ฒ ์ธก์์ ๊ฒ์ฌ๋๋ ์์์ ๋ฌธ์์ด์ผ ์ _์ ์์ง๋ง_ JWT๋ฅผ ์ฌ์ฉํ์ฌ ์ธ์ ๋ฐ์ดํฐ๋ฅผ _ํ์_ ๋ฐ _์๋ช _ํ๊ธฐ๋ก _๊ฒฐ์ _ํ์ต๋๋ค.
๊ฒฐ๋ก : readme๋ฅผ _clarify_๋ก ์ ๋ฐ์ดํธํฉ์๋ค. ๐
@nelsonic ์ด ์ ์ํ ๋๋ก ์ ๊ธฐ๋ ๋ฌธ์ ๋ฅผ ์ผ๋ จ์ ๋ฌธ์ ๋ก ๋ถํ ํ๊ธฐ๋ณด๋ค๋ ๊ตฌํ์ ์๋์ ๋ชฉ์ ์ด README์ ๋ฒ์์์ ๋ช
ํํด์ผ ํ๋ค๋ ๋ฐ ๋์ํ๋ ๊ฒฝํฅ์ด ์์ต๋๋ค. ๋๋ @joepie91 ์ ๋ฌธ์ ๋ฅผ ์น ์ ํ๋ฆฌ์ผ์ด์
์ ๋งฅ๋ฝ์์ JWT ์ฌ์ฉ์ ๋ํ ๋นํ์ด๋ ์ฟ ํค ์ง์์ด ์ฐ์ํ๋ค๊ณ ์ฝ์ง ์์ต๋๋ค. ์คํ๋ ค JWT์ ๋ํ ์ค๋ช
์ด JWT๋ฅผ ์ ํํ ์ด์ ๋ฅผ ๊ณผ์ฅํ๊ฑฐ๋ ์๋ชป ํํํ๋ ๋ฐฉ์์ผ๋ก ์ ์๋๋ค๋ ๋นํ์ ๋ฐ์ต๋๋ค.
#55(JWT๊ฐ ์ํธํ๊ฐ ์๋์ ๋ช
ํํ ํ์ธ์...)์๋ ๊ฐ์ ์ฐ๋ ค๊ฐ ๋ํ๋ฉ๋๋ค.
์ ์๊ฒ๋ ๋ง๋ฃ๋๋ ๊ณตํต ํด๋ ์์ ์ฌ์ฉํ์ฌ Firebase์ ์์ฒด ์๋น์ค๋ฅผ ์ด์ํ ์ ์์ผ๋ฉด ์ถฉ๋ถํฉ๋๋ค. ์ด๋ค ๊ฒฝ์ฐ์๋ ์ผ๋ถ ์ํ๋ฅผ ํฌํจํ๋๋ก ํ์ฅํ ์ ์๊ณ ๋ค๋ฅธ ๊ฒฝ์ฐ์๋ ํฌํจํ์ง ์์ ์ ์์ผ๋ฉฐ ์ฌ์ ํ ์ฟ ํค ๋๋ ์ด์ ์ก์ธ์ค ์ ์ด http ์ธ์ฆ ๋ฐฉ์์ ์ฌ์ฉํ๋ ๋ฐฉ์์ ์ ํธํฉ๋๋ค.
๋ณด๋ค ์ ๊ตํ ์ ๊ทผ ๋ฐฉ์์ ์ผ๋ถ๋ก JWT ํ ํฐ์ ์ฌ์ฉํ ์ ์๋ค๋ ์ ์ด ๋ง์์ ๋ค์ง๋ง ์ฌ์ ํ README์ ์ด์ ์ ์ด์ ์ ๋ง์ถ๋ ๊ฒ์ด ๋ ๊ฒฌ๊ณ ํ ๊ธฐ๋ฐ์ ๋ฒ์ด๋์ง ์๊ณ ํด๊ฒฐํ๋ ค๋ ๋ฌธ์ ์ ์ด์ ์ ๋ง์ถฐ์ผ ํ๋ค๋ ๋ฐ ๋์ํฉ๋๋ค. README์ ์๋ ์ฐธ์กฐ ์๋ฃ์ ๋๋ถ๋ถ์ ํ ๋ก ์๋ฃ๋ก ๋ฉ๋ชจ๋ Wiki๋ก ๋ถ๋ฅ๋ ์ ์์ต๋๊น?
README๊ฐ ์ํํ๋ค๊ณ ํ์ฐ์ ์ผ๋ก ๋งํ ์ ์์์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ์ฝ๊ฐ ๊ฐํ ๊ฒ ๊ฐ์ต๋๋ค.
์ฟ ํค > EU ePrivacy ์ง์นจ Recital 25์์ ์ฟ ํค๊ฐ ๋ช ์์ ์ผ๋ก 5๋ฒ ์ธ๊ธ๋์์ต๋๋ค.
์ฃ์กํฉ๋๋ค. ์ ๊ฐ ๋ค์ ๋ชจํธํ๊ฒ ํํํ ๊ฒ ๊ฐ์ต๋๋ค. ํ ์คํธ์ "์ฟ ํค"๋ผ๋ ๋จ์ด๊ฐ ์ฌ๋ฌ ๊ณณ์ ํฌํจ๋์ด ์์ง๋ง ์ ๋ฒํํด์ผ ํ ํน์ ๊ฐ๋ ์ผ๋ก ์๋ณ๋์ง๋ ์์ต๋๋ค. ์คํ๋ ค, ๊ทธ๊ฒ์ ์์๋ก ์ ๊ณต๋ฉ๋๋ค(๋ฐ๋ผ์ ๋ด ์์ ์ ๋๋จธ์ง ๋ถ๋ถ์ ์ฌ์ ํ โโ์ ์ฉ ๊ฐ๋ฅํ๋ฉฐ "์ฟ ํค๋ฅผ ์ฌ์ฉํ์ง ์์"์ ๋์์ ํ์์ฑ์ ๋ง์ ์ฒ๋ผ ์ ๊ฑฐํ์ง ์์ต๋๋ค).
localStorage๋ BaaS๊ฐ ์ผ๋ฐ์ ์ผ๋ก ์ฟ ํค๋ฅผ ํ์ฉํ์ง ์๊ธฐ ๋๋ฌธ์ "Backend-as-a-Service"๋ก ๊ตฌ์ถ๋ ๋ชจ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋ง๋ค์ด์ง๋ ๋ฐฉ์์ ๋๋ค...
์ด๊ฒ์ ๊ด๋ จ์ด ์์ผ๋ฉฐ ํด๋น ์๋น์ค์ ๋ฌธ์ ์ ๋๋ค. ๊ทธ๊ฒ์ ๋น์ ์ ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ธ์ ์ JWT๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ์ ๋นํํ์ง _์์ต๋๋ค_.
Google Firebase๋ฅผ ์ฌ์ฉํ๋ 50๋ง ๋ช ์ ๊ฐ๋ฐ์๊ฐ "์๋ชป"ํ๊ณ ์๋ค๊ณ ์ ์ํ๋ ๊ฑด๊ฐ์...?
Firebase๊ฐ ๊ทน๋๋ก ์ด์ ํ๊ฒ ์์ง๋์ด๋ง๋์๋ค๋ ์ฌ์ค์ ์ ์ธํ๊ณ , ์ด๊ฒ์ ๊ถ์์ ํธ์ํ๋ ๊ฒ์ด๋ฉฐ ๊ธฐ์ ํ ๋ก ์์ ์ค ์๋ฆฌ๊ฐ ์์ต๋๋ค. ํน์ ์ ํ์ ๋ํ ํน์ ํ์ฌ์ ๊ฒฐ์ ์ ๋ํด ๋ ผ์ํ๋ ๋ฐ ๊ด์ฌ์ด ์์ต๋๋ค. ์ฃผ์ด์ง ์ ๊ทผ ๋ฐฉ์์ ์ฅ์ ๊ณผ ๋จ์ ์ ๋ ผ์ํ๋ ๋ฐ๋ง ๊ด์ฌ์ด ์์ต๋๋ค.
Stateless ์ธ์ ์ ๋ด์ฅ๋ exp(๋ง๋ฃ ์๊ฐ) ์ต์ ์ด ์๊ธฐ ๋๋ฌธ์ JWT์์ ๊ฐ๋ฅํ์ง๋ง, ์ฐ๋ฆฌ๋ ์ธ์ ์ ์ํ ๋น์ ์ฅ์ผ๋ก ๋ง๋ค์ง ์๊ณ ๋์ JWT ๋ด๋ถ์์ ์กฐํ๋๋ ์ธ์ ID(jti)๋ฅผ ์ ์ฅํ๋๋ก ์ ํ/์ ํธํฉ๋๋ค. JWT๊ฐ ํ์ธ๋ ํ Redis ์ ์ฅ์์ ๋๋ค. ์ฆ, ์ฌ์ฉ์๊ฐ ๋ก๊ทธ์์ํ๊ฑฐ๋ ์ฅ์น๋ฅผ ๋๋๋นํ์ฌ ํ์ฑ ์ธ์ ์ ์ทจ์ํด์ผ ํ๋ ๊ฒฝ์ฐ ์ธ์ ์ ๋ฌดํจํํ ์ ์์ต๋๋ค.
์ด ์์ ์์ ๋ ์ด์ JWT๋ฅผ ์ฌ์ฉํ๋ฉด ์ค์ง์ ์ธ ์ด์ ์ด ์์ต๋๋ค. express-session
๋๋ ์คํ์ ๋ง๋ ๋ค๋ฅธ ์ ํฌ ํ
์คํธ ๋ฐ ๋๋ฃ ๊ฒํ ์ธ์
์๋ฃจ์
์ ์ฌ์ฉํ์ง ์๋ ์ด์ ๋ ๋ฌด์์
๋๊น? JWT์ ๋ํ ๊ถ์ฅ ์ฌํญ์ ์ฌ๊ธฐ์์ ์๋ฏธ๊ฐ ์์ต๋๋ค. ์๋ํ๋ฉด ์ฌ๋๋ค์ _์ฒ์๋ถํฐ ์์ ์ ์ธ์
๊ด๋ฆฌ๋ฅผ ์คํํด์๋ ์ ๋๊ธฐ ๋๋ฌธ์
๋๋ค.
์ธ์
๋ง๋ฃ๋ _์๋ฒ ์ธก_ ์ฒ๋ฆฌํด์ผ ํ๋ฏ๋ก JWT์ exp
๋ ๋ณธ์ง์ ์ผ๋ก ์ธ๋ชจ๊ฐ ์์ต๋๋ค.
์, JWT์ ์ฃผ์ ๋ชฉ์ ์ ์น ์ ํ๋ฆฌ์ผ์ด์ ํ๊ฒฝ์์ ๋น์ฌ์ ๊ฐ์ ํด๋ ์์ ์ ๋ฌํ๋ ๊ฒ์ ๋๋ค. ์ด๊ฒ์ด ๋ฐ๋ก ์ฐ๋ฆฌ๊ฐ ์ฌ์ฉํ๋ ๊ฒ์ ๋๋ค.
JWT๋ "์น ์ ํ๋ฆฌ์ผ์ด์ ํ๊ฒฝ"๊ณผ ์กฐ๊ธ๋ ๊ด๋ จ์ด ์์ต๋๋ค.
์ธ์ ID ๋๋ ํ ํฐ์ ๋จ์ํ ์๋ฒ ์ธก์์ ํ์ธ๋๋ ์์์ ๋ฌธ์์ด์ผ ์ ์์ง๋ง JWT๋ฅผ ์ฌ์ฉํ์ฌ ์ธ์ ๋ฐ์ดํฐ๋ฅผ ํ์ํํ๊ณ ์๋ช ํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค.
๋ค์ ๋งํ์ง๋ง ์คํ์ ๋ํด ์ ํฌ ํ ์คํธ๋ฅผ ๊ฑฐ์น ์ธ์ ๊ตฌํ์ ์ฌ์ฉํ์ญ์์ค. ์ฌ๊ธฐ์ JWT๋ ์๋ชป๋ ๊ถ์ฅ ์ฌํญ ์ ๋๋ค.
์ฐ๋ฆฌ๋ ์ด ๋ฉ๋ชจ์ ๋ด์ฉ์ด "์ํํ๋ค"๋ ์ ์ ์ ์คํ๊ฒ ๋์ํ์ง ์์ต๋๋ค.
๋น์ ์ ๋์ํ์ง ์์ ์ ์์ง๋ง ๊ทธ๊ฒ์ด ๋ฐ๋ก ๊ทธ๊ฒ์ ๋๋ค. JWT๋ฅผ ์๋ชป ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋๋ฌด ๋ง์ต๋๋ค. ์ด ์ค ๋ช ๊ฐ์ง๋ ์ด ์ ์ฅ์์ README์ ์ํด ์ธ๊ธ๋์ด ์์ต๋๋ค. ๋ค, ํด๋กญ์ต๋๋ค.
@pscott-au: joepie91 - ๋น์ ์ ๋ถ๋ช ํ ๋ฌธ์ ๋ฅผ ์ ์ดํดํ๊ณ ์์ต๋๋ค .. JWT์ ์ด๋ฌํ ์ข ๋ฅ์ ์ฌ์ฉ์ ์ง์ ํ ์ด์ ์ด ์ค์ ๋ก ๋ฌด์์ธ์ง์ ๋ํ ๋ช ๊ฐ์ง ์๊ฐ์ ์ ๊ณตํ ์ ์์ต๋๊น?
Reddit ๊ท๋ชจ๋ก ์คํํ์ง ์๋ ํ ํ์ค ์น ์ ํ๋ฆฌ์ผ์ด์ ์ JWT๋ฅผ ์ฌ์ฉํ๋ฉด ์ด์ ์ด ์์ต๋๋ค. JWT๊ฐ ์ ์ฉํ ๊ฒฝ์ฐ์ ๋ช ๊ฐ์ง ์ผ๋ฐ์ ์ธ ์:
ํ์ค ์น ์ ํ๋ฆฌ์ผ์ด์
์ธ์
์ ๊ฒฝ์ฐ ์ฌ์ฉ ์ค์ธ ์คํ์ ๋ํด ์ ํ
์คํธ๋ ์ธ์
๊ตฌํ์ ์ฌ์ฉํด์ผ ํฉ๋๋ค(์: Express๋ฅผ ์ฌ์ฉํ ๋ express-session
).
๋ด ๊ฒฝํ์ ์ผ๋ถ์ ์ค์ ๋ก ๋์ ํ๊ธฐ ๋๋ฌธ์ ์ด ํ ๋ก ์ ํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ์๋ง๋ JWT ์ฌ์ฉ์ ๋ํ ๊ฐ์ธ์ ์ธ ๊ด์ฌ์ ๋ํ ๋ช ๊ฐ์ง ๋งฅ๋ฝ์ผ ๊ฒ์
๋๋ค(๋ด๊ฐ ์กฐ์ฌํ ์ด์
ํ ์์ง๋์ด๋ง ๋ฌธ์ ๋ฅผ ๋ฐฐ์ฐ๋ ๋ฐ ๊ด์ฌ์ด ์๋ Firebase๋ฅผ ์ฌ์ฉํ๋ค๋ ์ฌ์ค์ ์ ์ธํ๊ณ ). ๋ชจ๋ฐ์ผ ์ฑ/SPA๋ฅผ ๋ง๋ค ๋, ํนํ ์ฌ๋ฌ ์๋ฒ/๋๋ฉ์ธ์์ ์ ๊ณต๋๋ ์๋น์ค๋ฅผ ์ฌ์ฉํ ๋ JWT๊ฐ ์ ์ด์ธ๋ฆฌ๋ ๋จ์ผ ์ฌ์ธ์จ ๊ธฐ๋ฅ์ด ํ์ํ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ๋ด ์ดํด๋ ๋ธ๋ผ์ฐ์ ์ JS ๊ณต๊ฐ์์ ๋ณด์์ด ๊ฐํ๋๊ณ CORS์ ๋์
์ด ์ด์ ๋ํ ์์ธ๋ฅผ ์ฒ๋ฆฌํ๋๋ก ์งํํ ๊ธฐ๊ฐ ๋์ ์ธ์
์ฟ ํค์ ์ฌ์ฉ์ด ์งํํ๋ค๋ ๊ฒ์
๋๋ค. .
์๋
๋์ ์ฟ ํค ์ธ์
์ ๊ทผ ๋ฐฉ์์ ์๋ ๊ธฐ๋ณธ ๋ฐ ๋ค์ด์ ์คํธ http ์ธ์ฆ๋ณด๋ค ํจ์ฌ ๋ ๋์ ์ ๊ทผ ๋ฐฉ์์ ์ ๊ณตํ์ผ๋ฉฐ ์น ๊ธฐ๋ฐ ์ฑ์ ์ฟ ํค ์ธ์
๊ด๋ฆฌ ์๋ฃจ์
์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค.
ํ์ง๋ง .. ์ง๊ธ ๋ง๋ค๊ณ ์๋ ๋๋ถ๋ถ์ ์ฑ์ ๋ชจ๋ฐ์ผ ๋๋ SPA์ด๋ฉฐ REST API๋ฅผ ๋ง์ด ์ฌ์ฉํฉ๋๋ค. ์ฟ ํค ์ฒ๋ฆฌ ํญ๋ชฉ์ ๋ฌถ๊ฑฐ๋ ์ธ์
์ ์ค์ ํ๊ธฐ ์ํ ์ฌ๋ฌ ์์ฒญ์ ์ฒ๋ฆฌํ์ง ์๊ณ ๊ฐ๋จํ ์ปฌ ์์ฒญ์ผ๋ก ์ฝ๊ฒ ํ
์คํธํ ์ ์๋ ๊ฒ์ ์ข์ํฉ๋๋ค. ๊ทธ๋์ JWT๋ฅผ ์ฌ์ฉํ ๋๋ง ์๋ํ๋ API๋ฅผ ๋น ๋ฅด๊ฒ ๊ตฌํํ๋ค๋ ๊ฒ์ ์๊ฒ ๋์์ต๋๋ค. ๋ด ์ง๊ฐ์ผ๋ก๋ JWT๋ฅผ ์ฟ ํค๋ณด๋ค ์ค๋ ์คํํ๋ ์ธ์
์ ์ฌ์ฉํ๋ ๊ฒ์ด ๋ ์ ์ ํ๋ค๊ณ ์๊ฐํ์ง๋ง ์ข์ ์ง๊ด๋ณด๋ค ๊ฒ์ผ๋ฆ์ผ ์ ์์ผ๋ฏ๋ก ์ด์ ๋ํด ๋ฐ์ถํ๊ฒ ์ต๋๋ค. ํ์ํ ๊ฒฝ์ฐ OAUTH ๋ผ์ธ์ ๋ฐ๋ผ ๋ณด์์ ํ์ฅํ ์ ์์ผ๋ฉฐ ๋ ์ฒ ์ ํ๊ฒ ๋ณด์์ ์ ์งํ๊ณ ์ถ์ง๋ง ์ธ์
์ด ์ด ์์ค์ ๋ณด์์ด ํ์ํ๋ค๊ณ ํ๋จ๋๋ ๊ฒ์ด ์๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ๋์๊ฒ ์ค์ํ ๊ฒ์ JWT ๊ธฐ๋ฐ ์ธ์ฆ ์ ๊ทผ ๋ฐฉ์์ด ํฅํ ์ํคํ
์ฒ ๋ณ๊ฒฝ๊ณผ ๊ด๋ จํ์ฌ ์ ๊ณตํ๋ ์ ์ฐ์ฑ์
๋๋ค. JWT ์ธ์ฆ์ ์ต์
์ผ๋ก ์ ๊ณตํ๊ธฐ ์ํด ์ด์ ์ฝ๋๊ฐ ๋ฆฌํฉํฐ๋ง๋์์ผ๋ฉฐ ์ด๋ก ์ธํด ์ ์ง ๊ด๋ฆฌ ๋ณต์ก์ฑ์ด ๋๋ผ์ธ ์ ๋๋ก ๊ฑฐ์ ์์์ง๋ง ๋๋ถ๋ถ์ ๊ฒฝ์ฐ ํฅํ ๊ฐ๋ฐ์ด ๊ฐ์ํ๋์์ผ๋ฉฐ ์ฟ ํค ์ธ์
๋ณด๋ค ๋ณธ์ง์ ์ผ๋ก ์ด๋ฑํ ๋ถ๋ถ์ด ๋ณด์ด์ง ์์ต๋๋ค.
์ฌ์ค ํนํ ๋ชจ๋ฐ์ผ ์ฅ์น์์ JWT ์๊ฐ ์ ํ ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ฉด ์ด์ ์ด ์์ผ๋ฉฐ ์ผ๋ถ ์ง์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์๋ ์ด๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์๋ฅผ ๋ค์ด ์ฅ์น๊ฐ ๋คํธ์ํฌ์ ์ฐ๊ฒฐ๋์ด ์์ง ์์ ๋ ์ด ์๊ฐ ์ ํ์ ๊ธฐ๋ฐ์ผ๋ก ์ฑ์์ ์ฌ์ฉ์๋ฅผ ๋ก๊ทธ์์์ํค๊ฑฐ๋ ๋ก๊ทธ์ธ ์ํ๋ก ๋ ์ ์์ต๋๋ค.
์ ์๊ฒ๋ ์ธ์
์ฟ ํค์ ๋นํด JWT์ ํ์ฅ์ฑ ์ด์ ์ ๋ํ ์ค๋๋ ฅ ์๋ ์ฃผ์ฅ์ด ๋ณ๋ก ์์ต๋๋ค.
์ฟ ํค์๋ ์์ฒด ์๊ฐ ์ด๊ณผ ๊ธฐ๊ฐ(์์ ํ ๊ด๋ฆฌ๋๋ ์๋ฒ ์ธก์ด ์๋)์ด ์๊ธฐ ๋๋ฌธ์ JWT๋ฅผ ์ธ์
์ฟ ํค๋ก ์ฌ์ฉํ ์ ์๊ณ ์ด ์ฟ ํค๋ฅผ ๊ฒฐํฉํ๋ฉด ํผ๋์ค๋ฌ์ธ ์ ์๋ค๊ณ ์ ์ํ๋ ์ฌ๋๋ค์ด ์์ต๋๋ค.
๋ง์ ์ต์ JS ํ๋ ์์ํฌ๋ ์ฟ ํค๋ณด๋ค JWT์ ๋ํ ์ง์์ ๋ ๋ง์ด ์ ๊ณตํ๊ณ ์์ต๋๋ค. ์ด๋ ์คํ์ ๋ํด ํ
์คํธ๋ฅผ ๊ฑฐ์น ๋๋ฃ ๊ฒํ ์๋ฃจ์
์ด ์ค์ ๋ก ๋ง์ ์ ํ๋ฆฌ์ผ์ด์
์์ JWT๋ฅผ ์งํฅํ ์ ์์์ ์์ฌํฉ๋๋ค. ์น ์๋น์ค์ ๋ํ JWT์ ์ธ๊ธฐ๋ ๊ธฐ์ ์ ์ธ ๋
ผ์์ด ์๋์ง๋ง, ๋ชจ๋ ๊ฒ์ด ๋๊ฐ์ด ์๋ชป๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๊ด๋ จ์ด ์๋ค๊ณ ๋ฌด์ํ๋ ๊ฒ์
๋๋ค. Express๋ ๋ด๊ฐ ์๋ ํ dwyl ๊ทธ๋ฃน์์ ์ฌ์ฉํ๋ ์คํ์ ํต์ฌ ์์๊ฐ ์๋๋ฏ๋ก ์ด์ ๋ง์ถ ์ด์ ๊ฐ ์์ต๋๋ค.
๋๋ ์ฌ์ ํ ์ฐ๋ คํ๊ณ ์์ง๋ง ๋น์ ์ ์ฃผ์ฅ์ ์์ ํ ํ์ ํ์ง ๋ชปํ๊ธฐ ๋๋ฌธ์ ๋น์ ์ด ๋์ํ ์ ์๋ ๋ด ์๋์ ์ผ๋ถ๊ฐ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
๋๋ README์ ์ฌ๊ฐํ ์ ๊ฒ์ด ํ์ํ๊ณ ์ฃผ์ README๊ฐ ์๋ ๋ฐฐ๊ฒฝ ํ ๋ก ํ
์คํธ๋ก ๋ ์ ์ ๊ฑฐ๋๊ฑฐ๋ ๋ค๋ก ๋ฐ๋ ค๋๋ ๋ผ์ธ์ด ์๋ค๋ ๋ฐ ๋์ํ ๊ฒ์
๋๋ค.
(๋ด๊ฐ ์กฐ์ฌํ ์ด์ ํ ์์ง๋์ด๋ง ๋ฌธ์ ๋ฅผ ๋ฐฐ์ฐ๋ ๋ฐ ๊ด์ฌ์ด ์๋ Firebase๋ฅผ ์ฌ์ฉํ๋ค๋ ์ฌ์ค์ ์ ์ธํ๊ณ )
๋ฌธ์ ์ค ์ผ๋ถ๋ JS ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ๋น๊ณต๊ฐ ์์ค์ด๊ณ ๋ค์ ๋์์ด ๋์ง ์๋ ์ค๋ฅ ์ถ๋ ฅ์ผ๋ก ๋๋ ํ๋์ด ์์ผ๋ฉฐ "๋ฐฐ์ด"๊ณผ ๊ฐ์ ๊ฒ์ด ์์ผ๋ฉฐ ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์๋ต์ ๋ฐ์ง ๋ชปํ ์ ์๋ ์ด์ํ ๋ฒ๊ทธ๊ฐ ๋ง์ด ์๋ค๋ ๊ฒ์ ๋๋ค. ๋ถ๋ช ํํ ์ด์ , ACL ์์คํ ์ ์์ฒด ํธ์ง๊ธฐ์์๋ ์ง์ํ์ง ์๋ ๋นํ์ค JSON ๋ณํ์ ์ฌ์ฉํ๊ณ JS API๋ ์ผ๋ฐ ์ฝ๋ฐฑ API๊ฐ ์๋ ์์ฌ ์ด๋ฒคํธ API๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค(๊ทธ๋ฌ๋ ์ผ๊ด๋๊ฒ ์๋ํ์ง ์์). ๊ณง.
๋ชจ๋ฐ์ผ ์ฑ/SPA๋ฅผ ๋ง๋ค ๋, ํนํ ์ฌ๋ฌ ์๋ฒ/๋๋ฉ์ธ์์ ์ ๊ณต๋๋ ์๋น์ค๋ฅผ ์ฌ์ฉํ ๋ JWT๊ฐ ์ ์ด์ธ๋ฆฌ๋ ๋จ์ผ ์ฌ์ธ์จ ๊ธฐ๋ฅ์ด ํ์ํ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ๋ด ์ดํด๋ ๋ธ๋ผ์ฐ์ ์ JS ๊ณต๊ฐ์์ ๋ณด์์ด ๊ฐํ๋๊ณ CORS์ ๋์ ์ด ์ด์ ๋ํ ์์ธ๋ฅผ ์ฒ๋ฆฌํ๋๋ก ์งํํ ๊ธฐ๊ฐ ๋์ ์ธ์ ์ฟ ํค์ ์ฌ์ฉ์ด ์งํํ๋ค๋ ๊ฒ์ ๋๋ค. .
์ ํํ์ง ์์ต๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ํ์ฌ API๋ ์ธ์ฆ ์๊ตฌ ์ฌํญ์ด ๋ค๋ฅด๋ฉฐ ์๋ก ๋ค๋ฆ ๋๋ค. ํ ํฐ ๊ธฐ๋ฐ ์ธ์ฆ ์์คํ ์ ํ์ฌ API์ ํต์ ํ ๋ ์์ฉ ํ๋ก๊ทธ๋จ์์ ์๋ฏธ๊ฐ ์์ ์ ์์ง๋ง SPA์ธ ๊ฒฝ์ฐ์๋ ์์ฒด ์์ฉ ํ๋ก๊ทธ๋จ์๋ ์๋ฏธ๊ฐ ์์ต๋๋ค. ์ด๋ ๋์ผํ ๋ก๊ทธ์ธ ์๋น์ค๋ฅผ ์ฌ์ฉํ๋ ์ฌ๋ฌ ์ต์ข ์ฌ์ฉ์ ์๋น์ค๋ฅผ ๋ํ๋ด๋ "์ฑ๊ธ ์ฌ์ธ์จ"๊ณผ๋ ๊ด๋ จ์ด ์์ต๋๋ค.
CORS๋ ๋ณ๋์ ๋ฌธ์ ์ด๋ฉฐ ์ค์ ๋ก ์ด์ ๊ด๋ จ์ด ์์ต๋๋ค.
ํ์ง๋ง .. ์ง๊ธ ๋ง๋ค๊ณ ์๋ ๋๋ถ๋ถ์ ์ฑ์ ๋ชจ๋ฐ์ผ ๋๋ SPA์ด๋ฉฐ REST API๋ฅผ ๋ง์ด ์ฌ์ฉํฉ๋๋ค. ์ฟ ํค ์ฒ๋ฆฌ ํญ๋ชฉ์ ๋ฌถ๊ฑฐ๋ ์ธ์ ์ ์ค์ ํ๊ธฐ ์ํ ์ฌ๋ฌ ์์ฒญ์ ์ฒ๋ฆฌํ์ง ์๊ณ ๊ฐ๋จํ ์ปฌ ์์ฒญ์ผ๋ก ์ฝ๊ฒ ํ ์คํธํ ์ ์๋ ๊ฒ์ ์ข์ํฉ๋๋ค. ๊ทธ๋์ JWT๋ฅผ ์ฌ์ฉํ ๋๋ง ์๋ํ๋ API๋ฅผ ๋น ๋ฅด๊ฒ ๊ตฌํํ๋ค๋ ๊ฒ์ ์๊ฒ ๋์์ต๋๋ค.
๊ฐ๋ฐ ์ค์๋ ํน์ ํ ์คํธ ์๊ตฌ ์ฌํญ์ด ์์ ์ ์์ง๋ง ์ด๋ฌํ ์๊ตฌ ์ฌํญ์ ํ๋ก๋์ ์์ ์ทจํ๋ ์ ๊ทผ ๋ฐฉ์์ ์ํฅ์ ์ฃผ์ง ์์ต๋๋ค. SPA์ธ ๋๋ถ๋ถ์ ๊ฒ๋ค์ด ์ฒ์๋ถํฐ SPA๊ฐ ๋์ด์๋ ์ ๋๋ค๋ ์ฌ์ค์ ์ ์ธํ๊ณ (SPA๋ ์น์ฌ์ดํธ๊ฐ ์๋๋ผ ์น์ฑ์ ์ํ ๊ฒ์ ๋๋ค!), ์ธ์ ์ ์ฌ์ฉํ ์ ์๋ ์ด์ ๋ ์์ต๋๋ค.
๊ทธ ์ธ์๋ cURL์ ์ฟ ํค๋ฅผ ์ ์ง์ํ๋ฉฐ httpie ๋๋ http-prompt ์ ๊ฐ์ ๋ ๋์ API ํ ์คํธ ํด๋ผ์ด์ธํธ๊ฐ ๋ง์ด ์์ต๋๋ค.
ํ์ํ ๊ฒฝ์ฐ OAUTH ๋ผ์ธ์ ๋ฐ๋ผ ๋ณด์์ ํ์ฅํ ์ ์์ผ๋ฉฐ ๋ ์ฒ ์ ํ๊ฒ ๋ณด์์ ์ ์งํ๊ณ ์ถ์ง๋ง ์ธ์ ์ด ์ด ์์ค์ ๋ณด์์ด ํ์ํ๋ค๊ณ ํ๋จ๋๋ ๊ฒ์ด ์๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค.
์ธ์ ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ์ฅ ์ค์ํ ์ธก๋ฉด ์ค ํ๋์ ๋๋ค. ์ถฉ๋ถํ ์์ ํ์ง ์์ผ๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋ณธ์ง์ ์ผ๋ก ์์๋๊ณ ์์ ํ ์ทจ์ฝํฉ๋๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์๋ฅผ ๋ค๋ฉด. LocalStorage์ JWT๋ฅผ ์ ์ฅํ๋ ๊ฒ์ ๋์ฐํ ์๊ฐ์ ๋๋ค.
๋์๊ฒ ์ค์ํ ๊ฒ์ JWT ๊ธฐ๋ฐ ์ธ์ฆ ์ ๊ทผ ๋ฐฉ์์ด ํฅํ ์ํคํ ์ฒ ๋ณ๊ฒฝ๊ณผ ๊ด๋ จํ์ฌ ์ ๊ณตํ๋ ์ ์ฐ์ฑ์ ๋๋ค. JWT ์ธ์ฆ์ ์ต์ ์ผ๋ก ์ ๊ณตํ๊ธฐ ์ํด ์ด์ ์ฝ๋๊ฐ ๋ฆฌํฉํฐ๋ง๋์์ผ๋ฉฐ ์ด๋ก ์ธํด ์ ์ง ๊ด๋ฆฌ ๋ณต์ก์ฑ์ด ๋๋ผ์ธ ์ ๋๋ก ๊ฑฐ์ ์์์ง๋ง ๋๋ถ๋ถ์ ๊ฒฝ์ฐ ํฅํ ๊ฐ๋ฐ์ด ๊ฐ์ํ๋์์ผ๋ฉฐ ์ฟ ํค ์ธ์ ๋ณด๋ค ๋ณธ์ง์ ์ผ๋ก ์ด๋ฑํ ๋ถ๋ถ์ด ๋ณด์ด์ง ์์ต๋๋ค.
์ฌ๊ธฐ์๋ 99.99%์ ๊ฐ๋ฐ์๊ฐ ํ์๋ก ํ๋ ์ ์ฐ์ฑ์ด ๋์ ๋์ง ์์์ผ๋ฉฐ, ์ด๋ฏธ ๋ถ์ค ๋ฐ์ดํฐ ๋ฐ ํ ํฐ ๋ฌดํจํ ๋ถ๊ฐ๋ฅ๊ณผ ๊ฐ์ด ๋์ ๋๋ ๋ฌธ์ ์ค ์ผ๋ถ๋ฅผ ๊ฐ์กฐํ์ต๋๋ค.
์ฌ์ค ํนํ ๋ชจ๋ฐ์ผ ์ฅ์น์์ JWT ์๊ฐ ์ ํ ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ฉด ์ด์ ์ด ์์ผ๋ฉฐ ์ผ๋ถ ์ง์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์๋ ์ด๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์๋ฅผ ๋ค์ด ์ฅ์น๊ฐ ๋คํธ์ํฌ์ ์ฐ๊ฒฐ๋์ด ์์ง ์์ ๋ ์ด ์๊ฐ ์ ํ์ ๊ธฐ๋ฐ์ผ๋ก ์ฑ์์ ์ฌ์ฉ์๋ฅผ ๋ก๊ทธ์์์ํค๊ฑฐ๋ ๋ก๊ทธ์ธ ์ํ๋ก ๋ ์ ์์ต๋๋ค.
์ด๊ฒ์ JWT์๋ง ํด๋น๋๋ ๊ฒ์ ์๋๋๋ค. ์๋ฒ ์ธก ์ธ์ ์ผ๋ก ์ด ์์ ์ ์ํํ ์ ์์ต๋๋ค. ์ฌ์ค, JWT๋ (๋ณต์กํ) ์ํ ์ ์ฅ ์ํคํ ์ฒ๋ฅผ ๋์ ํ์ง ์๊ณ ๋ ๋ฌดํจํ๋ ์ ์์ผ๋ฏ๋ก ์ธ์ ์ด ์ค์ ๋ก ์ฌ๊ธฐ์์ ์น๋ฆฌํฉ๋๋ค.
์ ์๊ฒ๋ ์ธ์ ์ฟ ํค์ ๋นํด JWT์ ํ์ฅ์ฑ ์ด์ ์ ๋ํ ์ค๋๋ ฅ ์๋ ์ฃผ์ฅ์ด ๋ณ๋ก ์์ต๋๋ค.
ํ์ฅ์ฑ ์ด์ ์ ๋ชจ๋ ์ธ์ ์ ๋ณด์ ํ๋ ๋จ์ผ ์ ์ ์๋ฒ๊ฐ ํ์ํ์ง ์๋ค๋ ๊ฒ์ ๋๋ค(๋ฐ์ดํฐ๋ฅผ ํ ํฐ์ ์ง์ ์ ์ฅํ ์ ์๊ธฐ ๋๋ฌธ์). ์ฆ, ๋ณ๋ชฉ ํ์์ ์ ๊ฑฐํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋ด๊ฐ ๋งํ๋ฏ์ด ๊ฑฐ์ ์ด๋ค ๊ฐ๋ฐ์๋ ์ค์ ๋ก ์ด ๋ฌธ์ ๋ฅผ ๊ฒช์ง ์์ ๊ฒ์ ๋๋ค. ๋งค์ฐ ํฐ ๊ท๋ชจ์ ํ๋ก์ ํธ์๋ง ์ ์ฉํฉ๋๋ค.
๋ง์ ์ต์ JS ํ๋ ์์ํฌ๋ ์ฟ ํค๋ณด๋ค JWT์ ๋ํ ์ง์์ ๋ ๋ง์ด ์ ๊ณตํ๊ณ ์์ต๋๋ค. ์ด๋ ์คํ์ ๋ํด ํ ์คํธ๋ฅผ ๊ฑฐ์น ๋๋ฃ ๊ฒํ ์๋ฃจ์ ์ด ์ค์ ๋ก ๋ง์ ์ ํ๋ฆฌ์ผ์ด์ ์์ JWT๋ฅผ ์งํฅํ ์ ์์์ ์์ฌํฉ๋๋ค.
์ธ์ ์ฟ ํค๋ฅผ ์ง์ํ์ง ์๋ ํ๋ ์์ํฌ๋ ์์ง ๋ณด์ง ๋ชปํ์ต๋๋ค.
Express๋ ๋ด๊ฐ ์๋ ํ dwyl ๊ทธ๋ฃน์์ ์ฌ์ฉํ๋ ์คํ์ ํต์ฌ ์์๊ฐ ์๋๋ฏ๋ก ์ด์ ๋ง์ถ ์ด์ ๊ฐ ์์ต๋๋ค.
๊ทธ๊ฒ์ด ๊ทธ๋ค์ ๋ฌธ์ ์ ๋๋ค. Express๋ ํ๋์ ์์ผ ๋ฟ์ด๋ฉฐ ๊ธฐ๋ณธ์ ์ผ๋ก ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉ๋๋ ๋ชจ๋ ํ๋ ์์ํฌ์ ๋ํด ์ ํ ์คํธ๋ ์ธ์ ๊ตฌํ์ด ์กด์ฌํฉ๋๋ค.
๊ฒฐ๋ก ์ ์ด ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ์ฝ๊ณ ์๋ ๋ชจ๋ ๊ฐ๋ฐ์์๊ฒ JWT์ ์ค์ ์ด์ ์ ์ ํํ 0์ด๊ณ ๋ช ๊ฐ์ง ๋จ์ ์ด๋ ๋ณด์ ๋ฌธ์ ๊ฐ ์๋ค๋ ๊ฒ์ ๋๋ค. ๊ทธ๊ฒ์ ๋จ์ง ๊ฑด์ ํ ๊ธฐ์ ์ ์ธ ์ ํ์ด๋ ๊ถ์ฅ ์ฌํญ์ด ์๋๋ฉฐ, ๊ทธ๊ฒ์ผ๋ก ์ ๋ง ๋์ ๋๋ค.
@joepie91 ๋๋ ๋น์ ์ด ์ฐ๋ฆฌ์ ๋ฆฌํฌ์งํ ๋ฆฌ/๋ ธํธ๋ฅผ ์ฐพ์๊ณ ๊ทธ๊ฒ์ ์ฝ๊ณ ํผ๋๋ฐฑ์ ์ฃผ๊ธฐ ์ํด ์๊ฐ์ ํฌ์ํ๋ค๋ ๊ฒ์ ์ผ๋ง๋ _๊ธฐ๋ป_ํ๋์ง ๋งํ ์ ์์ต๋๋ค! ์ง์ฌ์ผ๋ก, ๋ด๊ฐ ๋น์ ์ ์ง์ ๋ง๋๋ฉด ๋น์ ์ด ์ข์ํ๋ ์๋ฃ์ _ํ๋ ํธ_๋ฅผ ์ค ๊ฒ์ ๋๋ค! ๐บ
๋ด๊ฐ ๋น์ ์ ์ด ๋ฆฌํฌ์งํ ๋ฆฌ์ ๊ธฐ๊ณ ์๋ก ๋ง๋ค๋ฉด _๊ฐ์ _์ ์ํ ๋ด ๋์ด์ค๊ธฐ ์์ฒญ์ ๊ฒํ ํ์๊ฒ ์ต๋๊น? ๐
๋ํ @AshleyPinner , @alfiepates , @sunny-g _์ฌ๋ฌ๋ถ_ ์ฌ๋ฌ๋ถ์ ์ด _ํน์ _ ํ ๋ก ์ ์ด๋ป๊ฒ ์ฐ์ฐํ ๋ฐ๊ฒฌํ์ต๋๊น? Redit/Hackernews์์ ๋ฌธ์ ๊ฐ ๊ณต์ ๋์์ต๋๊น? (_์ฌ๋๋ค์ด ์ฐ๋ฆฌ ๊ฒ์๋ฌผ์ ์ด๋ป๊ฒ ์ฐพ๋์ง ๊ถ๊ธํฉ๋๋ค..._)
๋๋ ๋ฉฐ์น ๋์ ์ด๊ฒ์ ์น์ด ๋ณด์๊ณ ํ๋ SPA ๋ฐ ๋ชจ๋ฐ์ผ ์ฑ์ ๊ธฐ์กด ์ธ์
์ฟ ํค๋ณด๋ค JWT๋ฅผ ๊ธฐ๋ณธ ์ ํ์ผ๋ก ์ฌ์ฉํ๋ ๊ฒ์ ๋ฐ๋ํ๋ ๋ง์ ๋
ผ์์ ์ฐธ์ฌํ ์ ์์ต๋๋ค.
ํน์ ์๊ตฌ ์ฌํญ์ ๋ํ ์ฟ ํค/JWT ์ธ์ฆ ์ ๊ทผ ๋ฐฉ์์ ์ฅ๋จ์ ์ ํ๊ฐํ๊ธฐ ์ํด ๊ฒฐ์ ๋งคํธ๋ฆญ์ค๋ฅผ ๊ตฌ์ฑํ๊ฑฐ๋ README๋ฅผ ๋ค์ ์์ฑํ๊ธฐ ์ ์ ์ผ๋ จ์ ์ฌ์ฉ ์ฌ๋ก์ ๊ฑธ์ณ ์ฅ๋จ์ ์ ์์ธํ ์ค๋ช
ํ๋ ค๊ณ ํ์ต๋๋ค. ๋ณต์กํ ์ฑ์ ๊ตฌ์ถํ ๋ ์ฌ๋๋ค์ด ์ง๋ฉดํ๋ ๋ง์ ์ค์ ๋ฌธ์ ๋ ๋๋ถ๋ถ ๋ ์ฐ์ํ๊ฒ ํด๊ฒฐ๋๊ฑฐ๋ ์ต์ํ ์ฟ ํค ์ธ์
์ ์ฌ์ฉํ์ฌ ๋ฌธ์ ๊ฐ ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ๋ฌธ์ ํฌ์คํฐ๊ฐ ๋ง๋๋ ์ธ์์ JWT๊ฐ ์ต์ ์ฑ์ ์ ํฉํ์ง ์์ ์ผ๋ถ ํดํน๋ ์ ๋ขฐํ ์ ์๋ ๋ฏธ์ฑ์ ๊ธฐ์ ์ด๋ฉฐ ์ด ์ฃผ์ฅ์ ์๋ง๋ ์ฌ์ฉ์๋ฅผ ์ธ์ฆํ๊ธฐ ์ํด ์์ ํ ์๋ํ๋ ์์ ๋ฅผ ์ ๊ณตํ๋ ๊ฒ๋ณด๋ค ํจ์ฌ ๋ ์ํํ ์ ์๋ค๋ ๊ฒ์
๋๋ค.
์ด OATH ๊ธฐ์ฌ๊ฐ ๋์์ด ๋์์ต๋๋ค . ๋๋ ์ด ๋ฆฌํฌ์งํ ๋ฆฌ์ ๋ํ ๊ฐ๋ ฅํ ๋ฐ์์ ์ด๋ฐํ ๊ฒ ์ค ํ๋๋ผ๊ณ ์๊ฐํ์ง๋ง ๋ฌธ์ ๋ณด๊ณ ์๋ JWT๋ฅผ ์ฌ์ฉํ๋ ์ฟ ํค ์ธ์
์์ ์ผ๋ฐ์ ์ผ๋ก ์์๋๋ ๊ธฐ๋ฅ์ ๋ํ ๋
ผ์๋ก, ์ฃผ๋ก JWT์ ํต์ฌ ์ด์ ์ ์์์ํต๋๋ค. ๋ฌด๊ตญ์ ์๊ฐ ๋ ์ ์์ต๋๋ค. ์๊ตฌ ์ ์ฅ์๋ฅผ ํตํฉํ์ฌ ์ํ๋ฅผ ๋์
ํ์ญ์์ค. JWT์ ์ฃผ์ ์ฌ์ฉ ์ฌ๋ก ์ค ํ๋๋ฅผ ์ ๊ฑฐํ๊ณ ์ฟ ํค๋ฅผ ์ฌ์ฉํ์ฌ ์ฑ์ํ ๊ฒ์ ๋ค์ ๊ตฌํํฉ๋๋ค.
์ฆ, ๋ณต์กํ ์ฑ์ ๋จ์ผ HTTP ์์ฒญ์ ์๋ช
์ ๋์ด์ ์ฒ๋ฆฌ๋๋ ์์
์ ๋ํ ํธ๋์ญ์
์์ฒญ์ ๊ฒฝ์ฐ์๋ ์ผ๋ถ ์ํ ์ฐพ๊ธฐ๋ฅผ ์๊ตฌํ๋ ๊ฒฝํฅ์ด ์์ต๋๋ค. ์ด๊ฒ์ JWT์ ์ฌ์ฉ์ ๋ฐฐ์ ํด์๋ ์ ๋์ง๋ง JWT๊ฐ ํธ๋์ญ์
์์ ์ด๋ค ์ญํ ์ ํ๋์ง ๊ณ ๋ คํ ์ ์๋๋ก ์ ์ ๋ฉ์ถฐ์ผ ํฉ๋๋ค. ๋ฆฌ์์ค์ ๋ํ ์ก์ธ์ค ๊ถํ์ ๋ถ์ฌํ๋ JWT์ ์๋น์ค์ ๋ํ ์ก์ธ์ค๋ฅผ ๊ฑฐ๋ถํ๋ ์ฌ์ฉ์์ ๋ํ ๋ฆฌ์์ค ์ํ๊ฐ ์๋ ๊ฒ์ด ๊ด์ฐฎ๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ด ๊ฒฝ์ฐ ๋ง๋ฃ๋์ด์ผ ํ๋ ๊ฒ์ JWT๊ฐ ์๋๋ผ JWT๋ฅผ ์ฌ์ฉํ์ฌ ์๋น์ค์ ์ก์ธ์คํ๋ ์ฌ์ฉ์์ ์ํ์
๋๋ค.
์ ์ก ๋ฉ์ปค๋์ฆ์ผ๋ก ์ฟ ํค๋ฅผ ์ฌ์ฉํ๋๋ก ์ถ๊ฐ๋ก ํ์ฅํ๋ฉด ๋ค๋ฅธ ์ด์ ์ด ์ ๊ฑฐ๋๊ณ ์ฟ ํค๋ฅผ ๋ค์ ์ฌ์ฉํ๊ฒ ๋์ง๋ง ์ผ๋ฐ์ ์ธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ธฐ๋ฅ์ ๋ฌด์ํ๊ณ ์ฒ์๋ถํฐ ๊ธฐ๋ฅ์ ๋ค์ ์์ฑํ์ฌ ์ค๋ณต ์๊ฐ ์ด๊ณผ ๋ฑ์ผ๋ก ๋๋๊ธฐ ๋๋ฌธ์ ๋ชจํธ์ฑ์ด ๋ ์๊น๋๋ค. ์์ CORS์ ๋ํด ์ธ๊ธํ์ ๋ ์๋ง๋ ์ฟ ํค์ ํจ๊ป ์ฌ๋ฌ ๋๋ฉ์ธ์ ์ฌ์ฉํ๋ ์ด๋ ค์์ ์ง์ ํ๋ ๊ฒ์ด ๋ ๋์ ๊ฒ์
๋๋ค. ๋ฌผ๋ก ์์ผ๋์นด๋ ๋๋ฉ์ธ์ ์ค์ ํ ์ ์์ง๋ง ์ถฉ๋ถํ ๋ค๋ฅธ ๊ฒฝ์ฐ ๊ธฐ์กด ์ธ์
์ฟ ํค๊ฐ ๋น ๋ฅด๊ฒ ๋ค๋ฃจ๊ธฐ ์ด๋ ค์์ง๋๋ค. ๋๋ถ๋ถ์ ๊ฐ๋ฐ์๋ ์ฌ๋ฌ ๋๋ฉ์ธ์ ๋ณดํธ๋ ๋ฆฌ์์ค์ ์ก์ธ์คํ๊ธฐ ์ํด ์ธ์ฆ๋ ํด๋ผ์ด์ธํธ๊ฐ ํ์ํ์ง ์๋ค๊ณ ์ฃผ์ฅํ ์ ์์ง๋ง ์ด๋ ํน์ดํ ๊ฒฝ์ฐ๋ณด๋ค๋ ํจ์ฌ ๋ ์ผ๋ฐ์ ์ธ ๊ดํ์ด ๋๊ณ ์์ต๋๋ค.
์ธ์ฆ๋ ์ธ์
๊ด๋ฆฌ๋ฅผ ํ์ํ๊ธฐ ์์ํ๋ ์๋ก์ด ์ฌ๋์ผ๋ก์ ๋๋ ์ด๊ฒ์ด ์น ์ฑ์ ๋ฆฌ์์ค์ ๋ํ ์ก์ธ์ค๋ฅผ ์ธ์ฆ๋ ์ฌ์ฉ์์๊ฒ ๊ฐ์ฅ ๊ฐ๋จํ ์๋ฏธ๋ก ์ ํํ๋ ๋ฐฉ๋ฒ์ ๋ํด ๋ฐฐ์ฐ๋ ์ ์ ํ ๋ฐฉ๋ฒ์ด ์๋ ์ ์๋ค๋ ์ ์ ๊ฐ์ฌํฉ๋๋ค. JWT๋ ์ธ์ฆ๋ ์ธ์
์ ์ถ๋ฐ์ ์ผ๋ก ๋์ฑ ๋ถ๊ฐ๋ ๊ฒ์ด๋ฏ๋ก ์ธ์
์ฟ ํค๋ฅผ ์ค๋ซ๋์ ์ฌ์ฉํด์๊ธฐ ๋๋ฌธ์ ์ด๋ฅผ ๋ฌด์ํ๋ ๊ฒ๋ง์ผ๋ก๋ ๋ชจ๋ ์ฌ๋์ด ์ธ์
์ฟ ํค๋ก ์์ํ๊ณ JWT์ ๋ํด์๋ง ๋ฐฐ์ฐ๊ณ ์ฌ์ฉํด์ผ ํ๋ค๊ณ ๋ฏฟ๊ธฐ์๋ ์ถฉ๋ถํ์ง ์์ต๋๋ค. ๋๋ฉ์ธ ๊ฐ์ ์ฟ ํค๋ฅผ ๊ณต์ ํ ์ ์๊ฑฐ๋ ํ์ฌ API์ ์ก์ธ์คํด์ผ ํ๊ฑฐ๋ ์๋ฒ๋ฅผ ํ์ธํ์ง ์๊ณ ๋ง๋ฃ๋ฅผ ํ์ธํ ์ ์์ด์ผ ํ๊ฑฐ๋ ๋ชจ๋ฐ์ผ ์ฅ์น ๋ฑ์ ์ฌ์ฉ์ ๋ก๊ทธ์ธ ์๊ฒฉ ์ฆ๋ช
์ ์ ์ฅ์ ๋ํด ์ง๋ฌธํ ๋ .
์์ ๊ณ์ธต์ ์ธ์ ๋งค๋งค ์ฌ์ดํธ๋ฅผ ์ด์ํ์ง ์๋ ํ ์ํ ๋น์ ์ฅ ํ ํฐ์ ์ด์ ์ ๋ฌด์๋ฏธํ ๊ฒ์ผ๋ก ๊ณผ์ํ๊ฐํ๋ ๊ฒ์ ์ณ์ง ์์ต๋๋ค. ์๋ก์ด ์ํ ๊ณ์ธต์ ๋์ ํ์ฌ ๋ฌธ์ ๋ฅผ ๋ณต์กํ๊ฒ ๋ง๋ค๋๋ผ๋ ์๋ฒ์์ ์ธ์ ์ ๋ถ๋ฆฌํ๋ฉด ๋ง์ ์ด์ ์ด ์์ต๋๋ค.
@nelsonic 4744cd1bb8991bc4057c749f86007fcecac19d1d๋ฅผ ๋ณด๋ฉด ํจ์ฌ ๋ ๋ช ํํ ํํ์ฒ๋ผ ๋ณด์ ๋๋ค. ๊ทธ๋ฌ๋ ํค๋ ๋ ๋ณ๊ฒฝ ์ฌํญ์ ๋ฐ์ํ์ง ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
@pscott-au: ์ต์ SPA ๋ฐ ๋ชจ๋ฐ์ผ ์ฑ์์.
์ด๊ฒ์ ์ธ์ ๋ฉ์ปค๋์ฆ์ ์ ํ๊ณผ _์์ ํ_ ์ง๊ตํฉ๋๋ค. ์ค๋๋ SPA์ธ ๋๋ถ๋ถ์ ๊ฒ๋ค์ด ๊ทธ๋ ์ง ์์์ผ ํ๋ค๋ ๊ฒ์ ๋งํ ๊ฒ๋ ์์ต๋๋ค. ์น ์ฌ์ดํธ์ SPA๋ฅผ ์ฌ์ฉํ๋ฉด(์น ์ฑ๊ณผ ๋ฐ๋) ์น์ด ์ค๋จ๋ฉ๋๋ค.
๋ณต์กํ ์ฑ์ ๊ตฌ์ถํ ๋ ์ฌ๋๋ค์ด ์ง๋ฉดํ๋ ๋ง์ ์ค์ ๋ฌธ์ ๋ ๋๋ถ๋ถ ๋ ์ฐ์ํ๊ฒ ํด๊ฒฐ๋๊ฑฐ๋ ์ต์ํ ์ฟ ํค ์ธ์ ์ ์ฌ์ฉํ์ฌ ๋ฌธ์ ๊ฐ ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
์ ๊ฐ์?
๋ฌธ์ ํฌ์คํฐ๊ฐ ๋ง๋๋ ์ธ์์ JWT๊ฐ ์ต์ ์ฑ์ ์ ํฉํ์ง ์์ ์ผ๋ถ ํดํน๋ ์ ๋ขฐํ ์ ์๋ ๋ฏธ์ฑ์ ๊ธฐ์ ์ด๋ผ๋ ๊ฒ์ ๋๋ค.
์๋์, ๊ทธ๋ ์ง ์์ต๋๋ค. ๊ธฐ์ ๋ก์์ JWT๋ ๋์ฐํ์ง ์์ต๋๋ค(์ฌ์์ ์์ฌ์ค๋ฌ์ด ๊ฒฐ์ ์ด _are_ ์๋๋ผ๋). ์ธ์ ์ ์๋๋ ๋ชฉ์ ์ด ์๋๋ฉฐ ํด๋น ์ฌ์ฉ ์ฌ๋ก์ ์ ํฉํ์ง ์์ต๋๋ค.
๋๊ตฌ๊ฐ ๋์๋ค๋ ๊ฒ์ด ์๋๋ผ ์๋ชป ์ฌ์ฉํ๊ณ ์๋ค๊ณ ๋งํ๋ ๊ฒ์ ๋๋ค.
์ด ์ฃผ์ฅ์ ์๋ง๋ ๋ค์๋ณด๋ค ํจ์ฌ ๋ ์ํํ ๊ฒ์ ๋๋ค.
๊ทธ๊ฒ์ ๋ํ ๋น์ ์ ๊ทผ๊ฑฐ๋ ๋ฌด์์ ๋๊น?
์ด OATH ๊ธฐ์ฌ๊ฐ ๋์์ด ๋์์ต๋๋ค.
์์ ๋ณ๋ก ํด๊ฒฐ:
์๋์, ๊ทธ ๊ธฐ์ฌ๋ ๋ด๊ฐ ์์ง ๋ค๋ฃจ์ง ์์ JWT์ ์๋ก์ด ์ด์ ์ ๊ฐ์ ธ์ค์ง ์์ต๋๋ค. ๊ทธ๊ฒ์ ๋๋๋ก ์ด์ต(๋ฌด๊ตญ์ ์)์ ๋ชจ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ์ฉ๋๋ ๊ฒ์ผ๋ก ์๋ชป ํํํ๊ณ (๊ทธ๋ ์ง ์์), ๋ฌด์๋ฏธํ ๋น๊ต๋ฅผ ํ๊ณ ๋๋จธ์ง ์ธ์ ์ฑ๋ฅ์ ๊ณผ๋ํ๊ฒ ๊ฐ์กฐํฉ๋๋ค.
๋๋ ์ด ๋ฆฌํฌ์งํ ๋ฆฌ์ ๋ํ ๊ฐ๋ ฅํ ๋ฐ์์ ์ด๋ฐํ ๊ฒ ์ค ํ๋๋ผ๊ณ ์๊ฐํ์ง๋ง ๋ฌธ์ ๋ณด๊ณ ์๋ JWT๋ฅผ ์ฌ์ฉํ๋ ์ฟ ํค ์ธ์ ์์ ์ผ๋ฐ์ ์ผ๋ก ์์๋๋ ๊ธฐ๋ฅ์ ๋ํ ๋ ผ์๋ก, ์ฃผ๋ก JWT์ ํต์ฌ ์ด์ ์ ์์์ํต๋๋ค. ๋ฌด๊ตญ์ ์๊ฐ ๋ ์ ์์ต๋๋ค.
๋ด๊ฐ ๋งํ๋ฏ์ด, ์ด๊ฒ์ ์ค์ ๋ก๋ ๊ฑฐ์ ์ด๋์ด ๋์ง ์์ต๋๋ค. ๋์ผํ ๋ฌด๊ตญ์ ์ํ๋ฅผ ๊ณ์ํด์ ๋ฐ๋ณตํ ์ ์์ง๋ง ๋ ์ด์ ์ ํจํ๊ฑฐ๋ ์ ์ฉ ๊ฐ๋ฅํ์ง ์์ต๋๋ค. ๊ทธ๊ฒ์ _์ ๋์ ์ผ๋ก ์๋๋๋ค_ ๋ฒ์ฉ ์๊ตฌ ์ฌํญ์ ๋๋ค.
๋ฆฌ์์ค์ ๋ํ ์ก์ธ์ค ๊ถํ์ ๋ถ์ฌํ๋ JWT์ ์๋น์ค์ ๋ํ ์ก์ธ์ค๋ฅผ ๊ฑฐ๋ถํ๋ ์ฌ์ฉ์์ ๋ํ ๋ฆฌ์์ค ์ํ๊ฐ ์๋ ๊ฒ์ด ๊ด์ฐฎ๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ด ๊ฒฝ์ฐ ๋ง๋ฃ๋์ด์ผ ํ๋ ๊ฒ์ JWT๊ฐ ์๋๋ผ JWT๋ฅผ ์ฌ์ฉํ์ฌ ์๋น์ค์ ์ก์ธ์คํ๋ ์ฌ์ฉ์์ ์ํ์ ๋๋ค.
์ด ๊ฒฝ์ฐ ์ผ์ข ์ ์ผ๋ฐ ์ธ์ ID์ ๋นํด ์ด์ ์ด ์์ต๋๋ค.
[...] ์์ CORS์ ๋ํด ์ธ๊ธํ์ ๋ ์ฟ ํค์ ํจ๊ป ์ฌ๋ฌ ๋๋ฉ์ธ์ ์ฌ์ฉํ๋ ๊ฒ์ ์ด๋ ค์์ ๋ช ์์ ์ผ๋ก ์ง์ ํ๋ ๊ฒ์ด ๋ ๋์์ ๊ฒ์ ๋๋ค. ๋ฌผ๋ก ์์ผ๋์นด๋ ๋๋ฉ์ธ์ ์ค์ ํ ์ ์์ง๋ง ์ถฉ๋ถํ ๋ค๋ฅธ ๊ฒฝ์ฐ ๊ธฐ์กด ์ธ์ ์ฟ ํค๊ฐ ๋น ๋ฅด๊ฒ ๋ค๋ฃจ๊ธฐ ์ด๋ ค์์ง๋๋ค.
์ด๊ฒ์ ๋ํ ์์ ๊ณผ ์์ ํ ์ง๊ตํฉ๋๋ค. ์ด๊ฒ์ ์์ ํ ์๋ณ์๊ฐ ์ธ์ ๋ฐ์ดํฐ๋ฅผ _ํฌํจ_ํ๋์ง ์ฌ๋ถ๊ฐ ์๋๋ผ ์๋ณ์๋ฅผ _์ ์ฅ_ํ๋ ์์น์ ๊ดํ ๊ฒ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ค์, ๋ณด์ ์ํ .
๊ทธ๋ฌ๋ JWT์ ์ฌ์ฉ์ ์ธ์ฆ๋ ์ธ์ ์ ์์์ ์ผ๋ก์ ๋์ฑ ๋๋๋ฌ์ง ๊ฒ์ ๋๋ค.
๊ทธ๋ฆฌ๊ณ ๊ทธ ๋๋๋ฌ์ง ์ฌ์ฉ์ ๋ฌด์ง์ ๊ณผ๋ ๊ด๊ณ ์ ๊ธฐ๋ฐ์ ๋๊ณ ์์ผ๋ฉฐ ๋ง์ ๋ณด์ ๋ฌธ์ ๋ฅผ ์๋ฐํ๊ธฐ ๋๋ฌธ์ ๊ทธ๊ฒ์ด ์ ๋ฅผ ํฌ๊ฒ ์ฐ๋ คํฉ๋๋ค. ์ด๊ฒ์ ์ค์ํ ํํด์ ๋๋ค.
๊ทธ๋์ ์ฐ๋ฆฌ๋ ์ค๋ซ๋์ ์ธ์ ์ฟ ํค๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ๋ฌด์ํฉ๋๋ค.
๋๋ ๊ทธ๋ฐ ์ข ๋ฅ์ ๋ง์ ํ ์ ์ด ์์ต๋๋ค. ์ธ์ ๊ด๋ฆฌ์์ JWT๊ฐ _๊ฐ๊ด์ ์ผ๋ก ์ด๋ฑํ ์ด์ ์ ๋ํด ๋ช ๊ฐ์ง _๋งค์ฐ__๋ช ํํ ์ด์ ๋ฅผ ์ ๊ณตํ์ต๋๋ค.
๋๋ฉ์ธ ๊ฐ์ ์ฟ ํค๋ฅผ ๊ณต์ ํ ์ ์๋ ๊ฒฝ์ฐ์๋ง JWT์ ๋ํด ๋ฐฐ์ฐ๊ณ ์ฌ์ฉํฉ๋๋ค.
์ด ๊ฒฝ์ฐ ๋ณด์ ๋ฌธ์ . ์ฟ ํค๋ _์ ํ ์ฌํญ์ด ์๋๋๋ค_.
๋๋ ํ์ฌ API์ ์ก์ธ์คํด์ผ ํ๋ ๊ฒฝ์ฐ
์ธ์ ๊ณผ ๊ด๋ จ์ด ์์ต๋๋ค.
๋๋ ์๋ฒ๋ฅผ ํ์ธํ์ง ์๊ณ ๋ง๋ฃ๋ฅผ ๊ฒฐ์ ํ ์ ์์ด์ผ ํฉ๋๋ค.
์๋ฒ๊ฐ ์ธ์ ์ ๋ช ์์ ์ผ๋ก ๋ฌดํจํํ๋ ๊ธฐ๋ฅ์ ์ ์งํด์ผ ํ๊ธฐ ๋๋ฌธ์ ๋ถ๊ฐ๋ฅํฉ๋๋ค. ์ฌ์ฉ์๊ฐ ๋น๋ฐ๋ฒํธ๋ฅผ ๋ณ๊ฒฝํ๊ฑฐ๋ ๋ค๋ฅธ ์ธ์ ์ ๊ฐ์ ๋ก ๋ซ์ ๋.
๋๋ ๋ชจ๋ฐ์ผ ์ฅ์น ๋ฑ์ ์ฌ์ฉ์ ๋ก๊ทธ์ธ ์๊ฒฉ ์ฆ๋ช ์ ์ ์ฅ์ ๋ํด ์ง๋ฌธํ์ญ์์ค.
์ฟ ํค. ์๋ฃ.
์์ ๊ณ์ธต์ ์ธ์ ๋งค๋งค ์ฌ์ดํธ๋ฅผ ์ด์ํ์ง ์๋ ํ ์ํ ๋น์ ์ฅ ํ ํฐ์ ์ด์ ์ ๋ฌด์๋ฏธํ ๊ฒ์ผ๋ก ๊ณผ์ํ๊ฐํ๋ ๊ฒ์ ์ณ์ง ์์ต๋๋ค. ์๋ก์ด ์ํ ๊ณ์ธต์ ๋์ ํ์ฌ ๋ฌธ์ ๋ฅผ ๋ณต์กํ๊ฒ ๋ง๋ค๋๋ผ๋ ์๋ฒ์์ ์ธ์ ์ ๋ถ๋ฆฌํ๋ฉด ๋ง์ ์ด์ ์ด ์์ต๋๋ค.
๊ทธ๋ฌ๋ ๋น์ ์ ๋ด๊ฐ ์์ง ๋ค๋ฃจ์ง ์์๊ณ ๋ด ๊ฒฐ๋ก ์์ ๊ณ ๋ คํ์ง ์์ ๊ฒ๋ค์ ๋ํด ์ธ๊ธํ์ง ์์์ต๋๋ค. ์ฃ์กํฉ๋๋ค. ๊ทธ๋ฌ๋ ๋น์ ์ ์๋ก์ด ์ ๊ทผ ๋ฐฉ์์ ์ํด ์๋ก์ด ์ ๊ทผ ๋ฐฉ์์ ์นํธํ๊ณ ์์ผ๋ฉฐ ๋ค๋ฅธ ์ ๊ทผ ๋ฐฉ์์ _๊ฐ๊ด์ , ๊ธฐ์ ์ ์์ฑ_์ ์์ ํ ๋ฌด์ํ๊ณ ์์ต๋๋ค.
๊ทธ๊ฒ์ด "๊ณผ๋ ๊ด๊ณ "๋ผ๊ณ ๋ถ๋ฆฌ๋ ๊ฒ์ด๋ฉฐ ๋งค์ฐ ํด๋กญ์ต๋๋ค.
Stateless: ์ฑ์ด ์คํ๋ผ์ธ์ผ๋ก ์๋ํ๊ณ ์ด๋ค ์ข ๋ฅ์ ์๋ฏธ๋ฅผ ์ ์งํด์ผ ํ ๋ ์ค์ํฉ๋๋ค.
์คํ๋ผ์ธ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ธ์ฆ์ด _์ ํ_ ํ์ํ์ง ์์ต๋๋ค. ์ ์์ ๋ค๋ฅธ ์์คํ ๊ณผ์ ์ํธ ์์ฉ์ ์์ต๋๋ค.
๊ต์ฐจ ๋๋ฉ์ธ ์๊ฒฉ ์ฆ๋ช ์ธ์ฆ: ์ฌ๋ฌ ์๋ฒ๋ฅผ ์ฌ์ฉํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง์ดํฌ๋ก์๋น์ค๋ก ๋ถํ ํ๋ ๊ฒฝ์ฐ ์ค์
์ณ์. ๊ทธ๋ฌ๋ ์ด ๊ฒฝ์ฐ JWT๋ฅผ _์ธ์ ๋ฉ์ปค๋์ฆ์ผ๋ก_ ์ฌ์ฉํ์ง ์๊ณ ์ธ์ ์ ๋ํด _๊ตํ_ํ ์ ์๋ ์ผํ์ฉ ํ ํฐ์ผ๋ก ์ฌ์ฉํฉ๋๋ค. ์ด ๋ ์ฌ์ด์๋ ๋งค์ฐ ํฐ ์ฐจ์ด๊ฐ ์์ผ๋ฉฐ ๊ทธ๊ฒ์ด ์ ์ํ๋ ์ ์ถฉ์์ด ์์ต๋๋ค.
( ํธ์ง : ๋ฌผ๋ก ์ด๊ฒ์ _stateful_ ๋ง์ดํฌ๋ก ์๋น์ค๋ฅผ ๊ฐ์ ํ๊ณ 'stateful'์ ์ฌ์ฉํ๋ฉด ์ธ์ ์ด ์๋๋ผ ์๋น์ค ์์ฒด๋ฅผ ์ฐธ์กฐํ๋ _์ ๋๋ค. ์ํ ๋น์ ์ฅ ์์ ์ ์ํํ๋ ๋ง์ดํฌ๋ก ์๋น์ค์ ๊ฒฝ์ฐ ์ธ์ ์ ์ ํ ์ฌ์ฉํ์ง ์๊ณ _์ผํ์ฉ ํ ํฐ์ผ๋ก ์ถฉ๋ถํฉ๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ์๋ฒ์์ ์ผํ์ฉ ํ ํฐ์ ๋ฐํํ๋ ๊ฒฝ์ฐ ๋ง์ดํฌ๋ก ์๋น์ค์ ํต์ ํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์๋ฒ์ ๊ฒฝ์ฐ JWT๋ ๊ด์ฐฎ์ต๋๋ค. ์ฌ๊ธฐ์ "์ธ์ "์ด๋ผ๋ ๊ฐ๋ ์ด ์์ผ๋ฉฐ ์๋ช ํค๋ฅผ ๋ณ๊ฒฝํ์ฌ ํ ํฐ ํด์ง๋ฅผ ์ํํ ์ ์์ต๋๋ค.)
JWT์ ์ ์ฉ์ฑ์ ๊ณ์ ๊ฑฐ๋ถํ ์ ์์ต๋๋ค.
๋ค์ ๋งํ์ง๋ง, ๋๋ ๊ทธ๋ฐ ์ผ์ ํ์ง ์์ต๋๋ค. ์ด๊ฒ์ ์ ์ ์ผ๋ก ๋น์ ์ ๋ง์์ ๋๋ค.
๋ด๊ฐ ๋ ์์ธํ ์ ๋ณด๋ฅผ ์ ๊ณตํ๋ ค๊ณ ํ ๋ ๋น์ ์ ๋ด ์ฌ๊ฑด์ ๋ถ์ ์ ํ๊ฑฐ๋ ๋์ ๊ดํ์ผ๋ก ์น๋ถํฉ๋๋ค. ์ ์๊ฐ์๋ ๊ทธ๋ ๊ฒ ์๋ชป๋์์ต๋๋ค.
๊ทธ๋ฐ ๋ค์ "๊ทธ๊ฒ ํ๋ฆฌ๋ค!"๋ผ๊ณ ๋งํ๋ ๊ฒ์ด ์๋๋ผ _์_ ์๋ชป๋ ๊ฒ์ธ์ง ์์ธํ ์ค๋ช ํด ์ฃผ์๊ธฐ ๋ฐ๋๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ด๊ฐ ๊ทธ๊ฒ์ ์ก๋ฉด ๊ทธ๋๋ก ๋ฐ์๋ค์ด๊ธฐ๋ฅผ ๊ธฐ๋ํ์ญ์์ค. ๋๋ ๋น์ ์ด ์ ํํ๊ฒ ์ด ์ด์ ์ ๋ํด ์ ๊ณตํ๋ ๋ชจ๋ ์์ ์ ๊ตฌ์ฒด์ ์ผ๋ก ์ธ๊ธํ๊ณ ์์ต๋๋ค.
iOS ๋ก๊ทธ์ธ ์ธ์ ์ ๊ด๋ฆฌํ๊ธฐ ์ํด ์ฟ ํค์ ์์กดํ๋ ๊ฒ์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ต์์ ์๋ฃจ์ ์ด ์๋๋๋ค.
์์?
์ฟ ํค๊ฐ ์ค์ฉ๋ ์ ์์ต๋๋ค.
๋น๋ง์ ๋๋ค. ์ค์ฉ _์ด๋ป๊ฒ_? ๊ทธ๋ฆฌ๊ณ ์ด๊ฒ์ด ์ด๋ป๊ฒ Local Storage์ ์ ์ฅ๋ ๊ฐ์ ์ ์ฉ๋์ง ์์ต๋๊น? "์ฟ ํค"๊ฐ ์ธ์ ๋ฉ์ปค๋์ฆ์ด ์๋๋ผ ์ ์ฅ ๋ฐฉ๋ฒ์ด๋ผ๋ ์ ์ ๊ฐ์ํ ๋ ์ด๊ฒ์ด JWT์ _์ ํ_ ๊ด๋ จ์ด ์์ต๋๊น? "JWT ๋ ์ฟ ํค"๋ฅผ ๋น๊ตํ๋ ๊ฒ์ ์ฌ๊ณผ์ ์ค๋ ์ง๋ฅผ ๋น๊ตํ๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ค์ ์ฌ์ง์ด ๊ฐ์ ๋ถ๋ฅ๊ฐ ์๋๋๋ค!
์ธ์ ๊ด๋ฆฌ๋ฅผ ์ํ JWT์ ์ฌ์ฉ์ ์ฟ ํค ์ธ์ ๊ณผ ๋ค๋ฅด๋ฉฐ ์์ฑ์ด ๋ค๋ฆ ๋๋ค. ์ด๊ฒ์ ์ด๋ฑํ์ง ์์ง๋ง ์ ์ ํ ์๋ฃจ์ ์ ์ค๊ณํ๋ ๋ฐ ์์ด ๋ค๋ฅธ ์ด์ ๋งค๊ฐ๋ณ์ ๊ธฐ์ค์ ๊ฐ์ง ๋ฟ์ ๋๋ค. ์ฟ ํค๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ์ฟ ํค๋ฅผ ์ฌ์ฉํ์ญ์์ค. - ์๊ตฌ ์ฌํญ์ ์ถฉ์กฑํ๋ ๊ฒฝ์ฐ ์ฟ ํค๋ฅผ ์ฌ์ฉํ์ญ์์ค. - ๋ค๋ฅธ ์ฌ๋์ด ๋ค๋ฅธ ์ ๊ทผ ๋ฐฉ์์ ๊ณ ๋ คํ์ง ๋ชปํ๋๋ก ํ๋ ์ด์ ๋ ๋ฌด์์ ๋๊น?
๋ ์๋์์. JWT๊ฐ ์ฌ๋ฐ๋ฅธ ์๋ฃจ์ ์ธ ๊ฒฝ์ฐ _๋งค์ฐ ๋ช ํํ๊ฒ_ ํ์๋ ์์ธ๊ฐ ์์ต๋๋ค. ๋๋ ๋ํ JWT๊ฐ ๋ฒ์ฉ ์ธ์ ๋ฉ์ปค๋์ฆ
์๊ตฌ ์ ์ฅ์๊ฐ ์๋ ์น ์๋ฒ์ ๋ํด ์ธ์ฆํ๋ ๋ฐ๋ง ๊ฐ์น๊ฐ ์๋ ๋ก๊ทธ์ธ ์ธ์ ์ ๊ฐ๋ ์ ๋์ผํ JWT์ ์ ํจ์ฑ์ ๊ฒ์ฌํ๊ณ ์ ์ฟ ํค๋ฅผ ๋ง๋ค ํ์๊ฐ ์๋ ๋์ฒด ๊ณต๊ธ์๊ฐ ์ ๊ณตํ๋ ์ผ๋ถ ๋ฐ์ดํฐ ์๋น์ค๋ฅผ ์ํ ์ ์๋ค๋ ์ฌ์ค์ ๋ฌด์ํฉ๋๋ค. . ์ด๊ฒ์ ์ด๋ค ๋ฉด์์ ์ธ์ ๊ณผ ๊ด๋ จ์ด ์๋์???
๋ค๋ฅธ ๋ชฉ์ ์ผ๋ก JWT์ ์ธ์ ์ _๋ชจ๋_ ์ฌ์ฉํ ์ ์๋ ์ด์ ๊ฐ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ด๋ฅผ ์ํด ๋ชจ๋ ๊ฒ์ ๋จ์ผ ๋ฉ์ปค๋์ฆ์ผ๋ก ๊ตฌ๋ถ๋ฆฌ๋ ค๋ ๊ฒ์ _์์ ํ_ ์๋ชป๋ ๊ฒ์ ๋๋ค. ์ ์ ํ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ญ์์ค. "์ ์ฟ ํค๋ฅผ ์์ฑํ ํ์๊ฐ ์์"์ ์์ ํ ์์์ ์ธ ์ธก์ ๊ธฐ์ค์ด๋ฉฐ ์ค์ ๋ก๋ ๊ทํ๊ฐ ์๋ฏธํ๋ ์ด์ ์ด ์๋๋๋ค.
๋ณด์ ๋ฌธ์ ๊ฐ ๋ณด์ด๋ฉด ์ด๋ฅผ ์๋ณํ๊ณ ํ๋๊ทธ๋ฅผ ์ง์ ํ์ญ์์ค. ์ด๋ฌํ ๋ฌธ์ ๋ ๋์ ๋์ง ์์ ์ ์์ง๋ง ๊ฒฐ์ ์ ๋ด๋ฆด ๋ ์์๋๋ฉด ์ ์ฉํ ์ ์์ต๋๋ค. ๋น์ ์ ์ธ์ ์ฟ ํค๊ฐ ๋ชจ๋ http ์ฑ์ ์ฌ์ฉ๋์ด์ผ ํ๋ค๊ณ ๊ณ์ ์ฃผ์ฅํ๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ์ธ์ ํ์ง ์๊ฑฐ๋ ๊ฐ๋ฅ์ฑ์ ๊ณ ๋ คํ์ง๋ ์์ต๋๋ค.
๋ค์. ์๋๋ค. ๋๋ ๋งํ๋ค. ๋ด ์ ์ ๋ง ์ข ๊ทธ๋ง ๋ฃ์ด.
์ํธ ๋ณ๊ฒฝ ์ ์ข ๋ฃ์ ๊ฐ์ ํน์ ๊ท์น์ ์ ์ฉํ๊ฑฐ๋ ์๋น์ค ์ ํ์ ๊ด๋ฆฌํ๊ธฐ ์ํ ์ธ์ ์ ์ญํ ์ ๋ํด ์ธ๊ธํ ์๋ ์ธ์ ์ฟ ํค์ ๋ด์ฅ ๊ธฐ๋ฅ์ด ์๋๋ผ ์ด ์ ๊ทผ ๋ฐฉ์์์ ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉ๋๋ ๊ธฐ๋ฅ์ผ ๋ฟ์ ๋๋ค.
์ด๋ ๊ตฌ์กฐ์ ์ผ๋ก ์ผ์ข ์ ์ํ ์ ์ฅ ์ธ์ ์ _ํ์๋ก ํ๋_ ๊ธฐ๋ฅ์ ๋๋ค. ๋๋ ์ด๊ฒ์ด ์ธ์ ์ฟ ํค์ ์ํด ์ ๊ณต๋๋ค๊ณ ์ฃผ์ฅํ๋ ๊ฒ์ด ์๋๋๋ค. ๋๋ ๊ทธ๊ฒ์ด ๋ฌด์ํ ํ ํฐ์ผ๋ก _๋ถ๊ฐ๋ฅ_ํ๋ค๊ณ ์ฃผ์ฅํ๊ณ ์์ต๋๋ค.
์๋ฃจ์ ์ด ์ธ์ ์ ์๋ช ๋์ ๋ฆฌ์์ค์ ์ก์ธ์คํ๊ธฐ ์ํด db๋ฅผ ํ์ธํ์ง ์๊ณ ์ธ์ฆ๋ ์ก์ธ์ค๋ฅผ ์ ๊ณตํ๋ ๊ฒ์ด ๋งค์ฐ ํธ์ํ๋ค๋ฉด ์ด๊ฒ์ด ์ด ์ ๊ทผ ๋ฐฉ์์ ์คํจ๋ผ๊ณ ์ฃผ์ฅํ๋ ์ด์ ๋ ๋ฌด์์ ๋๊น?
๋ค์ ๋งํ์ง๋ง, ๋ด๊ฐ ๋งํ ๊ฒ์ด ์๋๋๋ค.
ํน์ ์ปจํธ๋กค(์ข ๋ฃ ๊ฐ๋ฅํ ์ธ์ ์ด ํ์ํ ๊ฒฝ์ฐ)์ด ํ์์ ๋ฐ๋ผ ๋์ ๋ ์ ์๋ค๊ณ ์ ์ํ ๋ ์ฟ ํค์๋ ๋ค๋ฅธ ์ ๊ทผ ๋ฐฉ์์ ์๋ํด์๋ ์ ๋๋ ๋ด์ฅ๋ ๊ธฐ๋ฅ์ด ์๋ค๊ณ ์๋ตํฉ๋๋ค. ์ด๋ฌํ ์ข ๋ฅ์ ์ ์ด๋ฅผ ๊ตฌํํ๋ ๊ฒ์ ์ฟ ํค์ ๋ํ JWT ์ธ์ฆ ์ธ์ ์ ๋ฐฐ์ ํ๋ ๊ฒ๊ณผ ๊ฐ์ ์ฌ๊ฐํ ์ค๋ฒํค๋๊ฐ ์๋๋๋ค.
์์ ์ ์ค๋ฒ ํค๋๊ฐ ์๋๋๋ค. ์์ ์ ์ ์๋ํ๋ ๊ฒ์ผ๋ก ์๋ ค์ง ๊ฒ์ฆ๋ ์๋ฃจ์ ์ ์ฌ์ฉํ๋ ๊ฒ ์ ๋๋ค. ์์ ์ ๋ณด์์ ๋ค์ ๊ตฌํํ๋ ๊ฒ์ _์ด๋ค_ ์ํฉ์์๋ ๋์ฐํ ์๊ฐ์ด๋ฉฐ, ์ฌ๊ธฐ์๋ ์ด๋ฌํ ์ํฉ์ด ํฌํจ๋ฉ๋๋ค.
์ฟ ํค์ ๋ํ ์์ฒญ ์๋ฅผ ๋ฌด์ํ๊ณ ์ ์ผํ ์ฑ๋ฅ ๊ณ ๋ ค ์ฌํญ์ ์กฐํ๋ผ๊ณ ์ ์ํฉ๋๋ค. ์๋ก ๊ณ ์นจ ๋ฑ์ ์กฐ์ ํ๊ณ ..์ ์์กดํด์ผ ํ๋ ํ์์ฑ์ ์ ๊ฒฝ์ฐ์ง ๋ง์ธ์... (์ฌ๊ธฐ์ ํฌ๊ธฐ)
๋ฌด์จ ์๊ธฐ๋ฅผ ํ๋ ๊ฒ๋๊น? ์ฟ ํค "์๋ก ๊ณ ์นจ"์ ์ ์ฟ ํค๋ฅผ ์ ์กํ์ฌ HTTP ์๋ต์์ ์ธ๋ผ์ธ์ผ๋ก ์ฒ๋ฆฌ๋ฉ๋๋ค. Redis ์์ ์์ ์ด๋ฏธ ๋ค๋ฃฌ ์ธ์ ์ ์ฅ์๋ฅผ ์ ๋ฐ์ดํธํ๋ ๊ฒ ์ธ์ ์ถ๊ฐ๋ก ๊ด๋ จ๋ ๊ฒ์ ์์ต๋๋ค. ๋ค๋ฅธ ์ฑ๋ฅ ๊ณ ๋ ค ์ฌํญ์ด ์๋ค๊ณ ์๊ฐ๋๋ฉด _ ๋์ดํ์ญ์์ค_.
์ฟ ํค๊ฐ ๋๋ฉ์ธ์ผ๋ก ์ ํ๋์ด ์๊ณ ๋๋ฉ์ธ ๊ฐ ์ฌ์ฉ์ ํ์ฉํ๋ฉด ์ฟ ํค ์ฌ์ฉ์ ๋ฐฉํดํ๋ ๋ณด์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค๊ณ ์๊ฐํ ์ ์์ต๋๋ค. ๊ด์ฐฎ์ต๋๋ค. ์ ๋ ๊ทธ๋ ์ง ์์ต๋๋ค.
๋ค์ ๋งํ์ง๋ง, ๋ด๊ฐ ๋งํ ๊ฒ์ด ์๋๋๋ค.
JWT๋ ๋ค์์ผ๋ก ๋ชจ๋ ์ธ์ ์ฟ ํค๋ฅผ ๋์ฒดํ๋ ๊ฒ์ ์๋์ง๋ง ๋น์ ์ด ์ง์ ํ ๊ฒ์ฒ๋ผ (์ธ์ ์ ๊ด๋ฆฌํ๋ ๋ฐ ์ฌ์ฉ๋๋ ๊ฒฝ์ฐ) ์ฌ๊ฐํ ํ์ค์ค๋ฌ์ด ๊ฒ๋ ์๋๋๋ค.
์, ๊ทธ๋ ์ต๋๋ค. ์ธ์ ์ JWT๋ฅผ ์ฌ์ฉํ๋ ค๋ ์ ์ผํ ์ด์ ๋ ๋์์ด ๋ ๋์๊ฑฐ๋ ๋ถ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ด๋ฉฐ ์ด๋ _๋งค์ฐ_ ๋๋ฌธ ๊ฒฝ์ฐ์ ๋๋ค.
ํ์ํ ๊ฒฝ์ฐ ์ด ์ ๊ทผ ๋ฐฉ์์ ๋ํ ๋ค์ํ ๊ฐ์ ์ฌํญ๊ณผ ๊ธฐ์กด ์ธ์ ๊ธฐ๋ฐ ์ ๊ทผ ๋ฐฉ์๊ณผ ๋น๊ตํ์ฌ ์งํ์ ๋ณต์ก์ฑ์ ๋ํ ์ธ๊ธ ์์ด ๋ณด์์ ์ ๋์ ์ธ ๊ฒ์ผ๋ก ์ทจ๊ธํฉ๋๋ค.
์ ๋ ๋ณด์์ด ์ ๋์ ์ผ ๋๋ง ์ ๋์ ๋ณด์์ _is_ ์ทจ๊ธํฉ๋๋ค. ๋๋ ๋ํ ๊ทธ๊ฒ์ ํด๊ฒฐํ ์ ์๋ ๊ฐ๋ฅํ ๋ฐฉ๋ฒ์ ๋ค๋ฃจ์๊ณ _๊ทธ๋ฆฌ๊ณ _ ์ต์ข ๊ฒฐ๊ณผ๊ฐ ์ฌ์ ํ ๋ ๋๋นด๊ธฐ ๋๋ฌธ์ ์ธ์ ๊ณผ ๋น๊ตํ์ฌ ์ข์ ์๋ฃจ์ ์ด ์๋๋ผ๋ ๊ฒ์ ์ค๋ช ํ์ต๋๋ค. ๋ด๊ฐ ๋๋ฝ๋ ์ฌ๋ก๋ ์๋ฃจ์ ์ด ์๋ค๊ณ ์๊ฐ๋๋ฉด ์ธ๊ธํ์ญ์์ค. ์ค์ ๋ก ๋ฌด์์ธ์ง ์ค๋ช ํ์ง ์๊ณ "๋ค๋ฅธ ์ต์ "์ ๋ง์ฐํ๊ฒ ์์ํ์ง ๋ง์ญ์์ค. ์ง๊ธ ๋ด๊ฐ ๋งํ ์ ์๋ ํ, ๋น์ ์ ํ์ธ๋ฅผ ๋ถ๋ฆฌ๊ณ ์์ต๋๋ค.
๊ณผ์ฅ์ด ์๋ - ๋ฌด์ง์ ๊ทผ๊ฑฐํ ๊ฒ์ด ์๋๋ผ ๊ธฐ์ ์ด ์ ๊ณตํ ์ ์๋ ๊ฐ์ฅ ์๊ฒฉํ ๋ณด์์ ์ ๊ณตํ๋ ๊ฒ์ ๋ชฉํ๋ก ํ์ง ์๋ ์๋น์ค์ ๋ํด ๊ต์ฐจ ์ธ์ฆ์ด ํ์ํ ํ์ด๋ธ๋ฆฌ๋ ์ฑ์ ๊ตฌ์ถํ ๋ ์ ๊ธฐ์ ์ผ๋ก ์ง๋ฉดํ๋ ๋ฌธ์ ์ ๋ํ ์ ํจํ ์๋ฃจ์ ์ด๋ฉฐ ํ๋นํ ์ด์ ๊ฐ ์์ - ๋งค์ฐ ์ค์ฉ์ - ๋งค์ฐ ๊ด๋ฒ์ํจ ์ฑํ - ๋ชจ๋ ๊ฒ์ ์ฐ๋ ๊ธฐ๋ก ๋ง๋ค์ง ์์ต๋๋ค.
๋น์ ์ ์ฃผ์ฅ์ ๋ฐ๋ณตํ๋ค๊ณ ํด์ ๋ ์ด์ ์ฌ์ค์ด ๋๋ ๊ฒ์ ์๋๋๋ค. ๋๋ ์ด๊ฒ์ด ์ ๊ฑฐ์ง์ธ์ง ์ด๋ฏธ ๋ค๋ฃจ์๊ณ ๊ณผ๋ ๊ด๊ณ ๋ฅผ ์ด์ ๋ก ๋ณด์์ ํํํ๋ ๊ฒ์ ์ฉ๋ฉ
์ฟ ํค๊ฐ ์ ๊ณตํ๋ ๊ฒ๋ณด๋ค ๋ ์ธ๋ฐํ๊ฒ ์ธ์ ์ ์ ์ดํ ์ ์๋ ์ ์ฐ์ฑ์ด ์๋ ์ฐ๋ฆฌ ์ค ์ผ๋ถ์๊ฒ๋ ๋ ํฐ ์ ์ฐ์ฑ์ ์ ๊ณตํฉ๋๋ค. ์ฌ์ฉ ์ฌ๋ก๊ฐ ๋ณด์ด์ง ์์ผ๋ฉด ๊ด์ฐฎ์ต๋๋ค. ๋น์ ์ด ์ ์ํ๋ ๋ช ๊ฐ์ง ์์ ์ ๋ํ ๋ฐ๋ก ์ ๋๋ณด๋ค ๋ ์ ํํํ ์ ์์ ๊ฒ์ ๋๋ค.
"๋ ํฐ ์ ์ฐ์ฑ"์ _is_ ์์ต๋๋ค. ๋ค์ ๋งํ์ง๋ง, ์๋ค๊ณ ์๊ฐ๋๋ฉด ๋ฐฉ๋ฒ์ ์ค๋ช ํ์ญ์์ค.
์ด์จ๋ - ๋น์ ์ ๋๋ณด๋ค ํจ์ฌ ๋ ์ ์ฐฝํ๊ณ ๋น์ ์ ์ ์ฅ์์ ๋ถ๋ช ํ ํ๋ค๋ฆฌ์ง ์์ต๋๋ค.
์๋์. ๋๊ตฐ๊ฐ๊ฐ ๋ด ๊ฒฌํด๋ฅผ ๋ฐ๊พธ๊ณ ์ถ๋ค๋ฉด ๊ฒฌ๊ณ ํ๊ณ ์ ๋ ผ์๋๊ณ ๊ธฐ์ ์ ์ผ๋ก ์ฌ๋ฐ๋ฅธ ์ฃผ์ฅ์ ํด์ฃผ๊ธฐ๋ฅผ ๊ธฐ๋ํฉ๋๋ค. ๋น์ ์ ๊ทธ๋ ๊ฒํ์ง ์์์ต๋๋ค.
๋ด๊ฐ ๋ง์ง๋ง์ผ๋ก ์ ๊ทผ ๋ฐฉ์์ ๋ํด ๊ทธํ ๋ก ๋์ง๊ธด ์ ์ฐฉ์ ๊ฐ๊ณ ์์๋ ๊ฒ์ ๋๊ตฐ๊ฐ ๋ค์ด์ ์คํธ ์ธ์ฆ์ด ์ธ์ ์ฟ ํค๋ก ๋์ฒด๋์ด์๋ ์ ๋๋ค๊ณ ์ฃผ์ฅํ์ ๋์์ต๋๋ค.
... ๊ทธ๋ฆฌ๊ณ ๊ทธ๊ฒ์ ๊ทธ๋ฌํ ์ค๋ฅ์ ์๋ฒฝํ ์๊ฐ ๋ ๊ฒ์ ๋๋ค.
๊ฒฐ๋ก ์ ๋น์ ์ ์ง์ ์ ์ ๋ฐ์ด ๋ด๊ฐ ๊ฒฐ์ฝ ๋งํ์ง๋, ์์ํ์ง๋, ์๋ํ์ง๋ ์์ ๋ง์ ๋ด ์ ์ ๋ฃ๊ณ ์๋ค๋ ๊ฒ์ ๋๋ค. ๋๋จธ์ง ์ ๋ฐ์ ๋ณด์์ ๋ถํ์ํ ํํ์ ์ฃผ์ฅํ๊ฑฐ๋ ๋ ์ด์ ์ธ๊ธํ์ง ์๊ณ "๋ค๋ฅธ ์ด์ " ๋๋ "๋ค๋ฅธ ์๋ฃจ์ "์ด ์๋ค๊ณ ์์ผ๋ก ํ๋๋ ์ฃผ์ฅ์ ํฉ๋๋ค.
์์งํ ๋งํด์, ๋๋ ์ด๊ฒ์ ์ง์ณค์ต๋๋ค. ๋๋ ์ด ํ ๋ก ์ด ๊ฑด์ค์ ์ธ ๋ฐฉํฅ์ผ๋ก ๊ฐ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ง ์์ผ๋ฉฐ, ๊ทธ๊ฒ์ ์ค์ ํ๋ฆฌ๊ฒ ๋ง๋ค๊ณ ์์ต๋๋ค. ๋ด๊ฐ ๊ณ์ ์๋ตํ๋ ์ ์ผํ ์ด์ ๋ ์ฌ๋๋ค์ด ๋น์ ์ ๋ ผ๊ฑฐ๊ฐ ์๋ ๊ฒ์ผ๋ก ์ธํด ์๋ชป๋ ์ ๋ณด๋ฅผ ๋ฐ์ ์ํ์ด ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
JWT๊ฐ ๊ทธ ๊ฐ๋ ์ ๋ท๋ฐ์นจํ๋ ๊ธฐ์ ์ ๋ ผ๊ฑฐ๊ฐ ์์์๋ ๋ถ๊ตฌํ๊ณ ๊ณ์ํด์ ์ฑ๋ฐฐ๋ผ๊ณ ๋ฏฟ๊ณ ์ถ๋ค๋ฉด ๊ทธ๊ฒ์ด ์ ํ์ ๋๋ค. ๊ทธ๋ฌ๋ _์ค์ ๊ธฐ์ ์ ๋ ผ๊ฑฐ๋ฅผ ์ ์ํ๊ณ ๋์ผํ ์ฃผ์ฅ์ ๊ณ์ ๋ฐ๋ณตํ์ง ์๋ ํ _๋๋ฅผ ์ค๋ํ์ง ๋ชปํ ๊ฒ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ค์๋ ๋๊ตฌ์๊ฒ๋ ๋์์ด ๋์ง ์์ ๊ฒ์ ๋๋ค.
์ ์ฒด ํ ๋ก ์ ํ์ด๋ณด๋ ์ฌ๋๋ค์ ์ํด ์ ์์ ์ ์์ฝํ์๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
(๊ทธ๋ฐ๋ฐ Reddit์ ์ํ ์ ์ฅ ์ธ์ ์ ์ฌ์ฉํฉ๋๋ค.)
์ด ๋ฆฌํฌ์งํ ๋ฆฌ์ ๋ชฉ์ ์ ๋ชจ๋ฐ์ผ ํ์ด๋ธ๋ฆฌ๋ SPA ๊ตฌํ์ ์ํ ๊ธธ์ ๋ฆ๋ ๊ฒ์ด๋ฉฐ ์ฟ ํค ์ธ์
์ ๋์ฒดํ๊ธฐ ์ํด JWT๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ผ๋ฐ์ ์ด๊ณ ๊ฑฐ์ ํ์ค์ ์ธ ์ ๊ทผ ๋ฐฉ์์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
์ด์ ๋ํ ๋์ธ ์ค ํ๋๋ SPA๊ฐ ์ค์ ๋ก ์๋ก ๋ค๋ฅธ ํ๋ซํผ์ ์ฌ๋ฌ ๋๋ฉ์ธ์ ์๋ ๋ง์ดํฌ๋ก ์๋น์ค์ ๋ํ ์ก์ธ์ค๋ฅผ ์๊ตฌํ ์ ์๋ ๊ฒฝ์ฐ ์ฟ ํค๊ฐ ๋๋ฉ์ธ์ ๋ฐ์ธ๋ฉ๋๋ ๋ฌธ์ ์
๋๋ค. JWT๋ ์ด๋ฌํ ๋งฅ๋ฝ์์ ์ฟ ํค์ ํ๊ณ์ ๋ํ ๊น๋ํ ์ ๊ทผ ๋ฐฉ์์
๋๋ค. OAUTH ๋๋ OAUTH2 ์ ๊ทผ ๋ฐฉ์์ ์ฌ์ฉํ๋ฉด ๋ณด์ ๊ด์ ์์ ๋ ๊ฐ๋ ฅํ์ง๋ง ๋ง์ ์ ํ๋ฆฌ์ผ์ด์
์ ํ์ํ์ง ์์ ์ ์๋ ๋ณต์ก์ฑ์ด ๋์
๋ฉ๋๋ค. AUTH ํ ํฐ ํ์์ ์์กดํ์ง ์๋ JWT ์ ๋ฌ์ ์ธ์
์ JWT์ ์ค์ฉ์ด ์๋๋ผ ๋จ์์ฑ์ ์ป๊ธฐ ์ํด ๊ทธ๋ฆฌ๊ณ ๋ ๋ง์ ๋ณด์์ด ์ ๊ณตํ๋ ์ถ๊ฐ ๋ณด์๋ณด๋ค ๋น ๋ฅธ ๊ตฌํ์์ ๋ ๋ง์ ๊ฒ์ ์ป์ ์ ์๋ ์ ํ๋ฆฌ์ผ์ด์
์ ์ํด ๋ ์์ ํ ์ ๊ทผ ๋ฐฉ์์ ์ ์ฉํ๋ ๊ฒ์
๋๋ค. ๊ฐ๋ ฅํ ์ ๊ทผ ๋ฐฉ์. ์ ์ํ ๊ตฌํ์ ๊ฐ์ํํจ๊ณผ ๋์์ ๋ค๋ฅธ ์ ๊ทผ ๋ฐฉ์๋ณด๋ค ์ผํ์ฉ ํ ํฐ์ผ๋ก ๋ ๋ช
ํํ ๋ง์ด๊ทธ๋ ์ด์
๊ฒฝ๋ก๋ฅผ ์ ๊ณตํฉ๋๋ค.
์ธ์
์ฟ ํค๋ฅผ ๋์ฒดํ๊ธฐ ์ํด JWT Bearer ํ ํฐ ํค๋๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๋ํ ์ผ๋ถ ๋ฐ๋ฐ๊ณผ ๋นํ์ ์ค์ ๋ก ์ผ๋ถ ์ฌ๋๋ค์ด ์ฟ ํค๋ฅผ ๋ณด๋ค ๊ด๋ฒ์ํ๊ฒ๋ ์ฟ ํค์ ๋ํ ์งํ ๋๋ ๊ฐ์ ์ผ๋ก ์ ์ํ๋ ๊ฒ์ ๊ธฐ๋ฐ์ ๋๊ณ ์์ง๋ง ์ฌ์ค์ด ์๋๋ผ๋ ๋ฐ ๋์ํฉ๋๋ค. ์ ์ฌ์ฉ ์ฌ๋ก์ ์ฟ ํค๋ฅผ ์ฌ์ฉํ์ฌ ์ ๊ทผํ๋ ๋ฐฉ๋ฒ์ ๊ณ ๋ คํ์๊ธฐ ๋ฐ๋๋๋ค.
์ธ์ฆ ์ธ์
๊ด๋ฆฌ๋ฅผ ์ํด JWT๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ์ฃผ์ํด์ ์ํํด์ผ ํ๊ณ ๊ฒฐํจ์ ๋ช
์ํด์ผ ํ์ง๋ง ์ปจํ
์คํธ์์ ํญ์ ์ฌ์ฉ๋๋ ์ธ๋ชจ์๋ ๊ณผ๋ ๊ด๊ณ ๋ก ๋ฌด์ํ๋ ๊ฒ์ ์คํด์ ์์ง๊ฐ ์๊ณ ์๋ชป๋ ๊ฒ์
๋๋ค.
JWT๋ฅผ ์ฌ์ฉํ๋ฉด ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์ ์ ์ํ ๋๋ง๋ค ์ฟ ํค๋ฅผ ์๋ก ๊ณ ์น ํ์๊ฐ ์์ต๋๋ค. ์ธ์
์ฟ ํค๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ฒ๋ผ ์ด ๊ฒ์ฌ๋ฅผ ํ์ฅํ๋ ๊ฒ์ด ์ฝ์ง๋ง ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๊ฒ์ฌํ์ง ์๊ณ ๋ ํฉ๋ฆฌ์ ์ธ ํ์ ์ ๊ฐ์ง ์ ์์ต๋๋ค.
JWT๋ฅผ ์ฌ์ฉํ๋ค๋ ๊ฒ์ ์ฟ ํค๊ฐ ์ฐจ๋จ๋ ํด๋ผ์ด์ธํธ๊ฐ ์จ๊ฒจ์ง ๊ฒ์๋ฌผ ๋ณ์ ๋ฑ์ ๋ฐฑํ๋ก ์ฌ์ฉํ๋๋ก ๊ฐ์ ๋ก ๋์ฒด๋์ง ์๋๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
์ฌ๋ฌ ์๋น์ค์์ JWT๋ฅผ ์ฌ์ฉํ๋ฉด ์ธ์ฆ์ด ํ์ํ์ง ์์ง๋ง JWT๋ก ๋ํ๋์ด ์ ๋ฌํ ์ ์๋ uid์ ๊ฐ์ ๊ฐ๋จํ ๋ฐ์ดํฐ ํ๋์ ์ ํจ์ฑ์ ๋ํ ์ผ๋ถ ํ์๋ฅผ ์ํ๋ ์๋น์ค๊ฐ ํ์ฉ๋ฉ๋๋ค.
JWT ์ ๊ทผ ๋ฐฉ์์ ๋ณด๋ค ์ ๊ตํ OAUTH ์ ๊ทผ ๋ฐฉ์์ ์ ํฉํฉ๋๋ค.
JWT REST ์์ฒญ์ ์๊ฒฉ ์ฆ๋ช
์ ๊ฒ์ํ๊ฑฐ๋ REST/SPA ๊ตฌํ์ ๋จ์ํํ ์ ์๋ ์๋น์ค์ ์ก์ธ์คํ๊ธฐ ์ ์ ์ฟ ํค ์์ฒญ์ ์๊ตฌํ์ง ์๊ณ ๋ง๋ค ์ ์์ต๋๋ค.
์ ๋ฌ์ ํค๋ ๋๋ ์ฟ ํค ํค๋๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๋ณด์๊ณผ ๊ด๋ จํ์ฌ ํฌ๊ฒ ๋ค๋ฅด์ง ์์ต๋๋ค. ๋ณด์์ด ๋ ๋์๋ค)
๋ชจ๋ฐ์ผ ์ ํ๋ฆฌ์ผ์ด์
๊ณผ ๊ฐ์ด ์ฅ๊ธฐ๊ฐ์ ๋ถ์ฌ๊ฐ ์ผ๋ฐ์ ์ด๊ฑฐ๋ ์์๋๋ ๊ฒฝ์ฐ ์ฟ ํค๋ JWT ์ ๊ทผ ๋ฐฉ์๋ณด๋ค ๋ ๋ฐ๋์งํ ์ ์์ต๋๋ค. ์๊ฒฉ ์ฆ๋ช
์์ฒด ๊ฒ์ฌ์ ๋ํ ๋ ๋ช
ํํ ๊ฒฝ๋ก๊ฐ ์์ผ๋ฉด ์๋ฒ์ ์ฒดํฌ์ธํ์ง ์๊ณ ๋ ๋์์ ์ฉ์ดํ๊ฒ ํ ์ ์์ต๋๋ค.
์คํ๋ผ์ธ ๊ธฐ๊ฐ์ด ๊ธธ์ด์ง ์ ์๋ ์ธ์
์ ๋ํ ์ฌ์ฉ ์ฌ๋ก๊ฐ ์์์ ์ธ์ ํ๋ฉด ์ธ์
์ด ๋ฐ๋์ ์ํ ์ ์ฅ์ด ๋์ง๋ ์์ต๋๋ค.
ํด๋ผ์ด์ธํธ์ ์๋ฒ์ ๊ด์ ์์ ์ธ์
์ด ์ฌ๋ฌ ์ํ๋ก ์ฑ๊ณต์ ์ผ๋ก ์กด์ฌํ ์ ์๋ค๋ ๊ฒ์ ๋ฐ์๋ค์ผ ์ ์๋ค๋ฉด ์๋ง๋ ์๋ฒ์ ์ฅ๊ธฐ๊ฐ ์ฐ๊ฒฐ๋์ง ์๋ ๊ธฐ๊ฐ์ ํฌํจํ๋ ์ฌ์ฉ ์ฌ๋ก์ ๋ ๊ฐ๊น์ด ๋ค๊ฐ๊ฐ ์ ์์ต๋๋ค(์: ์ผ๊ด ์
๋ฐ์ดํธ๋ฅผ ์ํด ์ฌ์ฉ์ ๋ฐ์ดํฐ ์์ง ์ฌ์ฐ๊ฒฐ ์). ์ธ์
์ด ๋ง๋ฃ๋์๊ณ ์๋ก ๊ณ ์นจ์ด ํ์ํ๋ค๋ ์ฌ์ค์ ์๊ณ ํด๋ผ์ด์ธํธ๊ฐ ๋ ํจ๊ณผ์ ์ผ๋ก ์๋ํ ์ ์๋ ๊ฒฝ์ฐ ๋ค๋ฅธ ๋ฐ์ดํฐ ๊ณ์ธต์ ๊ด๋ฆฌํ์ง ์์๋ ๋ฉ๋๋ค. ๋ํ ๋น๋ฐ๋ฒํธ๊ฐ ๋ณ๊ฒฝ๋ ํ์๋ JWT๋ฅผ ์ธ์
์ ํจ์ฑ ๊ฒ์ฌ๋ก ์ฌ์ฉํ ์ ์๋ค๋ ๊ฒ์ ๋ฐ์ดํฐ๊ฐ ๋น์ฆ๋์ค ๋ก์ง ๊ณ์ธต์ ์ ๋ฌ๋๊ณ ์์ฒญ์ ์๋ฝํ๋ ๋ฐฉ๋ฒ์ ๊ฒฐ์ ํ๋๋ก ํ๋ ๋ฐ ์ ์ฉํ ์ ์์ต๋๋ค.
๊ทํ๋ ์ฟ ํค๊ฐ ๋ธ๋ผ์ฐ์ ๋ฑ์ ๊ตฌํ์ ์์ํ๋ ๊ฒ์ผ๋ก ๊ฐ์ ํ๋ ์์ ํ๋ค๊ณ ๊ณ์ ๋ง์ํ์
จ์ต๋๋ค. ๋ธ๋ผ์ฐ์ ์ธ๋ถ์์๋ ์ฟ ํค๊ฐ ๋ณธ์ง์ ์ผ๋ก ๋ ์์ ํ ์ด์ ๋ฅผ ์์ง ๋ชปํฉ๋๋ค. ์์ธํ ์ค๋ช
ํ ์ ์์ต๋๊น?
SPA/ํ์ด๋ธ๋ฆฌ๋ ์ฑ์์ ์ฟ ํค์ ๋ํ ์์กด์ด ๋ฐ๋์ ์ ์ผํ ์์ ์์น๋ ์๋๋๋ค. ๋ธ๋ผ์ฐ์ ์์ ์ฟ ํค๋ฅผ ์ฒ๋ฆฌํ๋ ๊ฒ์ ์์กดํ๋ค๊ณ ํด์ ๋ค์ดํฐ๋ธ์ ๊ฐ๊น์์ง๋ ๊ฒ์ ์๋์ง๋ง UIWebView ๋๋ ๋ฌด์์ด๋ ์์กดํ๊ฒ ๋๋ฉฐ ์ ๋ ํญ์ ๊ทธ๋ด ๊ฒ์ด๋ผ๊ณ ํ์ ํ์ง ์์ต๋๋ค. ๋ด ์์๋๋ก ํ๋ํ์ญ์์ค.
ํ ํฐ์ ๋ฐ๋์ ์ ์ง๋์ง ์๊ณ ์ฑ์ ์คํ ์๋ช
๋์ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ง๋ ์ ์์ต๋๋ค. ์ด๋ ์ค์ ๋ก ์ฟ ํค์ ๋ฌด๊ฒฐ์ฑ์ ์์กดํ๋ ๊ฒ๊ณผ๋ ๋ค๋ฆ
๋๋ค. iOS์๋ ์ต์ํ ๋ธ๋ผ์ฐ์ ๋๋จธ์ ์กด์ฌํ๋ ์ ์ฅ ๊ถํ์ ๋ํด ๋ ์ธ๋ถํ๋ ์ ์ด๊ฐ ์์ต๋๋ค. ์ด๊ฒ์ ๋ธ๋ผ์ฐ์ ์คํ ๋ฆฌ์ง ์ ๊ทผ ๋ฐฉ์์ ๊ตฌ์๋๋ ๊ฒ๋ณด๋ค ๋ ์ ์ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ฟ ํค๋ ์ค์ ๋ก ์ ํ ์ฌํญ์
๋๋ค. ์ฟ ํค๋ง ์ฌ์ฉํด์ผ ํ๋ค๋ ๋ฒ์ ์์ต๋๋ค.
์๋ฒ์์ ์ธ์
์ ๋ถ๋ฆฌํ๋ ๊ฒ์ด ์ด๋ค ๊ฒฝ์ฐ์๋ ๋์ ๊ฒ์ผ ์ ์์ง๋ง ํญ์ ๊ทธ๋ฐ ๊ฒ์ ์๋๋๋ค. JWT ์ฌ์ฉ์ ํฌํจํ ํ๋์ ์ธ ์ ๊ทผ ๋ฐฉ์์ ์๋ก์ด ๋ฌธ์ ๋ฅผ ์ผ๊ธฐํ์ง๋ง ์๋ก์ด ์ ์ฐ์ฑ๋ ๊ฐ์ ธ์ค๊ณ ์ด๋ฌํ ์ ์ฐ์ฑ์๋ ๊ฐ์ฅ ๋์ ์ ๊ทผ ๋ฐฉ์์ด ํฌํจ๋์ง ์์ต๋๋ค.
๋ด ์
์ฅ์ ์์ฝํ์๋ฉด:
์ธ์ฆ ์ธ์
์๋ฃจ์
์ ์ผ๋ถ๋ก JWT๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์ธ์
์ฟ ํค๊ฐ ํญ์ ์ค์ํ ๊ฒ์ ์๋๋๋ค.
JWT๋ ์ด์ ์ ์๊ณ ์๊ณ ๋จ์ํ ๋ฌดํจํ๋ฅผ ์๊ตฌํ์ง ์๋ ์ด์ ๊ฐ ์๋ ๊ฒฝ์ฐ ์ธ์
์ ์ ํฉํฉ๋๋ค.
์ฟ ํค๊ฐ ์ ์ผํ ํด๊ฒฐ์ฑ
์ ์๋๋๋ค.
๋๊ท๋ชจ๊ฐ ์ํ ๋น์ ์ฅ ์ธ์
์ ์ ์ผํ ์ฌ์ฉ ์ฌ๋ก๋ ์๋๋๋ค. JWT ํค๋๋ฅผ ์ฌ์ฉํ์ฌ ๋๋ฉ์ธ/์๋น์ค ์ ์ฒด๋ฅผ ์ธ์ฆํ๋ ๊ฒ์ ์ธ์
์ฟ ํค์ ๋์์ผ๋ก JWT ํค๋๋ฅผ ์ฌ์ฉํ๋ ์ ํจํ ์ด์ ์
๋๋ค.
์ ์ฌ์ฉ ์ฌ๋ก์ ์ฟ ํค๋ฅผ ์ฌ์ฉํ์ฌ ์ ๊ทผํ๋ ๋ฐฉ๋ฒ์ ๊ณ ๋ คํ์๊ธฐ ๋ฐ๋๋๋ค.
ํ์ ํ๋.
JWT๋ฅผ ์ฌ์ฉํ๋ฉด ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์ ์ ์ํ ๋๋ง๋ค ์ฟ ํค๋ฅผ ์๋ก ๊ณ ์น ํ์๊ฐ ์์ต๋๋ค.
์ด๋ ์ธ์ ์ฟ ํค, JWT ํฌํจ ์ฟ ํค, _๋ฐ_ JWT ํ ํฐ ์์ฒด์ ๋ํด์๋ ๋์ผํฉ๋๋ค. ๋ง๋ฃ ์์ ์ธ ๊ฒฝ์ฐ์๋ง ๋ช ์์ ์ผ๋ก '์๋ก๊ณ ์นจ'ํ๋ฉด ๋ฉ๋๋ค. ์ฌ๊ธฐ์๋ ์ฐจ์ด๊ฐ ์์ต๋๋ค.
JWT๋ฅผ ์ฌ์ฉํ๋ค๋ ๊ฒ์ ์ฟ ํค๊ฐ ์ฐจ๋จ๋ ํด๋ผ์ด์ธํธ๊ฐ ์จ๊ฒจ์ง ๊ฒ์๋ฌผ ๋ณ์ ๋ฑ์ ๋ฐฑํ๋ก ์ฌ์ฉํ๋๋ก ๊ฐ์ ๋ก ๋์ฒด๋์ง ์๋๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
์ฟ ํค๋ฅผ ์ฐจ๋จํ๋ ์ฌ์ฉ์๋ ๊ฑฐ์ ํ์คํ๊ฒ ๋ก์ปฌ ์ ์ฅ์ ๋ฐ ๊ธฐํ ์ง์์ฑ ์ธก์ ๋ ์ฐจ๋จํฉ๋๋ค(์ฟ ํค๋ฅผ ์ฐจ๋จํ๋ ๊ฒ๊ณผ ์ ํํ ๊ฐ์ ์ด์ ๋ก). ๊ฐ์ธ ์ ๋ณด ๋ณดํธ ํ์ฅ๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค. ๋ค์ ๋งํ์ง๋ง, "JWT ๋ ์ฟ ํค"๋ _์ ํจํ ๋น๊ต๊ฐ ์๋๋ฉฐ_ ์ฌ์ฉ์๊ฐ ์ฟ ํค๋ฅผ ์ฐจ๋จํ๋ฉด ํ ํฐ์ _์ด์จ๋ _ ์ ์งํ ์ ์์ต๋๋ค. JWT ์ฌ๋ถ๋ ์ค์ํ์ง ์์ต๋๋ค.
(์ฌ์ฉ์๊ฐ ์ฟ ํค๋ฅผ ๋๋งค๋ก ์ฐจ๋จํ๋ฉด ์ด๋ฏธ ๋ฐ์ดํฐ ์ง์์ฑ์ ์ ์งํ์ง ์๊ธฐ๋ก ์ ํํ๋ฏ๋ก ์ฟ ํค๋ฅผ ์ฐจ๋จํ๋ ์ฌ์ฉ์์ ๋ํ ์ธ์ฆ์ ์ง์ํ๋ ค๋ ๊ฒ์ ์ฝ๊ฐ์ ์์ค ์์ธ์ ๋๋ค. ์ด๊ฒ์ด ํจ๊ป ์ ๊ณต๋๋ ์ ์ถฉ์ ์ด๋ฉฐ ์์ ํ ๊ธฐ์ ์ ์ผ๋ก ํฉ๋ฆฌ์ ์ ๋๋ค. ๊ฑฐ๋.)
์ฌ๋ฌ ์๋น์ค์์ JWT๋ฅผ ์ฌ์ฉํ๋ฉด ์ธ์ฆ์ด ํ์ํ์ง ์์ง๋ง JWT๋ก ๋ํ๋์ด ์ ๋ฌํ ์ ์๋ uid์ ๊ฐ์ ๊ฐ๋จํ ๋ฐ์ดํฐ ํ๋์ ์ ํจ์ฑ์ ๋ํ ์ผ๋ถ ํ์๋ฅผ ์ํ๋ ์๋น์ค๊ฐ ํ์ฉ๋ฉ๋๋ค.
๋ถ์ฐ ์ํคํ ์ฒ์์ ์ผํ์ฉ ํ ํฐ์ ๋ค๋ฃจ๋ ๋ด ์ด์ ๊ฒ์๋ฌผ(์ธ ๋ฒ์งธ ๋จ๋ฝ)์ ํธ์ง์ ์ฐธ์กฐํ์ญ์์ค. ์ด๊ฒ๋ค์ ์ธ์ ์ด ์๋๋ฉฐ ์ง์๋์ด์๋ ์ ๋ฉ๋๋ค. ๋ฐ๋ผ์ ์ ๊ฐ ์ค๋ช ํ ๋ฌธ์ ๋ ๊ฑฐ๊ธฐ์ ์ ์ฉ๋์ง ์์ต๋๋ค.
JWT ์ ๊ทผ ๋ฐฉ์์ ๋ณด๋ค ์ ๊ตํ OAUTH ์ ๊ทผ ๋ฐฉ์์ ์ ํฉํฉ๋๋ค.
OAuth๋ ์ผํ์ฉ ํ ํฐ์ ์ฌ์ฉํฉ๋๋ค. ์ธ์ ์ ๋์ฒดํ๋ ๊ฒ์ ์๋๋๋ค. ๋ค์, ๋ด ์ด์ ๊ฒ์๋ฌผ์ ํธ์ง์ ์ฐธ์กฐํ์ญ์์ค.
JWT REST ์์ฒญ์ ์๊ฒฉ ์ฆ๋ช ์ ๊ฒ์ํ๊ฑฐ๋ REST/SPA ๊ตฌํ์ ๋จ์ํํ ์ ์๋ ์๋น์ค์ ์ก์ธ์คํ๊ธฐ ์ ์ ์ฟ ํค ์์ฒญ์ ์๊ตฌํ์ง ์๊ณ ๋ง๋ค ์ ์์ต๋๋ค.
๊ทธ๋ค์ ํ ์ ์์ต๋๋ค. ์ฌ์ ํ JWT _somehow_๋ฅผ ์ป์ด์ผ ํฉ๋๋ค. ์ฆ, ์๋ฒ์์ ๋ฐํํด์ผ ํ๋ฏ๋ก ์๋ฒ์ ์์ฒญํด์ผ ํฉ๋๋ค. ์๋ฒ๊ฐ ์ฟ ํค๋ฅผ ๋ฐํํ๋์ง ์๋๋ฉด ๋ค๋ฅธ ํค๋๋ ๊ฐ์ ๋ฐํํ๋์ง ์ฌ๋ถ๋ ์ค์ํ์ง ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ค์ "์ฟ ํค ๋ JWT"๋ ์ ํจํ ๋น๊ต๊ฐ ์๋๋๋ค.
๋ฒ ์ด๋ฌ ํค๋ ๋๋ ์ฟ ํค ํค๋๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๋ณด์๊ณผ ๊ด๋ จํ์ฌ ํฌ๊ฒ ๋ค๋ฅด์ง ์์ต๋๋ค(์ ํจํ๊ฒ ๋ฐ๋์งํ์ง ์์ ์ ์๋ ๋๋ฉ์ธ ์ ํ ์ ์ธ).
์ฌ๊ธฐ์์ ๋ ผ์์ ๋ณผ ์ ์์ต๋๋ค.
๋ชจ๋ฐ์ผ ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ๊ฐ์ด ์ฅ๊ธฐ๊ฐ์ ๋ถ์ฌ๊ฐ ์ผ๋ฐ์ ์ด๊ฑฐ๋ ์์๋๋ ๊ฒฝ์ฐ ์ฟ ํค๋ JWT ์ ๊ทผ ๋ฐฉ์๋ณด๋ค ๋ ๋ฐ๋์งํ ์ ์์ต๋๋ค. ์๊ฒฉ ์ฆ๋ช ์์ฒด ๊ฒ์ฌ์ ๋ํ ๋ ๋ช ํํ ๊ฒฝ๋ก๊ฐ ์์ผ๋ฉด ์๋ฒ์ ์ฒดํฌ์ธํ์ง ์๊ณ ๋ ๋์์ ์ฉ์ดํ๊ฒ ํ ์ ์์ต๋๋ค.
์ด๊ฒ์ ์ด์ต์ด ์๋๋๋ค. ์ด์จ๋ ์๋ฒ์ ํต์ ํ ์๋๊ฐ ์์ ๋๊น์ง๋ ํ ํฐ์ด _ํ์ํ์ง ์์ต๋๋ค_. ๋ฐ๋ผ์ ์์ฒญ์ ์๋ํ๊ณ 403์ด ๋ฐ์ํ์ ๋ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค. ๋ณธ์ง์ ์ผ๋ก ์๋ฒ์ ํต์ ํ๋ ๊ฒ(์ฆ, ์ธ์ฆ๋ ์์ฒญ ๋ง๋ค๊ธฐ)๊ณผ ๊ด๋ จ๋ ๊ฒ์ ์๋ฒ์ ์์ฒญํ์ง ์์ผ๋ ค๋ ์๋๋ ์ด์น์ ๋ง์ง ์์ต๋๋ค.
๋งํ ๊ฒ๋ ์์ด ์ธ์ ์ด ๋ง๋ฃ๋์๋์ง ๋ฏธ๋ฆฌ ์๊ณ ์ถ๋ค๋ฉด ์ด์ ๋ํด ๋ณ๋์ ์ฟ ํค๋ฅผ ๋ณด๋ด๋ฉด ๋ฉ๋๋ค. ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ํ UX ํํธ์ผ ๋ฟ์ด๋ฏ๋ก ์ ํ ์ฌ๋ถ๋ฅผ ํ์ธํ ํ์๋ ์์ต๋๋ค. ๋ํ ์๊ณ ์๊ณก๊ณผ ๋ณ๊ฒฝ๋ ์๋ช ํค ๋๋ฌธ์ _์ด์จ๋ _ ์๊ธฐ์น ์์ ์ธ์ฆ ์คํจ๋ฅผ ์ฒ๋ฆฌํด์ผ ํฉ๋๋ค.
SPA/ํ์ด๋ธ๋ฆฌ๋ ์ฑ์์ ์ฟ ํค์ ๋ํ ์์กด์ด ๋ฐ๋์ ์ ์ผํ ์์ ์์น๋ ์๋๋๋ค. ๋ธ๋ผ์ฐ์ ์์ ์ฟ ํค๋ฅผ ์ฒ๋ฆฌํ๋ ๊ฒ์ ์์กดํ๋ค๊ณ ํด์ ๋ค์ดํฐ๋ธ์ ๊ฐ๊น์์ง๋ ๊ฒ์ ์๋์ง๋ง UIWebView ๋๋ ๋ฌด์์ด๋ ์์กดํ๊ฒ ๋๋ฉฐ ์ ๋ ํญ์ ๊ทธ๋ด ๊ฒ์ด๋ผ๊ณ ํ์ ํ์ง ์์ต๋๋ค. ๋ด ์์๋๋ก ํ๋ํ์ญ์์ค.
๊ทธ๋ ์ง ์์ต๋๋ค. ๋ธ๋ผ์ฐ์ ์ด๋ ์๋๋ ํฉ๋ฆฌ์ ์ธ HTTP ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ฟ ํค๋ฅผ ์ง์ํฉ๋๋ค. ์ฟ ํค๋ _์ ๋_ ๋ธ๋ผ์ฐ์ ์ ์ฉ์ด๋ฉฐ ๋ค๋ฅธ ๊ฒ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก HTTP ๊ธฐ๋ฅ์ ๋๋ค.
์๋ฒ์์ ์ธ์ ์ ๋ถ๋ฆฌํ๋ ๊ฒ์ด ์ด๋ค ๊ฒฝ์ฐ์๋ ๋์ ๊ฒ์ผ ์ ์์ง๋ง ํญ์ ๊ทธ๋ฐ ๊ฒ์ ์๋๋๋ค. JWT ์ฌ์ฉ์ ํฌํจํ ํ๋์ ์ธ ์ ๊ทผ ๋ฐฉ์์ ์๋ก์ด ๋ฌธ์ ๋ฅผ ์ผ๊ธฐํ์ง๋ง ์๋ก์ด ์ ์ฐ์ฑ๋ ๊ฐ์ ธ์ค๊ณ ์ด๋ฌํ ์ ์ฐ์ฑ์๋ ๊ฐ์ฅ ๋์ ์ ๊ทผ ๋ฐฉ์์ด ํฌํจ๋์ง ์์ต๋๋ค.
์์ง๊น์ง ๊ทธ๋ฌํ '์ ์ฐ์ฑ'์ ๊ตฌ์ฒด์ ์ธ ์๋ฅผ ๋ณด์ง ๋ชปํ์ต๋๋ค.
์ธ์ ์๋ฃจ์ ์ ์ผ๋ถ๋ก JWT๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์ธ์ ์ฟ ํค๊ฐ ํญ์ ์ค์ํ ๊ฒ์ ์๋๋๋ค.
๊ทธ๊ฒ์ ๋งค์ฐ ๋ชจํธํ ์ง์ ์ ๋๋ค. JWT๋ฅผ ์๋ฃจ์ ์ _์ผ๋ถ_๋ก ์ฌ์ฉํ๋ ๊ฒ๊ณผ ์ธ์ ์ฟ ํค๋ฅผ _์ ์ฒด_ ์๋ฃจ์ ์ผ๋ก ์ฌ์ฉํ๋ ๊ฒ์ ๋น๊ตํ๊ณ ์์ต๋๋ค. ์ด๋ ๋ฐ๋๊ฐ ์๋๋๋ค. ์๋ฅผ ๋ค์ด SSO ์์คํ ๋๋ ๋ถ์ฐ ์ํคํ ์ฒ์ ๊ฒฝ์ฐ ๋ง์ ๋ณต์กํ ์ํคํ ์ฒ์๋ ์ธ์ ์ฟ ํค์ ์ผํ์ฉ JWT ํ ํฐ์ ์กฐํฉ์ด ํ์ํฉ๋๋ค.
JWT๋ ์ด์ ์ ์๊ณ ์๊ณ ๋จ์ํ ๋ฌดํจํ๋ฅผ ์๊ตฌํ์ง ์๋ ์ด์ ๊ฐ ์๋ ๊ฒฝ์ฐ ์ธ์ ์ ์ ํฉํฉ๋๋ค.
์๋์. JWT ํ ํฐ์ ์ธ์ ์ฟ ํค๋ก ์๊ตฌ ์ฌํญ์ ์ถฉ์กฑํ ์ ์์ ๋ _์ตํ์ ์๋จ_์ ๋๋ค.
์ฟ ํค๊ฐ ์ ์ผํ ํด๊ฒฐ์ฑ ์ ์๋๋๋ค.
๊ธฐ์ ์ ์ผ๋ก ์ ํํฉ๋๋ค.
๋๊ท๋ชจ๊ฐ ์ํ ๋น์ ์ฅ ์ธ์ ์ ์ ์ผํ ์ฌ์ฉ ์ฌ๋ก๋ ์๋๋๋ค.
๋ด๊ฐ ์๊ณ ์๋ ์ ์ผํ ์ฌ์ฉ ์ฌ๋ก์ด๋ฉฐ ์ด ์ค๋ ๋ ์ ์ฒด์์ ์ธ๊ธ๋ ๋ค๋ฅธ ์ ํจํ ์ฌ๋ก๋ ๋ณธ ์ ์ด ์์ต๋๋ค. ๋๋ _์ผ๋ฐ์ ์ผ๋ก_ ์ํ ๋น์ ์ฅ ํ ํฐ์ด ์๋๋ผ ์ํ ๋น์ ์ฅ _์ธ์ _์ ๋ํด ๊ตฌ์ฒด์ ์ผ๋ก ์ด์ผ๊ธฐํ๊ณ ์์์ ๋ช ์ฌํ์ญ์์ค.
3๊ฐ์ง ๋ค๋ฅธ ์๋น์ค(์๋ง๋ ๋ค๋ฅธ ์ปจํ
์ด๋ ์ธํ๋ผ ๋ฑ)๋ฅผ ์ฌ์ฉํ๋ ์ ํ๋ฆฌ์ผ์ด์
์ ๋ฐฐํฌํ๊ณ ์ธ์
์ฟ ํค์ ์์กดํ๋ ์ฑ์ ํตํฉํ๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผ ํ๋์? ์ธ์ฆ ์๋น์ค๋ฅผ ์ค์ ํ๊ณ ๋ค๋ฅธ ์๋น์ค์์ ๋ถ๋ฆฌํ๋ ค๋ ๊ฒฝ์ฐ ๊ณต์ ํ๋ก์ ์ฟ ํค ์ธ์
์ฒ๋ฆฌ๊ธฐ๋ฅผ ์คํํ๋ ๊ฐ์ฅ ์ข์ ๋ฐฉ๋ฒ์ ๋ฌด์์
๋๊น? ์ฃ์ง ์ผ์ด์ค์ธ๊ฐ์?
์ฟ ํค๋ ์ด๋ป๊ฒ ๋ด ์ธ์
์ ์ถ์ ํ๊ธฐ ์ํด ์ฅ๊ธฐ ์คํ JWT๋ฅผ ์ฌ์ฉํ๋ ๊ฒ๋ณด๋ค ๋ ๋์ ๋ณด์, ์ ์ฐ์ฑ, ํ์ค ์ค์๋ฅผ ์ ๊ณตํฉ๋๊น? ์์ฒญ ์ ์ธ์
์ ์ข
๋ฃํ ์ ์๋ ๊ฒ์ ์ํ์ง ์๊ฑฐ๋ ์ ๊ฒฝ ์ฐ์ง ์๋๋ค๊ณ ๊ฐ์ ํ๋ฉด(๋น๋ก ์ฟ ํค์ ๊ณ ์ ํ ์ด์ ์ด ์๋๋ผ ์์ฒญ ์ฒ๋ฆฌ์ ์์) ๋ชจ๋ ๊ฒ์๋ฌผ๊ณผ ์๋ต์ Bearer ํค๋๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. ๋ชจ๋ ํค๋์ ํฌํจ๋ ์ธ์
JWT๋ฅผ ์ป๊ธฐ ์ํ ์ธ์ฆ ํ๋กฌํํธ/ํฌ์คํธ ์คํจ - ๋ด๊ฐ ๋ฐ๋ณด์ผ ์๋ ์์ง๋ง ์ด๊ฒ์ด ์ผ๋ง๋ ๋ ์์ ํ์ง ๋ชจ๋ฅด๊ฒ ์ต๋๊น? ์ฟ ํค ์ธ๋ถ ์ ๋ณด๋ ํ ํฐ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ํ์ด๋ธ๋ฆฌ๋ ์ฑ์์ ์ฌ์ฉํ ์ ์์ง๋ง ์ง์์ฑ์ ๋ํ ์ ์ด๊ฐ ๋ํฉ๋๋ค. ์ ์ด๊ฒ์ด ๊ทธ๋ ๊ฒ ๋์ ์ ๊ทผ ๋ฐฉ์์ธ์ง ์ดํดํ์ง ๋ชปํ๋ ๊ฒ ๊ฐ์ต๋๋ค. ๋ฌผ๋ก JWT๋ฅผ ์ป์ผ๋ ค๋ฉด ์๊ฒฉ ์ฆ๋ช
์ ์ ๊ณตํด์ผ ํ์ง๋ง ๊ฐ ์๋น์ค์์๊ฐ ์๋๋ผ ํ ๋ฒ๋ง ์ํํฉ๋๋ค.
3๊ฐ์ง ๋ค๋ฅธ ์๋น์ค(์๋ง๋ ๋ค๋ฅธ ์ปจํ ์ด๋ ์ธํ๋ผ ๋ฑ)๋ฅผ ์ฌ์ฉํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐฐํฌํ๊ณ ์ธ์ ์ฟ ํค์ ์์กดํ๋ ์ฑ์ ํตํฉํ๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผ ํ๋์?
3 ์๋น์ค๊ฐ ์ํํ๋ ์์ ์ ๋ฐ๋ผ ๋ค๋ฆ ๋๋ค. ์์ธํ ์ค๋ช ํด ์ฃผ์๊ฒ ์ต๋๊น?
์ธ์ฆ ์๋น์ค๋ฅผ ์ค์ ํ๊ณ ๋ค๋ฅธ ์๋น์ค์์ ๋ถ๋ฆฌํ๋ ค๋ ๊ฒฝ์ฐ ๊ณต์ ํ๋ก์ ์ฟ ํค ์ธ์ ์ฒ๋ฆฌ๊ธฐ๋ฅผ ์คํํ๋ ๊ฐ์ฅ ์ข์ ๋ฐฉ๋ฒ์ ๋ฌด์์ ๋๊น? ์ฃ์ง ์ผ์ด์ค์ธ๊ฐ์?
์ธ์ฆ ์๋น์ค๊ฐ ์ฑ๊ณต์ ์ธ ์ธ์ฆ์ ๋ํ๋ด๋ ์ผํ์ฉ JWT ํ ํฐ์ ๋ฐํํ๋๋ก ํ๊ณ ์ ํ์ ์ผ๋ก ์ํคํ ์ฒ์ ๋ฐ๋ผ ์ฌ์ฉ์์ ๋ํ 'ํ๋กํ ์ ๋ณด'๋ฅผ ํฌํจํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐ๋ผ ๋ค์์ ์ํํฉ๋๋ค.
๋ ๊ฒฝ์ฐ ๋ชจ๋ JWT ํ ํฐ์ ์ฝ 5๋ถ ๋์๋ง ์ ํจํ๋ฉฐ(ํด๋ญ ์๊ณก์ ์ค๋ช ํ๊ธฐ ์ํด) ํ ๋ฒ๋ง ์ฌ์ฉํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์๋ฒ์ ์ธ์ ๊ณผ ๊ตํํฉ๋๋ค. ํ ํฐ์ ํ๋กํ ์ ๋ณด๋ฅผ ํฌํจํ๋ฉด ์ธ์ฆ ์๋น์ค๊ฐ ์ ํ๋ฆฌ์ผ์ด์ ์์ ์์ ํ ๋ถ๋ฆฌ๋ ์ํ๋ก ์ ์ง๋ฉ๋๋ค.
ํธ์ง: ๋ ๋ฆฝ ์คํํ ์ ํ๋ฆฌ์ผ์ด์ ์ผ์ด์ค๋ฅผ ์ถ๊ฐํ์ต๋๋ค.
SPA/ํ์ด๋ธ๋ฆฌ๋ ๋ชจ๋ฐ์ผ ์ฑ ๊ฐ๋ฐ ์๋๋ฆฌ์ค์ ์๋ค๊ณ ๊ฐ์ ํ๊ฒ ์ต๋๋ค. ๋ํ ์ธ์ฆ ๋ฐ ์ ๋ฌ์ ํ ํฐ์ด ์๋ OUATH๊ฐ ์๋ ์ธ์
์ JWT๋ฅผ ์ฌ์ฉํ๊ณ ์๋ค๊ณ ๊ฐ์ ํ๊ณ ๋ก๊ทธ์ธํ๊ณ ์ ๋ฌ์ ํ ํฐ์ ๋ฐ์ต๋๋ค.
๊ฐ ์ธ์
์ด 5-15์ด๋ง๋ค 3๊ฐ์ ์๋น์ค ๋ชจ๋์ ์์ฒญํ๋ ์ค์๊ฐ ์ ํ๋ฆฌ์ผ์ด์
์ด ์๋ค๊ณ ์์ํด ๋ด
์๋ค. ๋ง์ ์ฌ์ฉ์๊ฐ ๋น ๋ฅธ ์ํ ํ์ธ์ ์ํด ๋ก๊ทธ์ธํ๊ฑฐ๋ GIS ๋ฐ์ดํฐ ๋ฑ์ ๊ฒ์ํ์ฌ ํ๊ท ์ฌ์ฉ ์๊ฐ์ด 1๋ถ ๋ฏธ๋ง์ด์ง๋ง ์ฑ์ ์์ํ๊ณ ์ถ์ดํฉ๋๋ค. ์ฑ์ ๋ซ๊ณ , ์๊ฒฉ ์ฆ๋ช
์์ด 3์ผ ํ์ ๋ค์ ์์ํฉ๋๋ค. ์ฟ ํค๋ฅผ ๋ฉ๋ฆฌํ๊ฒ ๋ง๋๋ ๊ฒ๋ค)
์๋ฅผ ๋ค์ด ๊ทธ๋ํ ์ฟผ๋ฆฌ ์๋น์ค, ๋์ปค ๋์คํ์ด์ค์ ๋งคํ ๋๋ GIS ์๋น์ค, ์ฌ์ฉ์ ํ๋กํ ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํด postgres db์ ๋ํ REST ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉํ์ฌ AWS ์๋น์ค๋ฅผ ์์ฑํ๋ค๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค. ๋ชจ๋ REST ์๋น์ค์ ๋ํ ํค๋ ์์ฒญ์์ ๋์ผํ JWT๋ฅผ ์ฌ์ฉํ๊ณ JWT์ ๊ณต์ ์ ํจ์ฑ ๊ฒ์ฌ๊ฐ ํ ๋ฒ ๋ฐํ๋๋๋ก ๊ณตํต ๋น๋ฐ์ ๋ํด ์ ํจ์ฑ์ ๊ฒ์ฌํ ์ ์์ต๋๋ค.
๊ทธ๊ฒ๋ค์ด ๊ทธ๋ค ์์ ์ ์ปจํ
์คํธ ๋ด์์๋ stateful์ด์ง๋ง ๊ณต์ ์ปจํ
์คํธ์์๋ง ๋์จํ๋ค๊ณ ๊ฐ์ ํฉ์๋ค.
์ด๊ฒ์ JWT๋ฅผ ์ธ์
ํ ํฐ์ผ๋ก Bearer Token์ผ๋ก ์ฌ์ฉํ๋ ๋ด ์ ์๋ ์๋ฃจ์
๊ณผ ์ผ์นํ๋ ๋ฌธ์ ์ฌ์์ด๋ฉฐ ์ ์ฌํ ํ๊ฒฝ์์ ๋น๊ตํ ์ ์๋๋ก ์ธ์
์ฟ ํค๋ฅผ ์ฌ์ฉํ์ฌ ์ ๊ทผํ๋ ๋ฐฉ๋ฒ์ ๋ฌป๊ณ ์์ต๋๋ค.
์ฌ์ฉ์๊ฐ ์์ ์ด ๋๊ตฌ์ธ์ง์ ๋ํ ํฉ๋ฆฌ์ ์ธ ํ์ ์ด ๋ชจ๋ ํ์ํ๋ค๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค.
๋ด ์๋ฃจ์
์ ์ธ์ฆ์ ์ํด HTTP ํค๋ ๋ด์ ๋ชจ๋ ์๋น์ค์์ ์ฌ์ฉ๋๋ ์๊ฒฉ ์ฆ๋ช
๊ฒ์๋ฌผ์ ๋ํ ์๋ต์ผ๋ก JWT ํ ํฐ์ ์์ฑํ๋ ๊ฒ์
๋๋ค. ๋ชจ๋ ์๋น์ค์์ ๊ณต์ JWT ๋น๋ฐ๋ก ์ ํจ์ฑ ๊ฒ์ฌ๊ฐ ์ํ๋ฉ๋๋ค.
์ธ์ฆ ์๋น์ค๋ ํ ํฐ์ ์์ฑํ๊ณ ๋ก๊ทธ์ธ ์ ๋ฐํํฉ๋๋ค. ํ ํฐ์ ๋ค๋ฅธ ๋๋ฉ์ธ์ ๋ค๋ฅธ ๋ชจ๋ ์๋น์ค์ ๋ํ ํค๋ ์์ฒญ์ ํฌํจ๋ฉ๋๋ค. ์ฟ ํค๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ๊ฐ ๋๋ฉ์ธ์ ๋ํด ์ ์ฟ ํค๋ฅผ ์ค์ ํด์ผ ํฉ๋๋ค. JWT์ ์์ ์๊ฒ ์์กดํ ์ ์๋๋ฐ๋ ์์ ๋ ๊ฐ http์ ๋ํด ์ฟ ํค๋ฅผ ํ์ธํ๊ฑฐ๋ ์ป๊ธฐ ์ํด ์ ์์ฒญ์ ํ๋ ์๋น์ค๋ฅผ ์ํ๋ ์ด์ ๋ ๋ฌด์์
๋๊น? 5๊ฐ์ ์๋น์ค๊ฐ ์๋ ๊ฒฝ์ฐ ์ด์ 5๊ฐ์ ๋ค๋ฅธ ์ธ์
์ฟ ํค๋ฅผ ๊ด๋ฆฌํ๊ณ ์ด ๋ชจ๋ ์ฟ ํค ๊ฐ์ ์กฐ์ ์ ๋ณด์ฅํด์ผ ํฉ๋๋ค. ๋ง์ ๊ฒฝ์ฐ์ ์ด๊ฒ์ด ์ฌ๋ฐ๋ฅธ ์ ๊ทผ ๋ฐฉ์์ผ ์ ์์ง๋ง ๋ง์ ๊ฒฝ์ฐ ๊ตฌํ์ด ๋น ๋ฅด๊ณ ๊ฐ๋จํ๋ฉฐ ๋ช
ํํ๊ฒ ๋ณผ ์ ์๋ ์ฌ๊ฐํ ๋ณด์ ํ์ ์ ๋๋ฌ๋ด์ง ์๋ ๊ฒ์ ๋ํด ์ง๋์น๊ฒ ๋ณต์กํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
JWT ๊ธฐ๊ฐ์ ์ ํํ๋ ์ด์ ๋ ๋ฌด์์
๋๊น? ์ฟ ํค๋ ์ ๊ธฐ์ ์ธ ์๋ฒ ์ ์์ ๊ฐ์ ํ๊ธฐ ๋๋ฌธ์ ์ ํต์ ์ผ๋ก ์๋ช
์ด ์งง์ต๋๋ค. ๋นจ๋ฆฌ ๋ง๋ฃ๋๊ณ ์ถ์ง๋ ์์ง๋ง ์ฌ์ธ์ฆ์ ์ ์ถฉ์์ด ๋ ํฐ ์ํ์ด ์๋ค๊ณ ํ๋จํ์ฌ ์ค๋๋ ์ธ์
์ด ์ค๋ ์ง์๋๋ ๊ฒ์ ๊ธฐ์๊ฒ ์๊ฐํฉ๋๋ค.
๊ทํ์ ์ํฉ์ ์ฌ๋ฐ๋ฅด๊ฒ ์ดํดํ๋ค๋ฉด 3 ๋์ ๋งค ๊ธฐ๊ฐ๋ง๋ค 9 ๊ฐ์ ์์ฒญ์ด ์์ ๋ฉ๋๋ค. ์ค์ ๋ ์ธ์ ์ ํ์ธํ๊ธฐ ์ํด ์ธ์ฆ ์๋ฒ๋ฅผ ์ฌ์ฉ ์ค์ ๋๋ค. ๋ ๋ง์ ์ฝ๋์ ์์ง์ด๋ ๋ถ๋ถ์ด ์์ต๋๋ค. ๊ฐ ๊ธฐ๊ฐ๋ง๋ค ์ธ์ ์ ์ข ๋ฃํ ์ ์๋ค๋ ์ด์ ์ด ์์ง๋ง ์ด๊ฒ์ด ์๊ตฌ ์ฌํญ์ด ์๋ ๊ฒฝ์ฐ์๋ ์ด๋ป๊ฒ ํฉ๋๊น? ์ฌ์ฉ์๊ฐ ์ข ๋ฃ๋ ํ 48์๊ฐ ๋์ ๊ฒ์๋ ๋ฐ์ดํฐ๋ฅผ ์์ ํ๋ ๋ฐ ์ ๊ฒฝ ์ฐ์ง ์๊ณ ์ ์์ฒญ์ ๋ํด ์ธ์ฆ ์๋ฒ๋ฅผ ์ฌ์ฉํ์ฌ ํ์ํ์ง ์์ ๊ฒ์ ํํฐ๋งํ ์ ์๋ ๊ฒฝ์ฐ ์ด๋ป๊ฒ ํฉ๋๊น?
์ด ์ฌ์ฉ ์ฌ๋ก์์ ์ธ์ ์ธ๋ถ์ฑ์ด ์ ์ ํ๊ฒ ์ค์ ๋๊ณ ์ธ์ ์ฟ ํค์ ๋ง์ฐฌ๊ฐ์ง๋ก ์ ์ ํ ์๊ฐ ์ด๊ณผ ๊ธฐ๊ฐ์ ์ธ์ฆ ์๋ฒ๋ฅผ ํตํด JWT๋ฅผ ์๋ก ๊ณ ์น๋ ํด๋ผ์ด์ธํธ๋ฅผ ๊ตฌํํ๊ธฐ ๋๋ฌธ์ ์ฌ์ํ ์๊ฐ ์๊ณก์ ๊ด๋ จ์ด ์์ต๋๋ค. 'ํ๋กํ'์ด ์งํ๋๋ ํ ๊ณต์ uid๋ฅผ ๊ณตํต ID๋ก ์ฌ์ฉํ๊ณ (์ฌ๋ฐ๋ฅด๊ฒ ์ดํดํ๋ ๊ฒฝ์ฐ) ์๋ฒ ์ธก ๊ตฌํ์๋ JWT ์๋ช /๊ฒ์ฆ์ ์ํ ๊ณต์ ๋น๋ฐ์ด ํฌํจ๋์ด ์์ต๋๋ค.
๋ด๊ฐ ์ ์ํ ์ํคํ
์ฒ์์๋ JWT ์ ํ ์๊ฐ์ด ์ ๊ณตํ๋ ๊ฒ๋ณด๋ค ๋ ์ธ๋ถ์ ์ผ๋ก ํ ํฐ์ ์ทจ์ํ ํ์๊ฐ ์๋๋ฐ ์ธ์
์ฟ ํค๋ฅผ ๋์ ์ฌ์ฉํด์ผ ํ๋ ์ด์ ๋ ๋ฌด์์
๋๊น?
๋ด๊ฐ ์ ์ํ ์ํคํ
์ฒ์์ ์๋น์ค ์ํ ๊ฐ์ ์ข
์์ฑ์ ๋ง๋ค ์ ์์ง๋ง ์ค์ ์ง์ค์์ ์์กดํ๊ณ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ชจ๋ ๊ฒ์ ์ธ์ฆ์ ๋ค์ ์ฐ๊ฒฐํด์ผ ํ๋ ๊ฒ๋ณด๋ค ์ด๊ฒ์ ์ค๊ณํ ์ ์์ต๋๋ค. ํต์ฌ์ ์ ์ฐ์ฑ์
๋๋ค. ์ด๋ ์ข
์์ฑ์ ์คํํ๋ ๋น์ฉ์ผ๋ก ๋ฐ์ํ์ง๋ง ์ด๋ ์ฒ์๋ถํฐ ์ง๋ฉดํ ๋ฌธ์ ์ด๋ฉฐ ๋ชจ๋ ํ๋ซํผ์์ ๊ตฌํ๋์ง๋ง ํ๋ ์์ํฌ ๊ฐ์ ๋ค๋ฅด๊ฒ ์ฒ๋ฆฌ๋๋ ๋ ์ด์ด๊ฐ ์๋๋๋ค. ์ค์ ๋ก ์์ด node, php ๋ฐ ์ด๊ตญ์ ์ธ ์ฟ ํค ์ธ์
๊ธฐ๋ณธ ์ฒ๋ฆฌ๊ฐ ์๋ ์ธ์
์ ๋ํ ์ฟ ํค ๋ง๋ฃ๋ฅผ ์
๋ฐ์ดํธํ๋ ๊ฒ์ ์ค์ํ์ง ์์ ์ ์์ผ๋ฏ๋ก ์ธ์ฆ ์๋ฒ ์์ฒญ์ ์ง์ ๊ฒ์ํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ์์ฒญ์ด ์์ง๋ง ํด๋ผ์ด์ธํธ์ ๋ํ ์์ฒญ์ 3๋ฐฐ์
๋๋ค.
์ ์๋ ์ํคํ
์ฒ์ ์ผ์นํ๋ค๋ฉด ์ค์ ๋ก ์ฌ๋ฌ ์ฟ ํค์ ์๊ฐ ์ ํ์ ํด๊ฒฐํด์ผ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด ํด๋ผ์ด์ธํธ๊ฐ ๋ก๊ทธ์ธํ๊ณ 1์๊ฐ ํ์ ๋ง๋ฃ๋๋ ์ธ์ฆ๋ ์ธ์
์ฟ ํค๋ฅผ ์์ ํ๋ ๊ฒฝ์ฐ
๊ทธ๋ฐ ๋ค์ 40๋ถ ํ์ ์ด ์ธ์
์ฟ ํค ๊ฐ์ ์ฒซ ๋ฒ์งธ ์๋น์ค์ ๊ฒ์ํ ๋ค์ ๋ก์ปฌ ๋๋ฉ์ธ ์ฟ ํค๋ฅผ ๋ฐํํ๊ธฐ ์ ์ ์ธ์ฆ ์๋ฒ๋ฅผ ์ฟผ๋ฆฌํฉ๋๋ค. ๋ด๋ถ ์๋ณธ ์ธ์ฆ ์ฟ ํค ๋ง๋ฃ๋ฅผ ํดํนํ๊ฑฐ๋ ์๋น์ค ์ฟ ํค์ ์๊ฐ ์ ํ์ 20๋ถ์ผ๋ก ์ค์ ํฉ๋๊น? ๊ทธ๋ฆฌ๊ณ ์ด๊ฒ์ด ๋ง๋ฃ๋๋ฉด ์ธ์ฆ ์ฟ ํค์ ์๋ก ๊ณ ์นจ์ ํธ๋ฆฌ๊ฑฐํฉ๋๋ค. ๋ช
๋ฐฑํ ์๋ฃจ์
์ ๋์น๊ณ ์์ง ์๋ ํ ์ด๊ฒ์ ์๋น์ค ์ค ํ๋๋ฅผ ํตํด ์๋ก ๊ณ ์น ์ ์๋ ๋จ์ผ JWT๋ฅผ ์ฌ์ฉํ์ฌ ์์ ํ ํผํ ์ ์๋ ๋ง์ ์คํ๊ฒํฐ ๋๋ฏธ๋ก ์ฝ๊ฒ ๋ณํ ์ ์์ต๋๋ค(์ด๊ฐ ํ ํฐ์ ํ์ฅํ๋ ๋ฐฉ๋ฒ ์ดํด life ) ๋๋ ์ธ์ฆ ์๋ฒ๋ฅผ ํตํด ์๋ก ๊ณ ์นจ์ ์๊ตฌํฉ๋๋ค.
๋ถ์ค ๋ฐ์ดํฐ์ ๋ํ ์ ๊ทผ ๋ฐฉ์์ ๋ํด ๋ ผ์ํ ์ ์์ง๋ง ์ด ์ฌ์ฉ ์ฌ๋ก์ ๋ฌธ์ ๋ฒ์๋ ๋ถ์ค ์๊ฒฉ ์ฆ๋ช ๋ฌดํจํ์ ์์กดํ์ง ์์ผ๋ฏ๋ก(์ธ์ฆ ์๋ฒ์ ๊ด์ ์์) ๊ด๋ จ์ด ์์ต๋๋ค.
JWT๋ฅผ ์ธ์ฆ๋ ์ธ์ ๊ด๋ฆฌ ์ ๊ทผ ๋ฐฉ์์ผ๋ก ์ฌ์ฉํ๋ ๊ฒ์ด ํ์ด๋ธ๋ฆฌ๋ ๋ชจ๋ฐ์ผ ์ ํ๋ฆฌ์ผ์ด์ ๋ด์์ ์คํ๋ ๊ต์ฐจ ๋๋ฉ์ธ ์๋น์ค์ ๋ํ ์ธ์ฆ๋ ์ธ์ ๊ด๋ฆฌ ์ ๊ทผ ๋ฐฉ์์ผ๋ก ์ธ์ ์ฟ ํค๋ฅผ ์ฌ์ฉํ๋ ๊ฒ๊ณผ ๋น๊ตํ์ฌ ๋ณธ์ง์ ์ผ๋ก ์ด๋ฑํ๊ณ ๋ถ์ ํํ๋ค๋ ๊ทํ์ ์ฃผ์ฅ์ ๋ํด ๋ ผ์ํ๊ณ ์๋ค๋ ๊ฒ์ด ์ ์ดํด์ ๋๋ค. ์๊ฒฉ ์ฆ๋ช ์ ์ฌ๊ณต๊ธ ์์ด ๊ฐํ์ ์ผ๋ก ์ฅ์น.
๋๋ ๋น์ ์ด ์ ์๋ ์ ๊ทผ ๋ฐฉ์์ด ๋ณธ์ง์ ์ผ๋ก ๋ ์์ ํ๊ฑฐ๋ ์ด๋ค ์์ผ๋ก๋ ๋ '์ฌ๋ฐ๋ฅด๋ค'๊ณ ์ฃผ์ฅํ ์ง ์ฌ๋ถ๋ฅผ ํ์ธํ๋ ค๊ณ ํฉ๋๋ค. ๋ด๊ฐ ๋ณด๊ธฐ์ ์ด ์ํคํ ์ฒ์ ๋จ์์ฑ์๋ ์๋นํ ์ด์ ์ด ์์ผ๋ฉฐ ๋ ๊ฐ๋จํ ์ํคํ ์ฒ์ ๋ํด ๊ณ ๋ ค๋์ง ์๊ณ ์ ์ถฉ๋์ง ์์ ๋ชจ๋ ์๋น์ค์์ ์ธ์ ์ ๊ด๋ฆฌํ๋ ๋ฐ ํ์ํ ๋ ๋ฌด๊ฒ๊ณ ๋ณต์กํ ์๋ฃจ์ ์ด ์ ๊ณตํ๋ ์ด์ ์ ์์ต๋๋ค. ์ด ์๋ฃจ์ ์ด ์ธ์ ์ ๊ด๋ฆฌํ๊ธฐ ์ํด ์ฟ ํค๋ฅผ ์ฌ์ฉํ์ฌ ๊ฒฝํํ์ง ๋ชปํ ๋ฌธ์ ๋ฅผ ๊ฒฝํํ๋ ๋ฐฉ๋ฒ์ ์ง์ ํ ์ ์๋ค๋ฉด ๋ช ์์ ์ผ๋ก ์ดํดํ๋ ๋ฐ ์ ๋ง ๋์์ด ๋ ๊ฒ์ ๋๋ค(์ฆ, ๋ณด์์ด ์ด๋ป๊ฒ ์์๋๋์ง)
์๋น์ค๋ ๊ฑฐ์ ์ค์ํ์ง ์์ต๋๋ค. ๋ฌด์์ ์์ํ๋์ง ํ์คํ์ง ์์ต๋๊น?
์ํ ์ ์ฅ ์๋น์ค์ ์ํ ๋น์ ์ฅ ์๋น์ค์๋ ์ฐจ์ด๊ฐ ์์ต๋๋ค.
์ ๋ง์ํ์ [...]
์ด๊ฒ์ ๋ฌธ์ ๊ฐ ๋ฌด์์ธ์ง๊ฐ ์๋๋ผ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํฉ๋๋ค. ์ธ์ ์ผ๋ก ์ ๊ทผํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํ๋๋ก ์์ฒญํ ๋๋ ์ ์ฉํ์ง ์์ต๋๋ค. ์ด๋ฏธ ์ธ์ ์ ์ฌ์ฉํ์ง _์์_ ๊ฒ์ด๋ผ๊ณ ๊ฐ์ ํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ๋์ ๋ฌธ์ ๋ฅผ ์ค๋ช ํ์ญ์์ค.
์ธ์ JWT์ ์์ ์๊ฒ ์์กดํ ์ ์์ต๋๊น?
๋น์ ์ ํ ์ ์์ต๋๋ค.
5๊ฐ์ ์๋น์ค๊ฐ ์๋ ๊ฒฝ์ฐ ์ด์ 5๊ฐ์ ๋ค๋ฅธ ์ธ์ ์ฟ ํค๋ฅผ ๊ด๋ฆฌํ๊ณ ์ด ๋ชจ๋ ์ฟ ํค ๊ฐ์ ์กฐ์ ์ ๋ณด์ฅํด์ผ ํฉ๋๋ค.
ํ ๊ฒ ๊ฐ์ง ์์. Stateful ๋ Stateless ์๋น์ค์ ๋ํ ๋ด ์ค๋ช ์ ์ฐธ์กฐํ์ญ์์ค.
๋ง์ ๊ฒฝ์ฐ์ ์ด๊ฒ์ด ์ฌ๋ฐ๋ฅธ ์ ๊ทผ ๋ฐฉ์์ผ ์ ์์ง๋ง ๋ง์ ๊ฒฝ์ฐ ๊ตฌํ์ด ๋น ๋ฅด๊ณ ๊ฐ๋จํ๋ฉฐ ๋ช ํํ๊ฒ ๋ณผ ์ ์๋ ์ฌ๊ฐํ ๋ณด์ ํ์ ์ ๋๋ฌ๋ด์ง ์๋ ๊ฒ์ ๋ํด ์ง๋์น๊ฒ ๋ณต์กํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
ํนํ ๋ถ์ฐ ์ํคํ ์ฒ์์ ์ธ์ฆ ๋ฐ ์ธ์ ๊ด๋ฆฌ๋ _is_ ๋ณต์กํฉ๋๋ค. ์์ง๋์ด๋ค์ด ๊ณผ๊ฑฐ์ ๊ฐ๋ฅํ ๋ถ์ฐ ์ํคํ ์ฒ๋ฅผ ํผํ ๋ฐ์๋ ์ด์ ๊ฐ ์์ต๋๋ค. "Just use JWT"๋ ๋ฐ์ดํฐ ๋ถ์ค ๋ฐ ์ธ์ ๋ฌดํจํ๋ฅผ ์์ ํ ๋ฌด์ํจ์ผ๋ก์จ ์ด๋ฅผ ๊ฐ๊ณผํ๊ณ ์ค์ ๋ณด๋ค ๋ ์ฌ์ด ์ฒํฉ๋๋ค.
๋ณด์ ๊ตฌ๋ฉ์ด ์๊ณ ์ค๋ช ํ๋ ค๊ณ ์ฌ๋ฌ ๋ฒ ์๋ํ์ต๋๋ค. ๋ช ํํ๊ฒ ๋ณผ ์ ์๋ค๋ ๊ฒ์ ๋ช ํํ์ง ์์ ๋ถ๋ถ์ ๋ํด ํน์ ์ง๋ฌธ์ ํ์ง ์๋๋ค๋ฉด ์ ๊ฐ ํ ์ ์๋ ์ผ์ด ์๋๋๋ค. .
JWT ๊ธฐ๊ฐ์ ์ ํํ๋ ์ด์ ๋ ๋ฌด์์ ๋๊น?
๋ด๊ฐ ์ค ์์์? ์๊ตฌ ์๋ณ์๊ฐ ์๋ ์ผํ์ฉ ๊ตํ ํ ํฐ์ผ๋ก ์ฌ์ฉ๋๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ทจ์ํ ์ ์๊ธฐ ๋๋ฌธ์ ์๊ตฌ ์๋ณ์๋ฅผ ์ํ์ง ์์ต๋๋ค.
์ฟ ํค๋ ์ ๊ธฐ์ ์ธ ์๋ฒ ์ ์์ ๊ฐ์ ํ๊ธฐ ๋๋ฌธ์ ์ ํต์ ์ผ๋ก ์๋ช ์ด ์งง์ต๋๋ค. ๋นจ๋ฆฌ ๋ง๋ฃ๋๊ณ ์ถ์ง๋ ์์ง๋ง ์ฌ์ธ์ฆ์ ์ ์ถฉ์์ด ๋ ํฐ ์ํ์ด ์๋ค๊ณ ํ๋จํ์ฌ ์ค๋๋ ์ธ์ ์ด ์ค๋ ์ง์๋๋ ๊ฒ์ ๊ธฐ์๊ฒ ์๊ฐํฉ๋๋ค.
์ธ์ ์ ์๋ก ๊ณ ์น ์ํ์ด ์์ต๋๋ค.
ํ๋กํ ๋๋ ์๊ณ ์๊ณก ๋ฌด์ - ์ ์ฌํ ์๋๋ฆฌ์ค์ ์ฟ ํค๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ๋์ผํ ๋ฌธ์ ๊ฐ ์ ์ฉ๋๋ฏ๋ก ์ด ๊ฐ์์ ๋ ผ์์ ํฐ ์ํฅ์ ๋ฏธ์น์ง ์๋ ์ธ๋ถ ์ฌํญ.
์ด๋ ์ธ๊ธ๋ ๋ค๋ฅธ ๋ชจ๋ ์ฌํญ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ๊ฐ๋ ฅํ ์ธ์ฆ ์์คํ ์ ์ค์ํ ๋ถ๋ถ์ ๋๋ค. ๊ทธ๋ค์ ๋ฌด์ํ๋ ๊ฒ์ ์ ํ ์ฌํญ์ด ์๋๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ค์, ์ด๊ฒ์ "์ฟ ํค"์ ๊ดํ ๊ฒ์ด _์๋๋๋ค_, ์ด๊ฒ์ ์ธ์ ์ ๊ดํ ๊ฒ์ ๋๋ค.
์ธ์ ์ ๊ฒฝ์ฐ ์๋์ค, ๋์ผํ ๋ฌธ์ ๊ฐ ์ ์ฉ๋์ง _์์ต๋๋ค_. ์ค์ ์ง์ค์/์ํ ์ ์ฅ ์ธ์ ์ ์ฅ์๋ ๋ฐ์ดํฐ๊ฐ ์ ํ ๋ถ์คํ์ง ์๊ณ ํ๋กํ ์ ๋ณด๋ฅผ ์ด๋ ์์ ์์๋ ๊ฒ์ํ ์ ์์์ ์๋ฏธํ๋ฉฐ ํด๋ก ์คํ๋ ์๋ก ๋ค๋ฅธ ์์คํ ๊ฐ์ ๊ตํ๋๋ ์ ํ๋ ์ ํจ์ฑ ํ ํฐ์ ๋ฌธ์ ์ ๋๋ค.
์ธ์
๊ด๋ฆฌ ์ ๊ทผ ๋ฐฉ์์ด ์์ฒญ๋น ์ทจ์๊ฐ ํ์ํ ์ธ์
์ ์์ ๋ํ ์ฒจ๋ถ ํ์ผ๋ก ๊ท๊ฒฐ๋ ์ ์๊ธฐ ๋๋ฌธ์ JWT์ ๋ํ ๊ทํ์ ์ด์๋ฅผ ์์ฝํ ์ ์๋ ๊ฒ์ฒ๋ผ ๋ณด์
๋๋ค. ์ก์ธ์ค) ๋ฐ ์๋ก ๊ณ ์นจ๊ณผ ๊ด๋ จ๋ ์ํ(๋์ฒญ๋๋ ๊ฒฝ์ฐ) . ๋ถ์ฐ ์ฒ๋ฆฌ๋ ์๋ก์ด ํ์ค์
๋๋ค. ๋ค์ค ์๋น์ค๋ ๋งค์ฐ ์ผ๋ฐ์ ์
๋๋ค. ๋ค์ค ์๋น์ค ์ํคํ
์ฒ์ ์ด๋ฌํ ์ข
๋ฅ์ ์ ๊ทผ ๋ฐฉ์์ ์ฌ์ฉํ๋ ค๋ฉด ๊ฒฐ๊ณผ๋ฅผ ์์ ํ ์ดํดํด์ผ ํฉ๋๋ค. ๋ถ์ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์ค๋ซ๋์ ์กด์ฌํด ์์ต๋๋ค. DNS์ ๊ฐ์ ๋ถ์ฐ ๋ฐ์ดํฐ ์ ์ฅ์๋ ์ฒ์๋ถํฐ ์กด์ฌํ์ต๋๋ค. ๋๋ก๋ ์ํคํ
์ฒ์ ๋จ์ํจ์ด ์ค๊ณ ํ๊ณ๋ฅผ ๋์ด ๊ธฐ์กด์ ์ง๋ฐฐ์ ์ธ ํ์ค์ ์๋ฐํ๋ ๊ฒ๋ณด๋ค ๋ ๋ง์ ์ด์ ์ ์ ๊ณตํฉ๋๋ค. ์๋น์ค ์์ฒญ ์ธ์
์์ ํธ๋์ญ์
ACID ๋ฌธ์ ๋ฅผ ์๊ณ ์๋ค๋ฉด JWT ์ธ์
๊ด๋ฆฌ ์ ๊ทผ ๋ฐฉ์์ ์ฑํํ์ฌ ์๋น์ค๋ฅผ ์ธ์ฆํ์ฌ ์ฐ๋ฆฌ๊ฐ ์ฃผ์ฅํ๋ ๊ฒฝ์ฐ ๋น ๋ฅด๊ฒ ๋ณต์กํ ์ธํ๋ผ๊ฐ ๋๋ ๊ฒ์ ์ ์ฝ์ ๋ฐ์ง ์๊ณ ๊ฐ๋ฅ์ฑ์ ์์ ํ ํ์ฉํ์ง ๋ง์์ผ ํ ์ด์ ๊ฐ ์์ต๋๋ค. ์๊ฒฉํ ์ ์ฝ ์กฐ๊ฑด์์ ์ธ์
์ฟ ํค๋ฅผ ์ํผ(shoe-horn)ํ๋ ์๋ฃจ์
์ผ๋ก ์๋ํ์ญ์์ค.
@joepie91 - ์ ์ ํ ๊ฒฝ์ฐ ๊ธฐ๋ณธ ์ธ์ฆ์ ๋ํด ์ฟ ํค ์ธ์
์ธ์ฆ์ ์ฌ์ฉํ๊ณ JWT๋ฅผ ์๋ก ๊ณ ์น๋๋ก ์๊ตฌํ ์ ์์ต๋๋ค. ๋ค์ - ๋๋ฉ์ธ ๊ฐ ์ธ์
์๋น์ค ์ก์ธ์ค๋ฅผ ์ํ JWT์ ์ฌ์ฉ์ ์๋ฃจ์
์ ์ผ๋ถ๋ก ์ฌ์ฉ๋ ์ ์์ผ๋ฉฐ ์ ์ ํ ๊ฒฝ์ฐ ์ฟ ํค ์ธ์
๋ ์ฌ์ฉ๋ฉ๋๋ค. ์์ ์ ์ธ์
๊ด๋ฆฌ์ ์ผ๋ถ์ธ JWT๊ฐ ์๋น์ค ํ์ ์งํฉ์ ์ก์ธ์คํ๋ ๊ฒฝ์ฐ์๋ ์ญํ ์ด ์๋ ์ฌ์
ํ ์ ๊ทผ ๋ฐฉ์์ด ์๋๋ผ๊ณ ์๊ฐํ๋ค๋ ๊ฒ์
๋๋ค.
https ์ธ์
์ฟ ํค์๋ ์ํ์ด ๋ฐ๋ฆ
๋๋ค. SSL์ ํต์ ํ ๋ SSL ํ๋๊ทธ๊ฐ ์ค์ ๋์ง ์๊ณ ์ฟ ํค๋ฅผ ์ผ๋ฐ ํ
์คํธ๋ก ์ ๋ฌํ๋ ์ฌ์ดํธ๊ฐ ์ผ๋ง๋ ๋ง์์ง ๋๋์ต๋๋ค. ์ฟ ํค ์ธ์
์ด ์ํํฉ๋๊น?
๋ด๊ฐ ์ฐพ์ ์ ์๋ ๊ฐ์ฅ ํฐ ์ํ์ ์ฝ๋๊ฐ ํ ํฐ์ ์๋ชป๋ ์๋ฒ๋ก ๋ณด๋ด๋๋ก ํ์ฉํ๊ณ ํ ํฐ์ ํตํด ์ 3์๊ฐ ์ด๋ฌํ ๋ณด์กฐ ์ฌ์ฉ์ ๋ฆฌ์์ค์ ํจ๊ณผ์ ์ผ๋ก ์ก์ธ์คํ ์ ์๋ค๋ ๊ฒ์
๋๋ค. ์ด๊ฒ์ ์ด๋๊ฐ์ ํฐ ๋นจ๊ฐ ๊ธ์๋ก ํ์๋์ด์ผ ํ๋ฉฐ ์ด๋ฐ ์ผ์ด ๋ฐ์ํ์ง ์๋๋ก ๊ฐ๋ฐ์์๊ฒ ๊ฐ๋ ฅํ ์ฑ
์์ ์ ธ์ผ ํฉ๋๋ค. ๊ฐ๋ฐ์๋ ํ์ํ ๋ณด์ ์กฐ์น๊ฐ ์ทจํด์ก๋์ง ํ์ธํ๊ธฐ ์ํด ์ ์ ํ ์กฐ์น๋ฅผ ์ทจํด์ผ ํ๋ฉฐ ์ด์ ๊ฐ์ ๋ฆฌํฌ์งํ ๋ฆฌ๋ ์ด๋ฌํ ์ ๊ทผ ๋ฐฉ์ ์ค ์ผ๋ถ๋ฅผ ์ค๋ช
ํ๊ณ ์ด๋ฅผ ์์ ์ ํฌํจํด์ผ ํฉ๋๋ค. ๋ด ์๊ฐ์ ์ด๊ฒ์ ์ค์ํ์ง ์์ ์๋น์ค์ ๋ํ ๊ต์ฐจ ๋๋ฉ์ธ ์๊ฐ ์ ํ ์๋น์ค ์ธ์ฆ์ ์ ์ฐ์ฑ์ ๋ํด ์ง๋ถํ ์ ์๋ ์์ฉ ๊ฐ๋ฅํ ๊ฐ๊ฒฉ์
๋๋ค.
๋ณต์กํ ์๋ฃจ์
์ ์ค๊ณํ ๋ ์ธ์ฆ ๋์ ์ธ์
์ฟ ํค๋ฅผ ํฌํจํ ๊ฐ๋ฅ์ฑ์ด ์์ผ๋ฉฐ ์ ์ ํ ๊ฒฝ์ฐ ์ผํ์ฉ ํ ํฐ ๋ฑ์ ํฌํจํ๋๋ก ํ์ฅ๋ ์ ์์ต๋๋ค. ์์ ์ ์ด ์ผ์ด ๊ฐ๋ฅํ๊ณ ์๋ชป๋ ์ ์๊ณ ์ํ์ ๋
ธ์ถํ ์ ์๋ ๊ณณ์ด ์์ง๋ง ๋ง์ ๊ฒฝ์ฐ์ ๋ ํ๋ถํ๊ณ ๋ ๊ฐ๊ฒฐํ ์ ํ๋ฆฌ์ผ์ด์
์ ๊ตฌ์ถํ ์ ์๋ ๊ธฐํ๋ฅผ ์ ๊ณตํ๋ค๋ ๊ฒ์
๋๋ค. ์ด๋ฌํ ์ด์ ๋ก ์ ๋ ์ด ๋ฆฌํฌ์งํ ๋ฆฌ๊ฐ ์ ์๋ ๋๋ก ๋น๋๋์ด์ผ ํ๋ค๊ณ ์๊ฐํ์ง ์์ต๋๋ค. ๋ฌธ์ ๋ก๊ฑฐ์ ์ํด.
JWT๋ฅผ ์ธ์
๋ฌธ์์ด๋ก ์ฌ์ฉํ์ฌ ๋ ์ธ๊ณ์ ์ฅ์ ์ ๋ชจ๋ ์ป์ผ๋ ค๋ ๊ฒฝํฅ์ ๋ฌธ์ ๋ฅผ ์ผ์ผํค๋ ๊ฒ ๊ฐ์ต๋๋ค. ๊ฐ์ฅ ํ์ ํ๊ฒ ์ถฉ๋ํ ์ ์๋ ์๊ฐ ์ด๊ณผ/TTL ๊ธฐ๊ฐ์
๋๋ค. ๋ํ ์ฒ์์ ํผํ๋ ค๊ณ ํ๋ ๊ฒ๊ณผ ๋์ผํ ๋๋ฉ์ธ ์ก์ธ์ค ์ ํ์ ์ ์ฉํ๋ฏ๋ก ๊ธฐ๋ณธ ์์ ์ ๋ฃ์ผ๋ฉด ์ฌ๋๋ค์ด ์ฒ์์ JWT๋ฅผ ์ฌ์ฉํ๋ ์ด์ ๋ฅผ ๋ฌป๊ฒ ๋ ๊ฒ์
๋๋ค.
์ข
์์ฑ์ผ๋ก JS๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ์์ฃผ ์ฌ์ํ ์ผ์
๋๋ค. ํ์ด๋ธ๋ฆฌ๋ ๋ชจ๋ฐ์ผ SPA์ ๋งฅ๋ฝ์์ JS ๋ฌด๋ฃ ํด๋ผ์ด์ธํธ๋ฅผ ์์ฉํ ํ์๋ ์์ ๊ฒ์
๋๋ค. redis๊ฐ ์ธ์
์ ์ฅ์ ์ํ ํจ์จ์ ์ธ ์ต์
์ ์ ๊ณตํ๋ค๊ณ ์ ์ฌํ๊ฒ ์ฃผ์ฅํ๋ฉด์ ์ด๊ฒ์ด ๋ฌธ์ ๋ผ๊ณ ์ ์ํ๋ ๊ฒ์ ์ฝ๊ฐ ๋ชจ์๋๋ ๊ฒ์ฒ๋ผ ๋ณด์
๋๋ค.
JWT์ ๋ง๋ฃ๋ ์๋ก ๊ณ ์นจ(์ฟ ํค ์ธ์
์ด ์๋ก ๊ณ ์ณ์ง๋ ๊ฒ๊ณผ ์ ํํ ๊ฐ์ ๋ฐฉ์)์ผ๋ก ์ฒ๋ฆฌ๋๊ฑฐ๋ ์ฌ์ธ์ฆ์ด ํ์ํ ์ธ์
์๊ฐ ์ด๊ณผ๋ฅผ ์ ๊ณตํ๋ค๋ ์ ์์ ์ธ๋ชจ๊ฐ ์์ต๋๋ค. JWT์ ์๋ช
ํ๋ฉด ๋ณ์กฐ๋์ง ์์์ผ๋ฏ๋ก ์๊ตฌ ์ ์ฅ์ ์๋ฒ ์ธก ์ ํจ์ฑ ๊ฒ์ฌ์ ๋ํ ์ ๋ ์๊ตฌ ์ฌํญ์ด ์ ๊ฑฐ๋์ง๋ง ์ํ๋ ๊ฒฝ์ฐ ์ํํ ์ ์์ผ๋ฉฐ ๋ง์ ์๊ฒฌ์ด ์๋ ๊ตฌํ ์์ด ์ฟ ํค ์ธ์
๊ณผ ๋์ผํ ๊ฒฐ๊ณผ๋ฅผ ์ป์ ์ ์์ต๋๋ค. ์ ์ ํ ๊ฒฝ์ฐ ๊ต์ฐจ ๋๋ฉ์ธ์ ํ์ฉํ๋ ๋ฅ๋ ฅ. ํ์ด๋ธ๋ฆฌ๋ ๋ชจ๋ฐ์ผ ์ฑ์์ ๋ก์ปฌ ์ ์ฅ์์ ์ฟ ํค ๋๋ JWT๋ฅผ ์ ์ฅํ๋ฉด ๋ ๋ง์ ์ ์ด๊ฐ ๊ฐ๋ฅํฉ๋๋ค. ๋ธ๋ผ์ฐ์ ๊ตฌํ์ ๋ณด์์ ๋ํ ๋ก์ปฌ ์คํ ๋ฆฌ์ง ์ฌ์ฉ์ ๋ํ ๋ฐ๋๋ ๊ณต๊ธ์
์ฒด์ ๋ํ ์ ๋ขฐ์ ์ด๋ฌํ ์๊ฒฉ ์ฆ๋ช
์ฒ๋ฆฌ์ ๋ํ ์น์ธ์ ๋ฌธ์ ์
๋๋ค.
์ ์ฐ์ฑ์ ๋ง์ ๋ชจ๋ฐ์ผ ํ์ด๋ธ๋ฆฌ๋ SPA ๊ฐ๋ฐ์์๊ฒ ์ ์ฉํ์ง๋ง ์ ํ ์ฌํญ์ ๋ํ ์ดํด๊ฐ ํ์ํฉ๋๋ค.
JWT๋ ๋จ์ํ ์๋ช
ํค๋ฅผ ๋ณ๊ฒฝํ์ฌ ๋ฌดํจํํ ์ ์์ผ๋ฉฐ ์ด๋ ๋ค์ ์ ์ฐ์ฑ์ ์ ๊ณตํฉ๋๋ค. ์๋น์ค ์ ๋ฐ์ ๊ฑธ์ณ ๊ณตํต ๊ณต์ ๊ฐ์ธ ์๋ช
ํค๋ฅผ ์ฌ์ฉํ๊ฑฐ๋ ์ฌ์ฉ์ ์ธ์
๋น ๋ฌด์์๋ก ์์ฑํ๊ณ ์ธ์
์ฟ ํค์ ์ผ์ข
์ ๊ฑฐ๋ถ ์ด์ ์ ์คํํ ์ ์์ต๋๋ค.
๊ฑฐ์ ๋ชจ๋ ์ต์ JS ํ๋ ์์ํฌ๋ JWT๋ฅผ ์ง์ํ๋ฉฐ ์ง์ํ์ง ์๋ ์ฃผ์ ํ๋ซํผ์ ์ฐพ๊ธฐ๊ฐ ์ด๋ ค์ธ ๊ฒ์
๋๋ค. ์ผ๋ถ๋ ๊ทธ๋ ์ง ์์ ์๋ ์์ต๋๋ค(Wordpress JWT ํ๋ฌ๊ทธ์ธ .. ํ .. ์ดํด๋ณด์ง ์์์ง๋ง ์ ๋ฅผ ๊ธด์ฅํ๊ฒ ๋ง๋ญ๋๋ค).
JWT ์ฌ์ฉ์๋ OAUTH์ ๋ํ ๋ฐฐ๊ฒฝ ์ง์๊ณผ ์ฟ ํค ์ธ์
์ฌ์ฉ์ ์ฅ๋จ์ ๋ฐ ์ด์ ์ด ํฌํจ๋์ด์ผ ํฉ๋๋ค. ์ ๊ฒ๋ ์ฌ๋ฌ ์๋น์ค๋ฅผ ์ฌ์ฉํ๋ ์ผ๋ฐ ๋ชจ๋ฐ์ผ ํ์ด๋ธ๋ฆฌ๋ ๊ฐ๋ฐ์์๊ฒ ์ค์ง์ ์ธ ์
๋ฌด์์ ์ด์ ์ด ์์ง๋ง ์ฝ๊ฒ ๋น ์ง๋ ํจ์ ์ด ์์ต๋๋ค. ์์ ํ ์ค๋ช
ํ๋ ค๋ฉด ๋ง์ ์๊ฐ ํ์ํ ์ ์์ต๋๋ค.
JWT๋ฅผ ์ธ์ฆ์ฉ ํ ํฐ์ผ๋ก ์ฌ์ฉํ๋ ๊ฒ์ ๋ํ ๋์ _์๋ ์ถ๋ก _์ JWT๊ฐ CPU ๋ฐ์ด๋ ์ธ์ง ํ์ธํ๋ค๋ ๊ฒ์
๋๋ค(_๋ด "์ด์ " ๋ฉํฑ์ ์ด๋น 180k JWT๋ฅผ ํ์ธํ ์ ์์_). ๋ฐ๋ฉด์ ๊ฐ๋จํ ํ ํฐ์ ์ฌ์ฉํ๊ณ ์กฐํํด์ผ ํ๋ค๋ฉด ๋ฉ๋ชจ๋ฆฌ(๋๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค)์์ ์์
์ I/O ๋ฐ์ด๋ (_๋๋ ๋ ๋์ ๋คํธ์ํฌ
http://stackoverflow.com/questions/868568/what-do-the-terms-cpu-bound-and-io-bound-mean
์ธ์ ๊ด๋ฆฌ ์์คํ _first_๋ JWT๊ฐ _์๋ช ๋_ ํค๋ฅผ ์ฌ์ฉํ์ฌ JWT๊ฐ ์ ํจํ์ง ํ์ธํ๊ณ , ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ _์กฐ๊ธฐ_ ๋ฉ์์ง๋ฅผ ๊ฑฐ๋ถํ๊ณ , _then_ ์ธ์ ์ด ์์ง ๋ฌดํจํ๋์ง ์์๋์ง ํ์ธํฉ๋๋ค(์: ์ฌ์ฉ์ ๋ก๊ทธ์์). .
JWT๊ฐ Authorization ํค๋์ ํ ํฐ์ผ๋ก ์ฌ์ฉ๋๋๋ก _์ค๊ณ๋์ง ์์์ ์๋ ์๋ค๋ ๊ฒ์ ์๊ณ ์์ต๋๋ค.
์ฐธ๊ณ : ๋๋ ์ฌ์ ํ "์ฟ ํค ์์" ๊ฐ๋๊ฐ ์ด ์ถ๊ฐ ์ ๋ณด/์์ต์๋ฅผ ์์ํ๋ ์ฌ๋ฐ๋ฅธ ๋ฐฉ๋ฒ์ด ์๋๋ผ๋ ๋ฐ ๋์ํฉ๋๋ค. ๐