스프링 기초1

2022. 8. 22. 17:14Spring

스프링 웹 개발 기초

-> thymleaf : html을 만들어주는 템플릿 엔진

-> 동작 환경

-> 웹브라우저에서 localhost:8080/hello을 내장 톰켓 서버가 요청 받고 스프링에 넘긴다. 스프링이  컨트롤러에서 hello가 있는지 찾아본다. 컨트롤러에서 리턴값으로 문자를 반환하면 뷰 리졸버가 화면을 찾아서 처리한다.

 

 

 

 

 

 

 

 


◎ 정적 컨텐츠 : 파일 그대로 웹 브라우저에 전달하는 방식

-> 실행

-> 페이지 소스를 확인하면 html파일이 그대로 전달된 것을 알 수 있다.

localhost:8080/hello-static.html의 페이지 소스

-> 정적 컨텐츠의 동작 과정

-> 웹브라우저에서 로컬호스트8080hello-static.html을 내장 톰켓 서버가 요청 받고 스프링에 넘긴다.
스프링은 컨트롤러에서 hello-static이 있는지 찾아보고 없으면 내부 resouces안에 있는 hello-static.html을 찾고, 그대로 반환한다.

 

 

◎ MVC : Mdel, View, Controller로 서버에서 변형하여 html을 전달하는 방식

-> Controller

-> View

-> 실행

-> 오류가 발생한다. helloMvc에서 @RequestParam의 requiredefault값이 true. 따라서 반드시 해당하는 값을 넣어여한다.

정상 실행

->템플릿 엔진 : 서버에서 html을 동적으로 바꿔주는 것

 

-> MVC, 템플릿 엔진 동작 과정

 

-> 로컬호스트 넘기면 스프링 부트를 띄울때 같이 띄우는 내장 톰켓 서버를 거치고 hell0-mvc를 스프링에 전달한다.
스프링은 그 메서드를 호출하고 리턴할 때 이름을 hello-template이라고하고 ,model에는 name:spring(key는 name 값은 spring) 한다. 이것을 스프링에 넘긴다. 이후 뷰리졸버가 templates/hello-template.html이라는 return의 스트링 네임과 같은 것을 찾아 타임리프에  넘긴다. 템플릿 엔진이 랜더링하여 변환한 html을 웹브라우저에 반환한다.

 

◎ API : 데이터 구조 포맷으로 클라이언트에게 데이터를 전달하는 방식

 

-> @ResopnseBody 문자 반환

 

-> @RespnseBody를 사용하면 뷰리졸버를 사용하지 않는다. html태그 없이 문자 그대로 전달된다.

-> http의 body에 문자 내용을 직접 반환한다.

-> 실행

페이지 소스

-> 페이지 소스를 보면 html없이 문자 그대로 반환된 것을 알 수 있다.

 

-> @ResopnseBody 객체 반환

-> 실행

-> @ResponseBody를 사용하여 객체를 반환하면 key-value로 이루어진 json방식으로 객체가 변환된다.

 

-> @ResponseBody 동작 과정

-> ResponseBody를 받으면 hello객체를 넘기면 객체를 보고 뷰리졸버 대신 HttpMessageConverter가 동작한다. 만약 단순 문자면 StringConverter가 동작하고, 객체면 JsonConverter가 동작하여 객체를 json으로 변환한다. 이후 웹브라우저에 보낸다. 

 

 

★ 참고 및 출처

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%EC%9E%85%EB%AC%B8-%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8/dashboard

 

'Spring' 카테고리의 다른 글

AOP1  (1) 2023.02.09
스프링 컨테이너2  (0) 2023.02.07
스프링 컨테이너1  (0) 2023.02.07
Spring Framwork  (0) 2023.02.02
스프링 프레임워크  (0) 2022.02.21