๋ก๊ทธ์ธ์ JWT ํ ํฐ๊ณผ Refresh ํ ํฐ ๊ด๋ฆฌ๋ฅผ Redis์ ์ ์ฅํ๊ธฐ ๊น์ง์ ๊ณผ์ ์ ์ ๋ฆฌํ ๋ฌธ์์ ๋๋ค.
์นํฐ์ ์ฝํ ์ธ ์๋น์ด๋ฏ๋ก ์ฌ์ฉ์๊ฐ ๋ง๊ณ ๋ชจ๋ฐ์ผ, PC, ์ฑ ๋ฑ ๋ค์ํ ํ๊ฒฝ์์ ์ ์. ์ธ์ฆ ๋ฐฉ์์ ์๋ ์๊ตฌ์ฌํญ์ ๋ง์กฑํ๋๋ก ๊ณ ๋ ค.
ํธ๋ํฝ์ด ์ปค์ง๋ฉด์ ์๋ฒ์ ์ํ ํ์ฅ(Scale-out)์ ์๊ฐํ๊ฒ ๋์์ง๋ง ์ธ์ ๋ฐฉ์์ ์ฌ์ฉ์ ์๋์ ๊ฐ์ ๋ฌธ์ ๋ฐ์ ๊ฐ๋ฅ์ฑ ์์
- ์) ์ธ์ ์ ์๋ฒ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅํ๋ฉด, ์ฌ์ฉ์๊ฐ '์๋ฒ1'์์ ๋ก๊ทธ์ธํ ๋ค ๋ก๋๋ฐธ๋ฐ์ฑ์ผ๋ก '์๋ฒ2'๋ก ๋ผ์ฐํ ๋ ๊ฒฝ์ฐ ์ธ์ ์ ์ฐพ์ง ๋ชปํด ๋ก๊ทธ์ธ์ด ํ๋ฆด ์ ์์.
- But, ์ธ์ ๊ธฐ๋ฐ ์ธ์ฆ์ ์์ฒญ๋ง๋ค ์ธ์ ์กฐํ๊ฐ ๋ฐ์ํ๋ฏ๋ก ํธ๋ํฝ์ด ์ปค์ง์๋ก Redis ์กฐํ QPS๊ฐ ์ฆ๊ฐ.
- ๊ฒฐ๋ก : ์ด์ ๊ด์ ์์๋ ๋น์ฉ, ์ง์ฐ, ์ฅ์ ๋์ ๋ถ๋ด์ด ์ปค์ ธ ์ธ์ ๋ฐฉ์์ ์ฑํํ์ง ์์
์๋น์ค๋ ํธ๋ํฝ ์ฆ๊ฐ์ ๋ฐ๋ผ ์ํ ํ์ฅ(Scale-out) ์ด ํ์ํ๊ณ , ์๋ฒ๊ฐ ์ธ์ฆ ์ํ(์ธ์ )๋ฅผ ๋ค๊ณ ์์ผ๋ฉด ํ์ฅ ์ ๊ตฌ์กฐ๊ฐ ๋ณต์กํด์ง๋ค. ๋ฐ๋ผ์ ์ธ์ฆ์ ์๋ฒ ์ํ์ ์์กดํ์ง ์๋ Stateless ๋ฐฉ์์ด ์ ํฉํ๋ค๊ณ ํ๋จํ๊ณ , ์ต์ข ์ ์ผ๋ก JWT ๊ธฐ๋ฐ ํ ํฐ ์ธ์ฆ(Access/Refresh) ์ ์ฑํ.
Access Token ๋ง๋ฃ์ ํ ํฐ์ ๊ฐฑ์ ํ ๋ฐฉ๋ฒ์ผ๋ก Refresh Token์ ์ฌ์ฉํด์ผ ํ๊ณ , Refresh Token์ ์ด๋์ ์ ์ฅ ํด์ผํ๋์ง์ ๋ํ ์ด์๊ฐ ๋ฐ์. ๋ํ ๋ณด์์ ์๋ ์๊ตฌ์ฌํญ์ ๋ง์กฑ์ํค๋ ๊ฒ์ ๊ณ ๋ ค.
๋น์ฉ๊ณผ ์ด์์ ๊ณ ๋ คํ๋ค๋ฉด RDB ์์ง๋ง ์ฌ์ฉํ์ง ์๊ฒ๋ Refresh Token์ Refresh Token์ ์ ํจ๊ธฐ๊ฐ์ ๋ง์ถฐ ์ ๊ฑฐํ๋ ๊ฒ์ด ์ค์ํ๋ค๊ณ ์๊ฐ. RDB ์ฌ์ฉ์ ๋ฐฐ์น ๋ฑ์ผ๋ก ๋ง๋ฃ๋ ํ ํฐ์ ์ ๊ฑฐ๋ ๊ฐ๋ฅํ์ง๋ง, Refresh Token์ ์ ํจ๊ธฐ๊ฐ ์ดํ ์๋ฏธ๊ฐ ์๋ ์์ ๋ฐ์ดํฐ์ด๋ฏ๋ก TTL๋ก ์๋ ๋ง๋ฃ๋๋ Redis๊ฐ ๋ฐ์ดํฐ ์ฑ๊ฒฉ๊ณผ ์ด์ ๋จ์์ฑ ์ธก๋ฉด์์ ๋ ์ ํฉํ๋ค๊ณ ํ๋จํจ.
์๋ฒ์ ์ํ์ ํ์ฅ์ ๊ณ ๋ คํด Serverless ๋ฐฉ์์ธ JWT ํ ํฐ์ ์ ์ฉํ์ผ๋ฉฐ, Refresh Token์ ์ ์ฅ ๋ฐฉ์ ๋ฌธ์ ๋ ํ ํฐ ํ์ทจ ํ๋ฅ ๊ณผ ๊ฐ์ ๋ก๊ทธ์์ ๊ฐ๋ฅ ๋ฑ ๋ณด์์ ๋ฌธ์ ๋ฅผ ์ค์ด๊ธฐ ์ํด Redis๋ฅผ ์ ์ฅ์ ์ ํ(Redis๋ TTL ์๋น์ค๋ฅผ ์ํด ์ ์ )
