웹개발은 크게 정적 컨텐츠. MVC와 템플릿 엔진, API로 분류 가능
정적 컨텐츠
그냥 서버에서 하는 일없이 파일을 웹브라우저에 내려주는 것
MVC와 템플릿 엔진
-제일 많이 하는 방법
-JSP, PHP -> 템플릿 엔진
: 서버에서 프로그래밍해서 html을 동적으로 바꿔서 내림
-Controller, Model, View(템플릿 엔진 화면)의 3가지
-정적 컨텐츠는 그냥 파일을 그대로 고객에게 전달하는 것
-MVC와 템플릿 엔진은 서버에서 변형을 해서 내려주는 방식
API
-만약 안드로이드, ios 클라이언트와 개발시 json 등을 이용해서 클라이언트에게 데이터 전달
ex) view, react
-데이터만 내려주면 화면은 클라이언트가 그림
-서버끼리 통신시 사용
정적 컨텐츠
resources/static 폴더에 html 파일 추가
폴더의 파일을 그대로 서버에 내려준다.
localhost:8080/파일이름.html로 접근 가능
어떤 프로그래밍을 할 수 없다.
MVC와 템플릿 엔진
MVC: Model, View, Controller
Controller와 View를 분리하여 코딩함 (관심사 분리)
Controller와 VIew 작성 후 실행시 parameter가 없으면 에러가 발생한다.
required=true이면 값을 무조건 넘겨야 한다(default: true)
parameter를 넘기는 방법
: localhost:8080/템플릿이름?변수=parameter
model에 변수:parameter로 넘긴다.
API
responsebody annotation이 있으면 http 응답에 그대로 넘긴다.
단순 문자면 StringHttpMessageConverter가 동작하여 문자 그대로 반환한다.
객체이면 MappingJackson2HttpMessageConverter가 동작하여 json 형식으로 변환하여 http 응답에 반환한다.
(xml 등 특정 포맷으로 변환 가능)