CS 공부 & 기초 지식

[Spring Boot] 필터( Filter )

Coding-Su 2024. 11. 7. 16:40
728x90

필터란?

필터란 쉽게 이야기해서 공통 부분을 한번에 처리함으로써 코드의 중복을 줄이고, 유지보수하기 쉽도록 하는 방법입니다.

예를 들어 인증/인가, 인코딩, 권한 등에 사용할 수 있습니다. 이 글은 필터를 가장 쉽게 필터 하나의 기능만 사용하였으며, 추후 로그인 기능을 구현하기 위해 글을 포스팅 하였습니다.

 

필터 작동 과정

요청이 들어오면 요청은 가장 먼저 필터를 타고 들어오게 됩니다. 따라서 로그인 기능을 구현할 때 인증/인가를 모두 확인하기 가장 적합합니다.

 

 

필터를 적용한 코드

@Component
@Slf4j
public class FilterConfig implements Filter {

    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain)
        throws ServletException, IOException {
        log.info("안녕 안녕" ); // controller 들어가기 전
        filterChain.doFilter(request, response); // 필터 체인에 등록해줘!
        log.info("잘가 잘가"); // controller 들어간 후
        
    }
}

 

위 코드는 로그를 찍어서 확인하는 기능만 있는 필터이다. 

 

코드를 보면 필터 체인데 필터를 등록하는 과정이 나오는데 필터 체인이란 필터가 여러 개 있는 것을 의미한다.

필터는 위치도 정해줄 수 있는데 @Order를 사용하여 위치를 지정해 줄 수도 있다.

728x90