๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ‘ฉ‍๐Ÿ’ปTIL/Spring5

[Spring Batch] ์Šคํ”„๋ง๋ฐฐ์น˜ ๊ฐœ๋…/ํ•ต์‹ฌ๊ธฐ๋Šฅ/ํŒŒํ‹ฐ์…”๋‹ ๋ถ„ํ•  ๋ฐฉ์‹ [Spring Batch] ์Šคํ”„๋ง๋ฐฐ์น˜ ๊ฐœ๋…/ํ•ต์‹ฌ๊ธฐ๋Šฅ/ํŒŒํ‹ฐ์…”๋‹ ๋ถ„ํ•  ๋ฐฉ์‹ A๋ผ๋Š” ๊ณณ์— ์Œ“์—ฌ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์–ด์™€ B๋ผ๋Š” ๊ณณ๋กœ ์˜ฎ๊ธฐ๋Š” ์ผ๋ จ์˜ ์ž‘์—… ๐Ÿ’ก์Šคํ”„๋ง ๋ฐฐ์น˜๋ž€? Spring Batch๋Š” ์ผ๊ด„ ์ฒ˜๋ฆฌ์— ์ฃผ๋กœ ์‚ฌ์šฉ๋˜๋Š” spring ๊ธฐ๋ฐ˜ ํ”„๋ ˆ์ž„์›Œํฌ ์ค‘ ํ•˜๋‚˜์ด๋‹ค. ์Šคํ”„๋ง๋ฐฐ์น˜์—์„œ ์ œ๊ณตํ•˜๋Š” ํ•ต์‹ฌ ๊ธฐ๋Šฅ์€ ํฌ๊ฒŒ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. ๐Ÿ“Œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, ํŒŒ์ผ ๋˜๋Š” ํ์—์„œ ๋ฐ์ดํ„ฐ ์ฝ๊ธฐ(Reader) ๐Ÿ“Œ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉ์ž๊ฐ€ ์ •์˜ํ•œ ๋ฐฉ์‹์œผ๋กœ ์ฒ˜๋ฆฌ(Processor) ๐Ÿ“Œ ์ฒ˜๋ฆฌ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์“ฐ๊ธฐ(Writer) ์Šคํ”„๋ง ๋ฐฐ์น˜๋Š” ์œ„์™€ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ์‚ฌ์šฉ์ž์™€์˜ ์ƒํ˜ธ์ž‘์šฉ ์—†์ด ๋ฐ˜๋ณต์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ํŠธ๋žœ์žญ์…˜ ๋‹จ์œ„๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ตฌํ˜„๋˜์–ด ์žˆ๊ณ , ๊ฐœ๋ฐœ์ž๋Š” ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ์— ๋Œ€ํ•œ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์—๋งŒ ์ง‘์ค‘ํ•˜์—ฌ ๋ฐฐ์น˜ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค. DB-> DB , D.. 2021. 8. 23.
[WebFlux] Mono์™€ Flux ๊ฐœ๋…๊ณผ ๊ตฌํ˜„ [WebFlux] Mono์™€ Flux ๊ฐœ๋…๊ณผ ๊ตฌํ˜„ ๐Ÿ’ก WebFlux๋ž€? Spring WebFlux๋Š” Spring 5์—์„œ ์ƒˆ๋กญ๊ฒŒ ์ถ”๊ฐ€๋œ ๋ชจ๋“ˆ์ด๋‹ค. WebFlux๋Š” ํด๋ผ์ด์–ธํŠธ, ์„œ๋ฒ„์—์„œ reactive ์Šคํƒ€์ผ์˜ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์„ ๋„์™€์ฃผ๋Š” ๋ชจ๋“ˆ์ด๋ฉฐ, reactive-stack web framework์ด๋ฉฐ non-blocking์— reactive stream์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ๐Ÿ‘‰๐Ÿป WebFlux์˜ ๊ฐœ๋… / Spring MVC์™€ ๊ฐ„๋‹จ๋น„๊ต ๋” ์•Œ์•„๋ณด๊ธฐ ๐Ÿ’ก Mono์™€ Flux Spring Webflux์—์„œ ์‚ฌ์šฉํ•˜๋Š” reactive library๊ฐ€ Reactor์ด๊ณ  Reactor๊ฐ€ Reactive Streams์˜ ๊ตฌํ˜„์ฒด์ด๋‹ค. ๊ทธ๋ž˜์„œ Webflux ๋ฌธ์„œ์— Reactive Streams๊ฐ€ ์–ธ๊ธ‰๋˜๋Š” ๊ฒƒ์ด๊ณ  ๊ทธ๊ฑฐ์™€ ๊ฐ™์ด Rea.. 2021. 5. 9.
[Spring] WebFlux์˜ ๊ฐœ๋… / Spring MVC์™€ ๊ฐ„๋‹จ๋น„๊ต ๐Ÿ’ก WebFlux๋ž€? Spring WebFlux๋Š” Spring 5์—์„œ ์ƒˆ๋กญ๊ฒŒ ์ถ”๊ฐ€๋œ ๋ชจ๋“ˆ์ž…๋‹ˆ๋‹ค. WebFlux๋Š” ํด๋ผ์ด์–ธํŠธ, ์„œ๋ฒ„์—์„œ reactive ์Šคํƒ€์ผ์˜ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์„ ๋„์™€์ฃผ๋Š” ๋ชจ๋“ˆ์ด๋ฉฐ, reactive-stack web framework์ด๋ฉฐ non-blocking์— reactive stream์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์žฅ์  : ๊ณ ์„ฑ๋Šฅ, spring ๊ณผ ์™„๋ฒฝํ•œ ํ†ตํ•ฉ, netty ์ง€์›, ๋น„๋™๊ธฐ non-blocking ๋ฉ”์„ธ์ง€ ์ฒ˜๋ฆฌ ๋‹จ์  : ์˜ค๋ฅ˜์ฒ˜๋ฆฌ๊ฐ€ ๋‹ค์†Œ ๋ณต์žกํ•˜๋‹ค. ์Šคํ”„๋ง5๋Š” Spring Boot 2 ๋ถ€ํ„ฐ ๋„์ž…์ด ๋˜์—ˆ์œผ๋ฉฐ, Spring Boot 2 ์˜ stack ๋Š” ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค. Reactive Stack ๋ฅผ ์‚ฌ์šฉํ• ์ง€, Servlet Stack ๋ฅผ ์‚ฌ์šฉํ• ์ง€ ์„ ํƒ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๐Ÿ’กSpring MVC vs... 2021. 5. 7.
[Spring Security] ์Šคํ”„๋ง์‹œํ๋ฆฌํ‹ฐ ์‹œ์ž‘ํ•˜๊ธฐ /๊ธฐ๋ณธ์„ธํŒ… [Spring Security] ์Šคํ”„๋ง์‹œํ๋ฆฌํ‹ฐ ์‹œ์ž‘ํ•˜๊ธฐ /๊ธฐ๋ณธ์„ธํŒ… ๐Ÿ’ก ์Šคํ”„๋ง ์‹œํ๋ฆฌํ‹ฐ ์‹œ์ž‘ํ•˜๊ธฐ(๊ธฐ๋ณธ์„ธํŒ…) 1. dependency ์ถ”๊ฐ€ org.springframework.security spring-security-web 4.2.2.RELEASE org.springframework.security spring-security-config 4.2.2.RELEASE dependencies { compile 'org.springframework.security:spring-security-web:4.2.2.RELEASE' compile 'org.springframework.security:spring-security-config:4.2.2.RELEASE' } ๋ฒ„์ „์€ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœ์ ํŠธ์— ๋งž๊ฒŒ ๋ฐ”๊ฟ”์ฃผ์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.. 2020. 5. 15.
[Spring Security] ์Šคํ”„๋ง์‹œํ๋ฆฌํ‹ฐ์˜ ๊ธฐ๋ณธ ๊ฐœ๋…๊ณผ ๊ตฌ์กฐ [Spring Security] ์Šคํ”„๋ง์‹œํ๋ฆฌํ‹ฐ์˜ ๊ฐœ๋…/์‹œ์ž‘ํ•˜๊ธฐ /๊ธฐ๋ณธ์„ธํŒ… ๐Ÿ’ก ์Šคํ”„๋ง์‹œํ๋ฆฌํ‹ฐ(Spring Security)๋ž€? ์Šคํ”„๋ง ์‹œํ๋ฆฌํ‹ฐ๋Š” ์Šคํ”„๋ง ๊ธฐ๋ฐ˜์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ณด์•ˆ(์ธ์ฆ๊ณผ ๊ถŒํ•œ, ์ธ๊ฐ€ ๋“ฑ)์„ ๋‹ด๋‹นํ•˜๋Š” ์Šคํ”„๋ง ํ•˜์œ„ ํ”„๋ ˆ์ž„์›Œํฌ์ž…๋‹ˆ๋‹ค. ์ฆ‰ ์ธ์ฆ(Authenticate, ๋ˆ„๊ตฌ์ธ์ง€?) ๊ณผ ์ธ๊ฐ€(Authorize, ์–ด๋–ค๊ฒƒ์„ ํ•  ์ˆ˜ ์žˆ๋Š”์ง€?)๋ฅผ ๋‹ด๋‹นํ•˜๋Š” ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค. ์Šคํ”„๋ง ์‹œํ๋ฆฌํ‹ฐ์—์„œ๋Š” ์ฃผ๋กœ ์„œ๋ธ”๋ฆฟ ํ•„ํ„ฐ(filter)์™€ ์ด๋“ค๋กœ ๊ตฌ์„ฑ๋œ ํ•„ํ„ฐ์ฒด์ธ์œผ๋กœ์˜ ๊ตฌ์„ฑ๋œ ์œ„์ž„๋ชจ๋ธ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ณด์•ˆ๊ณผ ๊ด€๋ จํ•ด์„œ ์ฒด๊ณ„์ ์œผ๋กœ ๋งŽ์€ ์˜ต์…˜์„ ์ œ๊ณตํ•ด์ฃผ๊ธฐ ๋•Œ๋ฌธ์— ๊ฐœ๋ฐœ์ž ์ž…์žฅ์—์„œ๋Š” ์ผ์ผ์ด ๋ณด์•ˆ๊ด€๋ จ ๋กœ์ง์„ ์ž‘์„ฑํ•˜์ง€ ์•Š์•„๋„ ๋œ๋‹ค๋Š” ์žฅ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์šฉ์–ด ์ ‘๊ทผ ์ฃผ์ฒด(Principal) : ๋ณดํ˜ธ๋œ ๋ฆฌ์†Œ์Šค์— ์ ‘๊ทผํ•˜๋Š” ๋Œ€์ƒ.. 2020. 5. 12.