웹 개발자를 위한 CORS 이해와 Spring Boot에서의 적용 방법
·
Spring/Spring 기초 지식
이번 포스트에서는 CORS에 대한 심화 내용을 설명한다. 📌 서론 웹 개발을 하다 보면, 다양한 출처(origin)에서 서버로 요청을 보내는 상황이 자주 발생한다. 이때 CORS(Cross-Origin Resource Sharing) 정책이 중요한 역할을 한다. Spring Boot와 React를 예로 들어 CORS에 대해 자세히 알아보도록 하자 1. 요청 헤더와 응답 헤더는 어떻게 다뤄지나? 요청 헤더와 응답 헤더: 기본 원칙 웹 애플리케이션에서 서버로 데이터를 요청할 때 사용하는 '헤더'는 요청 정보를 담고 있다. 예를 들어, 로그인 정보나 데이터 형식 등이 여기에 해당된다. 하지만, 요청을 받은 서버가 응답을 줄 때, 이 요청 헤더는 자동으로 응답 헤더로 넘어가지 않는다. HttpServletReq..
Spring: 필터(Filter)가 인터셉터(Interceptor)와 다른점
·
Spring/Spring 기초 지식
이번 포스트에서는 Spring Filter에 대해서 알아보도록 하자 1. Spring에서 Filter의 개념 필터의 정의 필터는 웹 애플리케이션에서 클라이언트의 요청과 서버의 응답을 가로채는 재사용 가능한 코드 조각이다. 서블릿 스펙의 일부로, 요청이 서블릿에 도달하기 전과 응답이 클라이언트로 반환되기 전에 특정 작업을 수행할 수 있다. 서블릿 필터의 기본 원리 필터 체인을 통해 여러 필터를 순차적으로 적용할 수 있다. 각 필터는 doFilter() 메서드를 통해 요청과 응답을 조작하고, 필터 체인의 다음 필터나 최종 목적지(서블릿 또는 정적 리소스)로 요청/응답을 전달할 수 있다. 스프링 부트에서 필터의 역할 스프링 부트는 자동 구성을 통해 필터를 쉽게 추가하고 관리할 수 있게 해준다. 보안, 트랜잭션..
Spring Security 6 이해하기: 동작 원리와 보안 기능 탐구
·
Spring/Spring Security
스프링 시큐리티가 어떻게 동작하는지 궁금해서 알아봤다. 1. 최상위 필터 인터페이스인 SecurityFilterChain 확인 package org.springframework.security.web; import java.util.List; import jakarta.servlet.Filter; import jakarta.servlet.http.HttpServletRequest; /** * Defines a filter chain which is capable of being matched against an * {@code HttpServletRequest}. in order to decide whether it applies to that request. * * Used to configure a ..
SpringBoot: 인터셉터(interceptor)의 동작원리
·
Spring/Spring 기초 지식
스프링 부트에서 사용되는 Interceptor의 동작원리를 알아보자 1. 스프링부트에서 인터셉터란? 스프링부트에서의 인터셉터 스프링부트에서 인터셉터는 웹 애플리케이션에서 요청과 응답을 처리하는 중간 단계에서 사용된다. 인터셉터는 특정 URI 패턴에 대한 요청을 가로채어, 컨트롤러가 처리하기 전후에 추가적인 작업을 할 수 있게 해 준다. 이를 통해, 로그인 체크, 권한 검증, 로깅 등과 같은 작업을 효율적으로 처리할 수 있다. 인터셉터의 동작 과정 클라이언트로부터 들어오는 요청(HttpRequest)을 가로챈다. 가로챈 요청에 대해 원하는 처리(예: 로그인 체크, 권한 체크 등)를 수행한다. 처리가 끝난 후, 요청을 원래의 목적지인 컨트롤러로 전달한다. 컨트롤러가 응답(HttpResponse)을 반환하면,..