인프런 커뮤니티 질문&답변

JaeWon Lee님의 프로필 이미지
JaeWon Lee

작성한 질문수

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

스프링 인터셉터 - 요청 로그

request inputStream 로깅 관련

작성

·

370

0

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.

1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)

질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오) 예
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예

[질문 내용]
공통처리는 필터보다는 인터셉터를 우선적으로 고려하라고 말씀해 주셨었는데요,

모든 요청에 대해 request 의 inputStream 을 이용해 requestBody 로깅을 한다고 했을때 필터와 인터셉트 중 어느것을 사용하는게 더 적절하다고 보시는지 궁금합니다.

답변 1

0

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. JaeWon Lee님

이것을 구현하려면 HttpServletRequest 자체를 하나 더 만들어서 처리해야 합니다. 왜냐하면 inputStream은 스트림이기 때문에 반복해서 읽을 수 없기 때문입니다.

따라서 스트림을 읽어서 HttpServletRequest구현체의 어딘가에 메모리 상에 보관해두고 사용하는 것이 좋습니다.

필터는 ServletRequest자체를 변경해서 다음으로 전달할 수 있기 때문에 필터를 사용하는 것이 적절하다 생각합니다.

감사합니다.

JaeWon Lee님의 프로필 이미지
JaeWon Lee

작성한 질문수

질문하기