-
SpringBoot Use LombokDEV/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