일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 프로세스
- 자바
- 국비지원코딩
- 자바알고리즘
- React
- 운영체제
- 리액트
- 코드업
- 소셜로그인구현
- 자바스크립트
- 알고리즘
- 프로그래머스
- 백엔드개발자
- 개발자일기
- 스프링부트
- 프로그래밍
- Java
- 미라클모닝
- 코딩
- 개발자
- Codeup
- 데이터베이스
- 국비지원
- db
- 프로그래머
- 백엔드
- 자바개발자
- SpringBoot
- 혼공컴운
- 자바의정석
- Today
- Total
초코딩(chocoding)
[Springboot] @ResponseBody의 사용 방식 / json에 대하여 / viewResolver 본문
[Springboot] @ResponseBody의 사용 방식 / json에 대하여 / viewResolver
sweetychocoding 2024. 3. 27. 21:02 @GetMapping("hello-mvc")
public String helloMVC(@RequestParam("name") String name, Model model) {
model.addAttribute("name", name);
return "hello-template";
}
위처럼 controller에서 요청을 보낼 시에 viewResolver을 통하여 처리
하지만, @ResponseBody를 사용할 시에 view를 거치지 않고 바로 데이터를 http body에 담아 전송
-> 뷰 리졸버( viewResolver )를 사용하지 않음
@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;
}
}
위처럼 반환되는 값이 객체일 경우, JSON의 형태로 전달됨
여기서 JSON이란 JavaScript Object Notation으로,
데이터를 저장하거나 전송할 때 많이 사용되는 경량의 data 교환 형식이다.
JSON 표현식은 사람과 기계 모두 이해하기 쉬우며,
용량이 작아 최근에는 XML을 대체하여 데이터를 전송할 때 많이 사용된다.
하지만 모든 데이터가 MappingJackson2HttpMessageConverter를 이용하는 것은 아님
GsonHttpMessageConverter 처럼 google이 만든 것도 있음
그럼 반환값이 객체 형태가 아니라 그냥 문자열일 때는?
-> StringHttpMessageConverter 사용
뿐만 아니라 byte 처리 등등 기타 여러 HttpMessageConverter가 기본으로 등록되어 있음
느낀점
-> 이미 써본 어노테이션이고 대충 흐름을 알고 있지만, 정말 기초부터 다시 배우니 머릿 속에서 복잡하게 얽혀있던 내용들이 자리를 잡아가는 느낌이 들어 정말 정말 시작하길 잘했다는 생각을 했다.
그리고 IDE로 이클립스가 아닌 인텔리제이를 쓰면서 아직 작동법이 익숙하지 않아 구글링을 꽤 자주 해야했지만,
나중에 실무 들어갔을 때 코드짜야 되는데 인텔리제이 쓰는 법 구글링 하는 것보단 낫지 않나 생각이 들었다.
남들은 이미 써보고 편하다고 극찬하는 툴을 이제야 써보는 것도 ........ 할많하않 (... 하핫)
그래도 발전하고 싶어서 발버둥 치는 내 자신에게 칭찬해주고 싶다!!!!!
꾸준하게 꼼꼼하게 파이팅
'SpringBoot' 카테고리의 다른 글
[intellij / springboot] 인텔리제이 대소문자 구분 없이 자동 완성하기 (0) | 2024.04.18 |
---|---|
[springboot/인프런] 코드로 배우는 스프링 부트 - 회원 서비스 테스트 (0) | 2024.04.17 |
[Spring Boot] 테스트 케이스 작성하기 / 테스트 코드란? / 테스트 코드 실패 원인 / 테스트 코드 순서 (0) | 2024.04.04 |
ERD(Entity Relationship Diagram) 자동 생성 tool 추천 (0) | 2024.04.01 |
[IntelliJ IDEA Community Edition] 인텔리제이 무료 버전 설치 방법 (0) | 2024.03.26 |