Spring Boot는 기존 Spring 프레임워크의 복잡한 설정과 의존성 관리의 어려움을 해결하기 위해 등장했다. 이로 인해 개발 생산성이 크게 향상되었고, 설정이 간편해졌다.
Gradle은 빌드 및 의존성 관리 도구로, Spring Boot 프로젝트에서 핵심적으로 사용된다. build.gradle
파일을 통해 프로젝트의 의존성을 손쉽게 관리할 수 있다.
예를 들어, 다음과 같은 build.gradle
파일로 의존성을 관리한다:
plugins {
id 'org.springframework.boot' version '2.5.4'
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
id 'java'
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
Gradle을 통해 프로젝트의 의존성을 간편하게 추가하고 관리할 수 있다는 점이 매우 편리하다.
Spring Boot는 spring-boot-starter-test
를 통해 JUnit 기반의 테스트 환경을 제공한다. 배운 예제 코드에서 JUnit을 사용하여 아래와 같이 테스트를 작성했다:
package com.sparta.springprepare.calculator;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
class CalculatorTest {
@Test
@DisplayName("더하기 테스트")
void test1() {
Calculator calculator = new Calculator();
Double result = calculator.operate(8, "+", 2);
System.out.println("result = " + result);
Assertions.assertEquals(10, result);
}
@Test
@DisplayName("나누기 테스트")
void test2() {
Calculator calculator = new Calculator();
Double result = calculator.operate(8, "/", 2);
System.out.println("result = " + result);
Assertions.assertEquals(4, result);
}
}
중요한 점: JUnit은 테스트 실행 환경을 자체적으로 제공하기 때문에 따로 main()
메서드를 실행하거나 서버를 시작하지 않아도 된다. 이렇게 각각의 메서드 혹은 기능별로 테스트 코드를 작성하여 실행할 수 있어, 개발과 디버깅 과정이 훨씬 간편해졌다.
@Getter
/ @Setter
: Getter와 Setter 메서드 자동 생성@AllArgsConstructor
: 모든 필드에 대한 생성자 생성@NoArgsConstructor
: 파라미터가 없는 기본 생성자 생성@RequiredArgsConstructor
: final
또는 @NonNull
필드에 대한 생성자 생성예제 코드를 포함해 application.properties
에 대한 내용을 업데이트해 드리겠습니다.
application.properties: 애플리케이션의 설정을 관리하는 파일로, 다음과 같이 간단한 설정을 정의할 수 있다:
예제 코드:
# 서버 포트 설정
server.port=8081
# 데이터베이스 설정
spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=root
spring.datasource.password=password
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
이번 학습을 통해 Spring Boot를 사용해 설정을 간소화하고 Gradle을 통해 의존성을 효율적으로 관리하는 방법을 확인했다. 또한, Lombok을 활용해 반복적인 코드를 줄일 수 있었고, application.properties로 애플리케이션 설정을 관리하는 방식을 이해했다. JUnit을 통해 별도의 실행 없이도 테스트 코드를 작성하고 검증하는 방법을 익혔다.