Welcome Page를 만들어보겠습니다. 프로그램이 실행될 때, 가장 먼저 실행되어 출력되는 Welcome page를 만들기 위해서는
src 폴더 / resources / static으로 접근하여 static에 index.html file을 생성합니다. (오른쪽 우클릭 후 나오는 file 생성 메뉴)
생성 후 출력물을 띄우기 위해서 간단한 html 코드를 작성 후 HelloSpringApplication을 실행 하고 , localhost:8080로 접속하면 작성된 Hello가 출력되는 지를 확인할 수 있습니다.
💡 Spring Boot가 제공하는 Welcome Page 기능
Spring은 실행 시 static폴더 내에 있는 index.html파일을 찾아서 동작하는 기능을 제공합니다.
이 때의 static에 있는 index.html은 그냥 화면에 입력된 마크다운 언어를 띄어주기만 하는 정적페이지인데,
템플릿 엔진을 사용하면 해당 파일을 동적으로 변화시킬 수가 있습니다.
- 스프링 공식 튜토리얼 : https://spring.io/guides
- 스프링 부트 메뉴얼 : https://docs.spring.io/spring-boot/docs/current/reference/html/
package hello.hellospring.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class HelloController {
@GetMapping("hello")
public String hello(Model model) {
model.addAttribute("data","Hello!!");
return "hello";
}
}
먼저 package와 class 사이 공간에 @controller를 입력해주면 자동으로 상단에 import org.springframework.stereotype.Controller; 해당문구가 입력되며 Controller가 import 됩니다.
웹 브라우저에서 http://localhost:8080/hello로 입력하면 스프링 부트는 톰캣이라는 웹 서버를 내장하고 있는데,
그 서버에서 입력된 주소를 스프링으로 전달해주는데, helloController 클래스 내부에 작성된 @GetMapping(”hello”)로 인해 hello가 url에 매칭을 확인합니다.
public String hello(Model model) { model.addAttribute("data","Hello!!"); return "hello"; } → 해당 메서드를 실행하게 됩니다.
이 후 스프링이 Model을 생성하여 model에는 data:hello!! 담아두었습니다. return은 resources안에 templates내에 이름이 “hello”인 파일을 실행하게됩니다. 즉, templates/hello.html을 실행하게 되는 것입니다. ${data} → model에서 넘겨진 key값이다 (=hello!!)
💡 ViewResolver (뷰 리졸버)
View Resolver(뷰 리졸버)는 웹 애플리케이션에서 사용되는 MVC 패턴에서 컨트롤러가 처리한 결과를 어떤 뷰(View)로 보여줄지를 결정하는 역할을 합니다.
일반적으로 MVC 패턴에서 컨트롤러는 비즈니스 로직을 처리한 후에 클라이언트에게 결과를 보여줄 뷰를 선택해야 합니다.
이때 View Resolver는 컨트롤러의 처리 결과와 매핑되는 뷰를 찾아주는 역할을 수행합니다.
View Resolver는 컨트롤러가 반환한 뷰의 이름을 기반으로 실제 뷰 객체를 찾아내는 과정을 수행합니다.
이를 통해 컨트롤러와 뷰 사이의 강한 결합을 피하고, 유연한 뷰 선택을 가능하게 합니다.
또한 View Resolver는 뷰의 경로나 포맷에 대한 설정을 담당하여 개발자가 뷰의 경로를 하드코딩하는 것을 피할 수 있도록 합니다.
일반적으로 View Resolver는 설정 파일에 등록되며, 컨트롤러에서 반환하는 뷰의 이름을 기반으로 해당하는 뷰 객체를 찾아내는 방식으로 동작합니다.
View Resolver는 컨트롤러와 뷰 간의 인터페이스 역할을 수행하여, 컨트롤러의 처리 결과를 적절한 뷰로 매핑하여 클라이언트에게 보여줄 수 있도록 도와줍니다.
Spring Framework에서는 다양한 유형의 View Resolver를 제공하며, 개발자는 필요에 따라 해당 View Resolver를 선택하고 설정할 수 있습니다.
이를 통해 Spring MVC에서는 컨트롤러와 뷰 간의 느슨한 결합을 유지하면서 유연하고 확장 가능한 웹 애플리케이션을 개발할 수 있습니다.
작성한 project file을 터미널에 ./gradlew.bat build를 통해 빌드 후 실행을 확인합니다.
빌드 폴더 생성 시에는 경로로 설정 → PS D:\backend\Spring\hello-spring>./gradlew.bat build하면 빌드폴더가 생성되고
이 후 빌드를 지우고 싶으면 다시 이전 경로로 이동 후 ./gradlew build clean을 입력해주면 build 폴더 내에 build 되었던 데이터가 지워지게 됩니다.
'[ BACKEND] > Spring' 카테고리의 다른 글
[SPRING] HTTP 요청과 응답 (1) | 2023.07.10 |
---|---|
[SPRING] 스프링 DB 접근 기술 (0) | 2023.07.08 |
[SPRING] Spring Bean과 의존 관계 (0) | 2023.07.02 |
[SPRING] 스프링 웹 개발 기초 - 비즈니스 요구사항 정리 (0) | 2023.06.29 |
[Spring] spring 개발환경 세팅과 실행 (0) | 2023.06.22 |