๋ชฉ์ฐจ
- ๋ก๊ทธ์ธ์ ํ ๋ฒ๋ง ํ๋๋ฐ ์ ๊ณ์ ์ ์ง๋ ๊น?
- HTTP๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ํ๋ฅผ ๊ธฐ์ตํ์ง ๋ชปํ๋ค
- ์ฟ ํค(Cookie)๋ ๋ฌด์์ธ๊ฐ?
- ์ธ์ (Session)์ด๋ ๋ฌด์์ธ๊ฐ?
- ์ฟ ํค์ ์ธ์ ์ ์ฐจ์ด ๋น๊ต
- ์ค์ ๋ก๊ทธ์ธ ๊ณผ์ ์์ ์ฟ ํค์ ์ธ์ ์ด ๋์ํ๋ ๋ฐฉ์
- ์ฟ ํค์ ์ธ์ ์ ๋ณด์ ์ด์
- ์ ๋ฆฌ ๋ฐ ๋ค์ ๋จ๊ณ
1. ๋ก๊ทธ์ธ์ ํ ๋ฒ๋ง ํ๋๋ฐ ์ ๊ณ์ ์ ์ง๋ ๊น?
๋ค์ด๋ฒ์ ๋ก๊ทธ์ธํ๋ฉด ๋ธ๋ผ์ฐ์ ๋ฅผ ๋ซ์๋ค ์ด์ด๋ ๋ก๊ทธ์ธ ์ํ๊ฐ ์ ์ง๋ฉ๋๋ค. ๋ฐ๋๋ก ์ด๋ค ์ฌ์ดํธ๋ ์ผ์ ์๊ฐ์ด ์ง๋๋ฉด ์๋์ผ๋ก ๋ก๊ทธ์์๋ฉ๋๋ค.
์ธํฐ๋ท ์ผํ๋ชฐ์์ ์ํ์ ์ฅ๋ฐ๊ตฌ๋์ ๋ด๊ณ ํ์ด์ง๋ฅผ ์ด๋ํด๋ ์ฅ๋ฐ๊ตฌ๋ ๋ด์ญ์ด ์ฌ๋ผ์ง์ง ์์ต๋๋ค. ์ด๋ฐ ๊ฒ๋ค์ด ๋ชจ๋ ๊ฐ๋ฅํ ์ด์ ๊ฐ ๋ฐ๋ก ์ฟ ํค์ ์ธ์ ๋๋ถ์ ๋๋ค.
2. HTTP๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ํ๋ฅผ ๊ธฐ์ตํ์ง ๋ชปํ๋ค
์ฟ ํค์ ์ธ์ ์ ์ดํดํ๋ ค๋ฉด ๋จผ์ HTTP์ ํน์ฑ์ ์์์ผ ํฉ๋๋ค.
HTTP๋ ๋ฌด์ํ(Stateless) ํ๋กํ ์ฝ์ ๋๋ค. ์๋ฒ๋ ๊ฐ ์์ฒญ์ ์์ ํ ๋ ๋ฆฝ์ ์ผ๋ก ์ฒ๋ฆฌํ๋ฉฐ, ์ด์ ์์ฒญ์ ๊ธฐ์ตํ์ง ๋ชปํฉ๋๋ค.
์ฌ์ด ๋น์ ๋ก ์ค๋ช ํ๋ฉด, ๋งค๋ฒ ๋ฐฉ๋ฌธํ ๋๋ง๋ค ๊ธฐ์ต์ ์๋ ๊ฐ๊ฒ ์ง์๊ณผ ๊ฐ์ต๋๋ค. ์ค๋ ์ฒ์ ๋ฐฉ๋ฌธํด์ ์ฃผ๋ฌธํ ์๋์ด 5๋ถ ํ ๋ค์ ์๋ ์ง์์ ๊ทธ ์ฌ๋์ ์ ํ ๊ธฐ์ตํ์ง ๋ชปํฉ๋๋ค.
์ด ํน์ฑ ๋๋ฌธ์ ์๋ฒ๋ "์ด ์์ฒญ์ ๋ณด๋ธ ์ฌ๋์ด ์๊น ๋ก๊ทธ์ธํ ๊ทธ ์ฌ๋์ด๊ตฌ๋"๋ฅผ ์๋์ผ๋ก ์ ์ ์์ต๋๋ค. ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ฟ ํค์ ์ธ์ ์ด ๋ฑ์ฅํ์ต๋๋ค.
3. ์ฟ ํค(Cookie)๋ ๋ฌด์์ธ๊ฐ?
์ฟ ํค๋ ์๋ฒ๊ฐ ๋ธ๋ผ์ฐ์ ์ ์ ์ฅํ๋๋ก ์์ฒญํ๋ ์์ ํ ์คํธ ๋ฐ์ดํฐ์ ๋๋ค. ๋ธ๋ผ์ฐ์ ๋ ์ฟ ํค๋ฅผ ์ ์ฅํด๋๊ณ , ์ดํ ๊ฐ์ ์๋ฒ์ ์์ฒญ์ ๋ณด๋ผ ๋๋ง๋ค ์๋์ผ๋ก ์ฟ ํค๋ฅผ ํจ๊ป ์ ์กํฉ๋๋ค.
์ฟ ํค์ ๋์ ๋ฐฉ์์ ์์๋๋ก ์ดํด๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ์ฌ์ฉ์๊ฐ ์ฒ์ ์ฌ์ดํธ์ ์ ์ํ๋ฉด ์๋ฒ๊ฐ ๋ธ๋ผ์ฐ์ ์๊ฒ "์ด ์ฟ ํค๋ฅผ ์ ์ฅํด์ค"๋ผ๊ณ ์๋ตํฉ๋๋ค. ๋ธ๋ผ์ฐ์ ๋ ์ฟ ํค๋ฅผ ์ ์ฅํฉ๋๋ค. ์ฌ์ฉ์๊ฐ ๊ฐ์ ์ฌ์ดํธ์ ๋ค์ ์์ฒญ์ ๋ณด๋ด๋ฉด ๋ธ๋ผ์ฐ์ ๊ฐ ์ ์ฅ๋ ์ฟ ํค๋ฅผ ์๋์ผ๋ก ์์ฒญ์ ํฌํจ์ํต๋๋ค. ์๋ฒ๋ ์ฟ ํค๋ฅผ ํ์ธํด์ ๋๊ฐ ์์ฒญํ๋์ง ์๋ณํฉ๋๋ค.
์ฟ ํค์ ์ฃผ์ ํน์ง์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ๋ธ๋ผ์ฐ์ (ํด๋ผ์ด์ธํธ)์ ์ ์ฅ๋ฉ๋๋ค. ๋ง๋ฃ ๊ธฐ๊ฐ์ ์ค์ ํ ์ ์์ด ๋ธ๋ผ์ฐ์ ๋ฅผ ๋ซ์๋ ์ ์ง๋ฉ๋๋ค. ์ฉ๋์ด ์์ต๋๋ค(4KB ์ ํ). ์ฌ์ฉ์๊ฐ ์ง์ ํ์ธํ๊ฑฐ๋ ์ญ์ ํ ์ ์์ต๋๋ค.
4. ์ธ์ (Session)์ด๋ ๋ฌด์์ธ๊ฐ?
์ธ์ ์ ์ฌ์ฉ์ ์ ๋ณด๋ฅผ ์๋ฒ์ ์ ์ฅํ๋ ๋ฐฉ์์ ๋๋ค. ์๋ฒ๋ ๊ฐ ์ฌ์ฉ์์๊ฒ ๊ณ ์ ํ ์ธ์ ID๋ฅผ ๋ถ์ฌํ๊ณ , ์ด ID๋ฅผ ์ฟ ํค์ ๋ด์ ๋ธ๋ผ์ฐ์ ๋ก ์ ๋ฌํฉ๋๋ค. ์ดํ ๋ธ๋ผ์ฐ์ ๋ ์์ฒญ๋ง๋ค ์ธ์ ID๋ฅผ ๋ด์ ์ฟ ํค๋ฅผ ์๋ฒ๋ก ์ ์กํ๊ณ , ์๋ฒ๋ ์ธ์ ID๋ก ํด๋น ์ฌ์ฉ์ ์ ๋ณด๋ฅผ ์ฐพ์ ์ฒ๋ฆฌํฉ๋๋ค.
์ธ์ ์ ์ฃผ์ ํน์ง์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ์ค์ ๋ฐ์ดํฐ๋ ์๋ฒ์ ์ ์ฅ๋๊ณ , ๋ธ๋ผ์ฐ์ ์๋ ์ธ์ ID๋ง ์ ๋ฌ๋ฉ๋๋ค. ๋ธ๋ผ์ฐ์ ๋ฅผ ๋ซ์ผ๋ฉด ๊ธฐ๋ณธ์ ์ผ๋ก ์ธ์ ์ด ์ข ๋ฃ๋ฉ๋๋ค. ์๋ฒ์์ ์ธ์ ์ ์ง์ ๋ง๋ฃ์ํฌ ์ ์์ต๋๋ค. ์๋ฒ ๋ฉ๋ชจ๋ฆฌ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ์ฟ ํค๋ณด๋ค ๋ง์ ์์์ ์ฌ์ฉํฉ๋๋ค.
5. ์ฟ ํค์ ์ธ์ ์ ์ฐจ์ด ๋น๊ต
| ์ ์ฅ ์์น | ๋ธ๋ผ์ฐ์ (ํด๋ผ์ด์ธํธ) | ์๋ฒ |
| ๋ณด์ | ์๋์ ์ผ๋ก ๋ฎ์ | ์๋์ ์ผ๋ก ๋์ |
| ๋ง๋ฃ | ์ค์ ํ ๊ธฐ๊ฐ ์ ์ง | ๋ธ๋ผ์ฐ์ ์ข ๋ฃ ์ ๋๋ ์๋ฒ ์ค์ ๊ธฐ๊ฐ |
| ์ ์ฅ ์ฉ๋ | ์์ (4KB) | ์๋์ ์ผ๋ก ํผ |
| ์๋ฒ ๋ถํ | ์์ | ์์ |
| ์ฌ์ฉ ์ | ์๋ ๋ก๊ทธ์ธ, ์ฅ๋ฐ๊ตฌ๋, ์ค์ ์ ์ฅ | ๋ก๊ทธ์ธ ์ธ์ฆ, ๋ฏผ๊ฐํ ์ฌ์ฉ์ ์ ๋ณด |
6. ์ค์ ๋ก๊ทธ์ธ ๊ณผ์ ์์ ์ฟ ํค์ ์ธ์ ์ด ๋์ํ๋ ๋ฐฉ์
์ผ๋ฐ์ ์ธ ๋ก๊ทธ์ธ ์ฒ๋ฆฌ ํ๋ฆ์ ์์๋๋ก ์ดํด๋ณด๊ฒ ์ต๋๋ค.
์ฒซ ๋ฒ์งธ๋ก ์ฌ์ฉ์๊ฐ ์์ด๋์ ๋น๋ฐ๋ฒํธ๋ฅผ ์ ๋ ฅํด ๋ก๊ทธ์ธ ์์ฒญ์ ๋ณด๋ ๋๋ค.
๋ ๋ฒ์งธ๋ก ์๋ฒ๋ ์์ด๋์ ๋น๋ฐ๋ฒํธ๋ฅผ ํ์ธํ๊ณ , ์ผ์นํ๋ฉด ์ธ์ ์ ์์ฑํฉ๋๋ค. ์ธ์ ์๋ ์ฌ์ฉ์ ID, ๋ก๊ทธ์ธ ์๊ฐ ๋ฑ์ ์ ๋ณด๊ฐ ์ ์ฅ๋ฉ๋๋ค.
์ธ ๋ฒ์งธ๋ก ์๋ฒ๋ ์์ฑ๋ ์ธ์ ID๋ฅผ ์ฟ ํค์ ๋ด์ ๋ธ๋ผ์ฐ์ ๋ก ์ ๋ฌํฉ๋๋ค.
๋ค ๋ฒ์งธ๋ก ๋ธ๋ผ์ฐ์ ๋ ์ธ์ ID๊ฐ ๋ด๊ธด ์ฟ ํค๋ฅผ ์ ์ฅํฉ๋๋ค.
๋ค์ฏ ๋ฒ์งธ๋ก ์ดํ ์ฌ์ฉ์๊ฐ ๋ค๋ฅธ ํ์ด์ง์ ์ ์ํ ๋ ๋ธ๋ผ์ฐ์ ๊ฐ ์๋์ผ๋ก ์ธ์ ID ์ฟ ํค๋ฅผ ์๋ฒ์ ์ ์กํฉ๋๋ค.
์ฌ์ฏ ๋ฒ์งธ๋ก ์๋ฒ๋ ์ธ์ ID๋ก ์ ์ฅ๋ ์ฌ์ฉ์ ์ ๋ณด๋ฅผ ์ฐพ์ ๋ก๊ทธ์ธ ์ํ๋ฅผ ํ์ธํ๊ณ ํ์ด์ง๋ฅผ ์ ๊ณตํฉ๋๋ค.
์ด ๊ณผ์ ๋๋ถ์ ๋งค ํ์ด์ง๋ง๋ค ๋ค์ ๋ก๊ทธ์ธํ์ง ์์๋ ๋ก๊ทธ์ธ ์ํ๊ฐ ์ ์ง๋ฉ๋๋ค.
7. ์ฟ ํค์ ์ธ์ ์ ๋ณด์ ์ด์
์ฟ ํค์ ๋ณด์ ์ทจ์ฝ์ ์ฟ ํค๋ ๋ธ๋ผ์ฐ์ ์ ์ ์ฅ๋๊ธฐ ๋๋ฌธ์ ์ฌ์ฉ์๊ฐ ์ง์ ๋ด์ฉ์ ๋ณผ ์ ์๊ณ ์์ ๋ ๊ฐ๋ฅํฉ๋๋ค. ๋ํ XSS(Cross-Site Scripting) ๊ณต๊ฒฉ์ผ๋ก ์ฟ ํค๊ฐ ํ์ทจ๋ ์ ์์ต๋๋ค. ์ด๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด HttpOnly ์์ฑ์ ์ค์ ํ๋ฉด JavaScript๋ก ์ฟ ํค์ ์ ๊ทผํ๋ ๊ฒ์ ๋ง์ ์ ์์ต๋๋ค. Secure ์์ฑ์ ์ค์ ํ๋ฉด HTTPS ์ฐ๊ฒฐ์์๋ง ์ฟ ํค๊ฐ ์ ์ก๋ฉ๋๋ค.
์ธ์ ํ์ด์ฌํน ์ธ์ ID๊ฐ ๋ด๊ธด ์ฟ ํค๋ฅผ ๊ณต๊ฒฉ์๊ฐ ํ์ทจํ๋ฉด, ๊ทธ ID๋ก ์๋ฒ์ ์ ๊ทผํด ํด๋น ์ฌ์ฉ์์ธ ์ฒ ํ๋ํ ์ ์์ต๋๋ค. ์ด๋ฅผ ์ธ์ ํ์ด์ฌํน์ด๋ผ๊ณ ํฉ๋๋ค. ๊ณต์ฉ ์์ดํ์ด์์ HTTPS๊ฐ ์๋ ์ฌ์ดํธ๋ฅผ ์ฌ์ฉํ ๋ ํนํ ์ํํฉ๋๋ค.
8. ์ ๋ฆฌ ๋ฐ ๋ค์ ๋จ๊ณ
์ค๋ ๋ฐฐ์ด ํต์ฌ์ ์ ๋ฆฌํฉ๋๋ค.
- HTTP๋ ๋ฌด์ํ ํ๋กํ ์ฝ์ด๋ผ ์๋ฒ๊ฐ ์ฌ์ฉ์๋ฅผ ๊ธฐ์ตํ์ง ๋ชปํฉ๋๋ค. ์ด ๋ฌธ์ ๋ฅผ ์ฟ ํค์ ์ธ์ ์ผ๋ก ํด๊ฒฐํฉ๋๋ค.
- ์ฟ ํค๋ ๋ธ๋ผ์ฐ์ ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ , ์์ฒญ๋ง๋ค ์๋์ผ๋ก ์๋ฒ์ ์ ์ก๋ฉ๋๋ค.
- ์ธ์ ์ ์๋ฒ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ , ๋ธ๋ผ์ฐ์ ์๋ ์ธ์ ID๋ง ์ฟ ํค๋ก ์ ๋ฌํฉ๋๋ค.
- ๋ก๊ทธ์ธ ์ธ์ฆ์ฒ๋ผ ๋ฏผ๊ฐํ ์ ๋ณด๋ ์ธ์ ์ผ๋ก, ์ค์ ์ ์ฅ์ด๋ ์๋ ๋ก๊ทธ์ธ์ฒ๋ผ ๊ธด ๊ธฐ๊ฐ ์ ์ง๊ฐ ํ์ํ ๊ฒ์ ์ฟ ํค๋ก ์ฒ๋ฆฌํฉ๋๋ค.
๋ค์ ๊ธ์์๋ JWT ํ ํฐ์ด๋ ๋ฌด์์ธ์ง, ํ ํฐ ๊ธฐ๋ฐ ์ธ์ฆ์ด ์ด๋ป๊ฒ ๋์ํ๋์ง ์์๋ณด๊ฒ ์ต๋๋ค.