Java Framework/Spring

[Spring] @GetMapping

annovation 2025. 1. 31. 08:49

@GetMapping

Spring Framework에서 @GetMapping은 HTTP 요청을 처리하는 데 사용되는 애노테이션입니다. 특히 HTTP GET 요청을 처리하기 위해 사용되며, RESTful 웹 서비스에서 데이터를 조회하거나 특정 작업을 호출할 때 주로 사용됩니다.

  • @GetMapping은 Spring에서 GET 요청을 특정 메서드와 연결시키는 애노테이션입니다.
  • 클라이언트가 특정 URL로 GET 요청을 보내면, 해당 URL에 매핑된 메서드가 실행됩니다.

HTTP GET 요청이란?

  • HTTP GET은 웹 브라우저나 클라이언트가 서버에서 데이터를 가져오기 위해 사용하는 요청 방식입니다.
  • 예를 들어, 웹 브라우저 주소창에 https://annovation.tistory.com/를 입력하면, 브라우저는 해당 URL로 GET 요청을 보냅니다.

사용법

@RestController
public class ProductController {

    @GetMapping("/products")
    public String getProducts() {
        return "Product list";
    }
}
  • 클라이언트가 /products URL로 GET 요청을 보냅니다.
  • Spring은 /products 요청을 getProducts 메서드와 연결합니다.
  • 메서드가 실행되어 Product list라는 문자열이 반환됩니다.

주요 기능

1. 경로 매핑

@GetMapping은 특정 URL 경로와 메서드를 연결합니다.

@GetMapping("/hello")
public String sayHello() {
    return "Hello, World!";
}
  • /hello로 GET 요청을 보내면 "Hello, World!"라는 응답을 받습니다.

2. 경로 변수 사용

URL의 일부를 변수로 사용하여 동적으로 데이터를 처리할 수 있습니다.

@GetMapping("/users/{id}")
public String getUserById(@PathVariable String id) {
    return "User ID: " + id;
}
  • 요청 : /users/123로 요청을 보내면 "User ID: 123"라는 응답을 받습니다.
  • @PathVariable : URL 경로의 {} 안에 들어 있는 값을 변수로 매핑해 메서드에서 사용합니다.

3. 요청 매개변수 처리

GET 요청의 URL에 붙는 쿼리 파라미터를 처리할 수 있습니다.

@GetMapping("/search")
public String search(@RequestParam String keyword) {
    return "Search results for: " + keyword;
}
  • 요청 : /search?keyword=Spring로 요청을 보내면 "Search results for: Spring"이라는 응답을 받습니다.
  • @RequestParam : URL의 쿼리 파라미터(예: ?key=value)를 메서드의 매개변수로 바꿔줍니다.

4. JSON 응답 처리

REST API에서는 JSON 형식으로 데이터를 반환하는 것이 일반적입니다. Spring에서는 @RestController와 함께 사용하면 JSON 응답을 쉽게 처리할 수 있습니다.

@GetMapping("/product")
public Product getProduct() {
    return new Product("Laptop", 1200.0);
}

 

➡️ 결과

{
    "name": "Laptop",
    "price": 1200.0
}

 

  • Product 객체가 JSON 형식으로 변환되어 응답됩니다.
  • Spring은 내부적으로 Jackson 라이브러리를 사용해 객체를 JSON으로 변환합니다.

5. RESTful 설계

  • @GetMapping은 REST API 설계에서 데이터를 조회하는 GET 메서드를 구현하는 데 필수적입니다.
  • REST API는 HTTP 메서드(GET, POST, PUT, DELETE 등)를 사용해 CRUD(Create, Read, Update, Delete) 작업을 정의합니다.
    • ex. GET 요청은 데이터를 "읽는(Read)" 작업에 사용됩니다.

동작 원리

  1. URL 매핑
    • Spring은 요청 URL과 메서드를 매핑하기 위해 DispatcherServlet이라는 중앙 처리기를 사용합니다.
    • @GetMapping은 이 과정에서 GET 요청을 처리하는 데 사용됩니다.
  2. 요청 처리
    • 클라이언트 요청이 들어오면 Spring은 URL과 매핑된 메서드를 실행합니다.
    • 실행 결과를 HTTP 응답으로 반환합니다.

주의 사항

  1. HTTP 메서드 구분
    • @GetMapping은 GET 요청만 처리합니다. POST 요청 등 다른 메서드는 별도의 애노테이션(@PostMapping, @PutMapping 등)을 사용해야 합니다.
  2. RESTful 설계 원칙 : 데이터 조회(GET), 생성(POST), 수정(PUT), 삭제(DELETE) 작업을 명확히 구분하여 설계합니다.
  3. 보안: GET 요청은 URL에 데이터가 포함되므로 민감한 정보를 전달하지 않도록 주의해야 합니다.

요약

@GetMapping은 Spring Framework에서 GET 요청을 처리하기 위한 필수적인 애노테이션입니다.

  • URL 경로와 메서드의 매핑을 간단히 구현할 수 있으며,
  • RESTful API 설계에서 데이터를 조회하는 핵심 도구로 활용됩니다.

출처

OpenAI ChatGPT (https://openai.com)

'Java Framework > Spring' 카테고리의 다른 글

[Spring] HTTP Method  (0) 2025.02.07
[Spring] @Autowired  (1) 2025.02.02
[Spring] @Transactional  (0) 2025.01.30
[Spring] HTTP 요청 어노테이션 (Annotation)  (0) 2024.12.18
[Spring] URL 프리픽스(prefix)  (1) 2024.12.17