(2)스프링 웹 개발

로쿠's avatar
Sep 03, 2024
(2)스프링 웹 개발
 
웹 개발에는 3가지 방법이 있다.
  • 정적 컨텐츠(파일을 그대로 웹브라우저에 전달)
  • MVC와 템플릿 엔진(자주 하는 개발 방법, 서버에서 변형을 해서 HTML로 주는 방식)
  • API(JSON(데이터구조포맷)으로 전달하는 방식 ,서버끼리 통신할 때 등 사용)

1) 정적 컨텐츠

resources > static > 이름.html 파일을 만들어서 HTML을 입력하면 localhost:8080/이름. html 을 하면 화면이 나온다.
컨트롤러에서 먼저 확인한 후 없으면 resources 안에 있는 이름.html을 찾아서 반환해서 화면이 나오게 된다.
 

2) MVC와 템플릿 엔진

Model,View, Controller
Controll과 View를 나눠주는 것이 요새는 일반적
notion image
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 을 입력하면
notion image
 
이렇게 에러가 난다.
 
notion image
이를 hello-MVC 에서 ctrl+p 를 해보면 파라미터 정보를 읽을 수 있다.
값을 안넣어줬기 때문에 에러가 나서 값을 주소에 localhost:8080/hello-MVC?name=luca 를 입력하면
notion image
이렇게 나온다.
 

3) API

notion image
  • 문자 전달(기본 문자처리) @ResponseBody 를 사용 : HTTP의 BODY에 문자 내용을 직접 반환
    • viewResolver를 대신하여 HttpMessageConverter(StringHttpMessageConverter) 가 동작
notion image
notion image
 
  • 데이터 전달(기본 객체처리)
    • @ResponseBody 를 사용 : HTTP의 BODY에 문자 내용을 직접 반환
      viewResolver를 대신하여 HttpMessageConverter(MappingJasckson2HttpMessageConverter) 가 동작
notion image
 
Hello 라는 데이터를 설정해줄 클래스 만들기
 
notion image
notion image
클라이언트가 GET 요청을 /hello-Api?name=Luca으로 보낼 경우:
  1. name 파라미터의 값 "Luca"name 변수에 저장.
  1. 새로운 Hello 객체가 생성되고, 이 객체의 name 속성이 "Luca"로 설정.
  1. 설정된 Hello 객체가 JSON 형식으로 반환된다. 예를 들어, 클라이언트는 {"name":"Luca"} 와 같은 JSON 응답을 받게 된다.
*.xml 도 많이 쓰였지만 JSON이 더 많이 쓰인다. 거의 통일되었다고 보면 된다.
 
 
Share article