๐Ÿค๐Ÿป Stateful๊ณผ Stateless

์œคยท2024๋…„ 10์›” 30์ผ
0

CS

๋ชฉ๋ก ๋ณด๊ธฐ
24/26

Stateful (์ƒํƒœ ์œ ์ง€)

Stateful : ํด๋ผ์ด์–ธํŠธ-์„œ๋ฒ„ ๊ด€๊ณ„์—์„œ, ์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ์˜ ์ƒํƒœ๋ฅผ ๋ณด์กดํ•จ

  • ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๊ฐ€ ๋ฐ์ดํ„ฐ ์†ก์ˆ˜์‹ ์„ ํ†ตํ•ด ๋‹จ๊ณ„๋ณ„ ์ž‘์—…์„ ์ง„ํ–‰ํ•  ๋•Œ, ์„œ๋ฒ„๋Š” ์ด์ „ ๋‹จ๊ณ„์—์„œ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ œ๊ณตํ•œ ์ •๋ณด๋ฅผ ์ €์žฅํ•œ๋‹ค. ์ดํ›„ ๋‹จ๊ณ„์—์„œ๋„ ์ด ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•ด ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•œ๋‹ค.
  • ์˜ˆ์‹œ : ์›น์‚ฌ์ดํŠธ์— ๋กœ๊ทธ์ธํ•œ ํ›„ ํŽ˜์ด์ง€๋ฅผ ์ด๋™ํ•ด๋„ ์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ์˜ ๋กœ๊ทธ์ธ ์ƒํƒœ๋ฅผ ์œ ์ง€(๊ธฐ์–ต)ํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋กœ๊ทธ์ธ์ด ํ’€๋ฆฌ์ง€ ์•Š๊ณ  ๊ณ„์† ์œ ์ง€๋˜๋Š” ๊ฒƒ.
  • ์ƒํƒœ ์ €์žฅ ์œ„์น˜ : ํด๋ผ์ด์–ธํŠธ์˜ ์ƒํƒœ๋ฅผ ๊ธฐ์–ตํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ํŠน์ • ์ €์žฅ์†Œ์— ์ •๋ณด๊ฐ€ ๋ณด์กด๋œ๋‹ค. ์ด๋Š” ๋ณดํ†ต ๋ธŒ๋ผ์šฐ์ €์˜ ์ฟ ํ‚ค(Cookie)์— ์ €์žฅ๋˜๊ฑฐ๋‚˜ ์„œ๋ฒ„์˜ ์„ธ์…˜(Session) ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅ๋˜์–ด ์ƒํƒœ๊ฐ€ ์œ ์ง€๋œ๋‹ค.

Stateful ํ•œ ํ”„๋กœํ† ์ฝœ : TCP 3-way handshaking

image
์ด๋ฏธ์ง€ ์ถœ์ฒ˜ : https://www.techopedia.com/definition/10339/three-way-handshake

  1. SYN ํŒจํ‚ท ์ „์†ก (ํด๋ผ์ด์–ธํŠธ โ†’ ์„œ๋ฒ„)
    • ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์— ์—ฐ๊ฒฐ ์š”์ฒญํ•˜๋ฉฐ SYN ํŒจํ‚ท์„ ์ „์†ก
    • ์ด๋•Œ ํด๋ผ์ด์–ธํŠธ๋Š” SYN_SENT ์ƒํƒœ๋กœ ๋“ค์–ด๊ฐ€๋ฉฐ, ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ์‘๋‹ต์„ ๊ธฐ๋‹ค๋ฆผ
  2. SYN-ACK ํŒจํ‚ท ์ „์†ก (์„œ๋ฒ„ โ†’ ํด๋ผ์ด์–ธํŠธ)
    • ์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ์˜ SYN ํŒจํ‚ท์„ ์ˆ˜์‹ ํ•˜๊ณ  ์—ฐ๊ฒฐ ์š”์ฒญ์„ ์Šน์ธ
    • ์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์ž์‹ ์˜ SYN๊ณผ ์‘๋‹ต ACK๋ฅผ ํฌํ•จํ•œ SYN-ACK ํŒจํ‚ท์„ ์ „์†ก
    • ์ด ๊ณผ์ •์—์„œ ์„œ๋ฒ„๋Š” SYN_RECEIVED ์ƒํƒœ๊ฐ€ ๋จ
  3. ACK ํŒจํ‚ท ์ „์†ก (ํด๋ผ์ด์–ธํŠธ โ†’ ์„œ๋ฒ„)
    • ํด๋ผ์ด์–ธํŠธ๋Š” ์„œ๋ฒ„์˜ SYN_ACK ํŒจํ‚ท์„ ์ˆ˜์‹ ํ•˜๊ณ , ์„œ๋ฒ„์— ACK ํŒจํ‚ท์„ ๋ณด๋‚ด ์—ฐ๊ฒฐ์„ ์ตœ์ข… ํ™•๋ฆฝ
    • ์ด ํŒจํ‚ท์ด ์„œ๋ฒ„์— ๋„๋‹ฌํ•˜๋ฉด, ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ ๋ชจ๋‘ ESTABLISHED ์ƒํƒœ๊ฐ€ ๋˜์–ด ๋ฐ์ดํ„ฐ ์ „์†ก์ด ๊ฐ€๋Šฅํ•œ ์—ฐ๊ฒฐ ์ƒํƒœ๋กœ ๋“ค์–ด๊ฐ

