공부/SPRING

스프링 웹 개발 기초(정적 컨텐츠, MVC와 템플릿 엔진,API)

junani0v0 2024. 4. 8. 15:15

스프링 웹 개발 기초

 1. 정적 컨텐츠 : 파일을 있는 그대로 웹브라우저에게 보내는 방식

동작 >> 웹브라우저에서 localhost8080/hello-static.html 검색하면 내장 톰캣서버가 이 요청을 받고 먼저 컨트롤러가 있는지 찾아보고 없으면 resources: static/hello-static.html을 찾아 서 반환

 

 

2. MVC와 템플릿 엔진 : 서버에서 바꿔서 html을 전달하는 방식

     MVC : Model,View,Controller (관심사의 분리)

 동작 >> localhost:8080/hello-mvc 넘기면 내장톰캣이 spring에게 전달 helloController에 Mapping이 된걸 확인하고 그 메서드를 호출, return해줄때 이름은 hello-template로 model에 key는 name으로 값은 spring으로 넣어준걸 전달하면 viewResolver가 뷰를 찾아주고 템플릿 엔진을 연결해줌 즉, hello-template.html을 찾아 thymeleaf 템플릿 엔진에 처리를 맡기면 템플릿 엔진이 렌더링을해서 변환을한 html을 웹 브라우저에 반환

 

 

3. API : 데이터 구조 포멧으로 데이터를 전달하는 방식, 서버끼리 통신시 사용

 

동작 >> 웹 브라우저에서 요청보내면 내장톰켓이 스프링에게 던져줌 그러면 스프링은 요청한 hello-api를 찾으면 있으면 원래 viewResolver에 주지만 @ResponseBody가 있으면 http에 데이터를 그대로 넘기게 동작한다. 이때 데이터가 문자가 아니고 객체이면 기본이 Json방식으로 데이터를 만들어서 http응답에 반환

 

@ ResponseBody 사용

 - HTTP의 BODY에 문자 내용을 직접 반환

 - viewResolver 대신 HttpMessageConverter 가 동작

 - 기본 문자처리 : StringHttpMessageConverter

 - 기본 객체처리 : MappingJackson2HttpMessageConverter

( Jackson은 객체를 Json으로 바꿔주는 spring 기본 라이브러리 {key: value}와 같은 Json 형식으로 요청한 웹브라우저나 서버등에 반환)

 - byte 처리 등등 기타 여러 HttpMessageConverter 가 기본으로 등록되어 있음

 

'공부 > SPRING' 카테고리의 다른 글

객체 지향 원리 적용 실습(그룹 스터디)  (0) 2024.04.11
SOLID 란?  (0) 2024.04.10