(2)스프링 웹 개발
Sep 03, 2024
웹 개발에는 3가지 방법이 있다.
- 정적 컨텐츠(파일을 그대로 웹브라우저에 전달)
- MVC와 템플릿 엔진(자주 하는 개발 방법, 서버에서 변형을 해서 HTML로 주는 방식)
- API(JSON(데이터구조포맷)으로 전달하는 방식 ,서버끼리 통신할 때 등 사용)
1) 정적 컨텐츠
resources > static > 이름.html 파일을 만들어서 HTML을 입력하면 localhost:8080/이름. html 을 하면 화면이 나온다.
컨트롤러에서 먼저 확인한 후 없으면 resources 안에 있는 이름.html을 찾아서 반환해서 화면이 나오게 된다.
2) MVC와 템플릿 엔진
Model,View, Controller
Controll과 View를 나눠주는 것이 요새는 일반적

HelloController 에
@GetMapping("hello-MVC")public String helloMVC(@RequestParam("name")String name, Model model) { model.addAttribute("name", name); return "hello-template";}입력해주기.
그 후 ctrl+shift+F10 을 해준 후 localhost:8080/hello-MVC 을 입력하면

이렇게 에러가 난다.

이를 hello-MVC 에서 ctrl+p 를 해보면 파라미터 정보를 읽을 수 있다.
값을 안넣어줬기 때문에 에러가 나서 값을 주소에 localhost:8080/hello-MVC?name=luca 를 입력하면

이렇게 나온다.
3) API

- 문자 전달(기본 문자처리)
@ResponseBody를 사용 : HTTP의 BODY에 문자 내용을 직접 반환
viewResolver를 대신하여 HttpMessageConverter(StringHttpMessageConverter) 가 동작


- 데이터 전달(기본 객체처리)
@ResponseBody 를 사용 : HTTP의 BODY에 문자 내용을 직접 반환viewResolver를 대신하여 HttpMessageConverter(MappingJasckson2HttpMessageConverter) 가 동작

Hello 라는 데이터를 설정해줄 클래스 만들기

클라이언트가
GET 요청을 /hello-Api?name=Luca으로 보낼 경우:name파라미터의 값"Luca"이name변수에 저장.
- 새로운
Hello객체가 생성되고, 이 객체의name속성이"Luca"로 설정.
- 설정된
Hello객체가 JSON 형식으로 반환된다. 예를 들어, 클라이언트는{"name":"Luca"}와 같은 JSON 응답을 받게 된다.
*.xml 도 많이 쓰였지만 JSON이 더 많이 쓰인다. 거의 통일되었다고 보면 된다.
Share article