스프링 기초 정리(스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술)

2023. 7. 5. 15:12·Spring

해당 게시글은 아래 강의, 김영한님의 스프링 입문 강의를 정리한 글입니다.

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/dashboard

 

스프링 부트가 제공하는 기능

resources/static/index.html 과 같이 index.html을 작성하면 스프링이 index.html파일을 자동으로 welcome page로 설정해준다.

+ 스프링 부트가 제공하는 다양한 기능은 spring.io 사이트를 이용하자.

 

 

 

 

스프링 웹 개발에는 크게 다음과 같은 3가지 방법이 있다.

- 정적 컨텐트

- MVC와 템플릿 엔진

- API


정적 컨텐츠

  • 서버에서 하는 것 없이 그냥 파일을 그대로 웹 브라우저에 내려주는 것

 

MVC와 템플릿 엔진

  • 과거 jsp, php 같은 것들을 템플릿 엔진이라고 한다.
  • html을 그냥 주는 것이 아니라 서버 사이드에서 동적으로 바꾸어 웹 브라우저에 내려주는 것을 템플릿 엔진이라고 한다. 이것을 수행하기 위해서 model, view, controller 패턴을 이용하는 것이다.

 

API

  • 서버에서 json data format으로 클라이언트(안드로이드, 아이폰)에게 데이터를 전달하는 방식이다.

 

 

 


Static Content


스프링은 정적 컨텐츠 기능을 기본으로 제공한다.

resources - static에 파일을 생성하면 된다. 

 

웹 브라우저에서 http://localhost:8080/hello-static.html을 요청했을 때 hello-static.html파일을 웹브라우저로 받는 과정은 다음과 같다.

  1. 웹브라우저에서 url을 요청한다.
  2. 내장 톰켓 서버가 이 요청을 받는다.
  3. 톰켓 서버는 이 요청을 스프링으로 넘긴다.
  4. 스프링 컨테이너에서 hello-static 관련 컨트롤러를 찾는다.
  5. 오잉 없네
  6. resources-static에서 hello-static.html을 찾는다.
  7. 찾았당
  8. 찾은 html파일을 웹 브라우저로 내려준다.

 


MVC와 템플릿 엔진


MVC: Model, View, Controller

과거에는 view와 Controller를 분리하지 않고 view를 작성했었다.

 

템플릿 엔진 - thymeleaf

<html xmlns:th="http://www.thymeleaf.org">

을 추가하자. 윗 줄이 있어야 타임리프 문법을 사용할 수 있다.

@GetMapping("hello")
public String hello(Model model){
       model.addAttribute("data","hello!!");
       return "hello";
}

Model은 스프링이 알아서 주입해준다.

컨트롤러에서 리턴 값으로 문자를 반환하면 viewResolver가 화면을 찾아서 처리한다.

+템플릿 엔진을 사용할 때 html파일에서의 th: thymeleaf의 약자


API

@ResponseBody는 HTTP의 body에 문자 내용을 직접 반환한다.

 

@ResponseBody가 붙어 있으면 HttpMessageConverter가 작동하는데,

return값이 String이면 StringConverter가 처리하고, 객체이면 JsonConverter가 이를 처리한다.

? MappingJackson2HttpMessageConverter

 

왜냐면~

위에서 말했듯이 @ResponseBody는 문자 내용을 반환하므로 객체가 return값으로 오게 되면 데이터를 json타입으로 웹브라우저/서버로 주게된다.  

 

 


~ 배경 지식 ~

1.

서블릿은 컨트롤러를 만드는데 사용된다.

타임 리프가 아닌 또 다른 템플릿 엔진인 JSP는 HTML 코드 안에서 동적으로 변환이 필요한 부분만, 스크립트 형태의 자바 코드로 작성한다.

 JSP는 View 작성에 사용된다. 

 

2. 아파치, 톰캣, 아파치 톰캣 ?

 아파치는 웹 서버, 톰캣은 WAS, 아파치 톰캣은 톰캣을 지칭하는 말이다. 톰캣과 같은 WAS는 정적인 웹페이지를 처리하는 기능을 포함하고 있기에 그렇게 부른다.

 

'Spring' 카테고리의 다른 글

HttpServletResponse와 HttpOutputMessage  (0) 2024.09.11
서블릿에서 HTTP Response 보내기  (0) 2024.08.31
영속성 관리(ORM 표준 기술 {3} )  (0) 2023.07.06
JPA(자바 ORM 표준 JPA 프로그래밍-기본편) { 2 }  (0) 2023.07.05
JPA(자바 ORM 표준 JPA 프로그래밍-기본편) { 1 }  (0) 2023.07.05
'Spring' 카테고리의 다른 글
  • 서블릿에서 HTTP Response 보내기
  • 영속성 관리(ORM 표준 기술 {3} )
  • JPA(자바 ORM 표준 JPA 프로그래밍-기본편) { 2 }
  • JPA(자바 ORM 표준 JPA 프로그래밍-기본편) { 1 }
용쓰개
용쓰개
  • 용쓰개
    용쓰게
    용쓰개
  • 전체
    오늘
    어제
    • 분류 전체보기 (34)
      • Spring (8)
        • 스프링 Data JPA (0)
        • 스프링 시큐리티 (1)
        • QueryDSL (1)
        • webflux (1)
      • JAVA (5)
      • 여러가지 모르는 지식들 (6)
      • 알고리즘 (0)
      • 후기 (0)
        • 일상 (1)
        • 책 (1)
      • 운영체제 (1)
      • 트러블슈팅 (9)
      • 프로젝트 (0)
        • 펫동네 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
용쓰개
스프링 기초 정리(스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술)
상단으로

티스토리툴바