FitNest 프로젝트 ⑤-3 WebMvcConfigurer 설정 클래스

jjang9·2024년 5월 20일

FitNestProject

목록 보기
8/8
post-thumbnail

WebMvcConfigurer 설정 클래스이다.
스프링의 자동 설정에 원하는 원하는 설정을 추가할 수 있는 메서드들을 제공하는 인터페이스

구글링 으로 얻은 정보에 따르면
WebMvcConfigurer 의 여러 용도 중 세 가지 이다.
1. 인터셉터 등록 .addInterceptors
2. 뷰 리졸버 .viewResolver (setPrefix, setSuffix 를 이용해서 접미사, 접두사를 붙여 컨트롤러가 리턴할 뷰 주소를 알려준다. )
3. 리소스 핸들링 .addResourceHandler (리소스의 위치를 설정할 수 있다. )


addResourceHandlers

이 메서드는 WebMvcConfigurer 인터페이스의 메서드 중 하나로, 정적 자원의 위치와 접근 경로를 설정하는 데 사용된다.
** 정적 자원 : 이미지, css, javascript 등

배포 전에는 문제가 되지 않았지만 배포 후에는 서버에 저장을 하고, 그 서버에서 꺼내오는 경로를 적어줘야 해서 추가해줬다.

addResourceHandler

  • 어느 경로로 들어왔을 때 매핑이 되어줄 것인지를 정의한다.

addResourceLocations

  • 실제 파일이 있는 경로를 설정해준다.

=> addResourceHandlers 메서드로 정적 파일들을 효율적으로 관리할 수 있고 접근할 수 있다.

addViewControllers

이 메서드는 URL 매핑을 설정한다.
별도의 컨트롤러 클래스를 작성하지 않고 특정 URL 경로에 대해 뷰를 매핑할 수 있다.


(( 루트 / 로 요청이 들어오면 /home 경로로 리다이렉트 한다. ))

addViewController

  • 특정 URL 경로를 지정한다.
    setViewName
  • 지정된 URL 경로로 요청이 들어오면 반환할 뷰의 이름을 설정한다.

addCorsMappings

CORS 설정하는데 사용되는 메서드이다.

addMapping

  • CORS 를 적용할 URL 패턴을 정의한다.
  • .addMapping("/**")
    : 모든 경로에 대해 CORS 설정을 적용한다. /는 모든 하위 경로를 포함한다.

allowedOrigins

  • 자원 공유를 허락할 Origin 을 지정할 수 있다.
  • CORS 요청 허락할 출처를 지정했다. localhost와 배포 주소이다.

allowedMethods

  • 허용할 HTTP method를 지정할 수 있다.
  • .allowedMethods("GET", "POST", "PUT", "PATCH", "DELETE", "OPTIONS")
    : 지정된 메서드 GET, POST, PUT, PATCH, DELETE, OPTIONS 를 허용한다.

allowedHeaders

  • CORS 요청에 허용되는 헤더를 지정한다.
    - .allowedHeaders("*")
    : 모든 요청 헤더를 허용한다.

allowCredentials

  • 클라이언트 측에 대한 응답에 credentials(쿠키, 인증 헤더)를 포함할 수 있는지 여부를 지정한다.
  • 기본값은 false 이다.
  • .allowCredentials(true)
    : true 로 설정을 하면 브라우저는 자격 증명이 포함된 요청을 허용한다.

maxAge

  • 원하는 시간만큼 pre-flight 리쿼스트를 캐싱해 둘 수 있다.
private final long MAX_AGE_SECS = 3600; // 단위:초
  • .maxAge(MAX_AGE_SECS);
    : 앞에서의 MAX_AGE_SECS 가 3600 으로 설정되어 있으므로, pre-flight 요청은 1시간 동안 캐시된다.
  • pre-flight 란?
    우리말로 미리 보내는 것, 사전 전달 이라고 할 수 있다. 기본적으로 브라우저는 cross-origin 요청을 전송하기 전에 OPTIONS 메소드로 prefilght 를 전송한다.

=> addCorsMappings 는 CORS 정책을 설정하고, 특정 출처에서 오는 요청을 허용하고, 지정된 HTTP 메서드와 헤더를 사용할 수 있도록 한다.
이를 통해 웹 어플리케이션이 다른 도메인에서 오는 요청을 안전하게 처리할 수 있게 된다.

profile
안녕하세요! jjang9 입니다( ̄︶ ̄)

0개의 댓글