java

Spring handlerinterceptor

dev_summer 2021. 2. 27. 14:17

 

์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ๋Š” OOP(object-oriented programming:๊ฐ์ฒด์ง€ํ–ฅ)์˜ ๊ฐœ๋…์—

ํฉ์–ด์ง„ ๊ณตํ†ต๋œ aspect๋ฅผ ๋ชจ๋“ˆํ™” ํ• ์ˆ˜์žˆ๋Š” AOP(aspect oriented programing:๊ด€์ ์ง€ํ–ฅํ”„๋กœ๊ทธ๋žจ)๊ธฐ๋ฒ•์„ ๋”ํ•˜์˜€๋‹ค. ๋˜ํ•œ IOC(Inversrion of Control)๋ฅผ ํ†ตํ•ด ์™ธ๋ถ€์—์„œ ๋งŒ๋“ค์–ด์ง„ ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉ(์‹ฑ๊ธ€ํ†คํŒจํ„ด) ํ•˜๋ฉฐ ๊ทธ ๊ฐ์ฒด๋ฅผ ์ฃผ์ž…๋ฐ›๋Š”๋‹ค.

๋Œ€ํ‘œ์‚ฌ์ง„ ์‚ญ์ œ

 

response๋™์ž‘์€ ์ง€๊ธˆ๊ณผ ์กฐ๊ธˆ ๋‹ค๋ฆ„! ์—…๋ฐ์ดํŠธ ๋˜์–ด๋•… ์žญ์Šจ ๋งคํผ์˜ ์—ญํ• ์ด ํฌ๋‹น

์š”์ฒญ์ด ๋“ค์–ด์˜ค๋ฉด ํ•„ํ„ฐ๋ฅผ ๊ฑฐ์ณ(TMI.์šฐ๋ฆฌ๊ฐ€ ๋งŒ๋“ค์ˆ˜ ์žˆ๋Š” ์ปค์Šคํ…€ ํ•„ํ„ฐ์žˆ๋‹ค.) ๋””์ŠคํŒจ์ณ๋Š” ์ฒซ๋ฒˆ์งธ๋กœ ํ•ธ๋“ค๋Ÿฌ๋งตํ•‘์„ ๋™์ž‘์‹œํ‚จ๋‹ค.

ํ•ธ๋“ค๋Ÿฌ๋งตํ•‘์€ context๋ฅผ ๋ชจ๋‘ ๋’ค์ ธ controller๋ฅผ ์ฐพ๋Š”๋‹ค. ์ฆ‰ ๋””์ŠคํŒจ์ณ๋Š” controller๋ฅผ ๋‚š์•„ ์ฑˆ๋‹ค.

๋””์ŠคํŒจ์ณ๋Š” ๋‘๋ฒˆ์งธ๋กœ ํ•ธ๋“ค๋Ÿฌ์ธํ„ฐ์…‰ํ„ฐ๋ฅผ ๋™์ž‘์‹œํ‚จ๋‹ค.

ํ•ธ๋“ค๋Ÿฌ์ธํ„ฐ์…‰ํ„ฐ๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋กœ ๋””์ŠคํŒจ์ณ๊ฐ€ ๋ถ„๊ธฐํ•œ ๋’ค์—์„œ ๊ณตํ†ต์ ์œผ๋กœ ๊ฑฐ๋ฅผ์ˆ˜์žˆ๋Š” AOP๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. ์˜ˆ๋ฅผ๋“ค์–ด ๋ฉ”์ธํ™”๋ฉด์€ ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ์œผ๋‚˜ ๋กœ๊ทธ์ธ์„ ํ•œ ํšŒ์›๋งŒ์ฝ์„์ˆ˜์ž‡๋Š” ๊ฒŒ์‹œํŒ์„ ์ฝ์„์ˆ˜์žˆ๋„๋ก ๊ฑธ์–ด๋†“๋Š” ํ•„ํ„ฐ, ์ด๊ฒƒ์„ ํ•ธ๋“ค๋Ÿฌ ์ธํ„ฐ์…‰ํŠธ๊ฐ€ ๊ฑธ๋Ÿฌ์ค„ ์ˆ˜ ์žˆ๋‹ค. ์ด๋ ‡๊ฒŒ ๋˜๋ฉด ํ•จ์ˆ˜๋งˆ๋‹ค ์„ธ์…˜์„ ์ฒดํฌํ•˜๋Š” ์ค‘๋ณต๋˜๋Š” ์ฝ”๋“œ๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค.

์ธํ„ฐ์…‰ํ„ฐ๊ฐ€ ๋˜๋ฉด ํ”„๋ก์‹œ์„œ๋ฒ„(๋Œ€๋ฆฌ์ธ)์—์„œ ํฌ์ธํŠธ์ปท๊ณผ ํ•จ๊ผ ๋ฌถ์–ด ์‹คํ–‰์ด ๋œ๋‹ค.

๋ณดํ†ต์€ ๋กœ๊ทธ, ์ธ์ฆ, ๊ถŒํ•œ๊ฒ€์‚ฌ, null,๊ณต๋ฐฑ์ฒ˜๋ฆฌ ๋“ฑ์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.

์ธํ„ฐ์…‰ํ„ฐ๋Š” ๊ทธ๋Ÿฌํ•œ ์—ญ