[SPRING] API로깅 - Intercepter & AOP

림민지·2025년 4월 21일

Today I Learn

목록 보기
49/62

Interceptor랑 AOP가 먼데...... 그게 뭔데,... 먹는거입니까?
한 번 알아보자! (AOP하면 이즈니 AOP 버터밖에 생각이 안나는 먹보ㅠㅠ)

IntercepterAOP는 Spring에서 요청 처리 과정이나 메서드 실행 과정에 끼어들어서 부가적인 작업을 처리할 수 있게 해주는 기능이다!
➡️ API 로깅 같은 “공통 기능”을 만들 때 아주 유용하다

또한 어드민 사용자만 접근할 수 있는 특정 API(보안이 중요하겠죠?)에는 접근할 때마다 접근 로그를 기록해야만하는데, 그게 바로 API로깅!

𝟙. API 로깅이 뭘까?

POST /todos 
Body: { "title": "과제하기", "content": "정보처리기사 준비" }

이런 요청이 왔다고 할 때, 우리에게 필요한건

1.누가 요청했는지 (사용자ID)
2.어떤 URL을 호출했는지
3.어떤 파라미터를 보냈는지 (RequestBody)
4.실행에 얼마나 걸렸는지
5.응답 결과는 어떤지 (ResponseBody)

👉 이런 걸 로그로 남기고 싶을 때 "API 로깅"을 하면된다!!
➡️ Intercepter & AOP로 구현해볼 수 있다!!


⚡️ Intercepter

말 그대로, 뺏어가기 끼어들기 가져가기 이런 느낌이다

클라이언트의 HTTP 요청Controller에 도달하기 전에, 혹은 응답이 나가기 전에 동작하는 필터 같은 존재

Spring MVC에서 제공하는 기능!
"요청(Request) → 컨트롤러 실행 → 응답(Response)"의 흐름 중간에 끼어들 수 있는 기능이다

➡️ 요청과 컨트롤러 사이에, "잠깐! 이의있소!!!" 하고 끼어드는 역할인 것이다
예시: 누군가 /admin/user에 접근하면 Interceptor가 먼저 "너 관리자 맞아??" 라고 물어보는거


🧈 AOP

(Aspect Oriented Programming, 관점 지향 프로그래밍)

AOP도 Spring 핵심 기능 중 하나인데, "함수 실행 전/후에 공통 코드를 끼워 넣는" 긴능
➡️ 메서드 자체에 끼어든다!!

@Aspect@Around 어노테이션을 통해 메서드 실행 전/후로 감싸서 처리

메서드 실행하면 AOP가 "요청자 ID랑 요청 내용 기록하고~ 결과도 기록해~!!" 라고 시키는 것

🌟 인터셉터와 비교

구분InterceptorAOP
끼어드는 위치HTTP 요청 전/후메서드 실행 전/후
대상주로 Controller모든 Bean (Service, Repository 등도 가능)
장점인증, URL 기반 처리실행 시간, 로깅 등 메서드 단위 처리에 최적
주요 사용처로그인, 헤더 검사 등공통 로직 추출, 트랜잭션, 로깅
profile
@lim_128

0개의 댓글