반응형
Spring Boot에서 컨트롤러(@RestController)를 사용하는 방법
Spring Boot에서 @RestController
는 RESTful 웹 서비스를 개발할 때 주로 사용되는 어노테이션입니다. 이 글에서는 @RestController
의 기본 개념과 사용법을 쉽게 이해할 수 있도록 설명합니다.
1. @RestController란?
@RestController
는 Spring MVC에서 제공하는 어노테이션으로, 주로 JSON 형식의 데이터를 반환하는 API를 개발할 때 사용됩니다. 사실 @RestController
는 두 가지 어노테이션을 결합한 것과 같습니다:
- @Controller: Spring의 컨트롤러 역할
- @ResponseBody: 반환값을 JSON 형식으로 변환
이 조합 덕분에 추가적인 어노테이션 없이도 JSON 데이터를 간단히 반환할 수 있습니다.
2. @RestController 기본 사용법
Step 1: 간단한 REST API 작성
아래는 @RestController
를 사용해 간단한 API를 작성하는 예제입니다:
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloController {
@GetMapping("/hello")
public String sayHello() {
return "안녕하세요, Spring Boot!";
}
}
설명:
@RestController
는 해당 클래스가 RESTful 웹 서비스를 제공함을 나타냅니다.@GetMapping("/hello")
는 HTTP GET 요청을 처리합니다.- 문자열
"안녕하세요, Spring Boot!"
가 JSON 형태로 반환됩니다.
Step 2: 애플리케이션 실행
- 애플리케이션을 실행한 뒤 브라우저나 Postman으로
http://localhost:8080/hello
에 접속하면 "안녕하세요, Spring Boot!"라는 응답을 확인할 수 있습니다.
3. 다양한 요청 처리 방법
- GET 요청 처리
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class ApiController {
@GetMapping("/api/data")
public String getData() {
return "데이터 요청 성공";
}
}
- POST 요청 처리
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class ApiController {
@PostMapping("/api/save")
public String saveData(@RequestBody String data) {
return "저장된 데이터: " + data;
}
}
설명:
@RequestBody
는 클라이언트에서 전송된 JSON 데이터를 Java 객체로 변환합니다.
- PathVariable 사용
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class ApiController {
@GetMapping("/api/user/{id}")
public String getUser(@PathVariable String id) {
return "사용자 ID: " + id;
}
}
설명:
@PathVariable
은 URL 경로에서 동적으로 값을 가져옵니다.
- RequestParam 사용
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class ApiController {
@GetMapping("/api/search")
public String search(@RequestParam String query) {
return "검색어: " + query;
}
}
설명:
@RequestParam
은 URL 쿼리 파라미터를 처리합니다.
4. @RestController와 @Controller의 차이
어노테이션 | 주요 역할 |
---|---|
@Controller |
뷰(HTML 등)를 반환하며 템플릿 엔진과 함께 사용됩니다. |
@RestController |
JSON 또는 XML 데이터를 반환하며 RESTful 서비스를 구현합니다. |
5. JSON 객체 반환
Java 객체를 JSON 형식으로 반환하려면 Spring Boot에서 제공하는 Jackson 라이브러리를 활용할 수 있습니다.
예제:
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class ApiController {
@GetMapping("/api/user")
public User getUser() {
return new User("홍길동", 30);
}
static class User {
private String name;
private int age;
public User(String name, int age) {
this.name = name;
this.age = age;
}
// Getter와 Setter
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
}
결과:
{
"name": "홍길동",
"age": 30
}
반응형
'Spring Boot' 카테고리의 다른 글
Spring Boot에서 JSON 데이터를 보내고 받는 방법 (0) | 2025.01.08 |
---|---|
Spring Boot에서 application.yml 파일을 설정하는 방법 (0) | 2025.01.08 |
Postman으로 Spring Boot API를 테스트하는 방법 (0) | 2025.01.08 |
Spring Boot API Server 개발에서 GET / POST / PUT / DELETE 요청 처리하는 방법 (0) | 2025.01.08 |
Spring Boot 프로젝트를 만드는 가장 쉬운 방법 (0) | 2025.01.08 |