스프링 웹 개발 기초
웹을 개발한다는 것은 크게 3가지 방법이 있다.
- 정적 컨텐츠: 서버에서 하는 것 없이 파일을 그대로 웹 브라우저에 그려주는 것.
- MVC와 템플릿 엔진: 가장 많이 하는 방식. html을 그냥 주는 것이 아니라, 서버에서 프로그래밍을 해서 동적으로 바꿔주는 것(템플릿 엔진)을 하기 위해서, model, view, controller 이 3가지가 존재한다.(줄여서 MVC)
파일을 그대로 웹 브라우저에 전달해 주는 정적 컨텐츠 방식과 차이가 있다.
- API: Json이라는 데이터 구조 포맷이 있는데, 그 데이터 구조 포맷으로 클라이언트에게 데이터를 전달하는 방식. view나 react를 사용할 때도 API로 데이터만 내려주면, 화면은 클라이언트가 알아서 그리고 정리하게 하고자 할 때 사용하거나, 서버끼리 통신할 때 등 API 방식을 사용한다.
정적 컨텐츠
스프링 부트는 정적 컨텐츠 기능을 자동으로 제공한다.
https://docs.spring.io/spring-boot/docs/2.3.1.RELEASE/reference/html/spring-boot-features.html#boot-features-spring-mvc-static-content
링크에 들어가서 살펴보면,
기본적으로 스프링부트는 정적 컨텐츠를 /static 폴더에서 제공한다고 나와 있다.
위 내용을 따라 intelliJ에 들어가서,
resources - static 폴더에 hello-static.html을 만들어 보았다. (이름은 상관없음)
html코드를 작성한 후, 웹 브라우저에 들어가 localhost:8080/hello-static.html로 접속하였더니
다음과 같은 화면이 떴다.
이 과정을 간단히 설명해 보겠다.
- 웹 브라우저에서 localhost:8080/hello-static.html을 호출하면
내장 톰켓 서버가 요청을 받고, 스프링에게 넘긴다.
- 스프링에서는 controller에서 hello-static을 먼저 찾아본다.
하지만 controller에는 hello-static 관련 컨트롤러가 존재하지 않는다.
- 그러면 스프링에서 resource - static으로 가서, hello-static.html을 찾아내어 반환해준다.