DEV/SpringBoot

SpringBoot Use Lombok

KO_O 2025. 3. 26. 09:12

 

 

Spring Boot는 Java 기반 애플리케이션을 쉽게 개발하고 배포할 수 있도록 도와주는 오픈소스 프레임워크예요.

최소한의 설정으로 실행 가능한 독립적인 애플리케이션을 빠르게 만들 수 있도록 도와줍니다 🙌

 

 

 

 

 

▶ Start!

이전 포스팅에서 만든 HelloController 프로젝트에 Lombok을 적용해볼게요!

Lombok은 반복되는 Getter, Setter, 생성자 코드를 자동으로 생성해주는 아주 편리한 라이브러리예요!

특히 DTO나 Entity 작성 시 정말 유용하게 사용할 수 있어서, 거의 필수처럼 사용됩니다. 😊

이번 포스팅에서는 IntelliJ 환경에서 Lombok을 어떻게 설정했는지 정리했습니다~

 

 

 

📦 build.gradle.kts 설정

먼저 build.gradle.kts 파일에 Lombok 의존성을 추가합니다.

dependencies {
    implementation("org.springframework.boot:spring-boot-starter-web")

    // Lombok 설정
    implementation("org.projectlombok:lombok")
    compileOnly("org.projectlombok:lombok")
    annotationProcessor("org.projectlombok:lombok")

    testImplementation("org.springframework.boot:spring-boot-starter-test")
}
  • compileOnly: 컴파일 시에만 필요한 의존성으로, 실행 시에는 포함되지 않아요.
  • annotationProcessor: 어노테이션 기반 코드 생성에 필요합니다.

 

 

🧩 IntelliJ 설정

Gradle 설정만으로는 부족합니다! IntelliJ에서도 Lombok이 작동하도록 몇 가지 설정을 해줘야 해요.

1️⃣ Lombok 플러그인 설치

IntelliJ에서 Settings → Plugins → ‘Lombok’ 검색 후 설치해줍니다.

2️⃣ 어노테이션 프로세서 활성화

Settings → Build, Execution, Deployment → Compiler → Annotation Processors

✔ "어노테이션 처리 활성화" 체크해주셔야 해요!

 

 

✅ 테스트 코드로 확인하기

Lombok이 잘 작동하는지 확인하기 위해 DTO에 테스트 코드를 작성해보았습니다.

@Test
public void lombok_option_test() {
    // given
    String name = "test";
    int amount = 1000;

    // when
    HelloResponseDto dto = new HelloResponseDto(name, amount);

    // then
    assertThat(dto.getName()).isEqualTo(name);
    assertThat(dto.getAmount()).isEqualTo(amount);
}

📘 HelloResponseDto 클래스

테스트에서 사용한 HelloResponseDto는 아래와 같이 정의되어 있어요.

package com.kior.blog.springboot.web.dto;

import lombok.Getter;
import lombok.RequiredArgsConstructor;

@Getter
@RequiredArgsConstructor
public class HelloResponseDto {
    private final String name;
    private final int amount;
}
  • @Getter: 모든 필드에 대한 Getter 메서드를 자동 생성해줍니다.
  • @RequiredArgsConstructor: final 필드를 포함한 생성자를 자동으로 만들어줍니다.
  • 결과적으로 생성자와 Getter가 없어도 테스트 코드에서 dto.getName(), dto.getAmount()가 정상 작동해요. 메서드의 이름은 java Bean 명명을 따라간다고 합니다~

이렇게 Lombok 덕분에 반복되는 코드 없이도 깔끔하게 DTO를 정의할 수 있어요 😄

 

 

 

🚀 실행 결과

IntelliJ에서 테스트 실행 결과, DTO가 정상적으로 생성되고 Getter도 잘 동작했어요 🎉

 

 

⚠️ 쿼리 스트링(Query String)이 없으면 400 error가 발생하니 꼭 포함해서 요청해야 합니다!

 

 

 

📝 마무리

Lombok을 설정하면 반복되는 코드를 줄일 수 있어 개발 생산성이 정말 높아집니다!

하지만 설정이 조금만 빠져도 적용되지 않으니, 위 과정을 차근히 따라 해보시길 추천드려요 🙌