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 ํ† ํฐ ๊ตฌํ˜„ํ•˜๊ธฐ ํ˜„๋Œ€ ์›น์„œ๋น„์Šค์—์„œ๋Š” ํ† ํฐ์„ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž..

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/SPRING 2021. 9. 28. 00:21

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

@MappedSuperClass, @Embedded, @Embeddable
Backend/SPRING 2021. 9. 15. 23:02

Spring JPA Hibernate์—์„œ Entity์˜ ์ƒ์†์— ๋Œ€ํ•ด ๊ฒ€์ƒ‰ํ•˜์—ฌ ๊ณต๋ถ€ํ•˜๋˜ ์ค‘ ์ถ”๊ฐ€์ ์œผ๋กœ ๊ถ๊ธˆํ•œ ๋ถ€๋ถ„์ด ์ƒ๊ฒจ ์ •๋ฆฌํ•ด๋ณธ๋‹ค. @MappedSuperClass ์—ฌ๋Ÿฌ ์—”ํ‹ฐํ‹ฐ์— ๊ณตํ†ต์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ํ•„๋“œ๋ฅผ ์ƒ์†๋ฐ›๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•œ๋‹ค. ์—”ํ‹ฐํ‹ฐ๋“ค์ด ์ƒ์†๋ฐ›์•„ ์‚ฌ์šฉํ•  ํด๋ž˜์Šค ์œ„์— ์„ ์–ธํ•˜๊ฒŒ ๋˜๋ฉด ํ•ด๋‹น ํด๋ž˜์Šค๋Š” Table๊ณผ ๋งคํ•‘๋˜์ง€ ์•Š๊ณ  ๋‹จ์ˆœํžˆ ํ•„๋“œ๋ฅผ ์ƒ์†๋ฐ›๊ธฐ ์œ„ํ•œ ํด๋ž˜์Šค๊ฐ€ ๋œ๋‹ค. ์ด ํด๋ž˜์Šค๋Š” ์ƒ์„ฑํ•ด์„œ ์‚ฌ์šฉํ•  ์ผ์ด ์—†์œผ๋ฏ€๋กœ ์ถ”์ƒ ํด๋ž˜์Šค ์„ ์–ธ์ด ๊ถŒ์žฅ๋œ๋‹ค. @Embeddable (์ƒ๋žต ๊ฐ€๋Šฅํ•˜๋‹ค! default ์ž„) ์˜ˆ๋ฅผ ๋“ค์–ด Wardrobe Entity ๋‚ด์— ํŠน์ • Writer ์ •๋ณด(String memberName, String memberId) ๊ฐ€ ๋‹ด๊ธด๋‹ค๊ณ  ํ•ด๋ณด์ž. ๊ทธ๋Ÿฐ๋ฐ memberName, memberId๋ฅผ ๋”ฐ๋กœ ๋‘๋ฉด..

[Spring] ์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ
Backend/SPRING 2020. 1. 18. 19:41

์Šคํ”„๋ง์ด ์™œ ํƒ„์ƒํ•˜๊ฒŒ ๋˜์—ˆ์„๊นŒ? ์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ๋กœ๋“œ ์กด์Šจ์ด 2004๋…„์— ๋งŒ๋“  ์˜คํ”ˆ์†Œ์Šค ํ”„๋ ˆ์ž„์›Œํฌ์ž…๋‹ˆ๋‹ค. ์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ ์ด์ „์—” ์ž๋ฐ” ๊ธฐ๋ฐ˜์˜ ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ๋Œ€๋ถ€๋ถ„ EJB(Enterprise Java Beans)๋กœ ๊ฐœ๋ฐœ๋˜์—ˆ์—ˆ์ฃ . ํ•˜์ง€๋งŒ EJB๋Š” ํ•™์Šต์— ๋งŽ์€ ์‹œ๊ฐ„์ด ํ•„์š”ํ•˜๊ณ , ๊ฐœ๋ฐœ ๋ฐ ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ์–ด๋ ต๋‹ค๋Š” ์ , ๊ทธ๋ฆฌ๊ณ  EJB ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋ฐฐ์น˜ํ•˜๊ธฐ ์œ„ํ•œ WAS(Web Application Server)๊ฐ€ ๊ต‰์žฅํžˆ ๊ณ ๊ฐ€์˜ ์žฅ๋น„์˜€๊ธฐ์— ๋งŽ์€ ๊ฐœ๋ฐœ์ž๋“ค์˜ ์™ธ๋ฉด์„ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค. ๋ฌผ๋ก  EJB์— ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ธฐ์— ๊ธด ์‹œ๊ฐ„๋™์•ˆ ์‚ฌ์šฉ๋ฌ๊ฒ ์ฃ . ํ•˜์ง€๋งŒ EJB์˜ ๋ฌธ์ œ์ ์€ EJB ๋‹ต๊ฒŒ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๊ต‰์žฅํžˆ ์–ด๋ ต๋‹ค๋Š” ์ ์ž…๋‹ˆ๋‹ค. EJB๋ฅผ ์ œ๋Œ€๋กœ ์‚ฌ์šฉํ•˜๋ ค๋ฉด EJB์˜ ์„ฑ๋Šฅ์„ ์œ ์ง€ํ•ด์ฃผ๊ณ , ๋‹ค์–‘ํ•œ ๋””์ž์ธ ํŒจํ„ด์„ ..