๊ด€๋ฆฌ ๋ฉ”๋‰ด

DOing

[WEB] HTTP ์ธ์ฆ๋ฐฉ์‹1_์„ธ์…˜/์ฟ ํ‚ค ๋ณธ๋ฌธ

WEB

[WEB] HTTP ์ธ์ฆ๋ฐฉ์‹1_์„ธ์…˜/์ฟ ํ‚ค

mangdo 2021. 6. 11. 17:39

๐ŸŒฑ ์ธ์ฆ?

  ์ธ์ฆ(Authentication)์ด๋ž€, ์‚ฌ์šฉ์ž๊ฐ€ ์ž๊ธฐ์ž์‹ ์„ ์ฆ๋ช…ํ•˜๋Š” ์ผ์ž…๋‹ˆ๋‹ค.

์‚ฌ์šฉ์ž A์™€ B๊ฐ€ ํ•˜๋‚˜์˜ ์›น์‚ฌ์ดํŠธ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋ผ๊ณ  ๊ฐ€์ •ํ•ด๋ด…์‹œ๋‹ค. ๋‘ ์‚ฌ์šฉ์ž๊ฐ€ ๊ฐ€์ง€๊ณ ์žˆ๋Š” ํšŒ์›์ •๋ณด์™€ ์ปจํ…์ธ ๋Š” ๊ฐ๊ฐ ๋‹ค๋ฅผ ๊ฒƒ์ด๋‹ค. ๋”ฐ๋ผ์„œ ์„œ๋ฒ„์—์„œ๋Š” A, B๊ฐ€ ์š”์ฒญ์„ ๋ณด๋ƒˆ์„ ๋•Œ ๋ˆ„๊ตฌ์˜ ์š”์ฒญ์ธ์ง€๋ฅผ ๊ตฌ๋ถ„ํ•ด๋‚ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด B์˜ ๋ฏผ๊ฐํ•œ ๊ฐœ์ธ์ •๋ณด๊ฐ€ A์—๊ฒŒ ๋ณด์—ฌ์ง€๋Š” ์ผ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋ธŒ๋ผ์šฐ์ €์—์„œ๋Š” ์ž์‹ ์ด ๋ˆ„๊ตฌ์ธ์ง€๋ฅผ ์ฆ๋ช…ํ•   ์ˆ˜ ์žˆ๋Š” ์ •๋ณด๋ฅผ ์„œ๋ฒ„์— ๋ณด๋‚ด์•ผํ•˜๋ฉฐ, ์„œ๋ฒ„๋Š” ๊ทธ ๋‹จ์„œ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋งž๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด์ฃผ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

