@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)" 작업에 사용됩니다.
동작 원리
- URL 매핑
- Spring은 요청 URL과 메서드를 매핑하기 위해 DispatcherServlet이라는 중앙 처리기를 사용합니다.
- @GetMapping은 이 과정에서 GET 요청을 처리하는 데 사용됩니다.
- 요청 처리
- 클라이언트 요청이 들어오면 Spring은 URL과 매핑된 메서드를 실행합니다.
- 실행 결과를 HTTP 응답으로 반환합니다.
주의 사항
- HTTP 메서드 구분
- @GetMapping은 GET 요청만 처리합니다. POST 요청 등 다른 메서드는 별도의 애노테이션(@PostMapping, @PutMapping 등)을 사용해야 합니다.
- RESTful 설계 원칙 : 데이터 조회(GET), 생성(POST), 수정(PUT), 삭제(DELETE) 작업을 명확히 구분하여 설계합니다.
- 보안: 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 |