Spring Session Util

2022. 8. 4. 11:31ใ†Spring

728x90

 

Spring์—์„œ ์ œ๊ณตํ•˜๋Š” RequestContextHolder๋ฅผ ์ด์šฉํ•˜๋ฉด HttpServletRequest ์— ์ง์ ‘ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. 

์ด๋Š” spring 2.x ๋ถ€ํ„ฐ ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋Šฅ์œผ๋กœ ์ด๋ฅผ ํ™œ์šฉํ•˜๋ฉด HttpServletRequest ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ์ด๋ฅผ ๋ฉ”์„œ๋“œ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ์—ฐ์ด์–ด ๋„˜๊ฒจ๋ฐ›์„ ํ•„์š”๊ฐ€ ์—†๋‹ค. 

 

์›๋ž˜ service๋‹จ์—์„œ HttpServletRequest ๋ฅผ ์ฐธ์กฐํ•ด์•ผํ•œ๋‹ค๋ฉด ๋ฉ”์„œ๋“œ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ๋„˜๊ฒจ๋ฐ›์•˜์–ด์•ผ ํ–ˆ๋Š”๋ฐ 

RequestContextHolder๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ๋„˜๊ธธ ํ•„์š” ์—†์ด ํ•„์š”ํ•œ ๊ณณ์—์„œ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ๋‹ค. 

 

RequestContextHolder๋ฅผ ์ด์šฉํ•˜์—ฌ request ๊ฐ์ฒด๋ฅผ service ๊นŒ์ง€ ์ „๋‹ฌํ•˜์ง€ ์•Š๊ณ  ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ณ 

Util ํด๋ž˜์Šค์—๋„ ์„ธ์…˜๊ฐ’์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค.

Objects.requireNonNull

: Objects ํด๋ž˜์Šค์—์„œ ์ œ๊ณตํ•˜๋Š” null ์ฒดํฌ๋ฅผ ์œ„ํ•œ ๋ฉ”์„œ๋“œ

ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ์ž…๋ ฅ๋œ ๊ฐ’์ด null ์ด๋ฉด NPE๊ฐ€ ๋ฐœ์ƒํ•˜๊ณ  ๊ทธ๋ ‡์ง€ ์•Š๋‹ค๋ฉด ์ž…๋ ฅ๊ฐ’์„ ๊ทธ๋Œ€๋กœ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฉ”์„œ๋“œ์ด๋‹ค. 

 

-> Objects.requireNonNull ์‚ฌ์šฉํ•˜๋Š” ์ด์œ  

null ์ฐธ์กฐํ•ด ์˜ˆ์™ธ ๋ฐœ์ƒ์ด๋‚˜ requireNonNull์— null ์ด ๋“ค์–ด๊ฐ€๋‚˜ ๋˜‘๊ฐ™์ด NPE๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. 

๊ทธ๋Ÿฐ๋ฐ ์™œ ์‚ฌ์šฉํ•˜๋Š”๊ฐ€? 

: ์ด์œ ๋Š” ๋น ๋ฅธ ์‹คํŒจ (Fail-Fast) ๋•Œ๋ฌธ์ด๋‹ค. ๋””๋ฒ„๊น…์„ ์‰ฝ๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ ๊ฒฝ์šฐ ์ฆ‰๊ฐ์ ์œผ๋กœ ๊ฐ์ง€ํ•  ํ•„์š”๊ฐ€ ์žˆ๋‹ค.  ๋ฌธ์ œ์˜ ์›์ธ๊ณผ ๋ฌธ์ œ์˜ ๋ฐœ์ƒ ์ง€์ ์ด ๋ฌผ๋ฆฌ์ ์œผ๋กœ ๋ฉ€๋ฆฌ ๋–จ์–ด์ ธ ์žˆ๋‹ค๋ฉด ๋””๋ฒ„๊น…ํ•˜๊ธฐ ํž˜๋“ค๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. 

๋˜ ๋‹ค๋ฅธ ์ด์œ ๋กœ๋Š” ๋ช…์‹œ์„ฑ๊ณผ ๊ฐ€๋…์„ฑ ๋•Œ๋ฌธ์ด๋‹ค. requireNonnull์„ ์‚ฌ์šฉํ•œ ์ฝ”๋“œ๋Š” ์ˆ˜๋™์œผ๋กœ null ์ฒดํฌํ•œ ์ฝ”๋“œ๋ณด๋‹ค ๊ฐ€๋…์„ฑ์ด ์ข‹๊ณ  ๋ช…์‹œ์ ์ž„์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90