์Šคํ”„๋ง

๊ด€์  ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ (AOP)

KIMHYEYUN 2022. 9. 1. 14:38
๋ฐ˜์‘ํ˜•

๊ด€์  ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ (AOP; Aspect-Oriented Programming)

๊ด€์ ์„ ๊ธฐ์ค€์œผ๋กœ ๋ฌถ์–ด ๊ฐœ๋ฐœํ•˜๋Š” ๋ฐฉ์‹์„ ์˜๋ฏธ

โ€ผ๏ธ ์—ฌ๊ธฐ์„œ ๊ด€์ (aspect)์ด๋ž€ ??
โ†’ ์–ด๋–ค ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•  ๋•Œ ๊ทธ ๊ธฐ๋Šฅ์„ ํ•ต์‹ฌ ๊ธฐ๋Šฅ๊ณผ ๋ถ€๊ฐ€ ๊ธฐ๋Šฅ์œผ๋กœ ๊ตฌ๋ถ„ํ•ด ๊ฐ๊ฐ์„ ํ•˜๋‚˜์˜ ๊ด€์ ์œผ๋กœ ๋ณด๋Š” ๊ฒƒ์„ ์˜๋ฏธ

ํ•ต์‹ฌ ๊ธฐ๋Šฅ : ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ๊ตฌํ˜„ํ•˜๋Š” ๊ณผ์ •์—์„œ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์ด ์ฒ˜๋ฆฌํ•˜๋ ค๋Š” ๋ชฉ์  ๊ธฐ๋Šฅ์„ ๋งํ•จ
์˜ˆ) ํด๋ผ์ด์–ธํŠธ๋กœ๋ถ€ํ„ฐ ์ƒํ’ˆ ์ •๋ณด ๋“ฑ๋ก ์š”์ฒญ์„ ๋ฐ›์•„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅํ•˜๊ณ , ๊ทธ ์ƒํ’ˆ ์ •๋ณด๋ฅผ ์กฐํšŒํ•˜๋Š” ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ๊ตฌํ˜„ํ•œ๋‹ค๋ฉด โถ ์ƒํ’ˆ ์ •๋ณด๋ฅผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅํ•˜๊ณ , โท ์ €์žฅ๋œ ์ƒํ’ˆ ์ •๋ณด ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ์ฝ”๋“œ๊ฐ€ ํ•ต์‹ฌ ๊ธฐ๋Šฅ

๋ถ€๊ฐ€ ๊ธฐ๋Šฅ : ์‹ค์ œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•  ๋•Œ๋Š” ํ•ต์‹ฌ ๊ธฐ๋Šฅ์— ๋ถ€๊ฐ€ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•  ์ƒํ™ฉ์ด ์ƒ๊น€. ํ•ต์‹ฌ ๊ธฐ๋Šฅ์ธ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง ์‚ฌ์ด์— ๋กœ๊น… ์ฒ˜๋ฆฌ๋ฅผ ํ•˜๊ฑฐ๋‚˜ ํŠธ๋ž์žญ์…˜์„ ์ฒ˜๋ฆฌํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์˜ˆ๋กœ ๋“ค ์ˆ˜ ์žˆ์Œ

