ServerWebExchange

haruceki·2024년 8월 20일

ServerWebExchange는 Spring WebFlux에서 비동기 웹 애플리케이션을 개발할 때 사용하는 핵심 인터페이스 중 하나이다. Spring WebFlux는 비동기, 논블로킹 I/O를 기반으로 한 리액티브 프로그래밍 모델을 지원하는 웹 프레임워크로, Spring WebFlux에서 요청과 응답의 생명주기를 관리하고, 요청/응답의 데이터에 접근 및 조작을 가능하게 한다.

erWebExchange의 주요 역할

  • TP 요청 및 응답에 대한 접근
    ServerWebExchange는 ServerHttpRequest와 ServerHttpResponse를 제공한다. ServerHttpRequest는 클라이언트가 보낸 HTTP 요청에 대한 정보(헤더, 쿼리 파라미터, 경로 변수, 바디 등)를 담고있다. ServerWebExchange는 서버가 클라이언트로 보낼 HTTP 응답(상태 코드, 헤더, 바디)을 설정하는 데 사용된다.

  • 속성 저장 및 공유
    ServerWebExchange는 요청 처리 중에 사용할 수 있는 속성들을 저장할 수 있는 컨텍스트 역할을 한다. 이 속성들은 요청 처리의 여러 단계에서 공유될 수 있다. exchange.getAttributes() 메서드를 통해 속성들을 저장하고 읽을 수 있다.

  • 요청 생명주기 관리
    ServerWebExchange는 필터나 핸들러가 요청을 처리하는 동안, 다양한 생명주기 이벤트를 관리한다. 예를 들어, 요청이 완료되었을 때의 콜백이나 요청 처리 중 예외가 발생했을 때의 예외 처리 등을 관리한다.

  • 리액티브 스트림 지원
    Spring WebFlux는 리액티브 스트림을 지원하므로, ServerWebExchange를 통해 요청 바디를 Mono나 Flux와 같은 리액티브 타입으로 처리할 수 있다. 이를 통해 비동기 방식으로 데이터를 처리할 수 있다.

  • 필터 체인과의 상호작용
    ServerWebExchange는 필터 체인 내에서 요청과 응답을 전달하는 역할도 한다. 필터는 ServerWebExchange를 통해 요청을 조작하거나, 요청 흐름을 중단하고 응답을 직접 반환할 수 있다.

profile
희망도 절망도 없이 매일 코딩을 한다.

0개의 댓글