반응형
*이전 글들과 이어집니다.
스프링 인 액션 제5판(크레이그 월즈 지음) - 웹 애플리케이션 개발하기 1
*책 내용과 살짝 다르게, 다음과 같은 환경에서 프로젝트를 생성2026.05.25 - [스프링(Spring), 스프링부트(SpringBoot)/스프링(Spring) 기초] - 스프링 인 액션 제5판(크레이그 월즈 지음) - 스프링 시작하기
keep-programming-study.tistory.com
스프링 인 액션 제5판(크레이그 월즈 지음) - 웹 애플리케이션 개발하기 2
*이전 글과 이어집니다.2026.07.19 - [스프링(Spring), 스프링부트(SpringBoot)/스프링(Spring) 기초] - 스프링 인 액션 제5판(크레이그 월즈 지음) - 웹 애플리케이션 개발하기 1 스프링 인 액션 제5판(크레이
keep-programming-study.tistory.com
4. 뷰 컨트롤러로 작업하기
- 앞서 작성한 컨트롤러와 다르게, 뷰에 요청을 전달하는 역할만 하는 컴트롤러(=뷰 컨트롤러)를 정의
- Model에 데이터 넣기, 서비스 호출하기, DB 조회하기, 로그 남기기 등
추가 로직을 넣지 않는 페이지들(홈 화면, 로그인 화면, 소개 페이지 등)에서만 사용! - 뷰 컨트롤러 선언 방법 (홈 화면의 경로를 선언)
package tacos.web;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
// 스프링 MVC 관련 설정을 정의하는 설정 클래스
@Configuration
public class WebConfig implements WebMvcConfigurer {
// 뷰 컨트롤러(View Controller) 등록
// 단순히 URL과 뷰 이름을 연결할 때 사용
// 별도의 컨트롤러 클래스를 만들 필요가 없음
@Override
public void addViewControllers(ViewControllerRegistry registry) {
// 루트 경로("/")로 요청이 오면
// home이라는 뷰(templates/home.html)를 반환하도록 설정
registry.addViewController("/")
.setViewName("home");
}
}
5. 뷰 템플릿 라이브러리 선택하기
- 스프링의 유연성이 좋아 다양한 템플릿을 개인 취향에 따라 선택 가능
- 원하는 템플릿을 선택하고 의존성으로 추가한 후, src/main/resources/templates 디렉토리에 템플릿을 작성하면,
스프링 부트가 해당 템플릿 라이브러리를 찾아서 스프링 MVC 컨트롤러의 뷰로 사용할 컴포넌트를 자동 구성
1) 스프링 부트 자동-구성에서 지원되는 템플릿 (이 책에서는 Thymeleaf를 사용)
| 템플릿 | 스프링 부트 스타터 의존성 |
| FreeMarker | spring-boot-starter-freemarker |
| Groovy Templates | spring-boot-starter-groovy-templates |
| JavaServer Pages(JSP) | 없음. Tomcat이나 Jetty 서블릿 컨테이너 자체에서 제공 |
| Mustache | spring-boot-starter-mustache |
| Thymeleaf | spring-boot-starter-thymeleaf |
*각 템플릿 의존성 추가 방법 (pom.xml에 코드 추가)
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>{스프링 부트 스타터 의존성}</artifactId>
</dependency>
2) 템플릿 캐싱
- 템플릿 캐싱: 템플릿이 최초로 사용될 때 한 번만 파싱(코드 분석)되고, 파싱된 결과는 향후 사용을 위해 캐시에 저장하는 특성
-> 개발 시에는 페이지를 수정할 일이 많으므로, 수정할 때마다 애플리케이션을 다시 시작해야 함 - 템플랫 캐싱 비활성화 방법: application.properties 파일에 각 템플릿의 캐싱 속성을 false로 설정하여 추가
- 각 템플릿의 캐싱 활성화 관련 속성 (application.properties 파일에 추가하는 코드: {캐싱 속성}=false)
| 템플릿 | 캐싱 속성 |
| FreeMarker | spring.freemarker.cache |
| Groovy Templates | spring.groovy.template.cache |
| Mustache | spring.mustache.cache |
| Thymeleaf | spring.thymeleaf.cache |
반응형
'스프링(Spring), 스프링부트(SpringBoot) > 스프링(Spring) 기초' 카테고리의 다른 글
| 스프링 인 액션 제5판(크레이그 월즈 지음) - 웹 애플리케이션 개발하기 2 (0) | 2026.08.30 |
|---|---|
| 스프링 인 액션 제5판(크레이그 월즈 지음) - 웹 애플리케이션 개발하기 1 (0) | 2026.07.19 |
| 스프링 인 액션 제5판(크레이그 월즈 지음) - 스프링 살펴보기 (0) | 2026.06.19 |
| 스프링 인 액션 제5판(크레이그 월즈 지음) - 스프링 시작하기 2 (1) | 2026.06.10 |
| 스프링 인 액션 제5판(크레이그 월즈 지음) - 스프링 시작하기 1 (0) | 2026.05.25 |