Stateful์˜ ๋‹จ์ 

  • ์„œ๋ฒ„ ์žฅ์•  ์‹œ ๋ฌธ์ œ : ํŠน์ • ์„œ๋ฒ„์— ํด๋ผ์ด์–ธํŠธ ์ƒํƒœ๊ฐ€ ์ €์žฅ๋˜๊ธฐ ๋•Œ๋ฌธ์—, ํ•ด๋‹น ์„œ๋ฒ„๊ฐ€ ์ค‘๋‹จ๋˜๊ฑฐ๋‚˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๊ฒŒ ๋˜๋ฉด ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธด๋‹ค. ๋‹ค๋ฅธ ์„œ๋ฒ„๋กœ ์ „ํ™˜๋˜๋”๋ผ๋„ ์ƒˆ๋กœ์šด ์„œ๋ฒ„์—๋Š” ์ด์ „ ์ƒํƒœ๊ฐ’์ด ์—†๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
  • ์„œ๋ฒ„ ๋ถ€๋‹ด โฌ†๏ธย : ์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ ์ƒํƒœ๋ฅผ ๋ณด์กดํ•˜๊ธฐ ์œ„ํ•ด ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ, ๋งŽ์€ ์‚ฌ์šฉ์ž๋ฅผ ๋™์‹œ์— ์ฒ˜๋ฆฌํ•  ๊ฒฝ์šฐ ์„œ๋ฒ„์˜ ๋ถ€๋‹ด์ด ์ปค์ง„๋‹ค.

Stateless (๋ฌด์ƒํƒœ)

Stateless : ํด๋ผ์ด์–ธํŠธ-์„œ๋ฒ„ ๊ด€๊ณ„์—์„œ, ์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ์˜ ์ƒํƒœ๋ฅผ ๋ณด์กดํ•˜์ง€ ์•Š์Œ

  • ์„œ๋ฒ„์˜ ์—ญํ•  : ๋‹จ์ˆœํžˆ ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ์— ๋Œ€ํ•œ ์‘๋‹ต๋งŒ์„ ์ˆ˜ํ–‰ํ•˜๋ฉฐ, ์ด์ „ ์š”์ฒญ์˜ ์ƒํƒœ๋ฅผ ์ €์žฅํ•˜์ง€ ์•Š๋Š”๋‹ค. ์ƒํƒœ ์ •๋ณด๋Š” ์ „์ ์œผ๋กœ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๊ด€๋ฆฌํ•œ๋‹ค.
  • ์ฆ‰, ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ๊ฐ„์˜ ํ†ต์‹ ์— ํ•„์š”ํ•œ ๋ชจ๋“  ์ƒํƒœ ์ •๋ณด๋“ค์€ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๊ฐ€ ์„œ๋ฒ„์— ์š”์ฒญํ•  ๋•Œ ํ•จ๊ป˜ ์ „์†ก
  • ์„œ๋ฒ„ ๋ถ€๋‹ด โฌ‡๏ธย : ์„œ๋ฒ„๋Š” ์ƒํƒœ๋ฅผ ์ €์žฅํ•  ํ•„์š”๊ฐ€ ์—†์–ด ์ƒํƒœ ๊ด€๋ฆฌ์— ๋”ฐ๋ฅธ ๋ถ€๋‹ด์ด ์ค„์–ด๋“ค๊ณ , ๋” ๋งŽ์€ ์š”์ฒญ์„ ํšจ์œจ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Œ
  • ์•ˆ์ •์„ฑ โฌ†๏ธย : ์„œ๋ฒ„๊ฐ€ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์—, ํŠน์ • ์„œ๋ฒ„๊ฐ€ ์ค‘๋‹จ๋˜๋”๋ผ๋„ ๋‹ค๋ฅธ ์„œ๋ฒ„๊ฐ€ ์ด์–ด์„œ ์‘๋‹ต์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์–ด ์•ˆ์ •์„ฑ์ด ๋†’๋‹ค.

Statelessํ•œ ํ”„๋กœํ† ์ฝœ : UDP, HTTP

