Spring boot

프로젝트 설정

yoooon1212 2024. 8. 5. 16:41

Bank App 프로젝트의 목표

  • Spring Boot 프레임워크 기반: Spring Boot의 기본 동작 원리를 이해하고 활용합니다. 이를 통해, 개발자는 Spring Boot를 사용하여 빠르고 효율적으로 어플리케이션을 구축할 수 있습니다.
  • MVC 패턴 구현: JSP(JavaServer Pages) 템플릿 엔진을 사용하여 MVC(Model-View-Controller) 패턴을 구현합니다. MVC 패턴을 통해 어플리케이션의 구조를 명확하게 분리함으로써, 유지보수성과 확장성이 향상됩니다.
  • 비즈니스 로직 생성: 프로젝트 내에서 필요한 비즈니스 로직을 설계하고 구현합니다. 이 과정에서 Spring Boot의 다양한 기능을 활용하여, 요구 사항을 충족하는 비즈니스 로직을 개발합니다.
  • DB 접근 기술 활용: 마이바티스(MyBatis)를 사용하여 데이터베이스 접근 기술을 학습하고 적용합니다. MyBatis를 활용함으로써, SQL 쿼리를 보다 쉽게 작성하고 관리할 수 있으며, 데이터베이스와의 상호작용을 효율적으로 처리합니다.

이 프로젝트는 Spring Boot와 JSP를 사용하여 MVC 패턴을 구현하고, 비즈니스 로직을 생성하는 동시에, MyBatis를 통한 데이터베이스 접근 방법을 탐구하는 것을 목표로 합니다.

 

 

 

프로젝트 생성

 

 

Spring Starter Project를 생성합니다. 

 

 

프로젝트 Name과 Package를 입력하고 Packaging을 War로 설정합니다. 

Java Version은 설치해 둔 21버전으로 설정합니다. 

 

 

 

build.gradle

의존성 설정
dependencies {
	implementation 'org.springframework.boot:spring-boot-starter-web'
	implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:3.0.3'
	compileOnly 'org.projectlombok:lombok'
	developmentOnly 'org.springframework.boot:spring-boot-devtools'
	runtimeOnly 'com.h2database:h2'
	runtimeOnly 'com.mysql:mysql-connector-j'
	annotationProcessor 'org.projectlombok:lombok'
	providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat'
	testImplementation 'org.springframework.boot:spring-boot-starter-test'
	testImplementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter-test:3.0.3'
	testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
}

 

 

 

mybatis 버전 3.x.x 이상 이어야 정상 동작 합니다.

 

https://mybatis.org/mybatis-3/ko/index.html

 

mybatis – 마이바티스 3 | 소개

마이바티스는 무엇인가? 마이바티스는 개발자가 지정한 SQL, 저장프로시저 그리고 몇가지 고급 매핑을 지원하는 퍼시스턴스 프레임워크이다. 마이바티스는 JDBC로 처리하는 상당부분의 코드와

mybatis.org

 

호환 버전 확인

 

https://mybatis.org/spring-boot-starter/mybatis-spring-boot-autoconfigure/index.html

 

mybatis-spring-boot-autoconfigure – Introduction

Introduction Translations Users can read about MyBatis-Spring-Boot-Starter in the following translations: What is MyBatis-Spring-Boot-Starter? The MyBatis-Spring-Boot-Starter help you build quickly MyBatis applications on top of the Spring Boot. By using t

mybatis.org

 

 

JSP를 사용하기 위한 의존성 추가

// 의존성 추가 
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 페이지의 개발을 더욱 편리하게 만들어줍니다.