본문 바로가기
프레임워크/Spring

[Spring] 롬복(Lombok) 라이브러리 기능

by 클레어몬트 2025. 2. 4.

 

ㅇLombok 라이브러리: Java 개발에서 반복되는 코드를 줄여주는 라이브러리

Java는 OOP 언어로 강력한 기능을 제공하지만, 반복적인 코드(보일러플레이트 코드)가 많아 개발 효율성을 저하시킬 수 있다. 이를 해결하기 위해 등장한 라이브러리가 Lombok이다. Lombok은 Java 코드에서 반복적으로 작성해야 하는 Getter, Setter, toString, 생성자 등을 자동으로 생성해 주는 어노테이션 기반 라이브러리이다.

 

[Lombok의 주요 기능]

  1. @Getter 및 @Setter
    • 클래스 필드에 대한 Getter 및 Setter 메서드를 자동 생성
    import lombok.Getter;
    import lombok.Setter;
    
    @Getter
    @Setter
    public class User {
        private String name;
        private int age;
    }
    • 위 코드는 별도의 getName(), setName(), getAge(), setAge() 메서드를 작성하지 않아도 자동으로 생성된다
  2. @ToString
    • 객체의 toString() 메서드를 자동 생성
    import lombok.ToString;
    
    @ToString
    public class User {
        private String name;
        private int age;
    }
    • System.out.println(new User("Alice", 25)) 실행 시 User(name=Alice, age=25) 형태로 출력된다
  3. @NoArgsConstructor, @AllArgsConstructor, @RequiredArgsConstructor
    • 생성자(Constructor) 자동 생성
    import lombok.NoArgsConstructor;
    import lombok.AllArgsConstructor;
    import lombok.RequiredArgsConstructor;
    
    @NoArgsConstructor  // 기본 생성자 생성
    @AllArgsConstructor // 모든 필드를 포함하는 생성자 생성
    @RequiredArgsConstructor // final 필드를 포함하는 생성자 생성
    public class User {
        private String name;
        private int age;
    }
  4. @Data
    • @Getter, @Setter, @ToString, @EqualsAndHashCode, @RequiredArgsConstructor을 포함하는 종합적인 어노테이션
    import lombok.Data;
    
    @Data
    public class User {
        private String name;
        private int age;
    }
  5. @Builder
    • 객체 생성 시 빌더 패턴을 자동 적용
    import lombok.Builder;
    
    @Builder
    public class User {
        private String name;
        private int age;
    }
    
    // 객체 생성
    User user = User.builder().name("Alice").age(25).build();

 

[Lombok 설정 및 사용 방법]

  1. Lombok 의존성 추가
    • Maven 프로젝트의 경우: pom.xml에 다음 내용을 추가
    <dependencies>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.24</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>
    • Gradle 프로젝트의 경우: build.gradle에 다음 내용을 추가
    dependencies {
        compileOnly 'org.projectlombok:lombok:1.18.24'
        annotationProcessor 'org.projectlombok:lombok:1.18.24'
    }
  2. IDE 설정
    • IntelliJ IDEA, Eclipse 등에서는 Lombok 플러그인을 설치해야 정상적으로 동작한다!
    • annotation processing을 활성화해야 Lombok 어노테이션이 컴파일 시 적용된다

 

[Lombok의 장점과 단점]

  1. 장점
    • 반복적인(보일러플레이트) 코드 감소로 코드 가독성 향상
    • 유지보수 용이
    • 코드량 감소로 인해 개발 생산성 향상
  2. 단점
    • 자동 생성된 메서드를 IDE에서 명확히 확인하기 어렵다
    • Lombok에 의존성이 생기므로 프로젝트 유지보수 시 고려해야 한다
    • 일부 프레임워크(Spring Boot 등)와의 호환성 문제가 발생할 수도 있음

 

[Lombok을 언제 사용할까?]

  • Getter, Setter, 생성자 등이 반복적으로 사용되는 엔티티(Entity) 클래스에서 효과적
  • 데이터 객체(VO, DTO)에서 사용 시 코드 단순화 가능
  • 빌더 패턴이 필요한 경우 @Builder를 활용하여 객체 생성을 간결하게 처리 가능

 

 


Lombok은 Java 개발에서 코드량을 줄이고 유지보수성을 높여주는 강력한 도구이다. 하지만 프로젝트의 요구 사항에 맞춰 적절히 활용하는 것이 중요 또 중요하다!

'프레임워크 > Spring' 카테고리의 다른 글

[Spring] Maven vs Gradle  (4) 2024.10.06
[Spring] Gradle이란?  (4) 2024.10.06
[Spring] Maven이란?  (3) 2024.10.06