인프런 커뮤니티 질문&답변
Contents-type 관련
작성
·
265
0
안녕하세요
질문이 있습니다.
주제와 다소 번외인 부분인데 Contents-type이 궁금합니다.
증상
스프링 @RestController를 사용했을 경우
핸들러 리턴 타입을 HashMap으로도 하고 Vo(직접 만들 vo클래스) 로도 했습니다.
그러면 화면에 응답본문이 뿌려지는데 JSON 타입으로 뿌려지길래 확인해보니 응답 헤더에 Contents-type이
application-json으로 되어 있습니다.
여기서 질문이 있습니다.
응답 Contents-type : application-json
이건 @RestController 로 했을 경우 기본값으로 세팅이 되는지 아니면 어디 설정부분이 있는지 궁금합니다.
일단 @RestController를 파봤는데 안에 별 내용은 없더라구요
감사합니다.
퀴즈
표현 헤더(Content-Type, Content-Encoding 등)의 주된 역할은 무엇일까요?
클라이언트의 요청을 처리하는 서버 정보를 알려줍니다.
메시지 바디에 담긴 데이터 정보를 설명합니다.
클라이언트가 선호하는 데이터 형식을 서버에 전달합니다.
요청 또는 응답 메시지의 전송 방식을 지정합니다.
답변 2
0
안녕하세요.
@RestController 어노테이션 구현 코드를 보시면 아래와 같은 어노테이션들이 추가 되어 있는데요, 여기서 핵심은 @ResponseBody 어노테이션 입니다.
@ResponseBody 어노테이션은 자바 객체를 반환 하는 경우 HTTP 메시지 바디에 json 형태로 데이터를 입력하는데요,
제가 작성한 스프링 코드로 예시를 들어드릴게요.

위의 코드는 @RestController가 선언 되어 있고, /simple과 /products 요청의 Http method 'GET'을 처리하는 컨트롤러 입니다.
우선 /simple 부터 요청해볼게요.

간단한 문자열인 "ok"를 응답으로 내리면 서버에서 text/plain으로 처리 되는 것을 확인 하실 수 있고,

자바 객체를 return 할 경우 json 형태로 서버에서 내려주는 것을 확인 하 실 수 있습니다 ^^
@ResponseBody와 관련해서 영한님의 스프링 완전 정복 시리즈의 다음 강의인
스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 에서 자세히 알려주십니다 ㅎㅎ
0
우선은 쭈욱 찾아 보면서
@RequestMapping 의 produces 속성까지 왔네요
EX) @RequestMapping(value = "/hm", produces = MediaType.APPLICATION_JSON_VALUE)
produces 속성을 설정하지 않은 경우 기본 값이라든가 아니면 다른 설정이 있을거 같은데
주석으로 남겨져 있지 않네요 ㅠㅠ
* @author Juergen Hoeller
* @author Arjen Poutsma
* @author Sam Brannen
이 분들 주석으로 좀 남겨주시지 ㅠㅠ






친절하시고 예제까지
답변 감사합니다^^
좀 더 궁금한점은 응답본문을 리턴시키는데(맵 또는 생성클래스일 경우)
왜 Contents Type을 application- json
으로만 보내느냐가 궁금했습니다.
어딘가에 기본 설정이 되어 있는건지 궁금하기도 하구요