[Spring] DI(Dependency Injection) ์˜์กด์„ฑ ์ฃผ์ž…
ยท
๐ŸŒฟSpring
Spring์˜ ํ•ต์‹ฌ ๊ฐœ๋…์—๋Š” DI(Dependency Injection), IoC(Inversion of Control), AOP(Aspect-Oriented Programming)๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ธ€์—์„œ๋Š” DI: ์˜์กด์„ฑ ์ฃผ์ž…์˜ ๊ฐœ๋…๊ณผ ํ•„์š”์„ฑ, ์‚ฌ์šฉ ๋ฐฉ๋ฒ•์„ ๋‹ค๋ฃน๋‹ˆ๋‹ค.๐Ÿ“Œ DI: ์˜์กด์„ฑ ์ฃผ์ž…์˜์กด์„ฑ์ด๋ž€?ํ•œ ๊ฐ์ฒด๊ฐ€ ๋‹ค๋ฅธ ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ์˜์กด์„ฑ์ด ์žˆ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.์˜ˆ๋ฅผ ๋“ค์–ด `OrderService`๊ฐ€ `OrderRepository`๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด, `OrderService`๋Š” `OrderRepository`์— ์˜์กดํ•ฉ๋‹ˆ๋‹ค.Spring์˜ ํŠน์ง• ์ค‘ ์ œ์–ด์˜ ์—ญ์ „์— ๋Œ€ํ•ด ๊ณต๋ถ€ํ•  ๋•Œ๊ฐ์ฒด์˜ ์ƒ์„ฑ๊ณผ ์˜์กด์„ฑ ๊ด€๋ฆฌ๋ฅผ ๊ฐœ๋ฐœ์ž๊ฐ€ ์•„๋‹Œ ์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ์˜ IoC ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๋‹ด๋‹นํ•˜๊ณ  ์žˆ๋‹ค๊ณ  ํ–ˆ์Šต๋‹ˆ๋‹ค. ์˜์กด์„ฑ ์ฃผ์ž…์€ IoC๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•..
[Spring] IoC ์ œ์–ด์˜ ์—ญ์ „
ยท
๐ŸŒฟSpring
์ด ๊ธ€์—์„œ๋Š” Spring์˜ ํ•ต์‹ฌ ๊ฐœ๋… ์ค‘ IoC(Inversion of Control): ์ œ์–ด์˜ ์—ญ์ „์— ๋Œ€ํ•ด ์•Œ์•„๋ด…๋‹ˆ๋‹ค.๐Ÿ“Œ ์ œ์–ด์˜ ์—ญ์ „ - IoC๋ž€?์ „ํ†ต์ ์ธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐฉ์‹์—์„œ๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ์–ธ์ œ ์–ด๋А ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ํ๊ธฐํ• ์ง€, ์–ด๋–ค ํ๋ฆ„์œผ๋กœ ์‹คํ–‰ํ• ์ง€๋ฅผ ๋ชจ๋‘ ์ง์ ‘ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.์ œ์–ด์˜ ์—ญ์ „์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ œ์–ด ํ๋ฆ„์„ ๊ฐœ๋ฐœ์ž๊ฐ€ ์•„๋‹Œ ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ๊ด€๋ฆฌํ•˜๋„๋ก ํ•˜๋Š” ์›์น™์ž…๋‹ˆ๋‹ค. ์ฆ‰, ๊ฐ์ฒด์˜ ์ƒ์„ฑ๊ณผ ์ƒ๋ช…์ฃผ๊ธฐ, ์˜์กด์„ฑ ๊ด€๋ฆฌ๋ฅผ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ง์ ‘ ํ•˜์ง€ ์•Š๊ณ , ํ”„๋ ˆ์ž„์›Œํฌ์— ์œ„์ž„ํ•˜๋Š” ๊ฒƒ์ด์ฃ . ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ œ์–ด ๊ถŒํ•œ์ด ๊ฐœ๋ฐœ์ž์—์„œ ํ”„๋ ˆ์ž„์›Œํฌ๋กœ ์—ญ์ „๋˜์–ด "์ œ์–ด์˜ ์—ญ์ „"์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค ์ด๋•Œ ํ”„๋ ˆ์ž„์›Œํฌ์˜ ์–ด๋А ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ ์ด ์—ญํ• ์„ ํ• ๊นŒ์š”?๐Ÿชฃ IoC ์ปจํ…Œ์ด๋„ˆ์ปจํ…Œ์ด๋„ˆ๋ž€? ๊ฐ์ฒด์˜ ์ƒ์„ฑ, ์ดˆ๊ธฐํ™”, ์†Œ๋ฉธ ๋“ฑ ์ƒ๋ช… ์ฃผ๊ธฐ๋ฅผ ๊ด€๋ฆฌํ•˜๋ฉฐ, ์ƒ์„ฑ๋œ ๊ฐ์ฒด..
JWT(Json Web Token) ๊ตฌ์กฐ ์ดํ•ดํ•˜๊ธฐ
ยท
๐ŸŒฟSpring
JWT (JSON Web Token) ์ด๋ž€JWT(JSON Web Token)์ด๋ž€ ์œ ์ €๋ฅผ ์ธ์ฆํ•˜๊ณ  ์‹๋ณ„ํ•˜๊ธฐ ์œ„ํ•œ JSON ํ† ํฐ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.์ด ํ† ํฐ ๋‚ด์—๋Š” ์‚ฌ์šฉ์ž์˜ ๊ถŒํ•œ ์ •๋ณด์™€ ๊ฐ™์€ ์ธ์ฆ ์ •๋ณด๊ฐ€ Base64 URL ๋ฐฉ์‹์œผ๋กœ ์ธ์ฝ”๋”ฉ๋˜์–ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ํด๋ผ์ด์–ธํŠธ๊ฐ€ ํ† ํฐ์„ HTTP ํ—ค๋”์— ์‹ค์–ด ์‘๋‹ต์„ ๋ณด๋‚ด ์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ๋ฅผ ์‹๋ณ„ํ•˜๊ณ  ์ธ์ฆ/์ธ๊ฐ€๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.JWT ๊ตฌ์กฐJWT๋Š” ์„ธ ํŒŒํŠธ๋กœ ๋‚˜๋ˆ„์–ด์ง€๋ฉฐ, ๊ฐ ํŒŒํŠธ๋Š” ์ ์œผ๋กœ ๊ตฌ๋ถ„๋ฉ๋‹ˆ๋‹ค.ํ—ค๋”(Header), ํŽ˜์ด๋กœ๋“œ(Payload), ์„œ๋ช…(Signature)์œผ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค.ํ—ค๋”(Header)ํ—ค๋”์—๋Š” ํ•ด์‹œ ์•”ํ˜ธํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜๊ณผ ํ† ํฐ ํƒ€์ž… ์ •๋ณด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.์•Œ๊ณ ๋ฆฌ์ฆ˜: ์„œ๋ช… ์ƒ์„ฑ์— ์‚ฌ์šฉํ•  ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ข…๋ฅ˜ex) HS256, RS256ํƒ€์ž…: ํ† ํฐ์˜ ํƒ€์ž…, ์—ฌ๊ธฐ์„œ๋Š” JWT๊ฐ€ ๋˜์ฃ .ํŽ˜..
[Spring Security] ์›น ๋ณด์•ˆ ๊ณต๊ฒฉ #2 ์„ธ์…˜ ๊ณ ์ • ๊ณต๊ฒฉ, JWT ํ† ํฐ ํƒˆ์ทจ + ๋Œ€์‘ ์ „๋žต
ยท
๐ŸŒฟSpring
1ํŽธ: https://syleeblog.tistory.com/51 [Spring Security] ์›น ๋ณด์•ˆ ๊ณต๊ฒฉ #1: CSRF๊ณต๊ฒฉ๊ณผ XSS ๊ณต๊ฒฉ + ๋Œ€์‘ ์ „๋žต์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” 4๊ฐ€์ง€ ์ฃผ์š” ๋ณด์•ˆ ๊ณต๊ฒฉ: CSRF ๊ณต๊ฒฉ, XSS ๊ณต๊ฒฉ, ์„ธ์…˜ ๊ณ ์ • ๊ณต๊ฒฉ, JWT ํƒˆ์ทจ ๊ณต๊ฒฉ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ณ ,์ด๋ฅผ ๋ฐฉ์–ดํ•  ์ˆ˜ ์žˆ๋Š” Spring Security ๋˜๋Š” ์ผ๋ฐ˜์ ์ธ ๋Œ€์‘ ์ „๋žต์„ ์‚ดํŽดsyleeblog.tistory.com ๐Ÿ“Œ์„ธ์…˜ ๊ณ ์ • ๊ณต๊ฒฉ์„ธ์…˜ ๊ณ ์ • ๊ณต๊ฒฉ์€ ๊ณต๊ฒฉ์ž๊ฐ€ ์„ธ์„  ID๋ฅผ ๋ฏธ๋ฆฌ ์ •ํ•ด๋†“๊ณ , ํ”ผํ•ด์ž๊ฐ€ ๊ทธ ์„ธ์…˜์„ ์‚ฌ์šฉํ•˜๊ฒŒ ๋งŒ๋“  ๋’ค,ํ”ผํ•ด์ž๊ฐ€ ๊ฐ™์€ ์„ธ์…˜์œผ๋กœ ๋กœ๊ทธ์ธํ–ˆ์„ ๋•Œ ํ”ผํ•ด์ž์˜ ๊ถŒํ•œ์„ ํƒˆ์ทจํ•˜๋Š” ๊ณต๊ฒฉ์ž…๋‹ˆ๋‹ค. ์ฆ‰, ์„ธ์…˜ ID๋ฅผ ๋จผ์ € ๋งŒ๋“  ์‚ฌ๋žŒ์ด ๋กœ๊ทธ์ธ ํ›„์—๋„ ๊ณ„์† ๊ทธ ์„ธ์…˜์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด,๊ณต๊ฒฉ์ž๋Š” ํ”ผํ•ด์ž์˜..
[Spring Security] ์›น ๋ณด์•ˆ ๊ณต๊ฒฉ #1: CSRF๊ณต๊ฒฉ๊ณผ XSS ๊ณต๊ฒฉ + ๋Œ€์‘ ์ „๋žต
ยท
๐ŸŒฟSpring
์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” 4๊ฐ€์ง€ ์ฃผ์š” ๋ณด์•ˆ ๊ณต๊ฒฉ: CSRF ๊ณต๊ฒฉ, XSS ๊ณต๊ฒฉ, ์„ธ์…˜ ๊ณ ์ • ๊ณต๊ฒฉ, JWT ํƒˆ์ทจ ๊ณต๊ฒฉ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ณ ,์ด๋ฅผ ๋ฐฉ์–ดํ•  ์ˆ˜ ์žˆ๋Š” Spring Security ๋˜๋Š” ์ผ๋ฐ˜์ ์ธ ๋Œ€์‘ ์ „๋žต์„ ์‚ดํŽด๋ณด๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. ๊ธ€์ด ๊ธธ์–ด์ ธ์„œ ๋‘ ํŽธ์— ๋‚˜๋ˆ„์–ด ์”๋‹ˆ๋‹ค.๐Ÿ“Œ CSRF ๊ณต๊ฒฉCSRF๋Š” Cross-Stie Request Forgery์˜ ์ค„์ž„๋ง๋กœ "์‚ฌ์ดํŠธ ๊ฐ„ ์š”์ฒญ ์œ„์กฐ"๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.์ธํ„ฐ๋„ท ์‚ฌ์šฉ์ž๊ฐ€ ์ž์‹ ์˜ ์˜์ง€์™€๋Š” ๋ฌด๊ด€ํ•˜๊ฒŒ ๊ณต๊ฒฉ์ž๊ฐ€ ์˜๋„ํ•œ ํ–‰์œ„๋ฅผ ํŠน์ •ํ•œ ์›น ์‚ฌ์ดํŠธ์— ์š”์ฒญํ•˜๋„๋ก ๋งŒ๋“œ๋Š” ๊ณต๊ฒฉ์ž…๋‹ˆ๋‹ค. CSRF ๊ณต๊ฒฉ์ด ์„ฑ๊ณตํ•˜๋ ค๋ฉด 3๊ฐ€์ง€ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.์‚ฌ์šฉ์ž๋Š” ์„œ๋ฒ„์— ๋กœ๊ทธ์ธ๋˜์–ด ์žˆ๋Š” ์ƒํƒœ์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค.ํ•ด์ปค(๊ณต๊ฒฉ์ž)๊ฐ€ ์‚ฌ์šฉ์ž์˜ ์„ธ์…˜ ์ •๋ณด๋ฅผ ์ฟ ํ‚ค์—์„œ ์ฝ์„ ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.ํ•ด์ปค(๊ณต๊ฒฉ์ž) ๋Š” ์„œ..
[Spring Security] Role Hierarchy: ๊ถŒํ•œ ๊ณ„์ธต ๊ตฌ์กฐ ๊ฐœ๋… ์ •๋ฆฌ & ์ ์šฉ
ยท
๐ŸŒฟSpring
๋“ค์–ด๊ฐ€๋ฉด์„œ ๊ธฐ์กด์˜ ๋””์Šค์ฝ”๋“œ์ž‡ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ๊ด€๋ฆฌ์ž, ์œ ์ € ๊ตฌ๋ถ„ ์—†์ด๋กœ๊ทธ์ธํ•˜๋ฉด ๋ˆ„๊ตฌ๋‚˜ ๋ชจ๋“  ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ ๋ฏธ์…˜์—์„œ role์„ ์ •์˜ํ•˜๊ณ , role์— ๋”ฐ๋ผ ํ–‰๋™์„ ์ œํ•œํ•˜๊ธฐ๋กœ ํ–ˆ์Šต๋‹ˆ๋‹ค.์ด ํฌ์ŠคํŒ…์—์„œ๋Š” ๊ถŒํ•œ ๊ณ„์ธต ๊ตฌ์กฐ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ณ , ์ด๋ฅผ ์ฝ”๋“œ์— ์ ์šฉํ•ด๋ณด๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค.๊ฐœ๋ฐœ ํ™˜๊ฒฝSpring Boot 3.4.0Spring Security 6.4.1๊ถŒํ•œ ๊ณ„์ธต ๊ตฌ์กฐ Role HierarchySpring Security์˜ ๊ถŒํ•œ ๊ณ„์ธต ๊ตฌ์กฐ(Role Hierarchy) ๋Š” ์—ญํ• (Role) ๊ฐ„์˜ ํฌํ•จ ๊ด€๊ณ„๋ฅผ ์ •์˜ํ•˜๋Š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค.ํšŒ์‚ฌ์—์„œ ์‚ฌ์žฅ์ด ๋ถ€์žฅ์˜ ๋ชจ๋“  ๊ถŒํ•œ์„ ๊ฐ€์ง€๊ณ , ๋ถ€์žฅ์ด ์‚ฌ์›์˜ ๊ถŒํ•œ์„ ๋ชจ๋‘ ๊ฐ€์ง€๋Š” ๊ฒƒ์ฒ˜๋Ÿผ,๋” ๋†’์€ ์—ญํ• ์ด ๋” ๋‚ฎ์€ ์—ญํ• ์˜ ๊ถŒํ•œ์„ ๋ชจ๋‘ ํฌํ•จํ•˜๋Š” ๊ตฌ์กฐ๋ฅผ ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์™œ R..
[Spring Security] ์ปค์Šคํ…€ ํ•„ํ„ฐ ๊ตฌํ˜„ํ•˜๊ธฐ / UsernamePasswordAuthenticationFilter ๋ฐ”ํƒ•
ยท
๐ŸŒฟSpring
โš™๏ธ ๊ฐœ๋ฐœ ํ™˜๊ฒฝSpring Boot 3.4.0Spring Security 6.4.1 ๐Ÿš€ ๋ชฉํ‘œ๋””์Šค์ฝ”๋“œ์ž‡ ๋ฏธ์…˜์—์„œ ๊ธฐ์กด์—๋Š” ์•„์ฃผ ๊ฐ„๋‹จํ•œ ํšŒ์›๊ฐ€์ž…, ๋กœ๊ทธ์ธ ์ธ์ฆ์„ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.username, password๋ฅผ DB์— ์ €์žฅํ•˜๊ณ , ๋กœ๊ทธ์ธ ์‹œ์—๋Š” ๊ทธ ๊ฐ’์„ ๊ฐ€์ ธ์™€ ๋น„๊ตํ•˜์—ฌ ์‘๋‹ต์„ ๋‚ด๋ฆฌ๋Š” ๋ฐฉ์‹์ด์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ์—๋Š” Spring Security์—์„œ ์ปค์Šคํ…€ ํ•„ํ„ฐ๋ฅผ ๊ตฌํ˜„ํ•˜์—ฌ ๋กœ๊ทธ์ธ ์‹œ ํ•„ํ„ฐ์—์„œ ์ธ์ฆํ•˜๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.๊ทธ๋ฆฌ๊ณ  ์ด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ๋กœ๊ทธ์ธ API์ธ POST /api/login๋ฅผ ๊ตฌํ˜„ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๐Ÿซ ์ธ์ฆ ์•„ํ‚คํ…์ฒ˜: UsernamePasswordAuthenticationFilter๋ฅผ ์ค‘์‹ฌ์œผ๋กœ๋จผ์ € ๊ธฐ๋ณธ์ ์œผ๋กœ๋Š” ์–ด๋–ป๊ฒŒ ์ธ์ฆ๋˜๊ณ  ์žˆ๋Š”์ง€ ์‚ดํŽด๋ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.username, password๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹์€ ์œ ์ง€ํ•˜๋ฏ€๋กœUsernam..
[Spring Security] CSRF ์„ค์ • 403 ์‘๋‹ต ๋ฌธ์ œ ํ•ด๊ฒฐ: CsrfTokenRepository์— ๋Œ€ํ•œ ์ดํ•ด
ยท
๐ŸŒฟSpring
โš™๏ธ ๊ฐœ๋ฐœ ํ™˜๊ฒฝSpring Boot 3.4.0Spring Security 6.4.1 ๐Ÿ“Œ ๋ฌธ์ œ ์ƒํ™ฉ๋””์Šค์ฝ”๋“œ์ž‡ ๋ฏธ์…˜์— Spring Security๋ฅผ ์ ์šฉํ•˜๋ฉฐ CSRF ๋ณดํ˜ธ ์„ค์ •์„ ํ•˜๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ํ”„๋กœ์ ํŠธ์˜ ํ”„๋ก ํŠธ์—”๋“œ๋Š” ์„œ๋ฒ„์—์„œ HTML์„ ๋ชจ๋‘ ์ƒ์„ฑํ•˜๋Š” SSR(Sever Side Rendering) ๋ฐฉ์‹์ด ์•„๋‹ˆ๋ผ,ํด๋ผ์ด์–ธํŠธ(๋ธŒ๋ผ์šฐ์ €)์—์„œ Javascript๋ฅผ ํ™œ์šฉํ•ด HTML์„ ์ƒ์„ฑํ•˜๋Š” CSR(Client Side Rendering) ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— CSRF ํ† ํฐ ์ •๋ณด ์—ญ์‹œ ํ”„๋ก ํŠธ์—์„œ ๋ช…์‹œ์ ์œผ๋กœ ๊ด€๋ฆฌํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. CSRF ํ† ํฐ ๋ฐœ๊ธ‰ ๋ฐ ๊ฒ€์ฆ ํ”„๋กœ์„ธ์Šค๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ €๋Š” ์ด ์š”๊ตฌ์‚ฌํ•ญ์— ๋งž์ถฐ ๋ฐฑ์—”๋“œ๋ฅผ ๊ตฌํ˜„ํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. 1. ํŽ˜์ด์ง€๊ฐ€ ๋กœ๋“œ๋  ๋•Œ ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ CSRF ํ† ํฐ ๋ฐœ๊ธ‰2. CSRF ํ† ํฐ..
[Spring Security] #2 ์ธ์ฆ ๋ฐฉ์‹: ์ฟ ํ‚ค vs ์„ธ์…˜ vs JWT
ยท
๐ŸŒฟSpring
์˜ค๋Š˜์€ ๋Œ€ํ‘œ์ ์ธ ์‚ฌ์šฉ์ž ์ธ์ฆ ๋ฐฉ์‹์ธ ์ฟ ํ‚ค vs ์„ธ์…˜ vs JWT ๋ฐฉ์‹์— ๋Œ€ํ•ด ์ •๋ฆฌํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.์ œ๊ฐ€ ๋“ค์€ ๊ฐ•์˜์—์„œ๋Š” ์„ธ์…˜๊ณผ ์ฟ ํ‚ค๋ฅผ ํ•ฉ์ณ ์„ค๋ช…ํ–ˆ๋Š”๋ฐ๋ธ”๋กœ๊ทธ๋ฅผ ์“ฐ๊ธฐ ์œ„ํ•ด ์ž๋ฃŒ ์กฐ์‚ฌ๋ฅผ ํ•˜๋‹ค๋ณด๋‹ˆ ์ฟ ํ‚ค์™€ ์„ธ์…˜์„ ๊ตฌ๋ถ„์ง“๋Š” ๋ถ„๋“ค์ด ๋งŽ์œผ์‹œ๋”๋ผ๊ณ ์š”.์ถ”๊ฐ€์ ์œผ๋กœ ํ•™์Šตํ•œ ๋‚ด์šฉ์„ ์ข…ํ•ฉํ•˜์—ฌ ์จ๋ด…๋‹ˆ๋‹ค. ๋จผ์ € ์ฝ์œผ๋ฉด ์ข‹์€ ๊ธ€: ์ธ์ฆ๊ณผ ์ธ๊ฐ€ ๊ฐœ๋… https://syleeblog.tistory.com/40 ๐Ÿช ์ฟ ํ‚ค ๋ฐฉ์‹์›น์—์„œ ์ฟ ํ‚ค๋ž€ ์„œ๋ฒ„๊ฐ€ ์‚ฌ์šฉ์ž์˜ ์›น ๋ธŒ๋ผ์šฐ์ €์— ์ „์†กํ•˜๋Š” ์ž‘์€ ๋ฐ์ดํ„ฐ ์กฐ๊ฐ์ž…๋‹ˆ๋‹ค.๋ธŒ๋ผ์šฐ์ €๋Š” ๋ฐ์ดํ„ฐ ์กฐ๊ฐ๋“ค์„ ์ €์žฅํ•ด ๋†“์•˜๋‹ค๊ฐ€, ๋™์ผํ•œ ์„œ๋ฒ„์— ์žฌ ์š”์ฒญ ์‹œ ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ํ•จ๊ฒŒ ์ „์†กํ•ฉ๋‹ˆ๋‹ค.์ถœ์ฒ˜: MDN WEB DOCS 1. ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์— ๋กœ๊ทธ์ธ ์ธ์ฆ ์š”์ฒญ์„ ๋ณด๋ƒ…๋‹ˆ๋‹ค.2. ์„œ๋ฒ„์—์„œ๋Š” ์ ํ•ฉํ•œ ์œ ์ €์ธ์ง€ ์ธ์ฆํ•ฉ๋‹ˆ๋‹ค.3. ์ธ์ฆ์ด ์™„..