
URL과 URI의 차이 URL은 리소스의 위치를 의미하고, URI는 리소스를 식별하는 문자열 구성을 의미합니다. URI가 URL을 포함하는 더 포괄적인 범위입니다.
주요 애너테이션 요약
| 유형 | 설명 |
| @RequestBody | 컨트롤러 요청 처리 메서드의 매개변수에 선언하며, HTTP 요청 본문(body)을 해당 매개변수에 바인딩합니다. |
| @ResponseBody | 컨트롤러 요청 처리 메서드의 매개변수에 선언하며, 반환값을 HTTP 응답 본문(body)에 바인딩합니다. |
| @RestController | @Controller와 @ResponseBody를 결합한 형태로, REST API를 제공하는 컨트롤러임을 명시합니다. |
// @RequestBody로 단일 매개변수 받기
@PostMapping()
public String submit(@RequestBody String param, Model model) {
model.addAttribute("data1", "@RequestBody로 정보 받기");
model.addAttribute("data2", param);
return "viewPage01_result";
}
// @RequestBody를 활용한 요청 데이터 처리
@Controller
@RequestMapping("/exam02")
public class Example02Controller {
@GetMapping("/form")
public String form() {
return "exam02/form"; // 입력 폼 페이지로 이동
}
@PostMapping("/submit")
@ResponseBody // 리턴값을 페이지가 아닌 데이터(JSON 등)로 응답
public Map<String, String> submit(@RequestBody HashMap<String, String> map) {
// @RequestBody: HTTP 요청 본문(JSON)을 Map 객체로 변환
return map; // 전달받은 데이터를 그대로 JSON 형태로 반환
}
}
@Controller
@RequestMapping("/exam03")
public class Example03Controller {
@GetMapping("/submit")
@ResponseBody // 객체를 직접 HTTP 응답 본문으로 전송
public Person submit() {
Person person = new Person();
person.setName("HongGilSon");
person.setAge(20);
person.setEmail("hgs@naver.com");
return person; // MappingJackson2HttpMessageConverter가 JSON으로 자동 변환
// 객체가 JSON 형식 {"name":"HongGilSon", ...}으로 응답됨
}
}
package com.springboot.domain;
import lombok.Data; // Lombok 라이브러리 사용
@Data // Getter, Setter, toString, EqualsAndHashCode 등을 자동 생성
public class Person {
private String name;
private String age;
private String email;
}
@RestController // @Controller + @ResponseBody 합쳐진 형태
@RequestMapping("/exam04")
public class Example04Controller {
@GetMapping("/submit")
public Person submit() {
// 별도의 @ResponseBody 선언 없이도 Person 객체가 JSON으로 반환됨
Person person = new Person();
person.setName("HongGilSon");
person.setAge(20);
person.setEmail("hgs@naver.com");
return person;
}
}
// application.properties
spring.mvc.hiddenmethod.filter.enabled=true
| 유형 | 설명 | CRUD 작업 |
| POST | 새로운 리소스를 생성하거나 기존 리소스를 갱신 | Create |
| GET | 리소스를 조회하여 읽어 오기 | Read |
| PUT | 리소스를 변경 | Update |
| DELETE | 기존 리소스를 삭제 | Delete |
| OPTION | 리소스에 대한 사용 가능한 작업 얻기 |
@Controller
@RequestMapping("/exam05")
public class Example05Controller {
// 수정을 위한 폼 페이지 출력 (GET 방식)
@GetMapping
public String showForm(@ModelAttribute Person person) {
return "viewPage05";
}
// 데이터를 실제로 수정 처리 (PUT 방식)
@PutMapping
public String submit(@ModelAttribute Person person, Model model) {
model.addAttribute("data1", "@PutMapping 적용하기");
model.addAttribute("data2", person);
System.out.println(person); // 콘솔에 수정된 객체 정보 출력
return "viewPage05_result";
}
}
<form action="exam05" method="post">
<input type="hidden" name="_method" value="put" />
<p>이름 : <input type="text" name="name" /></p>
<p>나이 : <input type="text" name="age" /></p>
<p>이메일 : <input type="text" name="email" /></p>
<input type="submit" value="확인" />
</form>
출처 : 송미영, 『 스프링부트 완전정복: 개념부터 실정 프로젝트까지 』길벗캠퍼스 (2024).
Coner Spring1
Editor: Marin
| [Spring 1팀] 14장. 데이터베이스 연동 (0) | 2026.01.13 |
|---|---|
| [Spring 1팀] 11-12장. 예외 처리 & 로그 기록 (0) | 2025.12.26 |
| [Spring 1팀] 10장. 시큐리티 처리 (0) | 2025.12.19 |
| [Spring 1팀] 9장. 유효성 처리 (0) | 2025.11.28 |
| [Spring 1팀] 8장. 다국어 처리 (0) | 2025.11.21 |