์น์ฌ์ดํธ๋ฅผ ์ด์ฉํ ๋ ๋ก๊ทธ์ธ ์ํ๊ฐ ์ ์ง๋๊ฑฐ๋ ์ฅ๋ฐ๊ตฌ๋์ ๋ด์๋ ์ํ ์ ๋ณด๊ฐ ์ฌ๋ผ์ง์ง ์๋ ๊ฒ์ ๋ชจ๋ ์ธ์ฆ ๋ฐ ์ํ ์ ์ง ๋ฉ์ปค๋์ฆ ๋๋ถ์ ๋๋ค. ํนํ HTTP ํต์ ์ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ฌด์ํ(Stateless)๋ผ์, ์ด ์ธ ๊ฐ์ง ํต์ฌ ๊ธฐ์ (์ฟ ํค, ์ธ์ , ํ ํฐ)์ด ์๋ค๋ฉด ๋งค ํ์ด์ง ์ด๋ ์๋ง๋ค ๋ก๊ทธ์ธ์ ๋ค์ ํด์ผ ํ๋ ๋ถํธํจ์ด ๋ฐ์ํฉ๋๋ค.
์ด ๊ธ์์๋ ์ด ์ธ ๊ฐ์ง ๊ธฐ์ ์ ๋์ ์๋ฆฌ, ์ฅ๋จ์ , ๊ทธ๋ฆฌ๊ณ ์ฐจ์ด์ ์ ๊ทธ๋ฆผ๊ณผ ํจ๊ป ์ฝ๊ฒ, ํ์ง๋ง ๊น์ด ์๊ฒ ์ค๋ช ํด ๋๋ฆด๊ฒ์.
์ฟ ํค๋ ํด๋ผ์ด์ธํธ(๋ธ๋ผ์ฐ์ ) ์ธก์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ์ฌ ์ํ๋ฅผ ์ ์งํ๋ ๋ฐฉ์์ ๋๋ค.
| ์ฅ์ | ๋จ์ |
| ๊ตฌํ์ด ๊ฐ๋จํ๊ณ ์ค์ ์ด ํธ๋ฆฌํจ | ๋ณด์ ์ทจ์ฝ: ํด๋ผ์ด์ธํธ(๋ธ๋ผ์ฐ์ )์ ์ ์ฅ๋๋ฏ๋ก, XSS ๊ณต๊ฒฉ ๋ฑ์ ์ทจ์ฝํ์ฌ ๋ฏผ๊ฐ ์ ๋ณด ์ ์ฅ์ ๋ถ์ ํฉ. |
| ํด๋ผ์ด์ธํธ ์ธก ์ํ ์ ๋ณด๋ฅผ ๋ณด์กด ๊ฐ๋ฅ | ์ฉ๋ ์ ํ: ์ฟ ํค๋น ์ฝ 4KB์ ์ฉ๋ ์ ํ์ด ์์. |
| ๋งค ์์ฒญ ์ ์ก: ๋ชจ๋ ์์ฒญ๋ง๋ค ์ฟ ํค๊ฐ ์๋์ผ๋ก ํฌํจ๋์ด ๋คํธ์ํฌ ๋ถํ๋ฅผ ์ฆ๊ฐ์ํฌ ์ ์์. |
์ธ์ ์ ์ฌ์ฉ์ ์ ๋ณด๋ฅผ ์๋ฒ ๋ฉ๋ชจ๋ฆฌ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅํ๊ณ , ํด๋ผ์ด์ธํธ์๊ฒ๋ ๊ทธ ์ ๋ณด์ ์ ๊ทผํ ์ ์๋ ์ธ์ ID(Session ID)๋ง ์ฟ ํค ํํ๋ก ์ ๋ฌํ๋ ๋ฐฉ์์ ๋๋ค.
| ์ฅ์ | ๋จ์ |
| ๋ณด์ ๊ฐํจ: ๋ฏผ๊ฐํ ์ ๋ณด๋ ์๋ฒ์๋ง ์ ์ฅ๋๋ฏ๋ก ์ฟ ํค๋ณด๋ค ๋ณด์์ด ํจ์ฌ ๊ฐ๋ ฅํจ. | ์๋ฒ ๋ถํ: ์ฌ์ฉ์๊ฐ ๋์ด๋ ์๋ก ์๋ฒ ๋ฉ๋ชจ๋ฆฌ๋ DB์ ๋ถ๋ด์ด ์ปค์ง. |
| ๋ฐ์ดํฐ ์ฉ๋ ์ ํ์ด ์์ | ํ์ฅ์ฑ ๋ฌธ์ (Scale-out): ์๋ฒ๋ฅผ ์ฌ๋ฌ ๋๋ก ํ์ฅ(Scale-out)ํ ๋ ์ธ์ ๋ฐ์ดํฐ์ ๊ณต์ (Sticky Session ๋๋ Redis/Memcached ์ฌ์ฉ)๊ฐ ๋ณต์กํด์ง. |
ํ ํฐ ๋ฐฉ์์ ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์ ์ธ์ฆ์ ์์ฒญํ๋ฉด, ์๋ฒ๊ฐ ์ฌ์ฉ์ ์ ๋ณด๋ฅผ ์ํธํํ ์ธ์ฆ ํ ํฐ(Authentication Token)์ ๋ฐ๊ธํ๊ณ , ์ด ํ ํฐ์ ํด๋ผ์ด์ธํธ๊ฐ ๋ณด๊ดํ๋ค๊ฐ ๋งค ์์ฒญ ์ ์๋ฒ์ ์ ๋ฌํ๋ ๋ฐฉ์์ ๋๋ค. ๊ฐ์ฅ ๋ํ์ ์ธ ํ ํฐ ๋ฐฉ์์ด JWT (JSON Web Token)์ ๋๋ค.
Authorization: Bearer [ํ ํฐ])์ ๋ด์ ์๋ฒ๋ก ์ ์กํฉ๋๋ค.| ์ฅ์ | ๋จ์ |
| ํ์ฅ์ฑ/์๋ฒ ๋ถํ ๊ฐ์: ์๋ฒ๊ฐ ํ ํฐ์ ์ ์ฅํ ํ์ ์์ด(Stateless), ์๋ฒ๋ฅผ ๋๋ฆฌ๊ฑฐ๋ ๋ง์ดํฌ๋ก์๋น์ค ํ๊ฒฝ์์ ์ ๋ฆฌํจ. | ํ ํฐ ์ฉ๋: ํ ํฐ์ด ๋๋ฌด ํฌ๋ฉด ๋งค ์์ฒญ ์ ๋คํธ์ํฌ ๋ถํ๊ฐ ์ฆ๊ฐ. |
| ํฌ๋ก์ค ๋๋ฉ์ธ: ์ฟ ํค์ ๋ฌ๋ฆฌ ํค๋๋ฅผ ์ฌ์ฉํ๋ฏ๋ก ๋ค๋ฅธ ๋๋ฉ์ธ์์๋ ์ธ์ฆ ์ฒ๋ฆฌ๊ฐ ์ฌ์. | ํ ํฐ ํ์ทจ: ํ ํฐ์ด ํ์ทจ๋๋ฉด ์ ํจ ๊ธฐ๊ฐ์ด ๋๋ ๋๊น์ง ๋ง์ ๋ฐฉ๋ฒ์ด ์์ (Refresh Token ๋์ ์ผ๋ก ๋ณด์). |
| ๊ตฌ๋ถ | ์ฟ ํค | ์ธ์ | ํ ํฐ (JWT) |
| ์ ๋ณด ์ ์ฅ ์์น | ํด๋ผ์ด์ธํธ (๋ธ๋ผ์ฐ์ ) | ์๋ฒ (๋ฉ๋ชจ๋ฆฌ, DB ๋ฑ) | ํด๋ผ์ด์ธํธ (๋ก์ปฌ ์ ์ฅ์ ๋๋ ์ฟ ํค) |
| ์๋ฒ ์ํ | Stateless | Stateful (์๋ฒ๊ฐ ์ํ๋ฅผ ๊ธฐ์ต) | Stateless (์๋ฒ๊ฐ ์ํ๋ฅผ ๊ธฐ์ตํ์ง ์์) |
| ๋ณด์ | ๊ฐ์ฅ ์ทจ์ฝ (XSS ๋ ธ์ถ ์ํ) | ๊ฐ์ฅ ๊ฐ๋ ฅ (์ ๋ณด๊ฐ ์๋ฒ์๋ง ์์) | ๊ฐ๋ ฅ (์๋ช ๊ฒ์ฆ), ํ์ทจ ์ ์ํ |
| ํ์ฅ์ฑ (Scale-out) | ์ฌ์ | ์ด๋ ค์ (์ธ์ ๊ณต์ ํ์) | ๋งค์ฐ ์ฌ์ (Stateless) |
| ์ฌ์ฉ ํ๊ฒฝ | ๊ฐ๋จํ ์ํ ์ ์ง (์ฅ๋ฐ๊ตฌ๋ ๋ฑ) | ์ ํต์ ์ธ ์น ์ ํ๋ฆฌ์ผ์ด์ | SPA/๋ชจ๋ฐ์ผ, ๋ง์ดํฌ๋ก์๋น์ค (๊ฐ์ฅ ์ ํธ) |
๊ฐ์ฅ ๊ทผ๋ณธ์ ์ธ ์ฐจ์ด๋ ์๋ฒ๊ฐ ์ฌ์ฉ์์ ์ํ๋ฅผ ๊ธฐ์ตํ๋๋(Stateful) ์๋๋ฉด ๊ธฐ์ตํ์ง ์๋๋(Stateless)์ ์์ต๋๋ค.
๋ก์ปฌ ๋คํธ์ํฌ ํ๊ฒฝ์ ์กฐ๊ธ์ด๋ผ๋ ๋ค๋ค๋ณธ ์ฌ๋์ด๋ผ๋ฉด ํ ๋ฒ์ฏค์ ๋ง์ฃผ์น๋ ์ต์ํ ๋จ์ด๊ฐ ์์ต๋๋ค. ๋ฐ๋ก NetBIOS์ NBT์ ๋๋ค.…
์๋ ํ์ธ์! ํ๋ ์น ๊ฐ๋ฐ์์ ๋ฐ์ดํฐ ๊ตํ์ ํต์ฌ์ธ JSON(JavaScript Object Notation)์ ๋์ฑ ๊ฐ๋ ฅํ๊ณ ์์ ์ ์ผ๋ก ๋ง๋ค์ด์ฃผ๋ ๋๊ตฌ,…
โ ECMAScript 3(E3)๋ ๋ฌด์์ผ๊น ECMAScript 3๋ 1999๋ ์ ๊ณต์ํ๋ ์๋ฐ์คํฌ๋ฆฝํธ ํ์ค์ด๋ค. ์ง๊ธ ๋ณด๋ฉด ์ค๋๋ ๊ธฐ์ ๊ฐ์ง๋ง,…
CoffeeScript๋ ํ๋ ํ๋ก ํธ์๋ ๊ฐ๋ฐ ์ํ๊ณ์์ ๋งค์ฐ ์ธ๊ธฐ ์์๋ ์ธ์ด์๊ณ , ์ง๊ธ๋ ํน์ ํ๋ก์ ํธ๋ ๋ ๊ฑฐ์ ์์คํ , ๊ฐ๊ฒฐํ…
ํ๋์ ์ธ ํ๋ก๊ทธ๋๋ฐ ํ๊ฒฝ์์ ๋ฉ๋ชจ๋ฆฌ ๋์(Memory Leak)๋ ์ฌ์ ํ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฑ๋ฅ ์ ํ์ ์ถฉ๋์ ์ผ์ผํค๋ ์ฃผ์ ์์ธ ์ค…
(Critical Rendering Path, ํต์ฌ ๋ ๋๋ง ๊ฒฝ๋ก ์๋ฒฝ ์ดํด) ์น ๋ธ๋ผ์ฐ์ ์ ์ฃผ์๋ฅผ ์ ๋ ฅํ๊ณ ์ํฐ๋ฅผ ๋๋ฅด๋ ์๊ฐ,…