이 글은 인프런에서 김영한 님의 "스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술"을 수강 후 개인적으로 공부한 내용을 정리한 게시글입니다. 잘못된 점이나 부족한 부분이 있다면 언제든 지적 부탁드립니다.
- 정적 컨텐츠 : 파일을 그대로 웹브라우저에 전달
- MVC와 템플릿 엔진 : 서버에서 랜더링이 된 html 전달 ex)JSP, PHP
- API : 객체를 JSON형식으로 클라이언트에게 데이터 전달
1. 정적 컨텐츠
: 프로그래밍 불가
: 파일을 그대로 전달
웹브라우저에 localhost:8080/hello-static.html 입력
서버) hello-static 들어왔다
스프링 부트) hello-static 관련 컨트롤러 찾음 -> 없어!
스프링 부트) resources: static폴더에 hello-static 있나 찾음 -> 있어!
웹브라우저에 hello-static.html 반환
// 컨트롤러가 우선 순위가 더 높다
2. MVC와 템플릿 엔진
MVC : Model, View, Controller
[동작 방식]
웹브라우저에 localhost:8080/hello-mvc 입력
내장 톰켓 서버) hello-mvc 왔어 -> 스프링부트에게 전달
스프링 부트) 컨트롤러에서 찾음! -> 메서드 호출
-> viewResolver(화면 해결자, view찾아주고 템플릿 연결해줌)에게 넘김 ->
return타입이 hello-template이므로 templates/hello-template.html을 찾아
랜더링 후 html 변환해 웹브라우저에 전달 !
3. API
: JSON형식으로 클라이언트에게 데이터 전송 (HTML 아님)
@ResponseBody 를 사용하면
뷰 리졸버( viewResolver )를 사용하지 않음
대신에 HTTP의 BODY에 문자 내용을 직접 return (HTML BODY TAG 아님!!)
@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;
}
}
Alt + Insert : Getter/Setter 생성 단축키
웹브라우저에 localhost:8080/hello-api 입력
서버) hello-api 들어옴
스프링 부트) 컨트롤러에서 찾음
스프링 부트) @ResponseBody 확인 -> HttpMessageConverter 동작 ->
객체가 오면 JSON 형식으로 반환, 문자가 오면 문자반환
[출처] 인프런 스프링 입문 - 김영한
'Server > Spring boot' 카테고리의 다른 글
[스프링] 인프런 스프링 입문 #회원 관리 예제 - 웹 MVC 개발 (0) | 2022.01.30 |
---|---|
[스프링] 인프런 스프링 입문 #스프링 빈과 의존관계 (0) | 2022.01.30 |
[스프링] 인프런 스프링 입문 #회원 관리 예제 - 백엔드 개발 #2 (0) | 2022.01.19 |
[스프링] 인프런 스프링 입문 #회원 관리 예제 - 백엔드 개발 #1 (0) | 2022.01.18 |
[스프링] 인프런 스프링 입문 #프로젝트 환경설정 (0) | 2022.01.18 |