기타

@RequestMapping 대신 @PostMapping @GetMapping 쓰는 이유

박성하하 2023. 7. 4. 09:48
728x90
반응형

@RequestMapping 대신 @PostMapping @GetMapping 쓰는 이유가 궁금했다. 구글링으로 여러 블로그를 찾아봤지만 "코드가 줄어들기 때문"이라는 짤막한 답변이 대부분이었다.

@RequestMapping(value="경로", method=RequestMethod.GET)
@RequestMapping(value="경로", method=RequestMethod.POST)

이렇게 긴 코드가

@GetMapping("경로")
@PostMapping("경로")

이렇게 짧아진다는 설명이다. 

틀린 말은 아니지만 이건 질문에 대한 답이 되긴 어렵다. 왜냐하면 @RequestMapping의 경우에도 method 부분을 생략하고

@RequestMapping("경로")

처럼 value만 명시해서 사용할 수도 있기 때문이다. 심지어 @RequestMapping은 method를 생략하면 GET 방식과 POST 방식을 모두 처리해준다. 어찌 보면 @RequestMapping만 쓰는 게 젤 편한 거다. 결국 @GetMapping과 @PostMapping을 사용하는 이유는 @RequestMapping에 굳이 method를 명시하는 이유와 같다고 볼 수 있다.

 

그럼 왜 굳이 method를 명시하는 것이고 그 연장선에서 @GetMapping과 @PostMapping이라는 어노테이션이 추가된 걸까. 좀더 자세히 알아본 결과를 기록한다.


url을 중복 사용할 수 있다

url 요청을 통해 메서드를 요청할 때 전송 방식을 명시하면 하나의 url로도 두 개 이상의 매핑을 처리할 수 있다. 예를 들어 /insertBoard라는 하나의 url로

@getMapping("/insertBoard")
@PostMapping("/insertBoard")

이렇게 두 개의 매핑이 가능하다. 만약 @RequestMapping("/insertBoard")으로 GET 방식의 요청을 받았다면 POST 방식의 요청은 다른 url을 써야한다. 이렇게 되면 보기에도 코드를 관리하기에도 좋지 못하다. 결론적으로 전송 방식을 명시하면 url을 경제적으로 사용할 수 있다.

코드에 의미 명시

코드만 봐도 어떤 전송 방식을 처리하는지 확인할 수 있는 장점이 있다. 통상적으로 GET의 경우 데이터를 화면에 뿌릴 때 많이 사용되고 POST는 전송한 데이터를 insert할 때 많이 사용된다. 전송 방식을 명시함으로써 코드의 로직을 좀더 쉽게 파악할 수 있다. 연장선에서 @PutMapping, @DeleteMapping, @PatchMapping을 사용한다고 이해해도 될 것 같다.

 

 

 

 

 

출처 : https://change-words.tistory.com/entry/Spring-%EC%8A%A4%ED%94%84%EB%A7%81-RequestMapping-%EB%8C%80%EC%8B%A0-PostMapping-GetMapping-%EC%93%B0%EB%8A%94-%EC%9D%B4%EC%9C%A0

 

[Spring / 스프링] @RequestMapping 대신 @PostMapping @GetMapping 쓰는 이유

@RequestMapping 대신 @PostMapping @GetMapping 쓰는 이유가 궁금했다. 구글링으로 여러 블로그를 찾아봤지만 "코드가 줄어들기 때문"이라는 짤막한 답변이 대부분이었다. @RequestMapping(value="경로", method=Reque

change-words.tistory.com

 

728x90
반응형