Spring Framework/Spring & Spring Boot
SSE (Server-Sent Events)๋?์๋ฒ์์ ํด๋ผ์ด์ธํธ๋ก ๋ฐ์ดํฐ๋ฅผ ๋น๋๊ธฐ์ ์ผ๋ก ์ ์กํ๋ ๊ธฐ์ ์ด๋ค. ์๋ฒ๊ฐ ํด๋ผ์ด์ธํธ์๊ฒ ์ง์์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์กํ ๋ ์ฃผ๋ก ์ฌ์ฉ๋๋ค. ๋ํ ์ค์๊ฐ ์
๋ฐ์ดํธ๊ฐ ํ์ํ ๊ฒฝ์ฐ(์ฃผ์ ์์ธ, ์ค์๊ฐ ์ฑํ
, ์๋ฆผ ๋ฑ)์ ์ฌ์ฉ๋๋ฉฐ HTTP ๊ธฐ๋ฐ์ผ๋ก ์น ๋ธ๋ผ์ฐ์ ์ ์น ์๋ฒ ๊ฐ์ ๋จ๋ฐฉํฅ ํต์ ์ ๊ฐ๋ฅํ๊ฒ ํ๋ฏ๋ก ํด๋ผ์ด์ธํธ๋ ์๋ฒ์ ์์ฒญ์ ๋ณด๋ด์ง ์๊ณ ๋ ์๋ฒ๋ก๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ ์ ์๊ณ , ํด๋ผ์ด์ธํธ๋ ์น ๋ธ๋ผ์ฐ์ ์ EventSource API๋ฅผ ์ฌ์ฉํด ์๋ฒ๋ก๋ถํฐ ์ด๋ฒคํธ๋ฅผ ์์ ํ๊ณ ์ฒ๋ฆฌํ๋ค. ํ๋ก์ ํธ์์ ์จ๋ฐAI์๊ฒ ์ง๋ฌธ์ ์์ฒญํ๋ฉด ์๋ต์ ์ค์๊ฐ์ผ๋ก ๋ฐ๊ธฐ ์ํด ์ฌ์ฉํ๊ณ ์ ํ๋ค.์ค์ ๋ก ํ๋ก์ ํธ์์ ์ด๋ป๊ฒ ๊ตฌํํ๋์ง ์์๋ณด์ ! WebClientService ์ฝ๋ ๊ตฌํ - ๋น๋๊ธฐ๋ก ..
Spring Framework/Spring & Spring Boot
xml ํ์์ ์์ธ ์ค์๊ฐ ๋์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์์ ํ์ฑํ๊ณ DB์ ์ ์ฅํ๋ ๋ฐ๊น์ง 442์ด(7๋ถ 22์ด) ์์๋๋ค.ํ ์ง์ญ์ ๋ฐ์ดํฐ๋ฅผ ํ์ฑํ๋ ๋ฐ 3~10์ด ๊ฐ๋ ์์๋๊ณ , ์ด 115๊ณณ์ ๊ฐ์ ธ์์ผํ๋ฏ๋ก ์ฝ 7-8๋ถ ์์๋๋ ๊ฒ์ด์๋ค. ์๋ ๊ฐ์ ธ์์ผํ ๋ฐ์ดํฐ๊ฐ ๋ง์ ์ ์ด์ ์ฃผ์์ฐฝ์ xml์ด ์กด์ฌํ๋ url์ ์์ฒญํ์ ๋ 3~5์ด ์ ๋ ์ง์ฐ๋จ์ด ๋ฐ์ํ๊ธด ํ๋ค. ๊ฝค ์ค๋ ์๊ฐ์ด ๊ฑธ๋ ค ์ฑ๋ฅ์ ๊ฐ์ ์ํค๊ธฐ ์ํด ์ฌ๋ฌ ๋ฐฉ์๋ค์ ์๋ํด๋ดค๋ค... CompletableFuture ๋?Java 8์์ ์ถ๊ฐ๋ ํด๋์ค๋ก ๋น๋๊ธฐ ์ฐ์ฐ์ ์ฒ๋ฆฌํ๊ณ ์๋ฃ๋ ๊ฒฐ๊ณผ๋ ์์ธ๋ฅผ ์ฒ๋ฆฌํ๋ค. ๊ธฐ์กด์ ์๋ Java5์ Future ์ธํฐํ์ด์ค์ ํ๊ณ์ ์ ๊ฐ์ ์ํจ ๊ฒ์ด๋ค. ๋๋ณด๊ธฐ๐น Future๋ ?๐ ๋น๋๊ธฐ ์์
์ ๊ฒฐ๊ณผ๋ฅผ ๋ํ๋ด๋ ๋ฐ ์ฌ์ฉ๋๋ฉฐ ..
Spring Framework/Spring & Spring Boot
์ธ์ฆ๋ ์ฌ์ฉ์์ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ค๋ ๋ฐฉ๋ฒ์ ๋ค์ํ๋ค. Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); String currentPrincipalName = authentication.getName(); UserDetails userDetails = (UserDetails) authentication.getPrincipal(); ์์ ์๋ ์์ ๊ฐ์ ์ฝ๋๋ฅผ ์ด์ฉํด์ ์ ์ ๋ฅผ ๋ถ๋ฌ์๋ค. SecurityContext์ ์ธ์ฆ๋ Authentication ๊ฐ์ฒด๋ฅผ ๋ฃ์ด๋๊ณ ํ์ฌ ์ค๋ ๋ ๋ด์์ ๊ณต์ ๋์ด ๊ด๋ฆฌํ ์ ์๋๋ก ํ๋ ๊ฒ์ด๋ค. ํ์ง๋ง ์ด๋ ๊ฒ ์ฌ์ฉํ๋ฉด getName()๋ง ๋ถ๋ฅผ ์๋ฐ์ ์๋ค. ๋ค๋ฅธ ๋ฐฉ๋ฒ์ ๋ ์๋..
Spring Framework/Spring & Spring Boot
Spring Security๋ฅผ ๊ตฌํํ๋ค๋ณด๋ฉด filter์ interceptor๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๋ณผ ์ ์๋ค. ํํฐ์ ์ธํฐ์
ํฐ์ ๋ํ ๊ฐ๋
์ ์ดํดํ๋ฉด Spring Security ๊ณผ์ ์ ํ์
ํ๊ธฐ ์ฌ์ธ ๊ฒ์ด๊ธฐ์ ๊ธฐ๋กํ๋ค! โจ ์ฉ๋ - ๊ณตํต๊ด์ฌ์ฌํญ (Cross-cutting concern) ๐ ์น ์๋น์ค์์ ๋ก๊ทธ์ธ์ ํด์ผ ๋ค์ํ ๊ธฐ๋ฅ์ ์ด์ฉํ ์ ์์ผ๋ฉฐ ๋ก๊ทธ์ธ ์ฌ๋ถ์ ๋ฐ๋ผ ์ ๊ทผํ ์ ์๋ ํ์ด์ง๊ฐ ๋ค๋ฅด๋ค. ๊ทธ๋ ๋ค๋ฉด ๋ก๊ทธ์ธ์ด ํ์ํ ๋ชจ๋ ์ปจํธ๋กค๋ฌ ๋ก์ง์ ๋ก๊ทธ์ธ๊ณผ ๊ด๋ จ๋ ์ฝ๋๋ฅผ ์์ฑํด์ผํ ํ
๋ฐ... ์ด๋ ๊ฒ ๋๋ค๋ฉด ์ฝ๋๊ฐ ์ค๋ณต๋ ๊ฒ์ด๊ณ ๋ณต์กํด์ง ๊ฒ์ด๋ค. ๋ง์ ๋ก์ง์์ ๊ณตํต์ผ๋ก ๊ด์ฌ ์๋ ๋ถ๋ถ์ ๊ณตํต ๊ด์ฌ ์ฌํญ์ด๋ผ๊ณ ํ๋ฉฐ ์ด๋ฅผ ์คํ๋ง์ AOP๋ก๋ ํด๊ฒฐํ ์ ์์ง๋ง ์น์์๋ ์๋ธ๋ฆฟ ํํฐ์ ์คํ๋ง ์ธํฐ์
ํฐ๋ก ์ฒ๋ฆฌํ ์ ์..