패스잇
백엔드 개발 · 중급

Spring에서 AOP(Aspect Oriented Programming)란 무엇이며, 어떤 상황에서 사용하나요?

힌트 · 횡단 관심사(Cross-cutting concerns)를 생각해보세요.

관점횡단 관심사AdviceJoinPointProxy

모범답안

Spring AOP는 Aspect Oriented Programming의 약자로, 핵심 비즈니스 로직에서 횡단 관심사를 분리하여 코드 중복을 줄이고 유지보수성을 높이는 프로그래밍 패러다임입니다.

횡단 관심사란 로깅, 보안, 트랜잭션 관리처럼 여러 메서드에 공통적으로 적용되는 기능을 의미합니다. AOP를 사용하면 이러한 횡단 관심사를 Aspect라는 모듈로 분리하고, 핵심 로직을 수정하지 않고도 필요한 시점에 적용할 수 있습니다.

주로 로깅, 권한 검사, 트랜잭션 관리, 성능 모니터링 등에 사용되며, 코드를 깔끔하게 유지하고 변경 사항을 쉽게 적용할 수 있도록 해줍니다. 예를 들어, 모든 API 호출에 대한 로깅을 AOP로 구현하면, 각 API 메서드에 로깅 코드를 직접 추가하지 않아도 됩니다.

읽었다면, 이제 직접 답해볼 차례예요

패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.

함께 보는 Java / Spring 면접 질문

← Java / Spring 면접 질문 전체 보기