백엔드 개발 · 중급
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의 String, StringBuilder, StringBuffer의 차이점은 무엇인가요?
- Spring의 @Transactional 애노테이션의 propagation 속성에 대해 설명하고, REQUIRED와 REQUIRES_NEW의 차이점을 설명해주세요.
- Spring Bean의 생명주기(Lifecycle)에 대해 설명해주세요. 초기화와 소멸 콜백은 어떻게 처리하나요?
- Spring Boot의 자동 설정(Auto Configuration)은 어떻게 동작하나요?
- Java 8의 Stream API와 병렬 스트림(Parallel Stream)의 사용법과 주의사항에 대해 설명해주세요.
- Spring Security의 인증(Authentication)과 인가(Authorization)의 차이점과 동작 방식을 설명해주세요.