웹을 개발하는 방법은 크게 3가지가 있습니다.

1) 정적 컨텐츠

  • 그냥 서버에서 하는 것 없이 파일을 그대로 보내주는 방식

2) MVC와 템플릿 엔진

  • Model, View, Controller 역할을 나누어서 처리하는 방식
  • 정정 컨텐츠와 차이: MVC와 템플릿엔진은 Controller, Model, View를 사용하여 조작된 내용을 반환
  • 비교: model1 방식에서는 구성요소인 JSP가 Controller와 View역할을, Java Bean이 Model 역할을 담당 참고

3) API

  • JSON같은 데이터 포멧으로 클라이언트에 데이터를 보내주는 방식

위 3가지 방식을 동작방식과 함께 좀 더 알아보겠습니다.

정적 컨텐츠

  • Spring 프로젝트 내의 static 경로에 정적 파일을 작성하게 되면 올린 파일 그대로 반환받을 수 있다.
  • 동작 방식

  • 웹 브라우저에서 static 파일을 요청하면 (localhost:8080/hello-static.html) 스프링 내장 톰켓 서버에서 관련 컨트롤러가 있는지 찾아보고, 없으면 리소스의 정적파이에서 찾아서 반환한다.

MVC와 템플릿 엔진

  • MVC: Model, View, Controller
  • Controller: 로직과 관련된 부분을 담당
  • View: 화면과 관련된 부분을 담당
  • Model: 전달하는 데이터를 담당
  • 동작 방식

  • 특징: 화면에 원하는 데이터를 렌더링하여 전달

API

  • 동작방식

  • @ResponseBody를 사용
    • HTTP의 BODY에 문자 내용을 직접 반환
    • viewResolver 대신에 HttpMessageConverter가 동작
    • JsonConverter -> 객체를 Json 형식으로 반환
      • 기본 객체처리: MappingJacksonMessageConverter
    • StringConverter -> 문자를 문자 그대로 반환
      • 기본 문자처리: StringHttpMessageConverter

  • 차이점: view 없이 바로 HTTP에 데이터를 실어서 전달

 


이 글은 김영한 님의 스프링 입문 강의를 복습하기 위해 작성된 글 입니다.

참고: https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%EC%9E%85%EB%AC%B8-%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8

+ Recent posts