728x90
본 블로그는 해당 스프링 강의(김영한) 수강 후, 작성된 게시물입니다.
웹 개발 방법 (3가지)
1. 정적 컨텐츠
파일을 웹 브라우저로 그대로 내려주는 것
2. MVC와 템플릿 엔진
HTML을 서버에서 동적으로 바꿔서 내려주는 것. (JSP, PHP 등의 템플릿 엔진)
3. API
JSON 데이터 구조 포맷으로 클라이언트에 데이터 전달하는 것
3. API
1. HelloController.java에서 helloString 메소드를 작성한다.
2. 실행
localhost:8080/hello-string?name=spring!!
3. HelloController.java에서 helloApi 메소드를 작성한다.
4. 실행
localhost:8080/hello-api?name=spring!!
※ JSON ? "키-값 쌍"으로 이루어진 데이터 표준 포맷
▶ 동작 방식
- 웹 브라우저에서 hello-api를 친다.
- 톰캣 내장 서버에서 스프링에게 hello-api가 왔다고 던진다.
- 스프링 컨트롤에서 hello-api가 있다는 것을 확인한다.
- 확인 도중 @ResponseBody 어노테이션이 붙여져 있다는 사실을 발견한다.
- 템플릿 엔진과 다르게 ViewResolver에게 보내지 않고, http 응답에 그대로 데이터를 넘겨야된다고 생각한다.
- HttpMessageConverter가 동작을 하게 되며, 단순 문자면 StringConverter가 동작하고 객체라면 JsonConverter가 동작한다.
- 기본 문자처리: StringHttpMessageConverter
- 기본 객체처리: MappingJackson2HttpMessageConverter
- 현재 지금 텍스트가 아닌 객체이기 때문에 JsonConverter가 JSON 방식으로 만들어서 http에 응답을 하도록 한다.
※ 참고, 클라이언트의 HTTP Accept 헤더와 서버의 컨트롤러 반환 타입 정보 둘을 조합해서 HttpMessageConverter가 선택된다.
Accept 헤더 : 요청을 할때, '나는 이런 포맷으로 받고싶어'라고 말하는 곳
# 정리
정적 컨텐츠 | MVC와 템플릿 엔진 | API |
파일을 그대로 | 템플릿 엔진을 모델, 뷰, 컨트롤러로 쪼개서 뷰를 템플릿 엔진으로 렌더링된 HTML을 클라이언트에게 전달 | HttpMessageConverter를 통해 JSON 스타일로 객체를 반환 View없이 HttpResponse에 값을 넣어 반환 |
728x90
'IT > Spring' 카테고리의 다른 글
[Spring] 회원 관리(1) 비즈니스 요구사항 정리_백엔드 개발 (0) | 2022.06.27 |
---|---|
Spring[5] - Dependency Injection (0) | 2022.06.27 |
Spring[4] - IoC (0) | 2022.06.26 |
Spring[3] - 메이븐 Spring Project 생성 (0) | 2022.06.23 |
[Spring] MVC와 템플릿 엔진 (0) | 2022.06.18 |