컴공맨
30
2021-04-06 15:19:37
4
270

[Spring] HttpServletRequest는 옛날 기술인가요?


신입 Spring 개발자입니다.


Controller의 parameter로 HttpServletRequest를 담는 방식을 쓰다가

최근에 RequestContextHolder를 이용한 방식을 알게되어, 해당 부분을 구현했었습니다!

그러다보니 "내가 모르는 Spring 기술, 또는 최근 추세에 맞는 기술들"이 궁금해져서 구글링을 해봤습니다.


HttpClient, RestTemplate, WebClient 의 차이를 공부해본 것도 그 덕분인데요,

그러던 중 'HttpServletRequest보단 WebRequest, MultipartRequest를 추천한다'는 블로그 글을 발견했습니다.

참고했던 블로그


FE에서 받아온 HttpRequest를 Controller단에서 조회할 때 HttpServletRequest를 많이 사용하곤 했었는데

이런 블로그를 보다보니 HttpServletRequest는 옛날 기술인건지, 다른 분들은 어떻게들 사용하고 계신지 궁금해졌습니다.


옛날 기술이라고 모두 지양해야하는 건 아니지만,

이후의 Spring 버전에서 deprecate될 처지에 놓인 RestTemplate처럼,

새로운 기술을 위해 놓아줘야 할 기술도 있겠다는 생각도 들구요...


JPA vs MyBatis처럼 여전히 취향타는 선택인지, 아니면 필드에서 이미 어느 한 쪽으로 결론이 내려진 기술인지 궁금합니다.


서두에 언급했듯, 저는 신입 Spring 개발자이기에, 다른 분들에 비해 식견이 매우 좁습니다.

그렇기에, 제가 위에 적은 내용 중, 잘못 이해하거나 모르는 부분이 있었다면 언제든지 지적해주시면 감사하겠습니다.

댓글로 달아주시는 모든 내용이 저에겐 양분입니다! 끝까지 읽어주셔서 감사합니다!

0
  • 답변 4

  • fender
    21k
    2021-04-06 15:35:51

    대략 서블릿 스펙은 어플리케이션 서버 위에 서비스를 수직으로 쌓아올리는 것이 일반적이던 시대에 만들었기 때문에 마이크로서비스나 컨테이너가 일상화 된 요즘 시대에 맞지 않는 면이 있습니다.

    그래서 스프링 웹은 서블릿 기반에서 시작했지만 굳이 서블릿 컨테이너 위에서 동작한다는 제약에 갇힐 이유가 없기 때문에 그런 추상화 계층이 등장했을 것 같습니다.

  • 상상초월
    281
    2021-04-07 00:54:51

    블로그에서는 'HttpServletRequest보단 WebRequest, MultipartRequest를 추천한다'는 내용으로 게시한건 아닌걸로 보이네요.


    본 의도는 이런 방식이 과거에 사용하던 방식이었고,

    @RestController
    public class SampleController {
    
      @GetMapping("/sample")
      public String hello(HttpServletRequest request, HttpServletResponse response){
        return "hello";
      }
    }

    이제는 아래처럼 사용한다 정도로 보는게 맞을 것 같습니다.

    @RestController
    public class SampleController {
    
      @GetMapping("/sample")
      public String hello(@ModelAttribute Account account) {
        return "hello";
      }
    }
  • 미짱
    312
    2021-04-07 12:44:54

    저의 생각은 옜날 기술이라기 보다는 일반적으로 접근할 일이 없어서 그렇습니다.

    프레임웍쪽이나 디테일 핸들링이 필요한 경우 여전히 유효합니다.

  • 컴공맨
    30
    2021-04-08 11:02:24

    답변 주신 모든 분들 감사합니다! 더 열심히 공부해야겠군요...

  • 로그인을 하시면 답변을 등록할 수 있습니다.