본문 바로가기
Spring/Java

[ spring ] @RequestMapping 대신 @PostMapping @GetMapping 쓰는 이유 및 차이점

by snow_hong 2022. 7. 7.

 

 

@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을 경제적으로 사용할 수 있다.

728x90

댓글