클라이언트(예: 웹 브라우저, 모바일 앱)가 서버에 요청을 보내면, 서버는 그 요청을 받아 처리한 후 결과를 응답으로 돌려준다. 이때 서버가 보내는 응답은 단순 문자열, 이미지, 영상, HTML 페이지, 또는 JSON 등 다양한 형태가 될 수 있음
@Controller는 주로 주로 View(HTML, JSP 등)를 반환하는 역할을 하고, @RestController는 데이터(JSON, XML 등)를 반환하는 역할을 한다 . 예를 들어, @RestController에서 단순 문자열을 반환하면 그 문자열 자체가 응답 본문으로 전송되고, 객체를 반환하면 그 객체가 JSON 형식으로 변환되어 응답 본문으로 전송된답니다.
Controller의 경우
@Controller
public class MyController {
@GetMapping("/hello")
public String hello(Model model) {
model.addAttribute("message", "안녕하세요, 여러분!");
return "hello"; // hello.html 또는 hello.jsp와 같은 View 파일을 반환
}
}
RestController의 경우
@RestController
public class MyRestController {
@GetMapping("/hello")
public String hello() {
return "안녕하세요, 여러분!"; // 단순 문자열을 반환
}
@GetMapping("/user")
public User getUser() {
User user = new User(1, "홍길동", "hong@example.com");
return user; // User 객체를 반환 (JSON 형식으로 변환되어 응답)
}
}
class User {
private int id;
private String name;
private String email;
// 생성자, Getter, Setter 생략
}
JSON은 데이터를 표현하는 경량의 데이터 교환 형식으로, 키-값 쌍으로 구성되며 배열과 객체를 포함할 수 있다.
오늘 포스팅은 여기서 마무리하겠습니다. 다음 포스팅에서 또 유익한 내용으로 찾아뵐게요. 그럼 모두 happy coding! 🎉