웹 개발 방식 3가지와 동작 원리

Gyuhan Park·2022년 9월 2일
0

spring

목록 보기
10/18

웹 개발 방식

  1. 정적 컨텐츠
  2. MVC와 템플릿 엔진
  3. API

1. 정적 컨텐츠

별도의 서버 통신이 필요하지 않고 html만 화면에 띄울 때 사용한다.

  1. 웹 브라우저가 request를 날리면 spring boot 내장 톰캣 서버가 받는다.
  2. 내장 톰캣 서버가 spring에서 request를 처리할 controller가 있는지 먼저 찾아본다.
  3. controller가 없으면 /static (or /public or /resources or /META-INF/resources) 에서 html 파일을 찾는다.
  4. 찾은 html 파일을 웹 브라우저로 넘긴다.

2. MVC와 템플릿 엔진

MVC는 프로젝트의 구성요소를 Model, View, Controller 로 역할을 나눠 코드를 작성하는 디자인 패턴이다.
thymeleaf, mustache 등의 템플릿 엔진을 이용하면 html 파일 내에서 데이터를 조작하기 편리하다.

  1. 웹 브라우저에서 request를 날리면 내장 톰캣 서버가 받아 spring에 관련 controller를 찾는다.
  2. controller에서 문자열을 반환하면 viewResolver가 화면을 찾아서 처리한다.
  3. controller에서 문자열을 반환할 때, 파라미터로 받은 model 객체에 원하는 데이터를 key, value 형식으로 담아 화면에 넘길 수 있다.

3. API

서버 간 통신 or 클라이언트에게 데이터를 넘겨줄 때 사용한다.

  1. 웹 브라우저에서 날린 request를 controller에서 받는다.
  2. API 방식을 사용할 때는 controller 함수에 @ResponseBody 를 붙인다.
  3. 그럴 경우 viewResolver 대신에 HttpMessageConverter 가 동작하면서 HTTP의 BODY에 문자 내용을 직접 반환한다.
    이때, 객체를 반환하면 JSON 형식으로 변환된다.

[참고] 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

profile
단단한 프론트엔드 개발자가 되고 싶은

0개의 댓글