@RequestMapping 대신 @PostMapping @GetMapping 쓰는 가장 큰 이유는 코드에 의미 명시되고 코드가 단축된다는 점이다!
@RequestMapping(value="경로", method=RequestMethod.GET)
↓
@GetMapping("경로")
@RequestMapping(value="경로", method=RequestMethod.POST)
↓
@PostMapping("경로")
참고로 @GetMapping과 @PostMapping 어노테이션은 @PutMapping, @DeleteMapping, @PatchMapping과 함께 spring 4.3부터 등장했다.
자세한 내용은 https://hong42.tistory.com/83 에서 확인하자!
하지만
@RequestMapping의 경우에도 method 부분을 생략하고
@RequestMapping("경로")
이 처럼 value만 명시해서 사용할 수도 있기 때문이다. 심지어 @RequestMapping은 method를 생략하면 GET 방식과 POST 방식을 모두 처리해준다. 어찌 보면 @RequestMapping만 쓰는 게 젤 편한 거다.
결국 @GetMapping과 @PostMapping을 사용하는 이유는 @RequestMapping에 굳이 method를 명시하는 이유와 같다고 볼 수 있다.
차이점
url을 중복 사용할 수 있다
url 요청을 통해 메서드를 요청할 때 전송 방식을 명시하면 하나의 url로도 두 개 이상의 매핑을 처리할 수 있다. 예를 들어 /insertBoard라는 하나의 url로
@getMapping("/insertBoard")
@PostMapping("/insertBoard")
이렇게 두 개의 매핑이 가능하다. 만약 @RequestMapping("/insertBoard")으로 GET 방식의 요청을 받았다면 POST 방식의 요청은 다른 url을 써야 한다. 이렇게 되면 보기에도 코드를 관리하기에도 좋지 못하다.
결론적으로 전송 방식을 명시하면 url을 경제적으로 사용할 수 있다.
댓글