11์กฐ ํ”„๋กœ์ ํŠธ์—์„œ ์ €๋Š” ๋„์„œ ๋“ฑ๋ก, ๊ตฌ๋งค, ์˜ˆ์•ฝ์„ ์›ํ•˜๋Š” ์‚ฌ์šฉ์ž์— ๋Œ€ํ•œ ๋กœ๊ทธ์ธ ์ธ์ฆ ๊ธฐ๋Šฅ์„ ๋‹ด๋‹นํ–ˆ์Šต๋‹ˆ๋‹ค.

๋กœ๊ทธ์ธ ๋ฐฉ์‹์œผ๋กœ๋Š” Spring Security ๊ธฐ๋ฐ˜์˜ JWT ํ† ํฐ ์ธ์ฆ ๋ฐฉ์‹์„ ๋„์ž…ํ–ˆ์œผ๋ฉฐ, ์ด๋ฅผ ํ†ตํ•ด statelessํ•œ ์ธ์ฆ ์ฒ˜๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋„๋ก ์„ค๊ณ„ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด ๊ณผ์ •์—์„œ, Refresh Token์„ DB์— ์ €์žฅํ• ์ง€ Redis์— ์ €์žฅํ• ์ง€์— ๋Œ€ํ•ด ๊ณ ๋ฏผํ•˜๊ฒŒ ๋˜์—ˆ๊ณ , ๊ฐ ๋ฐฉ์‹์˜ ์žฅ๋‹จ์ ์„ ๋น„๊ต ๋ถ„์„ํ•˜๋ฉฐ ์ตœ์ ์˜ ๋ฐฉ์‹์„ ์„ ํƒํ•˜๋ ค ๋…ธ๋ ฅํ–ˆ์Šต๋‹ˆ๋‹ค.


1. ๋ฌธ์ œ ์ •์˜ (Why): MySQL ์ €์žฅ ๋ฐฉ์‹์˜ ํ•œ๊ณ„

๊ธฐ์กด์—๋Š” RefreshToken์„ MySQL DB์— ์ €์žฅ์„ ํ•˜๊ณ  ์กฐํšŒํ•จ

image.png

๊ธฐ์กด DB๋กœ Refresh Token์„ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ์‹์˜ ๋Œ€์•ˆ ํ•„์š”


2. ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• (How): Redis๋ฅผ ํ™œ์šฉํ•œ Refresh Token ๊ด€๋ฆฌ

์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด, Refresh Token ์ €์žฅ์†Œ๋ฅผ DB์—์„œ Redis๋กœ ๊ตฌํ˜„