๋ฐฑ์—”๋“œ(Back-End) ๊ฐœ๋ฐœ/Java

[JAVA] ๋””์ž์ธ ํŒจํ„ด - ํ”„๋ก์‹œ ํŒจํ„ด(Proxy)

rabo93 2025. 5. 28. 13:23

ํ”„๋ก์‹œ ํŒจํ„ด(Proxy)

  • ์–ด๋–ค ๊ฐ์ฒด์— ๋Œ€ํ•œ ์ ‘๊ทผ์„ ์ œ์–ดํ•˜๊ธฐ ์œ„ํ•ด, ๋Œ€๋ฆฌ ๊ฐ์ฒด(proxy)๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํŒจํ„ด
  • Spring AOP๋Š” ํ”„๋ก์‹œ ํŒจํ„ด ๊ธฐ๋ฐ˜์œผ๋กœ ๋™์ž‘ํ•จ. ํ•ต์‹ฌ ๋กœ์ง ์ „ํ›„์— ๋ถ€๊ฐ€๊ธฐ๋Šฅ ์‚ฝ์ž… ๊ฐ€๋Šฅ
// ์„œ๋น„์Šค ๋ฉ”์„œ๋“œ ์‹คํ–‰ ์ „ํ›„์— ๋กœ๊น… ์˜ˆ์ œ(AOP)
@Aspect // ํ”„๋ก์‹œ ๊ฐ์ฒด๊ฐ€ ๋Œ€์ƒ ๊ฐ์ฒด์˜ ๋ฉ”์„œ๋“œ๋ฅผ ๊ฐ์‹ธ๋Š” ๊ตฌ์กฐ
@Component
public class LoggingAspect {

	// ๋ชจ๋“  Service ํŒจํ‚ค์ง€์˜ ๋ฉ”์„œ๋“œ ์‹คํ–‰ ์ „
	@Before("execution(* com.winbit.project1.service.*.*(..))")
	public void beforeLog(JoinPoint joinPoint) {
		System.out.println("[Before]" + joinPoint.getSignature().getName()); //ex: [Before]getBoardList
	}
	
	// ์‹คํ–‰ ํ›„
	@After("execution(* com.winbit.project1.service.*.*(..))")
	public void afterLog(JoinPoint joinPoint) {
		System.out.println("[After]" + joinPoint.getSignature().getName()); //ex: [After]getBoardList
	}
}