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 ๊ธฐ๋ณธ ๋์ ๋ฐฉ์ Connection๋น ํ๋์ ์์ฒญ์ ์ฒ๋ฆฌํ๋๋ก ์ค๊ณ, ๋์ ์ ์ก ๋ถ๊ฐํ๋ฉฐ ์์ฒญ๊ณผ ์๋ต์ด ์์ฐจ์ ์ผ๋ก ์งํํ๋ค. ๊ทธ๋ ๋ค๋ณด๋ ๋ค์ ์ ์ก ๋์ด์ผํ ํ์ผ์ด ๊ธฐ๋ค๋ ค์ผํ๋ ๋ ์ดํด์๊ฐ ๋ฐ์ํ๋ค. HTTP 1.1์ ๋จ์ HOLB pipelining์ด๋? ํ๋ฒ์ Connection์์ ์ฌ๋ฌ ์์ฒญ์ด ๊ฐ๋ฅํ ๊ธฐ๋ฒ ํ์ดํ๋ผ์ด๋์ ๋จ์ ์ ํ ์์ฒญ์ด ์ค๋ ๊ฑธ๋ฆฌ๋ฉด, ๋ค์ ์์ฒญ์ด ์ง์ฐ๋๋ค. ์ด๊ฒ์ Head of Line Blocking๋ผ๊ณ ํ๋ค. RTT ์ผ๋ฐ์ ์ผ๋ก HTTP 1.1์ ํ๋ฒ์ ์ปค๋ฅ์ ์ ํ๋ฒ์ ์์ฒญ๊ณผ ์๋ต์ ์ฒ๋ฆฌํ๋ค๋ณด๋, HandShaking ๊ณผ์ ์ด ๋ฐ๋ณต๋๋ค. ๊ทธ๋ ๋ค๋ณด๋ ๋ถํ์ํ RTT๊ฐ ์ฆ๊ฐํ๊ฒ ๋์ด ์ฑ๋ฅ์ด ์ ํ๋๋ค. RTT๋? ํจํท์ด ๋ชฉ์ ์ง์ ๋๋ฌํ๊ณ ๋์ ํด๋น ํจํท์ ๋ํ ์๋ต์ด ์ถ๋ฐ์ง..
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. ๊ฐ๋ฐ ๋์(..
์น ์ดํ๋ฆฌ์ผ์ด์ ์์ ์ฌ์ฉ์์ ์ฌ์ฉ์ฑ์ ์ฆ์ง์ํค๊ธฐ ์ํด์๋ ์์ฒญํ ์ฌ์ฉ์ ์ ๋ณด๋ฅผ ์๋ฒ์์ ๊ด๋ฆฌํ๋ ๊ณผ์ ์ด ํ์ํ ์๋ ์๋ค. ๊ทธ๋ฐ๋ฐ HTTP ํ๋กํ ์ฝ์ statelessํ ์ฑ์ง์ ๊ฐ์ง๊ณ ์๊ธฐ ๋๋ฌธ์ ์์ฒญ์์ ์ํ๋ฅผ ์ ์ง์ํค์ง ์๋๋ค. ๊ทธ๋ ๋ค๋ฉด ์ด๋ป๊ฒ ์์ฒญ์์ ์ ๋ณด๋ฅผ ์ ์ง์ํฌ ์ ์์๊น? ์ฟ ํค๋ง ์ฌ์ฉํ์ฌ ์ ์ ์ ์ ๋ณด๋ฅผ ์ ์งํ๋ ๋ฐฉ๋ฒ ์๋ฒ์ ํด๋ผ์ด์ธํธ์ ๋ํ ํด๋ผ์ด์ธํธ : ๋ก๊ทธ์ธ ํ ๋ ์๋ฒ : OK, Cookie ์ ์ฅ์์ Member ํค๊ฐ ์ ์ฅํด. ๋ค์๋ถํฐ ์์ฒญํ ๋ ํฌํจํด์ ์ ์กํด์ค. ํด๋ผ์ด์ธํธ : GET, Cookie ํฌํจ, ์ ๋ณด ๋ณด์ฌ์ค ์๋ฒ : OK, ์ ์ ์ ๋ณด ํ์ธ, ์ ๋ณด ๋ณด์ฌ์ค๊ฒ. ํด๋ผ์ด์ธํธ : ๋ธ๋ผ์ฐ์ ์ข ๋ฃ, ๋ง๋ฃ ๋ ์ง๊ฐ ์๋ค? ์ธ์ ์ฟ ํค๋๊น ์ญ์ or ๋ง๋ฃ ๋ ์ง๊ฐ ์๋ค ์ญ์ ์ํด! ๋ง๋ฃ ๋ ์ง์ผ ๋ ..
์ธํฐ์ ํฐ๋? ํํฐ์ ๋์ผํ๊ฒ ๊ณตํต ๊ด์ฌ ์ฌํญ์ ํจ๊ณผ์ ์ผ๋ก ํด๊ฒฐํ ์ ์๋ ๊ธฐ์ ์ด๋ค. ์ธํฐ์ ํฐ๋ ์๋ธ๋ฆฟ์ด ์ ๊ณตํ๋ ํํฐ์ ๋ค๋ฅด๊ฒ ์คํ๋ง MVC์์ ์ ๊ณตํ๋ ๊ธฐ์ ์ด๋ฉฐ ํํฐ๋ณด๋ค ์ข ๋ ํธ๋ฆฌํ ๊ธฐ๋ฅ์ ํฌํจํ๊ณ ์๋ค. ์ธํฐ์ ํฐ๋ ์คํ๋ง MVC๊ฐ ์ ๊ณตํ๊ธฐ ๋๋ฌธ์ ๋์คํจ์ณ ์๋ธ๋ฆฟ ์ดํ์ ํธ์ถ๋๊ฒ ๋๋ค. ์คํ๋ง MVC์ ์์์ ์ด ๋์คํจ์ฒ ์๋ธ๋ฆฟ์ด๋ผ๊ณ ๋ณด๋ฉด ๋๋ค. ์ํคํ ์ฒ ํํฐ VS ์ธํฐ์ ํฐ ํฐ ํ์๋ ์ฐจ์ด๊ฐ ์๋ค. ์ฐ์ ํํฐ์ ์ธํฐ์ ํฐ์ ์ ์ฒด์ ์ธ ๊ธฐ๋ฅ์๋ ํฐ ์ฐจ์ด๊ฐ ์๋ค. ํํฐ ์ธํฐ์ ํฐ ๋๋ค ์์ฒญ์ ๋ํ ์ ํ ์ฒ๋ฆฌ ์ญํ ์ ์ํํ์ฌ ๋ํ URL Pattern์ ์ด์ฉํ์ฌ ์ด๋ ํ ์์ฒญ์ ๋ํด ์ญํ ์ ์ํํ ๊ฒ์ธ์ง ์ง์ ์ด ๊ฐ๋ฅํ๋ค. ๋ํ request, response ๊ฐ์ฒด๋ฅผ ๋ฐ์์ ๋ถ๊ฐ์ ์ธ ๋ก์ง ๋ํ ๊ฐ๋ฐ์๊ฐ ์ง์ ๊ตฌํ์ด ..