Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- useState
- security
- spring
- TS
- 웹개발자
- JavaScript
- JS
- 큐넷
- Front-End
- React
- 프론트엔드
- 리액트
- Redux
- VUE
- 자바스크립트
- 백엔드
- 타입스크립트
- 백엔드개발자
- 스프링부트
- 정보처리기사
- frontend
- JWT
- Authentication
- 정보처리기사 실기
- spring boot
- TypeScript
- spring boot security
- It
- Node.js
- 수제비
Archives
- Today
- Total
솔적솔적
스프렝 웹 개발 - API @ResponseBody 본문
HelloController 안에
@GetMapping("hello-string")
@ResponseBody
public String helloString(@RequestParam("name") String name) {
return "hello" +name;
}
| @ResponseBody 의미
- @ResponseBody → 이것의 의미는 html에 나오는 body태그가 아니라,
http에서 header부와 body가 있는데 body부의 내용을 직접내가 넣어주겠다라는 것이다.
위의 코드 중 return 코드 해석
public String helloString(@RequestParam("name") String name) {
return "hello" +name;
- 내가 만약 spring이라고 name 값을 넣으면 hello spring" 이라고 바뀐다.
| 템플릿 엔진 vs @ResponseBody 차이
전 시간에는 템플릿 엔진을 사용해서 웹브라우저에 넘겼는데, 이 @ResponseBody랑은 무슨 차이가 있는걸까?
| 템플릿엔진 | @ResponseBody |
| 뷰가 있는 상황에서 조작하는 방식 | return에 있는 것을 그대로 내려준다. |
| @ResponseBody라고 선언한 코드 안에 객체가 있는 경우
@GetMapping("hello-api")
@ResponseBody
public Hello helloApi(@RequestParam("name") String name) {
Hello hello = new Hello();
hello.setName(name);
return hello;
}
static class Hello {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
//getter, setter를 위에서해주면 이런 매서드에 의해서 접근을 할 수 있다. 프로퍼티 접근방식임
}}
@ResponseBody 사용원리
- 똑같이 내장 톰켓 서버가 스프링에 던진다.
- 스프링은 확인을 하다 어, @ResponseBody 란 것을 확인하고 그냥 이 데이터를 넘겨야겠다. http에, 근데 우리 쓴 거 보면 문자가 아닌 객체다.
- 문자인 경우엔 기존에 http응답에 바로 넣어서 주고 끝 근데 객체를 준다?
- 스프링입장에서는 객체? 객체가 오면 기본 default가 그냥 joson방식으로 만들어서http에 반환하겠다라고 정했다.
- 객체를 보고(기존엔 뷰리졸버가 동작을 했지만)
- 조건 2 - 단순 문자면 StringConverter라는게 동작, 객체면 JsonConverter가 작동한다.
- 조건 1 - HttpMessageConverter이란 얘가 동작을 한다.
- 이 Json스타일로 바꾼 것을 나를 요청한 웹브라우저한테 응답해준다.
- HTTP 의 BODY에 직접 문자내용을 반환한다.
- ViewResolver 대신 HttpMessageContverter가 동작한다.
- 기본 문자처리 : StringHttpMessageConverter 가 동작
- 기본 객체처리 : MappingJackson2HttpMessageContverter 가 동작Spring은 기본적으로 이것을 사용 jackson이란 라이브러리로 제이슨을 바꿈.
- 어? jackson? 유명한 라이브러리 중 하나Jackson이란 라이브러리가 있다.
[참조자료] 인프런 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 v2021
'Back-end > Spring Boot' 카테고리의 다른 글
| Spring Boot 를 배우기 전 알아야 할 개념 정리 1탄 (0) | 2022.03.03 |
|---|---|
| spring boot 프로잭트 생성 시 lombok 설치 방법 (0) | 2022.01.29 |
| 스프링 웹 개발 - 템플릿 엔진 thymeleaf (0) | 2022.01.25 |
| Spring Boot 프로잭트 생성 (0) | 2022.01.25 |