// 의존성 추가
implementation 'org.apache.tomcat.embed:tomcat-embed-jasper'
// implementation 'javax.servlet:jstl' spring 3.x.x 버전에서 사용 안됨
implementation group: 'org.glassfish.web', name: 'jakarta.servlet.jsp.jstl', version: '3.0.0'
Spring Boot는 임베디드 서버 환경에서 JSP를 사용하는 것을 기본적으로 지원하지 않습니다. Spring Boot는 주로 Thymeleaf, FreeMarker와 같은 다른 템플릿 엔진을 사용하는 것을 권장합니다. 그러나 여전히 JSP를 사용하고 싶다면, 몇 가지 추가적인 설정과 의존성을 프로젝트에 포함시켜야 합니다.
💡의존성 설명
org.springframework.boot:spring-boot-starter-web: Spring Boot 웹 애플리케이션 개발을 위한 스타터 패키지입니다. 이는 Spring MVC와 함께 임베디드 Tomcat 서버를 포함하며, RESTful 애플리케이션을 쉽게 구축할 수 있도록 지원합니다.
org.mybatis.spring.boot:mybatis-spring-boot-starter:3.0.3: MyBatis를 Spring Boot와 함께 사용하기 위한 스타터입니다. 이를 통해 MyBatis와 데이터베이스 연동 작업을 손쉽게 설정하고 진행할 수 있습니다.
org.projectlombok:lombok: Java 프로젝트에서 보일러플레이트 코드를 줄이기 위한 라이브러리입니다. 어노테이션을 사용하여 자동으로 getter, setter, toString 등의 메서드를 생성해 줍니다.
org.springframework.boot:spring-boot-devtools: 개발 중에 유용한 여러 기능을 제공하는 Spring Boot의 추가 도구입니다. 예를 들어, 자동 리스타트 기능이 있어 파일 변경 시 애플리케이션을 자동으로 재시작해 줍니다.
com.h2database:h2: 인메모리 데이터베이스로, 개발 및 테스트 목적으로 주로 사용됩니다. 설치 없이 애플리케이션 내부 에서 실행되므로 테스트 환경 구성이 용이합니다.
com.mysql:mysql-connector-j: MySQL 데이터베이스에 연결하기 위한 JDBC 드라이버입니다. 이를 통해 Spring Boot 애플리케이션이 MySQL 데이터베이스와 통신할 수 있습니다.
annotationProcessor 'org.projectlombok:lombok': Lombok 라이브러리가 컴파일 시점에 어노테이션을 처리할 수 있도록 지원합니다.
org.springframework.boot:spring-boot-starter-test: 테스트를 위한 스타터 패키지로, JUnit, Spring Test, Mockito 등을 포함하여 애플리케이션의 테스트를 지원합니다.
org.mybatis.spring.boot:mybatis-spring-boot-starter-test:3.0.3: MyBatis와 함께 사용할 수 있는 테스트 지원 라이브러리입니다. MyBatis 기반의 리포지토리를 테스트하는 데 사용됩니다.
org.apache.tomcat.embed:tomcat-embed-jasper: 이 의존성은 임베디드 Tomcat 서버에서 JSP 파일을 컴파일하기 위해 필요합니다. Spring Boot가 사용하는 임베디드 서버 환경에서 JSP 파일을 정상적으로 처리하고 실행할 수 있게 해 줍니다.
org.glassfish.web:jakarta.servlet.jsp.jstl:2.0.0: 이 의존성은 JSP 표준 태그 라이브러리(JSTL)를 프로젝트에 추가합니다. JSTL은 JSP 페이지에서 반복문, 조건문 등의 로직을 처리하는 데 사용되는 태그들의 집합입니다. org.glassfish.web 그룹에서 제공하는 jakarta.servlet.jsp.jstl 패키지는 JSP에서 사용할 수 있는 다양한 태그를 제공하여, JSP 페이지의 개발을 더욱 편리하게 만들어줍니다.
😶🌫️ 의존성 추가 후
해당 gradel 파일에서 우클릭 후 Gradle에서 Refresh Gradle Project를 해줘야