개발자 공부 - 인프런 온라인 강의/스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

[섹션 1. 프로젝트 환경설정] View 환경설정 / 인프런 김영한 스프링 입문

easpop 2023. 1. 20. 09:00
728x90
반응형

이번 시간에는 웰컴 페이지를 생성해서 기초적인 MVC 구조를 만들기를 진행하였다!

index.html 웰컴 페이지

먼저, static 폴더에 index.html 생성해서 웰컴 페이지 생성~~

spring.io 주소의 spring boot 홈페이지에 접속해서 boot features에 관한 api 문서를 찾아보니 내용은 아래와 같다.

우선 순위로 index.html을 static 폴더에서 찾고, 만약에 못찾았을 경우, index 템플릿을 찾는다고 한다.

그리고 controller 패키지를 생성하고 HelloController 자바 클래스 생성.

컨트롤러를 설명하자면, 웹 애플리케이션에서 첫번째 진입점이라고 할 수 있고 흐름은 아래에서 추가 설명~~

반응형

HelloController

메소드에 GetMapping을 어노테이션 해주는 이유는, GetMapping 어노테이션을 해줌으로써,

웹 어플리케이션에서 /hello로 요청이 들어오면 해당 메소드를 호출해준다.

그리고 model.addAttribute에서 key값은 "data"로, value값은 "hello"이다.

 

그래서 흐름은 아래와 같이 진행!

예제에서는 index.html 페이지에서 href = "/hello"로 요청이 들어오면

컨트롤러 클래스에서 매핑된 메소드(즉, hello 메소드)를 찾은 뒤, 해당 메소드의 value값 (="hello!")을 리턴 페이지인 hello.html에서 ${data} 부분이 value 값으로 치환된다~~

그래서 ${data} 부분에는 hello 메소드의 value 값인 hello! 가 나오게 된다!

 

hello html 파일

* html 코드 간단한 설명!

 

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

-> 첫 줄에 이렇게 템플릿 엔진을 선언해주면 타임리프 문법을 쓸 수 있다!

 

<p th:text="'안녕하세요. ' + ${data}" >안녕하세요. 손님</p>

-> 여기서 th는 타임리프의 th임.

 

그 결과 매핑이 정상적으로 적용되어 hello 페이지로 이동한다!ㅋㅋㅋㅋ

 

- 스프링 부트의 동작 흐름

웹브라우저에서 localhost:8080/hello를 요청하면 스프링 부트는 내장(임베디드) 된 톰캣 웹서버로 전달되고,

톰캣 웹서버는 컨트롤러로 넘겨준다.

컨트롤러로 넘어오면 어노테이션된 getMapping(http url을 치는 get방식의 매핑) 주소를 찾고, 해당 메소드가 실행 됨.

 

그리고 메소드의 return값으로 이동하게 하는데, html파일을 찾을 때는, resources - templates의 하위 폴더에 있는 hello(리턴값)를 먼저 찾는다.

그리고 메소드의 return값 주소인 hello.html으로 보내서 렌더링 해라, 즉, 이 화면을 실행시키도록 진행하게 한다.

그 결과, hello.html(리턴값 페이지)이 열리게 된다.

 

 

 

이번 강의에서는 템플릿 엔진이 동작하는 순서와 정적 파일 동작하는거 (웰컴페이지 만드는 거)를 해봤는데

기본적인 내용이지만 흐름을 디테일하게 이해하는데 도움이 되었던것 같다!ㅋㅋㅋㅋ

728x90
반응형