@RestController

HY·2025년 1월 21일

@Controller

단순하게 해당 클래스가 컨트롤러임을 나타내는 어노테이션이다.

@Controller와 @RestController의 차이

@RestController와 @Controller 두 개는 기본 적으론 같은 기능을 가지고 있지만,
@RestController는 안에 @Responsebody를 포함하고 있다. (Controller + Responsebody = RestController)

그렇다면 @Responsebody는 무엇인가?

비동기 통신을 할 때는 클라이언트에서 서버에게 보내는 request(요청)와
서버에서 클라이언트로 보내는 답신 response(응답)을 주고 받는다.

이 때 요청과 응답에 각각 data 즉 본문을 집어넣어서 보내는데,
이 때 data를 집어넣는 공간이 body이다.
(이 때 body에 사용되는 데이터 형식 중 하나가 우리가 흔히 쓰는 JSON이다)

어노테이션을 직역하자면 본문을 응답한다고 해석할 수 있음.

@Requestbody도 비슷한 맥락.

그리고 알다시피 JSON은 문자열로 이루어진 언어독립적 데이터 형식이라 반드시 변환이 필요한데,
@Responsebody(혹은 @Requestbody) 어노테이션 사용시 이를 JSON에서 Java Object로 변환시켜준다.

profile
안녕하세요

0개의 댓글