Server๐Ÿงค/Spring

Server๐Ÿงค/Spring

[Spring] Transaction ์ œ๋Œ€๋กœ ์ดํ•ดํ•˜๊ธฐ

@Transaction์— ๋Œ€ํ•ด ๊ณต๋ถ€ํ•˜๋‹ค๊ฐ€, propagation ์ „ํŒŒ ๋ฐฉ์‹, ๊ณ ๋ฆฝ ๋ฐฉ์‹์— ๋Œ€ํ•ด ๋” ์ž์„ธํžˆ ์•Œ๊ธฐ ์œ„ํ•ด ๊ธฐ๋ก Transaction์ด๋ž€? ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ƒํƒœ๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ์ž‘์—… ๋˜๋Š” ํ•œ๋ฒˆ์— ์ˆ˜ํ–‰๋˜์–ด์•ผํ•˜๋Š” ์—ฐ์‚ฐ๋“ค ๋ณ‘ํ–‰ ์ œ์–ด ์‹œ ์ฒ˜๋ฆฌ๋˜๋Š” ์ž‘์—…์˜ ๋…ผ๋ฆฌ์  ๋‹จ์œ„ Transaction์€ ํ•˜๋‚˜์˜ ํ๋ฆ„์œผ๋กœ ํ•˜๋‚˜์˜ ์‹คํ–‰์ด ์„ฑ๊ณตํ•˜๊ฑฐ๋‚˜ ์‹คํŒจํ•˜๋ฉด ๋ชจ๋“  ์—ฐ์‚ฐ๋“ค์„ ๋™์ผํ•˜๊ฒŒ ์ฒ˜๋ฆฌํ•œ๋‹ค. ๋ชจ๋“  ์ž‘์—…์ด ์„ฑ๊ณตํ•œ๋‹ค๋ฉด ์™„๋ฃŒ ์ž‘์—… ์ƒํƒœ๋ฅผ ๋ชจ๋‘ ๋ฐ˜์˜ํ•˜๊ณ , ์ด๊ฒƒ์„ Commit์ด๋ผ๊ณ  ํ•œ๋‹ค. ๋ฐ˜๋ฉด, ํ•˜๋‚˜๋ผ๋„ ์‹คํŒจํ•˜๊ฒŒ ๋˜๋ฉด ๋ชจ๋“  ์‚ฌํ•ญ์„ ํ๊ธฐํ•˜๊ณ , ์ด๊ฒƒ์„ Rollback์ด๋ผ๊ณ  ํ•œ๋‹ค. Spring์—์„œ๋Š” Data Access ๊ณ„์ธต์—์„œ๋„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ ‘๊ทผํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐ์ž‘ํ•œ๋‹ค. ์Šคํ”„๋ง์€ ํŠธ๋žœ์žญ์…˜ ์ถ”์ƒํ™”๋ฅผ ๋ฐ˜์˜ํ–ˆ๋Š”๋ฐ, ์ด ๋•๋ถ„์— ํŠน์ • ๊ธฐ์ˆ ์— ์ข…์†๋˜์ง€ ..

Server๐Ÿงค/Spring

Servlet Filter, Spring Interceptor

Servlet Filter์˜ ํ•„์š”์„ฑ - ์„œ๋น„์Šค ๋กœ์ง์— ๋กœ๊ทธ์ธ ํ™•์ธ ์—ฌ๋ถ€ ์ฝ”๋“œ๊ฐ€ ๋“ค์–ด๊ฐ! - ์ค‘๋ณต๋˜๋Š” ์ฝ”๋“œ๋“ค public void addCart(final Long productId, final String token) { final boolean isValid = jwtTokenProvider.valdiateToken(token); if(!isValid) { throw new UnauthroizedTokenException(); } final String email = jwtTokenProvider.getPayload(token); --- ์„œ๋น„์Šค ๋กœ์ง--- } public List getCart(final String token) { final boolean isValid = jwtTokenProvide..

yujindonut
'Server๐Ÿงค/Spring' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก