Back-end/Spring

[spring] 스프링 웹 개발 기초

Nellie Kim 2022. 9. 16. 15:52
728x90

스프링 웹 개발에는 크게 3가지가 있다.

1. 정적컨텐츠

2. MVC와 템플릿엔진

3. API

 

 

1. 정적컨텐츠

- 서버에서 html파일을 그.대.로. 웹브라우저에 내려주는것이다.

- 웹에서 로컬호스트 주소를 치면 ->  내장 톰캣서버가 먼저 요청을 받고 스프링에게 던짐 -> 스프링컨테이너 안에서 hello-static관련컨트롤러를 찾고 없으니까 -> resources안의 hello-static.html파일을 찾고 웹에 반환해준다!!

 

2. MVC와 템플릿엔진

- 서버에서 html파일을 변.형.해.서. 웹브라우저에 내려주는것이다.

- 웹에서 로컬호스트 주소를 치면 ->  내장 톰캣서버가 먼저 요청을 받고 스프링에게 던짐-> 스프링컨테이너 안에서 관련컨트롤러를 찾았어! HelloController의 메서드에 매핑이 되어있네! -> 매핑된 메서드를 호출해줌 -> 뷰리졸버가 리턴값(hello-template)과 똑같은 html을 찾아서 타임리프템플릿엔진한테 처리해주세요! 하면서 넘김 -> 타임리프템플릿엔진은 렌더링을 해서 html을 변환함 -> 웹에 반환!!

(*뷰리졸버 : view를 찾아주고 템플릿엔진연결시켜줌)

3. API

- JSON이라는 데이터구조포맷을 그.대.로. 클라이언트에게 전달해주는것이다. (뷰 안쓰는것)

- 웹에서 로컬호스트 주소를 치면 ->  내장 톰캣서버가 먼저 요청을 받고 스프링에게 던짐-> 스프링컨테이너 안에서 관련컨트롤러를 찾았어! @ResponseBody가 있네!-> 그럼 뷰리졸버대신 http의 Body에 직접반환해줘야겠다 -> HttpMessageConverter가 동작!  -> (문자면)StringConverter가 문자그대로 웹에 반환! / (객체면)JsonConverter가 JSON형식으로 웹에 반환!! 

(*JSON : JavaScript Object Notation. 속성-값 으로 이루어진 데이터오브젝트들을 전달하기위해 텍스트를 사용하는 개방형표준포맷. 인터넷으로 자료를 주고받을때 그 자료를 표현하는 방법.)

사실 정적컨텐츠를 제외하면, 

1) 뷰를 찾아가지고 템플릿엔진을 통해서 화면을 렌더링해서 html을 웹브라우저에 넘겨주는방식,

2) API를 쓰는 방식 

그냥 편하게 2가지라고 생각하면된다!!!!

 

 

[출처] 인프런 - 김영한 스프링 입문