@GetMapping 과 @PostMapping

개발 오답 노트·2024년 11월 5일

개념정리

목록 보기
10/13

@GetMapping@PostMapping은 스프링 프레임워크에서 웹 애플리케이션의 컨트롤러에서 사용되는 어노테이션입니다. 이 두 어노테이션은 HTTP 요청 메서드(GET 및 POST)에 따라 해당 메서드가 어떤 URL 경로에서 실행되어야 하는지 지정하는 데 사용됩니다. 같은 컨트롤러 클래스에서 두 어노테이션을 모두 사용하는 이유와 그 차이점은 다음과 같습니다:

  1. 사용 이유:
    • @GetMapping: 이 어노테이션은 HTTP GET 요청을 처리하는 메서드에 사용됩니다. 주로 데이터를 조회하고 가져오는 데 사용됩니다. 예를 들어, 웹 페이지에서 데이터를 표시하거나 검색 결과를 요청하는 경우에 사용됩니다.
    • @PostMapping: 이 어노테이션은 HTTP POST 요청을 처리하는 메서드에 사용됩니다. 주로 데이터를 생성하거나 업데이트하는 데 사용됩니다. 예를 들어, 사용자가 어떤 데이터를 제출하고 서버에 저장하거나 업데이트하는 경우에 사용됩니다.
  2. 차이점:
    • HTTP 요청 메서드: 가장 큰 차이점은 요청 메서드입니다. @GetMapping은 GET 요청을 처리하고, @PostMapping은 POST 요청을 처리합니다. GET 요청은 데이터를 조회할 때 사용되며, POST 요청은 데이터를 생성 또는 업데이트할 때 사용됩니다.
    • 요청 매개변수: @GetMapping은 주로 URL 경로 변수와 쿼리 매개변수를 사용하여 데이터를 전달합니다. 반면에 @PostMapping은 주로 HTTP 요청 본문(body)을 통해 데이터를 전달합니다. 이로 인해 데이터 전달 방식에 차이가 있습니다.
    • 안전성: @GetMapping은 주로 데이터 조회 및 검색과 같은 안전한(read-only) 작업에 사용됩니다. 데이터를 읽기만 하고 변경하지 않는 작업입니다. @PostMapping은 데이터를 변경하거나 생성하는 작업에 사용되므로 보안 및 데이터 무결성에 더 신경을 써야 합니다.
    • 캐싱: 일반적으로 GET 요청은 캐싱될 수 있고, 동일한 요청에 대한 응답이 캐시에서 제공될 수 있습니다. 반면에 POST 요청은 일반적으로 캐싱되지 않습니다.

따라서 컨트롤러 클래스에서 @GetMapping@PostMapping을 모두 사용하는 경우, 해당 컨트롤러에서 데이터를 조회 및 수정하는 두 가지 다른 작업을 처리할 수 있습니다. 이를 통해 코드의 가독성과 유지 보수성을 향상시킬 수 있습니다.

profile
포토폴리오 https://wikidocs.net/book/10969 유튜브 링크 https://www.youtube.com/@%EC%B5%9C%EC%9B%90%EC%9D%BC-n5r

0개의 댓글