๐ŸŒฑ HTTP์™€ ์ธ์ฆ

  ํ˜„์žฌ ์›น์—์„œ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ํ†ต์‹ ๋ฐฉ์‹์€ HTTP ํ†ต์‹ ์ž…๋‹ˆ๋‹ค. HTTP ํ†ต์‹ ์˜ ๊ฐ€์žฅ ํฐ ํŠน์ง• ์ค‘์—๋Š” ๋น„์—ฐ๊ฒฐ์„ฑ(connectionless)์™€ ๋ฌด์ƒํƒœ(stateless)๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋น„์—ฐ๊ฒฐ์„ฑ์ด๋ž€ ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๊ฐ€ ํ•œ๋ฒˆ ์—ฐ๊ฒฐ์„ ๋งบ์€ ํ›„, ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ์— ๋Œ€ํ•ด ์„œ๋ฒ„๊ฐ€ ์‘๋‹ต์„ ๋งˆ์น˜๋ฉด ๋งบ์—ˆ๋˜ ์—ฐ๊ฒฐ์„ ๋Š์–ด๋ฒ„๋ฆฌ๋Š” ์„ฑ์งˆ์ž…๋‹ˆ๋‹ค. ๋งŒ์•ฝ ์„œ๋ฒ„์—์„œ ๋‹ค์ˆ˜์˜ ํด๋ผ์ด์–ธํŠธ์™€ ์—ฐ๊ฒฐ์„ ๊ณ„์† ์œ ์ง€ํ•ด์•ผ ํ•œ๋‹ค๋ฉด, ์—ฐ๊ฒฐ์„ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•œ ๋งŽ์€ ์ž์›๋“ค์ด ๋‚ญ๋น„๋  ์ˆ˜ ์žˆ๊ธฐ๋•Œ๋ฌธ์— ํ•œ๋ฒˆ ๋งบ์€ ์—ฐ๊ฒฐ์„ ๋Š์–ด๋ฒ„๋ฆฌ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

  ๋ฌด์ƒํƒœ๋ž€ ์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ์˜ ์ƒํƒœ๋ฅผ ์•Œ ์ˆ˜ ์—†๋‹ค๋Š” ์„ฑ์งˆ์ž…๋‹ˆ๋‹ค. HTTP๋Š” ์—ฐ๊ฒฐ์ด ์œ ์ง€๋˜์ง€ ์•Š๊ณ  ๋Š์–ด์ง€๋Š” ๋น„์—ฐ๊ฒฐ์„ฑ์ด๋ผ๋Š” ํŠน์ง• ๋•Œ๋ฌธ์— ๊ณผ๊ฑฐ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์œ ์ง€ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ ์š”์ฒญ์„ ๋ณด๋‚ธ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ธ์ฆ์„ ํ–ˆ๋˜ ์‚ฌ์šฉ์ž์ธ์ง€, ์•„๋‹Œ์ง€ ๊ธฐ์–ตํ•  ์ˆ˜ ์—†๊ธฐ๋•Œ๋ฌธ์— HTTP ์š”์ฒญ๋งˆ๋‹ค ์ธ์ฆ์ •๋ณด๋ฅผ ํ•จ๊ป˜ ๋ณด๋‚ด์•ผํ•ฉ๋‹ˆ๋‹ค.

 HTTP ์ธ์ฆ ๋ฐฉ์‹์—๋Š” ๋Œ€ํ‘œ์ ์œผ๋กœ ์ฟ ํ‚ค/์„ธ์…˜ ๋ฐฉ์‹๊ณผ ํ† ํฐ ๋ฐฉ์‹์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์‹œ ํ† ํฐ์„ ์ด์šฉํ•˜๋Š” ๋Œ€ํ‘œ์ ์ธ ๋ฐฉ๋ฒ•์—๋Š” JWT์™€ OAuth๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” ์ฟ ํ‚ค/์„ธ์…˜์„ ์ด์šฉํ•œ ๋ฐฉ์‹์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. 

 

๐ŸŒฑ ์ฟ ํ‚ค VS ์„ธ์…˜

  ์ฟ ํ‚ค๋ž€ ์‚ฌ์ดํŠธ๋ฅผ ๋ฐฉ๋ฌธํ•˜๊ณ  ์ด์šฉํ• ๋•Œ ๋ธŒ๋ผ์šฐ์ €์— ์ €์žฅ๋˜๋Š” ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ฟ ํ‚ค๋Š” ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ๊ณ , ์‹ฌ์ง€์–ด ๋‚จ์ด ํ›”์น˜๊ฑฐ๋‚˜ ๋„๋‘‘์งˆํ•˜๊ธฐ ์‰ฌ์›Œ ๋ณด์•ˆ์— ์ทจ์•ฝํ•˜๋‹ค๋Š” ํ•œ๊ณ„๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์™€ ๋ฐ˜๋Œ€๋กœ ์„ธ์…˜์€ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์•„๋‹Œ ์„œ๋ฒ„๋‹จ์—์„œ ์‚ฌ์šฉ์ž ์ •๋ณด๋ฅผ ์ €์žฅํ•˜๋Š” ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค. ์„œ๋ฒ„๊ฐ€ ์ง์ ‘ ์ €์žฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ฟ ํ‚ค๋ณด๋‹ค ์•ˆ์ „ํ•˜์ง€๋งŒ, ์„ธ์…˜์„ ๋‚จ๋ฐœํ•˜๊ฒŒ๋˜๋ฉด ์„œ๋ฒ„์— ๋ถ€ํ•˜๊ฐ€ ์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋•Œ๋ฌธ์— ์ฟ ํ‚ค๋กœ ๋…ธ์ถœํ•˜๋ฉด ์•ˆ๋˜๋Š” ๋ฏผ๊ฐํ•œ ์ •๋ณด๋งŒ ์„ธ์…˜์— ์ €์žฅํ•˜๋ฉฐ, ์ฟ ํ‚ค์™€ ์„ธ์…˜์„ ์ ์ ˆํžˆ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

