โ์ธ์ ID๋ฅผ ์ ๋ฌํ๋ ๋งค๊ฐ์ฒดโ
cookie
์๋ฒ๋ ์ฟ ํค๋ฅผ ์ด์ฉ ๋ธ๋ผ์ฐ์ ์ ๋ด ์ ๋ณด๋ฅผ ๊ธฐ์ต
ํ๊ธฐ ์ํ ๋ฐ์ดํฐ๋ฅผ ๋ฃ์ ์ ์๋ค.
- ์ฌ์ดํธ์ ๋ฐฉ๋ฌธํ๋ฉด ๋ธ๋ผ์ฐ์ ๋ ์๋ฒ์ request๋ฅผ ๋ณด๋
- ์๋ฒ๋ ๋ชจ๋ ๋ฐ์ดํฐ์ ๋ด๊ฐ ์ฐพ๋ ํ์ด์ง ์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ responseํจ
(์ด response ์์ ๋ธ๋ผ์ฐ์ ๊ฐ ์ ์ฅํ๊ณ ์ ํ๋ ์ฟ ํค๊ฐ ์๋ค)
์ฟ ํค๋?
- ์ฟ ํค๋
๋๋ฉ์ธ์ ๋ฐ๋ผ ์ ํ
๋๋ค- ์ ํ๋ธ๊ฐ ์ค ์ฟ ํค๋ ์ ํ๋ธ์๋ง ์ ๋ฌ๋จ
- ์ฟ ํค๋
์ ํจ๊ธฐ๊ฐ
์ด ์๋ค- ์๋ฒ๊ธฐ ์ ํ ๊ธฐ๊ฐ๋ง๋ค ๋ค๋ฆ
- ์ฟ ํค๋ ์ธ์ฆ ๋ฟ๋ง ์๋๋ผ
์ฌ๋ฌ๊ฐ์ง ์ ๋ณด๋ฅผ ์ ์ฅ
ํ ์ ์๋ค- ์น์ฌ์ดํธ ์ธ์ด์ค์ ๋ณ๊ฒฝ์ผ๋ก ์์
- ์น์ฌ์ดํธ ์ธ์ด์ค์ ๋ณ๊ฒฝ์ผ๋ก ์์
session / JWT
1. session
HTTP ํ๋กํ ์ฝ์
stateless
!
- ์๋ฒ๋ก ๊ฐ๋ ๋ชจ๋ ์์ฒญ์ด, ์ด์ request์๋ ๋ ๋ฆฝ์ ์ผ๋ก ๋ค๋ค์ง๋ค
- ์์ฒญ๋ผ๋ฆฌ ์ฐ๊ฒฐ์ด ์์. ๋ฉ๋ชจ๋ฆฌ๊ฐ ์์.
์์ฒญ์ด ๋๋๋ฉด ์๋ฒ๋ ์์ด๋ฒ๋ฆฌ๊ธฐ ๋๋ฌธ์, ์์ฒญ์๋ง๋ค ์ฐ๋ฆฌ๊ฐ ๋๊ตฐ์ง ์๋ ค์ค์ผํ๋ค
์๋ ค์ฃผ๋ ๋ฐฉ๋ฒ ์ค ํ๋๊ฐ ๋ฐ๋ก session!
login ์์
- Nico๋ผ๋ ์ ์ ๊ฐ ๋ก๊ทธ์ธ์ ํ๊ณ ์ถ๋ค๋ฉด,
- ์ ์ ๋ช ๊ณผ ๋น๋ฐ๋ฒํธ๋ฅผ ์๋ฒ์ ๋ณด๋ธ๋ค
- ๋น๋ฒ์ด ๋ง๋ค๋ฉด ์๋ฒ๋ ์ธ์ DB์ Nico๋ผ๋ ์ ์ ๋ฅผ ์์ฑํจ(ํด๋น ์ธ์ ์๋ ๋ณ๋์ ID ์กด์ฌ)
- ํด๋น ์ธ์ ID๋ ์ฟ ํค๋ฅผ ํตํด ์๋ฒ๋ฅผ ๊ฑฐ์ณ ๋ธ๋ผ์ฐ์ ๋ก ๋์์ค๊ณ ์ ์ฅ๋๋ค
๋ฐ๋ผ์, ๊ฐ์ ์น์ฌ์ดํธ์ ๋ค๋ฅธ ํ์ด์ง๋ก ์ด๋ํ๋ฉด?
- ๋ธ๋ผ์ฐ์ ๊ฐ
์ธ์ ID
๋ฅผ ๊ฐ์ง๊ณ ์๋ ์ฟ ํค๋ฅผ ์๋ฒ์ ๋ณด๋ธ๋ค - ์๋ฒ๋
์ธ์ ID
์ ํจ๊ป ์ค๋ ์ฟ ํค๋ฅผ ํ์ธํ๋ค- ์๋ฒ๋ ์์ง๊น์ง๋ ๋ด๊ฐ ๋๊ตฌ์ธ์ง ๋ชจ๋ฆ
์ธ์ ID
๊ฐ ์๋ ์ฟ ํค๋ฅผ ๊ฐ์ง ์์ฒญ์ด ์๋ค๋ ๊ฒ๋ง ์๊ณ ์๋ค!
- ์๋ฒ๋ ํด๋น
์ธ์ ID
๋ฅผ ๊ฐ์ง๊ณ ์ธ์ DB๋ฅผ ํ์ธํ๊ณ - ์ธ์
DB๋ ์ด
์ธ์ ID
๊ฐ ์ ์ ๋ช Nico์ ๊ฒ์ด๋ผ๋ ๊ฑธ ์๋ ค์ค - ์๋ฒ๋ ์ด์ ์ผ ๋๊ตฌ์ธ์ง ์๊ณ , ํ์Nico ๋ฉ์์ง๋ฅผ ๋์ด๋ค
=> ํด๋น ์์ฒญ์ด ๋๋๊ณ ๋ค๋ฅธ ํ์ด์ง๋ก ์ด๋ํ๋ฉด?
์ ์ ๋ ์ค์ง ์ธ์
ID
๋ง ๊ฐ์ง๊ณ ์๋ค!
์๋ฒ๊ฐ ์ ์ ์ ๋ํ ๋ชจ๋ ์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ ์์
์ฟ ํค๋ ์ด ์ธ์
ID
๋ฅผ ์ ๋ฌํ๊ธฐ ์ํ ๋งค๊ฐ์ฒด
์ผ ๋ฟ!
token
์ด๋?์ฟ ํค ๋์ ์ฌ์ฉํ๋ ๋งค๊ฐ์ฒด
!
์ธ์ ์ ์ด์ฉํด android, ios ์ฑ์ ๋ง๋ค ์ ์์ง๋ง ์ฟ ํค๋ native ์ฑ์ ์๊ธฐ ๋๋ฌธ์ ์ฌ์ฉํ ์ ์๋ค. ์ฟ ํค๋ ์ค์ง ๋ธ๋ผ์ฐ์ ์๋ง ์์
=> ์ธ์ ID๋ฅผ ์ ๋ฌํด์ฃผ๋ ๋งค๊ฐ์ฒด๋ก ์ฟ ํค ๋์ ํ ํฐ์ ์ฌ์ฉ!
ํ ํฐ์ ๊ทธ๋ฅ ์ด์ํ๊ฒ ์๊ธดstring
์ด๋ค.
๊ธฐ์ตํด์ผํ ๋ถ๋ถ!
- ํ์ฌ ๋ก๊ทธ์ธํ ์ ์ ๋ค์ ๋ชจ๋ ์ธ์
ID๋ฅผ DB์ ์ ์ฅํด์ํ๋ค.
- request๊ฐ ๋ค์ด์ฌ ๋๋ง๋ค
- ์๋ฒ๋ ์ฟ ํค๋ฅผ ๋ฐ์์ ์ธ์ ID๋ฅผ ๋ณด๊ณ ,
- ์ธ์ ID์ ์ผ์นํ๋ ์ ์ ๋ฅผ ์ฐพ์์ผํ๊ณ ,
- ๊ทธ์ ์์ผ ๋ค์ ์์ ์ ์ํํ ์ ์๋ค.
- request๊ฐ ๋ค์ด์ฌ ๋๋ง๋ค
=> ์์ฒญ์ด ์์ ๋๋ง๋ค DB๋ฅผ ๋ค์ ธ์ผํ๋ค.
์ ์ ๊ฐ๋์ด๋จ์ ๋ฐ๋ผ DB ๋ฆฌ์์ค๊ฐ ๋ ํ์ํ ๊ฒ
!
์ด๋ ์ฌ์ฉํ๋ ๊ฒ์ด JWT
2.JWT
JWT๋ ์ฟ ํค๊ฐ ์๋ ํ ํฐํ์์ด๋ค
JWT๋ก ์ ์ ์ธ์ฆ์ ์ฒ๋ฆฌํ๋ฉด, ์ธ์
DB๋ฅผ ๊ฐ์ง ํ์๊ฐ ์์.
์๋ฒ๋ ์ ์ ์ธ์ฆ์ ์ํด์ ๋ง์ ์ผ์ ํ์ง ์์๋ ๋๋ค
ํ ํฐ์ ์๋ฒ๋ก๋ถํฐ ๋ฐ์์, requestํ ๋๋ง๋ค ๋ณด๋ด์ผํ๋ ๊ฒ. ์๋ฒ๋ ๋ฐ์ ์์ฒญ์์ ์๋ ํ ํฐ์ผ๋ก ์ธ์ DB์์ ์ผ์นํ๋ ๊ฒ์ ์ฐพ์์ผํจ.(์ผ์ด ๋๋ฌด ๋ง์์ DB ๋ฆฌ์์ค๊ฐ ๋ ํ์ํ ๊ฒ)
์ด๋ฌํ ์ธ์ ๋ฐฉ์ ๋์ JWT
๋ก๊ทธ์ธ ์์
- ์ ์ ๊ฐ ๋ก๊ทธ์ธ์ ํ๋ ค๊ณ ID password๋ฅผ ์๋ฒ์ ์ ์ก
- ID password๊ฐ ๋ง๋ค๋ฉด, ์ธ์
๋ฐฉ์์ฒ๋ผ ์ธ์
DB์ ํด๋น ์ ์ ์ ๋ณด๋ฅผ
์์ฑํ์ง ์๋๋ค
. ๋์ ์ ์ ์ ID ๋ฑ์ ๊ฐ์ ธ๋ค๊ฐ signature algolythm์ ์ด์ฉํด ์ฌ์ธํจ. - ํด๋น ์ฌ์ธ๋ ์ ๋ณด๋ฅผ string ํํ๋ก ๋ณด๋ด์ค.
์ฟ ํค๋ณด๋ค ํจ์ฌ ๊ธธ๋ค. ์ฟ ํค๋ ๊ณต๊ฐ ์ ์ฝ์ด ์์ง๋ง, JWT๋ ์ ์ฝ์ด ์๊ธฐ ๋๋ฌธ์!
session๊ณผ JWT์ ์ฐจ์ด์
์ ๋ฆฌ! โจ
session
session ๋ฐฉ์์,
session ID
๋ฅผ ๊ฐ์ง request๊ฐ ์ค๋ฉด ์ธ์
DB
์์ ์ธ์
ID
๋ฅผ ์ฐพ๋ ๊ฒ!
- ์ฅ์
์๋ฒ๊ฐ ๋ก๊ทธ์ธ ๋ ์ ์ ์ ๋ชจ๋ ์ ๋ณด๋ฅผ ์ ์ฅ
ํ๊ธฐ ๋๋ฌธ์, ์๋ก์ด ๊ธฐ๋ฅ์ ์ถ๊ฐํ ์ ์๋ค!- ํน์ ์ ์ ๋ฅผ ์ซ์๋ด๊ณ ์ถ์ ๋ session์ ์ญ์ ํ๋ฉด ๋จ.
- ์ธ์คํ๊ทธ๋จ์ฒ๋ผ ๋ก๊ทธ์ธ ๋ ๋ชจ๋ device ์ค ๊ฐ์ ๋ก๊ทธ์์์ ํ ์ ์๋ค.
- ๋ทํ๋ฆญ์ค์ฒ๋ผ ๊ณ์ ๊ณต์ ์ซ์๋ฅผ ์ ํํ ์ ์๋ค. (์ง๊ธ ๋ช ๋ช ์ด ๋ก๊ทธ์ธํ๋์ง ์ ์ ์์ด์)
- ๋จ์
- ์ด๋ ๊ฒ ๊ด๋ฆฌ๋ฅผ ํ๊ธฐ ์ํด์๋
DB๋ฅผ ๊ตฌ๋งคํ๊ณ , ์ ์ง
ํด์ผํจ.- ์ ์ ๊ฐ ๋์ด๋ ์๋ก DB๊ฐ ์ผ์ ธ์ผํจ.
- ์ด๋ฅผ ์ํ DB๋ก๋ ์ฃผ๋ก Redis๋ฅผ ์ฌ์ฉํจ
- ์ด๋ ๊ฒ ๊ด๋ฆฌ๋ฅผ ํ๊ธฐ ์ํด์๋
JWT
JWT ๋ฐฉ์์,
token
๋ฅผ ๊ฐ์ง request๊ฐ ์ค๋ฉด ๊ทธ token
์ ์ ํจ์ฑ ๊ฒ์ฌ
๋ฅผ ํ๋ ๊ฒ!
๋จ JWT๋ ์ํธํ๊ฐ ๋์ง ์์๋ค. (์ํธํ๋ฅผ ํ๋ฉด ์๋ฌด๋ ์ฝ๊ฑฐ๋ ์ดํดํ ์ ์๊ฒ ๋จ)
๋๊ตฌ๋ ์ด์ด์ ํด๋น ์ปจํ ์ธ ๋ฅผ ๋ณผ ์ ์๊ธฐ ๋๋ฌธ์, ๋น๋ฐ์ ๋ณด๋ฅผ JWT์ ๋ฃ์ด์ ์๋จ
- ์ฅ์
- ๋ฐ์ดํฐ๋ฅผ ์ฌ์ธํ๊ณ ์ ์ ์๊ฒ ๋ณด๋ด๊ธฐ ๋๋ฌธ์, ์ธ์
์ด๋ DB ์์ด๋ ์ ์ ์ธ์ฆ ๊ฐ๋ฅ!
- ํด๋น ๋ฐ์ดํฐ๋ฅผ ๋๋ ค๋ฐ์ ๋, ์ ํจ์ฑ์ ๊ฒ์ฆํ ์ ์๋ค
QR ์ถ์ ์ฒดํฌ์ธ
๋ํ JWT๊ฐ ๋ค์ด๊ฐ QR์ฝ๋์ด๋ค
- ๋ฐ์ดํฐ๋ฅผ ์ฌ์ธํ๊ณ ์ ์ ์๊ฒ ๋ณด๋ด๊ธฐ ๋๋ฌธ์, ์ธ์
์ด๋ DB ์์ด๋ ์ ์ ์ธ์ฆ ๊ฐ๋ฅ!
- ๋จ์
- ์์ฑ๋ ํ ํฐ์ ์ถ์ ํ์ง ์๊ธฐ ๋๋ฌธ์, ๊ฐ์ ๋ก๊ทธ์์ ๋ฑ์ ๊ธฐ๋ฅ์ ์ธ ์ ์๋ค.
- ์๋ฒ๊ฐ ์๋๊ฒ์ ์ค๋ก์ง
์ ํจ์ฑ ์ฌ๋ถ
๋ฟ! ํด๋น ํ ํฐ์ด ๋ง๋ฃ๋๊ธฐ ์ ๊น์ง๋ ๋ชจ๋ ์ ํจ
ํ๋ค.
- ์๋ฒ๊ฐ ์๋๊ฒ์ ์ค๋ก์ง
- ์์ฑ๋ ํ ํฐ์ ์ถ์ ํ์ง ์๊ธฐ ๋๋ฌธ์, ๊ฐ์ ๋ก๊ทธ์์ ๋ฑ์ ๊ธฐ๋ฅ์ ์ธ ์ ์๋ค.
์๋น์ค๊ฐ ๋ ์ปค์ง๊ณ , ์ ์ ๋ฅผ ์ข ๋ ์ ๊ด๋ฆฌ
ํด์ผํ๋ค๋ฉด session ๋ฐฉ์
์ผ๋ก!
๊ฒฐ๋ก
์ข ๋ฅ | ๊ธฐ๋ฅ |
---|---|
Cookie |
๊ทธ๋ฅ ์ฎ๊ธฐ๋ ์์คํ . ๋งค๊ฐ์ฒด |
Token |
์๋ฒ๊ฐ ๊ธฐ์ตํ๋ ์ด์ํ๊ฒ ์๊ธด ํ ์คํธ!(ID์นด๋์ฒ๋ผ ์๋ฒ์๊ฒ ๋ณด์ฌ์ค์ผํ๋ค) |
JWT |
์ ๋ณด๋ฅผ ๊ฐ๊ณ ์๋ ํ ํฐ. DB์์ด ๊ฒ์ฆํ ์ ์๋ค |