๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Spring/Spring Quick Start

AOP ์šฉ์–ด

1. Joinpoint

์กฐ์ธ ํฌ์ธํŠธ๋Š” ํด๋ผ์ด์–ธํŠธ๊ฐ€ ํ˜ธ์ถœํ•˜๋Š” ๋ชจ๋“  ๋น„์ฆˆ๋‹ˆ์Šค method๋กœ์„œ,

BoardServiceImpl์ด๋‚˜ UserServiceImpl ํด๋ž˜์Šค์˜ ๋ชจ๋“  method๋ฅผ ์กฐ์ธํฌ์ธํŠธ๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค.

2. Pointcut

ํด๋ผ์ด์–ธํŠธ๊ฐ€ ํ˜ธ์ถœํ•˜๋Š” ๋ชจ๋“  ๋น„์ฆˆ๋‹ˆ์Šค method๊ฐ€ ์กฐ์ธํฌ์ธํŠธ๋ผ๋ฉด, ํฌ์ธํŠธ์ปท์€ ํ•„ํ„ฐ๋ง๋œ ์กฐ์ธํฌ์ธํŠธ๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

3. Advice

ํšก๋‹จ ๊ด€์‹ฌ์— ํ•ด๋‹นํ•˜๋Š” ๊ณตํ†ต ๊ธฐ๋Šฅ์˜ ์ฝ”๋“œ๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

๋…๋ฆฝ๋œ ํด๋ž˜์Šค์˜ method๋กœ ์ž‘์„ฑ๋œ๋‹ค.

์–ด๋“œ๋ฐ”์ด์Šค๋กœ ๊ตฌํ˜„๋œ method๊ฐ€ ์–ธ์ œ ๋™์ž‘ํ• ์ง€ ์Šคํ”„๋ง ์„ค์ • ํŒŒ์ผ์„ ํ†ตํ•ด์„œ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

๋™์ž‘ ์‹œ์ ์€ 5๊ฐ€์ง€๋กœ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

  • before

  • after

  • after-returning

  • after-throwing

  • around

4. Weaving

ํฌ์ธํŠธ์ปท์œผ๋กœ ์ง€์ •ํ•œ ํ•ต์‹ฌ ๊ด€์‹ฌ method๊ฐ€ ํ˜ธ์ถœ๋  ๋–„, ์–ด๋“œ๋ฐ”์ด์Šค์— ํ•ด๋‹นํ•˜๋Š” ํšก๋‹จ ๊ด€์‹ฌ method๊ฐ€ ์‚ฝ์ž…๋˜๋Š” ๊ณผ์ •์„ ์˜๋ฏธํ•œ๋‹ค.

5. Aspect ๋˜๋Š” Advisor

์• ์ŠคํŒฉํŠธ๋Š” ํฌ์ธํŠธ์ปท๊ณผ ์–ด๋“œ๋ฐ”์ด์Šค์˜ ๊ฒฐํ•ฉ์œผ๋กœ์„œ,
์–ด๋–ค ํฌ์ธํŠธ์ปท method์— ์–ด๋–ค ์–ด๋“œ๋ฐ”์ด์Šค method๋ฅผ ์‹คํ–‰ํ• ์ง€ ๊ฒฐ์ •ํ•œ๋‹ค.

 


์ •๋ฆฌ

 

์‚ฌ์šฉ์ž๋Š” ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•˜๋ฉด์„œ ๋น„์ฆˆ๋‹ˆ์Šค ์ปดํฌ๋„ŒํŠธ์˜ ์—ฌ๋Ÿฌ '์กฐ์ธํฌ์ธํŠธ(1)'๋ฅผ ํ˜ธ์ถœํ•˜๊ฒŒ ๋œ๋‹ค.
์ด๋•Œ ํŠน์ • 'ํฌ์ธํŠธ์ปท(2)'์œผ๋กœ ์ง€์ •ํ•œ ๋ฉ”์„œ๋“œ๊ฐ€ ํ˜ธ์ถœ๋˜๋Š” ์ˆœ๊ฐ„
'์–ด๋“œ๋ฐ”์ด์Šค(3)' ๊ฐ์ฒด์˜ ์–ด๋“œ๋ฐ”์ด์Šค ๋ฉ”์„œ๋“œ๊ฐ€ ์‹คํ–‰๋œ๋‹ค.
ํฌ์ธํŠธ์ปท์œผ๋กœ ์ง€์ •ํ•œ ๋ฉ”์†Œ๋“œ๊ฐ€ ํ˜ธ์ถœ๋  ๋•Œ, ์–ด๋“œ๋ฐ”์ด์Šค ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฝ์ž…ํ•˜๋„๋ก ํ•˜๋Š” ์„ค์ •์„ '์• ์ŠคํŒฉํŠธ(4)'๋ผ๊ณ ํ•œ๋‹ค.
์• ์ŠคํŒฉํŠธ ์„ค์ •์— ๋”ฐ๋ผ '์œ„๋น™(5)'์ด ์ฒ˜๋ฆฌ๋œ๋‹ค.