๐ŸŒฑ ์„ธ์…˜/์ฟ ํ‚ค ๋ฐฉ์‹

[ ํ๋ฆ„ ]

1. ์‚ฌ์šฉ์ž ๋กœ๊ทธ์ธ

2. ํšŒ์›์ด ๋งž๋Š”์ง€ ํšŒ์›DB์—์„œ ํ™•์ธ

3. ํšŒ์›์ด ๋งž๋‹ค๋ฉด, ์‚ฌ์šฉ์ž์˜ ๊ณ ์œ ํ•œ ID๊ฐ’์„ ๋ถ€์—ฌํ•˜๊ณ  ์„ธ์…˜ ID์™€ ๋งคํ•‘ํ•˜์—ฌ ์„ธ์…˜ ์ €์žฅ์†Œ์— ์ €์žฅ

4. ์„œ๋ฒ„๋Š” ๋ธŒ๋ผ์šฐ์ €์—๊ฒŒ ๋กœ๊ทธ์ธ ์š”์ฒญ์— ๋Œ€ํ•œ ์‘๋‹ต๊ณผ ํ•จ๊ป˜ ์„ธ์…˜ID๋ฅผ ์ „์†ก

5. ๋ธŒ๋ผ์šฐ์ €๋Š” ๋ฐ›์€ ์„ธ์…˜ID๋ฅผ ์ฟ ํ‚ค์— ์ €์žฅ

6. ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๋ฐ์ดํ„ฐ ์š”์ฒญ๊ณผ ํ•จ๊ป˜ ์ฟ ํ‚ค(์„ธ์…˜ID)๋ฅผ ์„œ๋ฒ„๋กœ ์ „์†ก

7. ์„œ๋ฒ„๋Š” ๋ฐ›์€ ์ฟ ํ‚ค(์„ธ์…˜ID)๋ฅผ ๊ฒ€์ฆ

8. ์„œ๋ฒ„๋Š” ์„ธ์…˜ID์™€ ๋Œ€์‘๋˜๋Š” ์œ ์ € ์ •๋ณด(์„ธ์…˜)๋ฅผ ํš๋“

๐ŸŒฑ ์„ธ์…˜/์ฟ ํ‚ค ๋ฐฉ์‹ ํŠน์ง•๊ณผ ์žฅ๋‹จ์ 

[ ํŠน์ง• ]

1. ์„œ๋ฒ„์—์„œ ํด๋ผ์ด์–ธํŠธ์˜ ์„ธ์…˜์ •๋ณด๋ฅผ DB์— ์ €์žฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.(๋ณ„๋„์˜ ์„ธ์…˜์ €์žฅ์†Œ)

2. ์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ์˜ ์ƒํƒœ๋ฅผ ์„œ๋ฒ„์—์„œ ๊ณ„์† ์œ ์ง€ํ•˜๊ณ  ์ด ์ •๋ณด๋ฅผ ์„œ๋น„์Šค์— ์ด์šฉํ•˜๋Š” Stateful ์„œ๋ฒ„์ž…๋‹ˆ๋‹ค.

 

[ ์žฅ์  ]

1. ์„œ๋ฒ„์—์„œ ํด๋ผ์ด์–ธํŠธ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•˜๊ณ  ์žˆ์œผ๋ฏ€๋กœ ์‚ฌ์šฉ์ž์˜ ์ƒํƒœ๋ฅผ ์ง์ ‘ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

