Spring 입문 Chapter 2-1. 스프링 웹 개발 기초 : 정적 컨텐츠

2022. 2. 3. 12:23· Spring Boot/스프링 입문 강의
목차
  1. ⛅️ 웹을 개발하는 세 가지 방법
  2. ⛅️ 정적 컨텐츠란?
  3. ⛅️ 정적 컨텐츠의 대략적인 작동 방식
728x90

이 글은 인프런에 있는 김영한님의 "스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술" 강의를 듣고 정리한 필기입니다.

 

 

⛅️ 웹을 개발하는 세 가지 방법

웹을 개발하는 방법에는 크게 세 가지가 있다.

정적 컨텐츠, MVC와 템플릿 엔진, API가 그 예인데, 어떤 것인지 간단하게 알아보자.

 

1. 정적 컨텐츠 (static contents)

바로 이전 시간에 사용했던 방식이다.

welcome page를 만들었던 것처럼 서버에서 따로 가공을 거치지 않고 파일을 웹 브라우저에 그대로 보내는 방식이다.

 

2. MVC와 템플릿 엔진(template engine)

가장 많이 사용하는 방식이다.

먼저 템플릿 엔진(template engine)을 살펴보자. 과거의 JSP, PHP 같은 것들이 template engine이다.

정적 컨텐츠처럼 html을 웹 브라우저에 그대로 보내는 것이 아니라, 프로그래밍을 해서 html을 동적으로 바꿔서 웹 브라우저에 보내는 일을 한다.

이런 방법을 사용하기 위해서는 Model, View, Controller가 필요한데, 이를 합쳐서 MVC라고 부른다.

 

정적 컨텐츠와의 차이점은 무엇일까?

파일(html)을 웹 페이지에 그대로 전달해주는 것이 정적 컨텐츠 방식의 웹 개발인 반면,

MVC와 Template engine 방식은 server에서 약간의 변형을 하여 system을 바꿔서 웹에 띄우는 방식이다.

 

3. API

html과 같은 방식이 아니라 JSON이라는 데이터 구조 포맷으로 클라이언트에게 데이터를 전달하는 방식을 API 방식이라고 한다.

view나 react를 사용할 때에도 API 방식을 사용한다.

 


⛅️ 정적 컨텐츠란?

Spring boot는 정적 컨텐츠 가능을 자동으로 제공한다.

https://docs.spring.io/spring-boot/docs/2.3.1.RELEASE/reference/html/spring-boot-features.html#boot-features-spring-mvc-static-content

 

Spring Boot Features

Graceful shutdown is supported with all four embedded web servers (Jetty, Reactor Netty, Tomcat, and Undertow) and with both reactive and Servlet-based web applications. It occurs as part of closing the application context and is performed in the earliest

docs.spring.io

위 사이트에 들어가면 Static contents(정적 컨텐츠)에 대한 정보가 어느정도 적혀있는데, spring boot는 /static 경로에 있는 static content들을 제공한다는 내용이 있다.

 

IntelliJ에서 직접 해보도록하자. IntelliJ에서 /static 경로에 hello-static.html 을 만들고 그 안에 아무 내용이나 넣어보자.

이후 localhost:8080/hello-static.html 로 들어가면 해당 내용이 그대로 올라와있는 것을 알 수 있다.

 

이를 통해 알 수 있는 사실은 원하는 파일을 resources/static 폴더에 넣으면 그대로 반환이 된다는 것이다.

대신 이 방법은 정적 컨텐츠 방식이기 때문에 이후 가공이 들어가지 않고 그대로 반환이 된다.

 


⛅️ 정적 컨텐츠의 대략적인 작동 방식

static contents 작동 방식

1. 웹 브라우저에서 localhost:8080/hello-static.html에 대해서 내장 서버인 tomcat에게 요청한다.

 

2. tomcat 서버는 hello-static.html에 대해서 다시 Spring에게 요청한다.

 

3. Spring이 hello-static.html 요청을 받으면

   a. 먼저 Controller에게 요청을 보낸다. (즉, Controller가 우선순위를 가진다.) Controller에 hello-static을 mapping 해놓은 메서드가 있는지 확인한다.

   b. Controller에서 hello-static이 mapping된 메서드를 못 찾았으므로, spring은 resources/static 폴더에서 hello-static.html 파일을 찾는다. 해당 파일을 찾게되면 그 파일을 반환해준다.

 

 

 

728x90
  1. ⛅️ 웹을 개발하는 세 가지 방법
  2. ⛅️ 정적 컨텐츠란?
  3. ⛅️ 정적 컨텐츠의 대략적인 작동 방식
'Spring Boot/스프링 입문 강의' 카테고리의 다른 글
  • Spring 입문 Chapter 2-3. 스프링 웹 개발 기초 : API
  • Spring 입문 Chapter 2-2. 스프링 웹 개발 기초 : MVC와 템플릿 엔진
  • Spring 입문 Chapter 1-3. 프로젝트 환경 설정 : view 환경 설정
  • Spring 입문 Chapter 1-2. 프로젝트 환경 설정 : 라이브러리 살펴보기
HEY__
HEY__
안녕하세요 :) 공부하며 배운 것들을 기록하기 위한 블로그입니다. 도움이 되시길 바라며 혹시 잘못된 점이 있다면 댓글 부탁드립니다! :D
250x250
HEY__
while(true) { continue; }
HEY__
전체
오늘
어제
  • 분류 전체보기 (164)
    • Spring Boot (45)
      • 스프링 입문 강의 (18)
    • AWS (8)
    • 프로젝트 (6)
    • Network (21)
    • Operating System (8)
    • Database (4)
    • ETC (2)
    • Java (3)
    • C++ (7)
    • Python (1)
    • 도서 📚 (3)
      • Effective Java (3)
    • Coding test (50)
      • Baekjoon (30)
      • Leet Code (18)
      • Programmers (2)
    • Algorithm (C++) (5)

블로그 메뉴

  • 태그
  • Github
  • 글쓰기
  • 블로그관리

공지사항

인기 글

태그

  • Spring
  • programmers
  • aws
  • kotlin
  • spring boot
  • Cloudfront
  • C++
  • STL
  • CPP
  • leetcode
  • HTTP
  • dispatcher servlet
  • Baekjoon
  • Java
  • Network
  • OS
  • slack
  • Algorithm
  • Servlet Container
  • coding test

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.0
HEY__
Spring 입문 Chapter 2-1. 스프링 웹 개발 기초 : 정적 컨텐츠
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.