๊ด์ ์งํฅ ํ๋ก๊ทธ๋๋ฐ (AOP; Aspect-Oriented Programming)
๊ด์ ์ ๊ธฐ์ค์ผ๋ก ๋ฌถ์ด ๊ฐ๋ฐํ๋ ๋ฐฉ์์ ์๋ฏธ
โผ๏ธ ์ฌ๊ธฐ์ ๊ด์ (aspect)์ด๋ ??
โ ์ด๋ค ๊ธฐ๋ฅ์ ๊ตฌํํ ๋ ๊ทธ ๊ธฐ๋ฅ์ ํต์ฌ ๊ธฐ๋ฅ
๊ณผ ๋ถ๊ฐ ๊ธฐ๋ฅ
์ผ๋ก ๊ตฌ๋ถํด ๊ฐ๊ฐ์ ํ๋์ ๊ด์ ์ผ๋ก ๋ณด๋ ๊ฒ์ ์๋ฏธ
ํต์ฌ ๊ธฐ๋ฅ
: ๋น์ฆ๋์ค ๋ก์ง์ ๊ตฌํํ๋ ๊ณผ์ ์์ ๋น์ฆ๋์ค ๋ก์ง์ด ์ฒ๋ฆฌํ๋ ค๋ ๋ชฉ์ ๊ธฐ๋ฅ์ ๋งํจ
์) ํด๋ผ์ด์ธํธ๋ก๋ถํฐ ์ํ ์ ๋ณด ๋ฑ๋ก ์์ฒญ์ ๋ฐ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅํ๊ณ , ๊ทธ ์ํ ์ ๋ณด๋ฅผ ์กฐํํ๋ ๋น์ฆ๋์ค ๋ก์ง์ ๊ตฌํํ๋ค๋ฉด โถ ์ํ ์ ๋ณด๋ฅผ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅํ๊ณ , โท ์ ์ฅ๋ ์ํ ์ ๋ณด ๋ฐ์ดํฐ๋ฅผ ๋ณด์ฌ์ฃผ๋ ์ฝ๋๊ฐ ํต์ฌ ๊ธฐ๋ฅ
๋ถ๊ฐ ๊ธฐ๋ฅ
: ์ค์ ์ ํ๋ฆฌ์ผ์ด์
์ ๊ฐ๋ฐํ ๋๋ ํต์ฌ ๊ธฐ๋ฅ์ ๋ถ๊ฐ ๊ธฐ๋ฅ์ ์ถ๊ฐํ ์ํฉ์ด ์๊น. ํต์ฌ ๊ธฐ๋ฅ์ธ ๋น์ฆ๋์ค ๋ก์ง ์ฌ์ด์ ๋ก๊น
์ฒ๋ฆฌ๋ฅผ ํ๊ฑฐ๋ ํธ๋์ญ์
์ ์ฒ๋ฆฌํ๋ ์ฝ๋๋ฅผ ์๋ก ๋ค ์ ์์
OOP ๋ฐฉ์์ ์ ํ๋ฆฌ์ผ์ด์
๋ก์ง์์๋ ๊ฐ์ฒด๋ง๋ค ํต์ฌ ๊ธฐ๋ฅ์ ์ํํ๊ธฐ ์ํ ๋ก์ง๊ณผ ํจ๊ป ๋ถ๊ฐ ๊ธฐ๋ฅ์ธ ๋ก๊น
, ํธ๋์ญ์
๋ฑ์ ์ฝ๋๋ฅผ ์์ฑ
์ํ ์ ๋ณด ๋ฑ๋ก ๊ธฐ๋ฅ๊ณผ ์ํ ์ ๋ณด ์กฐํ ๊ธฐ๋ฅ์ ์์ฐํ ๋ค๋ฅธ ๊ธฐ๋ฅ์ผ๋ก, ๊ฐ์ ๋ก์ง์ด ๊ตฌํ
ํ์ง๋ง โผ๏ธ ์ ์ง๋ณด์ ๋ชฉ์ ์ด๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ๊ทผ์ ์ํด ์์ฑ๋ ๋ก๊น
๊ณผ ํธ๋์ญ์
์์ญ์ ์ํ ์ ๋ณด๋ฅผ ๋ฑ๋กํ ๋๋ ์ํ ์ ๋ณด๋ฅผ ์กฐํํ ๋ ๋์ํ ๊ธฐ๋ฅ์ ์ํํ ํ๋ฅ ์ด ๋์. ์ฆ, ํต์ฌ ๊ธฐ๋ฅ์ ๊ตฌํํ ๋ ๋ก์ง์ ๋์ผํ ์ฝ๋๊ฐ ํฌํจ๋๋ค๋ ๊ฒ์ ์๋ฏธ
AOP์ ๊ด์ ์์๋ ๋ถ๊ฐ ๊ธฐ๋ฅ์ ํต์ฌ ๊ธฐ๋ฅ์ด ์ด๋ค ๊ธฐ๋ฅ์ธ์ง์ ๋ฌด๊ดํ๊ฒ ๋ก์ง์ด ์ํ๋๊ธฐ ์ ๋๋ ํ์ ์ํ๋๊ธฐ๋ง ํ๋ฉด ๋จ
โ
์ด์ฒ๋ผ ์ฌ๋ฌ ๋น์ฆ๋์ค ๋ก์ง์์ ๋ฐ๋ณต๋๋ ๋ถ๊ฐ ๊ธฐ๋ฅ์ ํ๋์ ๊ณตํต ๋ก์ง์ผ๋ก ์ฒ๋ฆฌํ๋๋ก ๋ชจ๋ํํด ์ฝ์
ํ๋ ๋ฐฉ์์ AOP
๋ผ๊ณ ํจ
๊ตฌํํ๋ ๋ฐฉ๋ฒ
- ์ปดํ์ผ ๊ณผ์ ์ ์ฝ์ ํ๋ ๋ฐฉ์
- ๋ฐ์ดํธ์ฝ๋๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ๋ก๋ํ๋ ๊ณผ์ ์ ์ฝ์ ํ๋ ๋ฐฉ์
- ํ๋ฝ์ ํจํด์ ์ด์ฉํ ๋ฐฉ์
์ด ๊ฐ์ด๋ฐ ์คํ๋ง์ธ์ ๋์์ธ ํจํด ์ค ํ๋์ธ ํ๋ฝ์ ํจํด์ ํตํด AOP ๊ธฐ๋ฅ์ ์ ๊ณต
โ ์คํ๋ง AOP ๋ชฉ์ ์ OOP์ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ชจ๋ํํด์ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ๊ตฌ์ฑ์ ๋ง๋๋ ๊ฒ์ด๊ณ , ๋ชจ๋ํ๋ ๊ฐ์ฒด๋ฅผ ํธํ๊ฒ ์ ์ฉํ ์ ์๊ฒ ํจ์ผ๋ก์จ ๊ฐ๋ฐ์๊ฐ ๋น์ฆ๋์ค ๋ก์ง์ ๊ตฌํํ๋๋ฐ๋ง ์ง์คํ ์ ์๊ฒ ๋์์ฃผ๋ ๊ฒ
'์คํ๋ง' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๊ธฐ์ด ์ง์ - 2 REST API (0) | 2022.09.01 |
---|---|
๊ธฐ์ด ์ง์ - 1 (0) | 2022.09.01 |
์์กด์ฑ ์ฃผ์ ( DI ) (0) | 2022.09.01 |
์ ์ด์ ์ญ์ ( IoC ) (0) | 2022.09.01 |
๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ (0) | 2022.08.31 |