(ex. ๊ฐ•์ œ ๋กœ๊ทธ์•„์›ƒ, ์‚ฌ์šฉ์ž์˜ ๋กœ์ธ ์—ฌ๋ถ€ ํ™•์ธ) 

2. ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ž„์˜๋กœ ์ •๋ณด๋ฅผ ๋ณ€๊ฒฝ์‹œ์ผœ๋„ ์„œ๋ฒ„์—์„œ ํด๋ผ์ด์–ธํŠธ ์ƒํƒœ ์ •๋ณด๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์–ด ์ƒ๋Œ€์ ์œผ๋กœ ์•ˆ์ „ํ•ฉ๋‹ˆ๋‹ค.

 

[ ๋‹จ์  ]

1. ์„œ๋ฒ„์—์„œ ์ถ”๊ฐ€์ ์ธ ์„ธ์…˜ ์ €์žฅ์†Œ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ๋•Œ๋ฌธ์— DB์˜ ๋ถ€ํ•˜๊ฐ€ ์‹ฌํ•ด์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

2. ์„ธ์…˜ ํ•˜์ด์ œํ‚น ๊ณต๊ฒฉ์— ์ทจ์•ฝํ•ฉ๋‹ˆ๋‹ค. 

: ์„ธ์…˜ ํ•˜์ด์ œํ‚น์ด๋ž€ ๊ณต๊ฒฉ์ž๊ฐ€ ์‚ฌ์šฉ์žA์˜ HTTP์š”์ฒญ์„ ํ›”์ณ ์ฟ ํ‚ค(์„ธ์…˜ ID)๋ฅผ ์–ป์–ด๋‚ด๊ณ  ๊ณต๊ฒฉ์ž๊ฐ€ ์–ป์–ด๋‚ธ ์ฟ ํ‚ค(์„ธ์…˜ ID)๋กœ ์š”์ฒญ์„ ๋ณด๋‚ด๋ฉด ์„œ๋ฒ„์—์„œ๋Š” ์‚ฌ์šฉ์žA๋กœ ์ฐฉ๊ฐํ•˜๊ฒŒ๋˜๋Š” ๊ฒƒ์„ ์ด์šฉํ•œ ๊ณต๊ฒฉ์ž…๋‹ˆ๋‹ค.

3. ์„œ๋ฒ„์˜ ํ™•์žฅ์„ฑ์ด ์–ด๋ ค์›Œ์ง‘๋‹ˆ๋‹ค.

 : ์„œ๋ฒ„์˜ ํ™•์žฅ์ด๋ž€, ๋” ๋งŽ์€ ํŠธ๋ž˜ํ”ฝ์„ ๊ฐ๋‹นํ•˜๊ธฐ ์œ„ํ•˜์—ฌ ์—ฌ๋Ÿฌ๊ฐœ์˜ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋Œ๋ฆฌ๊ฑฐ๋‚˜ ์—ฌ๋Ÿฌ๋Œ€์˜ ์„œ๋ฒ„ ์ปดํ“จํ„ฐ๋ฅผ ์ถ”๊ฐ€ ํ•˜๋Š”๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

๐ŸŒฑ ์„ธ์…˜/์ฟ ํ‚ค ๋ฐฉ์‹ ์‹ค์ œ ์˜ˆ์‹œ

์‹ค์ œ ์ œ๊ฐ€ ์„ธ์…˜/์ฟ ํ‚ค ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐœ๋ฐœํ–ˆ์—ˆ๋˜ ์Šคํ”„๋ง ์‹œํ๋ฆฌํ‹ฐ๋ฅผ ์ด์šฉํ•œ ํ”„๋กœ์ ํŠธ๋ฅผ ์‚ดํŽด๋ณด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

 

[ ๋ธŒ๋ผ์šฐ์ €์˜ ์ฟ ํ‚ค ]