๋Œ€ํ‘œ์ ์ธ Stateless ํ”„๋กœํ† ์ฝœ๋กœ UDP์™€ HTTP๊ฐ€ ์žˆ๋‹ค.

  • UDP
    • TCP์™€์˜ ์ฐจ์ด์  : UDP๋Š” TCP์™€ ๋‹ฌ๋ฆฌ 3-way ํ•ธ๋“œ์…ฐ์ดํฌ ๊ฐ™์€ ์—ฐ๊ฒฐ ํ™•์ธ ์ ˆ์ฐจ ์—†์ด ๋ฐ์ดํ„ฐ๊ฐ€ ๊ณง๋ฐ”๋กœ ์ „์†ก๋จ
    • ์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ์™€์˜ ์—ฐ๊ฒฐ ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ•˜์ง€ ์•Š๊ณ , ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ณด๋‚ธ ๋ฐ์ดํ„ฐ์˜ ์ˆ˜์‹  ์—ฌ๋ถ€๋„ ํ™•์ธํ•˜์ง€ ์•Š๋Š”๋‹ค. ๋”ฐ๋ผ์„œ ์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ์˜ ์„ธ์…˜ ์ •๋ณด ์—†์ด ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›๋Š” ์ฆ‰์‹œ ์‘๋‹ตํ•œ๋‹ค.
    • ์œ„์™€ ๊ฐ™์€ ์ด์œ ๋กœ ๋น ๋ฅธ ์ „์†ก์ด ๊ฐ€๋Šฅํ•˜์—ฌ ์‹ค์‹œ๊ฐ„ ํ†ต์‹ ์ด ์ค‘์š”ํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ (์ŠคํŠธ๋ฆฌ๋ฐ ๋“ฑ)์— ์ž์ฃผ ์‚ฌ์šฉ๋œ๋‹ค.
  • HTTP
    • ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ฌด์ƒํƒœ๋กœ ์ž‘๋™ํ•˜์—ฌ ๊ฐ ์š”์ฒญ์ด ๋…๋ฆฝ์ ์œผ๋กœ ์ฒ˜๋ฆฌ๋จ
    • ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์„œ๋ฒ„์— ์š”์ฒญ์„ ๋ณด๋‚ผ ๋•Œ๋งˆ๋‹ค ์ƒˆ๋กœ ์—ฐ๊ฒฐ์„ ํ•˜๊ณ , ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•œ ๋’ค ์—ฐ๊ฒฐ์„ ๋Š์Œ
    • ์ฟ ํ‚ค์™€ ์„ธ์…˜ ๊ฐ™์€ ์ถ”๊ฐ€ ๊ธฐ์ˆ ์„ ํ†ตํ•ด Statefulํ•œ ๋ฐฉ์‹๋„ ๊ฐ€๋Šฅ

Stateless ๋‹จ์ 

  • ๋งŽ์€ ๋ฐ์ดํ„ฐ ์†Œ๋ชจ : ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์š”์ฒญํ•  ๋•Œ๋งˆ๋‹ค ํ•„์š”ํ•œ ๋ชจ๋“  ์ƒํƒœ ์ •๋ณด๋ฅผ ํฌํ•จํ•ด์•ผ ํ•˜๋ฏ€๋กœ Stateful ๋ฐฉ์‹๋ณด๋‹ค ๋” ๋งŽ์€ ๋ฐ์ดํ„ฐ๊ฐ€ ์ „์†ก๋จ

Stateless์™€ ํ† ํฐ

Stateless ๋ฐฉ์‹์—์„  ์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ์˜ ์ƒํƒœ๋ฅผ ์ €์žฅํ•˜์ง€ ์•Š๊ณ  ์š”์ฒญ์— ๋Œ€ํ•œ ์‘๋‹ต๋งŒ์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์„œ๋ฒ„ ๋ถ€ํ•˜๊ฐ€ ์ค„์–ด๋“œ๋Š” ์žฅ์ ์ด ์žˆ๋‹ค.

ํ•˜์ง€๋งŒ ๋กœ๊ทธ์ธ ์œ ์ง€์™€ ๊ฐ™์€ ๊ธฐ๋Šฅ์„ ์œ„ํ•ด ์ƒํƒœ ์ €์žฅ์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ๊ฐ€ ์ƒ๊ธฐ๊ธฐ๋„ ํ•œ๋‹ค.

์ด๋•Œ Stateless ํŠน์ง•์„ ์œ ์ง€ํ•˜๋ฉด์„œ๋„ ๋กœ๊ทธ์ธ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ๊ธฐ์ˆ ์ด ๋ฐ”๋กœ JWT ํ† ํฐ์ด๋‹ค.

์ฃผ๋กœ HTTP ์š”์ฒญ์˜ ํ—ค๋”์— JWT๋ฅผ ํฌํ•จํ•˜์—ฌ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์— ๋ณด๋‚ธ๋‹ค. ์„œ๋ฒ„๋Š” ๋งค ์š”์ฒญ์—์„œ JWT๋ฅผ ํ™•์ธํ•ด ์‚ฌ์šฉ์ž๋ฅผ ์ธ์ฆํ•œ๋‹ค.

๐Ÿ”— ์ฐธ๊ณ  ์ž๋ฃŒ ๋ฐ ๋งํฌ

0๊ฐœ์˜ ๋Œ“๊ธ€