๐ŸŒนย ์ •๋ฆฌ by ์žฅ๋ฏธ(https://velog.io/@newbiekim/)

์„œ๋ธ”๋ฆฟ ํ•„ํ„ฐ

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์—ฌ๋Ÿฌ ๋กœ์ง์—์„œ ๊ณตํ†ต์œผ๋กœ ๊ด€์‹ฌ์ด ์žˆ๋Š” ๊ฒƒ์„ ๊ณตํ†ต ๊ด€์‹ฌ์‚ฌ(cross-cutting concern)๋ผ๊ณ  ํ•œ๋‹ค. ์ด๋Ÿฌํ•œ ๊ณตํ†ต ๊ด€์‹ฌ์‚ฌ๋Š” ์Šคํ”„๋ง์˜ AOP๋กœ๋„ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ์›น๊ณผ ๊ด€๋ จ๋œ ๊ณตํ†ต ๊ด€์‹ฌ์‚ฌ๋Š” ์„œ๋ธ”๋ฆฟ ํ•„ํ„ฐ ๋˜๋Š” ์ธํ„ฐ์…‰ํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

์›น๊ณผ ๊ด€๋ จ๋œ ๊ณตํ†ต ๊ด€์‹ฌ์‚ฌ๋ฅผ ์ฒ˜๋ฆฌํ•  ๋•Œ๋Š” HTTP์˜ ํ—ค๋”๋‚˜ URL์˜ ์ •๋ณด๋“ค์ด ํ•„์š”ํ•œ๋ฐ, ์„œ๋ธ”๋ฆฟ ํ•„ํ„ฐ๋‚˜ ์Šคํ”„๋ง ์ธํ„ฐ์…‰ํ„ฐ๋Š” HttpServletRequest๋ฅผ ์ œ๊ณตํ•œ๋‹ค.

ํ•„ํ„ฐ์˜ ํŠน์„ฑ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

ํ•„ํ„ฐ ํ๋ฆ„

HTTP ์š”์ฒญ โ†’ WAS โ†’ ํ•„ํ„ฐ โ†’ ์„œ๋ธ”๋ฆฟ โ†’ ์ปจํŠธ๋กค๋Ÿฌ

ํ•„ํ„ฐ๋ฅผ ์ ์šฉํ•˜๋ฉด ํ•„ํ„ฐ๊ฐ€ ํ˜ธ์ถœ๋œ ๋‹ค์Œ์— ์„œ๋ธ”๋ฆฟ์ด ํ˜ธ์ถœ๋œ๋‹ค. ๋”ฐ๋ผ์„œ ๋ชจ๋“  ๊ณ ๊ฐ์˜ ์š”์ฒญ ๋กœ๊ทธ๋ฅผ ๋‚จ๊ธฐ๋Š” ์š”๊ตฌ์‚ฌํ•ญ์ด ์žˆ๋‹ค๋ฉด ํ•„ํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.

ํ•„ํ„ฐ๋Š” ํŠน์ • URL ํŒจํ„ด์— ์ ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. โ€˜/*โ€™๋ผ๊ณ  ์ ์–ด ๋†“์œผ๋ฉด ๋ชจ๋“  ์š”์ฒญ์— ํ•„ํ„ฐ๊ฐ€ ์ ์šฉ๋œ๋‹ค.

ํ•„ํ„ฐ ์ œํ•œ

๋กœ๊ทธ์ธ ์‚ฌ์šฉ์ž HTTP ์š”์ฒญ โ†’ WAS โ†’ ํ•„ํ„ฐ โ†’ ์„œ๋ธ”๋ฆฟ โ†’ ์ปจํŠธ๋กค๋Ÿฌ

๋น„๋กœ๊ทธ์ธ ์‚ฌ์šฉ์ž HTTP ์š”์ฒญ โ†’ WAS โ†’ ํ•„ํ„ฐ (์ ์ ˆํ•˜์ง€ ์•Š์€ ์š”์ฒญ์ด๋ผ ํŒ๋‹จ, ์„œ๋ธ”๋ฆฟ ํ˜ธ์ถœ X)

ํ•„ํ„ฐ์—์„œ ์ ์ ˆํ•˜์ง€ ์•Š์€ ์š”์ฒญ์ด๋ผ๊ณ  ํŒ๋‹จํ•  ๊ฒฝ์šฐ ๊ฑฐ๊ธฐ์„œ ๋๋‚ผ ์ˆ˜๋„ ์žˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋กœ๊ทธ์ธ ์—ฌ๋ถ€๋ฅผ ์ฒดํฌํ•˜๊ธฐ์— ์•Œ๋งž๋‹ค.

ํ•„ํ„ฐ ์ฒด์ธ

HTTP ์š”์ฒญ โ†’ WAS โ†’ ํ•„ํ„ฐ1 โ†’ ํ•„ํ„ฐ2 โ†’ ํ•„ํ„ฐ3 โ†’ ์„œ๋ธ”๋ฆฟ โ†’ ์ปจํŠธ๋กค๋Ÿฌ

ํ•„ํ„ฐ๋Š” ์ฒด์ธ์œผ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค. ์ค‘๊ฐ„์— ํ•„ํ„ฐ๋ฅผ ์ž์œ ๋กญ๊ฒŒ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค.