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

AOP์—์„œ ์ด๋Ÿฌํ•œ ํฌ๋กœ์Šค์ปคํŒ… ๋ฌธ์ œ๋Š” ๊ธฐ๋ณธ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•  ํ•„์š” ์—†์ด ์ •์˜๋˜๊ณ  ๊ตฌ์„ฑ๋˜๋Š” ์ธก๋ฉด์ด๋ผ๋Š” ๋ณ„๋„์˜ ๋ชจ๋“ˆ๋กœ ์บก์Аํ™”๋ฉ๋‹ˆ๋‹ค. AOP์˜ ํ•ต์‹ฌ์—๋Š” ์ธก๋ฉด ์ฝ”๋“œ๊ฐ€ ๊ธฐ๋ณธ ์ฝ”๋“œ์— ํ†ตํ•ฉ๋˜๋Š” ์‹คํ–‰ ์ง€์ ์„ ๋‚˜ํƒ€๋‚ด๋Š” ์กฐ์ธ ํฌ์ธํŠธ ๊ฐœ๋…์ด ์žˆ์Šต๋‹ˆ๋‹ค. AOP๋Š” ํฌ๋กœ์Šค์ปคํŒ… ๋ฌธ์ œ๋ฅผ ๋ช…ํ™•ํ•˜๊ฒŒ ์ •์˜ํ•˜๊ณ  ์บก์Аํ™”ํ•จ์œผ๋กœ์จ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‰ฝ๊ฒŒ ์ˆ˜์ •ํ•˜๊ณ  ํ™•์žฅํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜์—ฌ ๊ฐœ๋ฐœ ๋ฐ ์œ ์ง€ ๊ด€๋ฆฌ ๋น„์šฉ์„ ์ ˆ๊ฐํ•ฉ๋‹ˆ๋‹ค.

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

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

AOP๋ฅผ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•ด Java์šฉ AspectJ, C++์šฉ AspectC++, .NET์šฉ PostSharp ๋“ฑ ์—ฌ๋Ÿฌ ์–ธ์–ด์™€ ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ๊ฐœ๋ฐœ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ Python, Ruby ๋ฐ JavaScript์™€ ๊ฐ™์€ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ์–ธ์–ด์—๋Š” Aspect.py, Aquarium, Aspect-R ๋ฐ Aspect.js์™€ ๊ฐ™์ด AOP ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฐ ํ”„๋ ˆ์ž„์›Œํฌ๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

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

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