๋กœ๊ทธ์ธ์„ ํ•˜๊ฒŒ๋˜๋ฉด, ๋ธŒ๋ผ์šฐ์ €์˜ ์ฟ ํ‚ค์— ์„ธ์…˜ID๊ฐ€ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.

๋งŒ์•ฝ ํ•ด๋‹น ์ฟ ํ‚ค๋ฅผ ์‚ญ์ œํ•˜๊ฒŒ๋˜๋ฉด ๋กœ๊ทธ์•„์›ƒ์ด ๋ฉ๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ์ฟ ํ‚ค๋ฅผ ์‚ญ์ œํ•œ๋‹ค๊ณ  ์„ธ์…˜ ์ €์žฅ์†Œ์˜ ๊ฐ’์ด ์‚ฌ๋ผ์ง€์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค.

์ฟ ํ‚ค ์•ˆ์— ์„ธ์…˜ID

[ ์„œ๋ฒ„์˜ ์„ธ์…˜ ์ €์žฅ์†Œ ]

spring_session ํ…Œ์ด๋ธ”์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๋งŒ์•ฝ ์„ธ์…˜ ์ €์žฅ์†Œ์˜ ํ•ด๋‹น ์œ ์ €์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ญ์ œํ•˜๊ฒŒ ๋˜๋ฉด ๊ฐ•์ œ ๋กœ๊ทธ์•„์›ƒ์ด๋ฉ๋‹ˆ๋‹ค.

spring_session_attributesํ…Œ์ด๋ธ”์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

 

์‹ค์ œ ๊ตฌํ˜„ํ•  ๋•Œ, ์„ธ์…˜ ์ €์žฅ์†Œ์˜ ๋ฐฉ์‹๋„ ์—ฌ๋Ÿฌ ์ข…๋ฅ˜๊ฐ€ ์žˆ๋Š”๋ฐ ๋‹ค์Œ ํฌ์ŠคํŒ…์„ ํ™•์ธํ•˜๋ฉด ์ข‹์„ ๊ฒƒ๊ฐ™๋‹ค.

2021.04.11 - [spring] - [Spring Boot] ์„ธ์…˜์ €์žฅ์†Œ

 

[Spring Boot] ์„ธ์…˜์ €์žฅ์†Œ

์„ธ์…˜์ €์žฅ์†Œ์— ๋Œ€ํ•ด 3๊ฐ€์ง€๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜๋ฅผ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋‹ค. 1. ํ†ฐ์บฃ ์„ธ์…˜ ์‚ฌ์šฉํ•˜๊ธฐ : ๋””ํดํŠธ๋กœ ์„ ํƒ๋˜๋Š” ๋ฐฉ์‹ ๋‚ด์žฅ ํ†ฐ์บฃ(WAS)์— ์„ธ์…˜์„ ์ €์žฅํ•˜๊ฒŒ ๋˜๋ฉด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‹คํ–‰์‹œ ํ•ญ์ƒ ์ดˆ๊ธฐํ™”๊ฐ€๋œ๋‹ค. ๋˜ 2

doing7.tistory.com



 

 

 

 

์ถœ์ฒ˜ : 

์œ ํŠœ๋ธŒ ์˜์ƒ - ์ฟ ํ‚ค, ์„ธ์…˜, ์บ์‹œ๊ฐ€ ๋ญ”๊ฐ€์š”?

์œ ํŠœ๋ธŒ ์˜์ƒ -Session vs Token authentication in 100 seconds

 

๋ธ”๋กœ๊ทธ ํฌ์ŠคํŒ… - HTTP ํŠน์„ฑ

๋ธ”๋กœ๊ทธ ํฌ์ŠคํŒ… - ์„ธ์…˜/์ฟ ํ‚ค, ํ† ํฐ๋ฐฉ์‹

๋ธ”๋กœ๊ทธ ํฌ์ŠคํŒ… - ์‰ฝ๊ฒŒ ์•Œ์•„๋ณด๋Š” ์„œ๋ฒ„ ์ธ์ฆ 1ํŽธ ( ์„ธ์…˜/์ฟ ํ‚ค, JWT )