OOP ๋ฐฉ์‹์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋กœ์ง์—์„œ๋Š” ๊ฐ์ฒด๋งˆ๋‹ค ํ•ต์‹ฌ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ๋กœ์ง๊ณผ ํ•จ๊ป˜ ๋ถ€๊ฐ€ ๊ธฐ๋Šฅ์ธ ๋กœ๊น…, ํŠธ๋žœ์žญ์…˜ ๋“ฑ์˜ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑ
์ƒํ’ˆ ์ •๋ณด ๋“ฑ๋ก ๊ธฐ๋Šฅ๊ณผ ์ƒํ’ˆ ์ •๋ณด ์กฐํšŒ ๊ธฐ๋Šฅ์€ ์—„์—ฐํžˆ ๋‹ค๋ฅธ ๊ธฐ๋Šฅ์œผ๋กœ, ๊ฐ์ž ๋กœ์ง์ด ๊ตฌํ˜„
ํ•˜์ง€๋งŒ โ€ผ๏ธ ์œ ์ง€๋ณด์ˆ˜ ๋ชฉ์ ์ด๋‚˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ ‘๊ทผ์„ ์œ„ํ•ด ์ž‘์„ฑ๋œ ๋กœ๊น…๊ณผ ํŠธ๋žœ์žญ์…˜ ์˜์—ญ์€ ์ƒํ’ˆ ์ •๋ณด๋ฅผ ๋“ฑ๋กํ•  ๋•Œ๋‚˜ ์ƒํ’ˆ ์ •๋ณด๋ฅผ ์กฐํšŒํ•  ๋•Œ ๋™์žƒํ•œ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•  ํ™•๋ฅ ์ด ๋†’์Œ. ์ฆ‰, ํ•ต์‹ฌ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•œ ๋‘ ๋กœ์ง์— ๋™์ผํ•œ ์ฝ”๋“œ๊ฐ€ ํฌํ•จ๋œ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธ

AOP์˜ ๊ด€์ ์—์„œ๋Š” ๋ถ€๊ฐ€ ๊ธฐ๋Šฅ์€ ํ•ต์‹ฌ ๊ธฐ๋Šฅ์ด ์–ด๋–ค ๊ธฐ๋Šฅ์ธ์ง€์— ๋ฌด๊ด€ํ•˜๊ฒŒ ๋กœ์ง์ด ์ˆ˜ํ–‰๋˜๊ธฐ ์ „ ๋˜๋Š” ํ›„์— ์ˆ˜ํ–‰๋˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋จ

โœ… ์ด์ฒ˜๋Ÿผ ์—ฌ๋Ÿฌ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์—์„œ ๋ฐ˜๋ณต๋˜๋Š” ๋ถ€๊ฐ€ ๊ธฐ๋Šฅ์„ ํ•˜๋‚˜์˜ ๊ณตํ†ต ๋กœ์ง์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋„๋ก ๋ชจ๋“ˆํ™”ํ•ด ์‚ฝ์ž…ํ•˜๋Š” ๋ฐฉ์‹์„ AOP๋ผ๊ณ  ํ•จ


๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•

  1. ์ปดํŒŒ์ผ ๊ณผ์ •์— ์‚ฝ์ž…ํ•˜๋Š” ๋ฐฉ์‹
  2. ๋ฐ”์ดํŠธ์ฝ”๋“œ๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋“œํ•˜๋Š” ๊ณผ์ •์— ์‚ฝ์ž…ํ•˜๋Š” ๋ฐฉ์‹
  3. ํ”„๋ฝ์‹œ ํŒจํ„ด์„ ์ด์šฉํ•œ ๋ฐฉ์‹

์ด ๊ฐ€์šด๋ฐ ์Šคํ”„๋ง์ธ์€ ๋””์ž์ธ ํŒจํ„ด ์ค‘ ํ•˜๋‚˜์ธ ํ”„๋ฝ์‹œ ํŒจํ„ด์„ ํ†ตํ•ด AOP ๊ธฐ๋Šฅ์„ ์ œ๊ณต

โœ… ์Šคํ”„๋ง AOP ๋ชฉ์ ์€ OOP์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋ชจ๋“ˆํ™”ํ•ด์„œ ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๊ตฌ์„ฑ์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด๊ณ , ๋ชจ๋“ˆํ™”๋œ ๊ฐ์ฒด๋ฅผ ํŽธํ•˜๊ฒŒ ์ ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•จ์œผ๋กœ์จ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ๊ตฌํ˜„ํ•˜๋Š”๋ฐ๋งŒ ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋„์™€์ฃผ๋Š” ๊ฒƒ

728x90
๋ฐ˜์‘ํ˜•