๐นย ์ ๋ฆฌ 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 โ ์๋ธ๋ฆฟ โ ์ปจํธ๋กค๋ฌ
ํํฐ๋ ์ฒด์ธ์ผ๋ก ๊ตฌ์ฑ๋๋ค. ์ค๊ฐ์ ํํฐ๋ฅผ ์์ ๋กญ๊ฒ ์ถ๊ฐํ ์ ์๋ค.