Spring Security ์ฐธ๊ณ  ํ• ๋งŒํ•œ ์‚ฌ์ดํŠธ
Backend/SPRING 2021. 10. 28. 22:07

Spring Security ๊ธฐ๋ณธ์ ์ธ ์ดํ•ด์— ๋Œ€ํ•œ ๋„์›€์ด ๋˜๋Š” ์‚ฌ์ดํŠธ https://brunch.co.kr/@sbcoba/12 https://brunch.co.kr/@sbcoba/11 ์Šคํ”„๋ง ์‹œํ๋ฆฌํ‹ฐ ์ดํ•ด 2 Authentication์˜ ์ดํ•ด | ์ด์ „ ํฌ์ŠคํŒ…์—์„œ๋Š” ์Šคํ”„๋ง ์‹œํ๋ฆฌํ‹ฐ์˜ ๊ฐ„๋‹จํ•œ ์†Œ๊ฐœ์™€ Session์œผ๋กœ ์ธ์ฆ๋ฐ›๋Š” ํ˜•ํƒœ์™€ ์‹œํ๋ฆฌํ‹ฐ์˜ ์ฐจ์ด์ ์— ๋Œ€ํ•ด์„œ ์ด์•ผ๊ธฐํ•ด๋ณด์•˜๋‹ค. SecuriyContext์— ๋Œ€ํ•ด์„œ ์ด์•ผ๊ธฐํ•˜๋‹ค๊ฐ€ ๋๋ƒˆ๋Š” brunch.co.kr Spring Security๋ฅผ ํ™œ์šฉํ•˜์—ฌ JWT Token ๊ตฌํ˜„ https://mangkyu.tistory.com/57 [SpringBoot] SpringBoot๋กœ SpringSecurity ๊ธฐ๋ฐ˜์˜ JWT ํ† ํฐ ๊ตฌํ˜„ํ•˜๊ธฐ ํ˜„๋Œ€ ์›น์„œ๋น„์Šค์—์„œ๋Š” ํ† ํฐ์„ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž..

HTTP/1.1 vs HTTP/2
Backend 2021. 10. 21. 17:43

HTTP/1.1 ๊ธฐ๋ณธ ๋™์ž‘ ๋ฐฉ์‹ Connection๋‹น ํ•˜๋‚˜์˜ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๋„๋ก ์„ค๊ณ„, ๋™์‹œ ์ „์†ก ๋ถˆ๊ฐ€ํ•˜๋ฉฐ ์š”์ฒญ๊ณผ ์‘๋‹ต์ด ์ˆœ์ฐจ์ ์œผ๋กœ ์ง„ํ–‰ํ•œ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ณด๋‹ˆ ๋‹ค์Œ ์ „์†ก ๋˜์–ด์•ผํ•  ํŒŒ์ผ์ด ๊ธฐ๋‹ค๋ ค์•ผํ•˜๋Š” ๋ ˆ์ดํ„ด์‹œ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. HTTP 1.1์˜ ๋‹จ์  HOLB pipelining์ด๋ž€? ํ•œ๋ฒˆ์˜ Connection์—์„œ ์—ฌ๋Ÿฌ ์š”์ฒญ์ด ๊ฐ€๋Šฅํ•œ ๊ธฐ๋ฒ• ํŒŒ์ดํ”„๋ผ์ด๋‹์˜ ๋‹จ์ ์€ ํ•œ ์š”์ฒญ์ด ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋ฉด, ๋‹ค์Œ ์š”์ฒญ์ด ์ง€์—ฐ๋œ๋‹ค. ์ด๊ฒƒ์„ Head of Line Blocking๋ผ๊ณ  ํ•œ๋‹ค. RTT ์ผ๋ฐ˜์ ์œผ๋กœ HTTP 1.1์€ ํ•œ๋ฒˆ์˜ ์ปค๋„ฅ์…˜์— ํ•œ๋ฒˆ์˜ ์š”์ฒญ๊ณผ ์‘๋‹ต์„ ์ฒ˜๋ฆฌํ•˜๋‹ค๋ณด๋‹ˆ, HandShaking ๊ณผ์ •์ด ๋ฐ˜๋ณต๋œ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ณด๋‹ˆ ๋ถˆํ•„์š”ํ•œ RTT๊ฐ€ ์ฆ๊ฐ€ํ•˜๊ฒŒ ๋˜์–ด ์„ฑ๋Šฅ์ด ์ €ํ•˜๋œ๋‹ค. RTT๋ž€? ํŒจํ‚ท์ด ๋ชฉ์ ์ง€์— ๋„๋‹ฌํ•˜๊ณ  ๋‚˜์„œ ํ•ด๋‹น ํŒจํ‚ท์— ๋Œ€ํ•œ ์‘๋‹ต์ด ์ถœ๋ฐœ์ง€..

Spring MVC ์›น ๊ณ„์ธต
Backend/SPRING 2021. 10. 8. 00:40

Web Layer 1. ํ”ํžˆ ์‚ฌ์šฉํ•˜๋Š” ์ปจํŠธ๋กค๋Ÿฌ์™€ ํ…œํ”Œ๋ฆฟ ์—”์ง„์˜ ์˜์—ญ 2. ํ•„ํ„ฐ, ์ธํ„ฐ์…‰ํ„ฐ, ์ปจํŠธ๋กค๋Ÿฌ ์–ด๋“œ๋ฐ”์ด์Šค ๋“ฑ ์™ธ๋ถ€ ์š”์ฒญ๊ณผ ์‘๋‹ต์— ๋Œ€ํ•œ ์ „๋ฐ˜์ ์ธ ์˜์—ญ์„ ์˜๋ฏธํ•œ๋‹ค. Service Layer 1. `@Service`์—์„œ ์‚ฌ์šฉ๋˜๋Š” ์„œ๋น„์Šค ์˜์—ญ 2. ์ผ๋ฐ˜์ ์œผ๋กœ Controller์™€ Repository์˜ ์ค‘๊ฐ„ ์˜์—ญ์—์„œ ์‚ฌ์šฉ๋œ๋‹ค. 3. @Transactional์ด ์‚ฌ์šฉ๋˜์–ด์•ผ ํ•œ๋‹ค. Repository Layer 1. Database์™€ ๊ฐ™์€ ์ €์žฅ์†Œ์— ์ ‘๊ทผํ•˜๋Š” ์˜์—ญ 2. ์ด์ „์— ์ž์ฃผ ์‚ฌ์šฉ๋˜๋˜ Dao ์˜์—ญ์ด๋‹ค. DTOs 1. DTO๋Š” ๊ณ„์ธต ๊ฐ„ ๋ฐ์ดํ„ฐ ๊ตํ™˜์„ ์œ„ํ•œ ๊ฐ์ฒด๋ฅผ ์˜๋ฏธํ•œ๋‹ค. 2. ๋ทฐ ํ…œํ”Œ๋ฆฟ ์—”์ง„์—์„œ ์‚ฌ์šฉ๋  ๊ฐ์ฒด๋‚˜ Repository๊ฐ€ ์‘๋‹ต์œผ๋กœ ๋„˜๊ฒจ์ฃผ๋Š” ๊ฐ์ฒด ๋“ฑ์„ ๋งํ•œ๋‹ค. Domain Model 1. ๊ฐœ๋ฐœ ๋Œ€์ƒ(..

์ฟ ํ‚ค ๊ทธ๋ฆฌ๊ณ  ์„ธ์…˜
Backend 2021. 9. 30. 22:38

์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์‚ฌ์šฉ์ž์˜ ์‚ฌ์šฉ์„ฑ์„ ์ฆ์ง„์‹œํ‚ค๊ธฐ ์œ„ํ•ด์„œ๋Š” ์š”์ฒญํ•œ ์‚ฌ์šฉ์ž ์ •๋ณด๋ฅผ ์„œ๋ฒ„์—์„œ ๊ด€๋ฆฌํ•˜๋Š” ๊ณผ์ •์ด ํ•„์š”ํ•  ์ˆ˜๋„ ์žˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ HTTP ํ”„๋กœํ† ์ฝœ์€ statelessํ•œ ์„ฑ์งˆ์„ ๊ฐ€์ง€๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์š”์ฒญ์ž์˜ ์ƒํƒœ๋ฅผ ์œ ์ง€์‹œํ‚ค์ง€ ์•Š๋Š”๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ์–ด๋–ป๊ฒŒ ์š”์ฒญ์ž์˜ ์ •๋ณด๋ฅผ ์œ ์ง€์‹œํ‚ฌ ์ˆ˜ ์žˆ์„๊นŒ? ์ฟ ํ‚ค๋งŒ ์‚ฌ์šฉํ•˜์—ฌ ์œ ์ €์˜ ์ •๋ณด๋ฅผ ์œ ์ง€ํ•˜๋Š” ๋ฐฉ๋ฒ• ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ์˜ ๋Œ€ํ™” ํด๋ผ์ด์–ธํŠธ : ๋กœ๊ทธ์ธ ํ• ๋ž˜ ์„œ๋ฒ„ : OK, Cookie ์ €์žฅ์†Œ์— Member ํ‚ค๊ฐ’ ์ €์žฅํ•ด. ๋‹ค์Œ๋ถ€ํ„ฐ ์š”์ฒญํ•  ๋•Œ ํฌํ•จํ•ด์„œ ์ „์†กํ•ด์ค˜. ํด๋ผ์ด์–ธํŠธ : GET, Cookie ํฌํ•จ, ์ •๋ณด ๋ณด์—ฌ์ค˜ ์„œ๋ฒ„ : OK, ์œ ์ € ์ •๋ณด ํ™•์ธ, ์ •๋ณด ๋ณด์—ฌ์ค„๊ฒŒ. ํด๋ผ์ด์–ธํŠธ : ๋ธŒ๋ผ์šฐ์ € ์ข…๋ฃŒ, ๋งŒ๋ฃŒ ๋‚ ์งœ๊ฐ€ ์—†๋„ค? ์„ธ์…˜์ฟ ํ‚ค๋‹ˆ๊นŒ ์‚ญ์ œ or ๋งŒ๋ฃŒ ๋‚ ์งœ๊ฐ€ ์žˆ๋„ค ์‚ญ์ œ ์•ˆํ•ด! ๋งŒ๋ฃŒ ๋‚ ์งœ์ผ ๋•Œ ..

์Šคํ”„๋ง ์ธํ„ฐ์…‰ํ„ฐ๋ฅผ ์‚ฌ์šฉํ•ด๋ณด์ž
Backend/SPRING 2021. 9. 28. 00:21

์ธํ„ฐ์…‰ํ„ฐ๋ž€? ํ•„ํ„ฐ์™€ ๋™์ผํ•˜๊ฒŒ ๊ณตํ†ต ๊ด€์‹ฌ ์‚ฌํ•ญ์„ ํšจ๊ณผ์ ์œผ๋กœ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ์ˆ ์ด๋‹ค. ์ธํ„ฐ์…‰ํ„ฐ๋Š” ์„œ๋ธ”๋ฆฟ์ด ์ œ๊ณตํ•˜๋Š” ํ•„ํ„ฐ์™€ ๋‹ค๋ฅด๊ฒŒ ์Šคํ”„๋ง MVC์—์„œ ์ œ๊ณตํ•˜๋Š” ๊ธฐ์ˆ ์ด๋ฉฐ ํ•„ํ„ฐ๋ณด๋‹ค ์ข€ ๋” ํŽธ๋ฆฌํ•œ ๊ธฐ๋Šฅ์„ ํฌํ•จํ•˜๊ณ  ์žˆ๋‹ค. ์ธํ„ฐ์…‰ํ„ฐ๋Š” ์Šคํ”„๋ง MVC๊ฐ€ ์ œ๊ณตํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋””์ŠคํŒจ์ณ ์„œ๋ธ”๋ฆฟ ์ดํ›„์— ํ˜ธ์ถœ๋˜๊ฒŒ ๋œ๋‹ค. ์Šคํ”„๋ง MVC์˜ ์‹œ์ž‘์ ์ด ๋””์ŠคํŒจ์ฒ˜ ์„œ๋ธ”๋ฆฟ์ด๋ผ๊ณ  ๋ณด๋ฉด ๋œ๋‹ค. ์•„ํ‚คํ…์ฒ˜ ํ•„ํ„ฐ VS ์ธํ„ฐ์…‰ํ„ฐ ํฐ ํ‹€์—๋Š” ์ฐจ์ด๊ฐ€ ์—†๋‹ค. ์šฐ์„  ํ•„ํ„ฐ์™€ ์ธํ„ฐ์…‰ํ„ฐ์˜ ์ „์ฒด์ ์ธ ๊ธฐ๋Šฅ์—๋Š” ํฐ ์ฐจ์ด๊ฐ€ ์—†๋‹ค. ํ•„ํ„ฐ ์ธํ„ฐ์…‰ํ„ฐ ๋‘˜๋‹ค ์š”์ฒญ์— ๋Œ€ํ•œ ์ „ํ›„ ์ฒ˜๋ฆฌ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•˜์—ฌ ๋˜ํ•œ URL Pattern์„ ์ด์šฉํ•˜์—ฌ ์–ด๋– ํ•œ ์š”์ฒญ์— ๋Œ€ํ•ด ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•  ๊ฒƒ์ธ์ง€ ์ง€์ •์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ๋˜ํ•œ request, response ๊ฐ์ฒด๋ฅผ ๋ฐ›์•„์„œ ๋ถ€๊ฐ€์ ์ธ ๋กœ์ง ๋˜ํ•œ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ง์ ‘ ๊ตฌํ˜„์ด ..