ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • SpringBoot Use Lombok
    DEV/SpringBoot 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을 설정하면 반복되는 코드를 줄일 수 있어 개발 생산성이 정말 높아집니다!

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

     

    'DEV > SpringBoot' 카테고리의 다른 글

    SpringBoot Hello Controller  (0) 2025.03.11
    SpringBoot used Git for Intellij  (0) 2025.03.07
    SpringBoot Create Project  (0) 2025.02.25
Designed by Tistory.