Lombok으로 코드 간결하게 작성하기: 실무 개발자가 말하는 장단점과 주의점

Java로 개발을 하다 보면 가장 먼저 느끼는 불편함 중 하나가 바로 보일러플레이트 코드(Boilerplate Code)입니다. 특히 POJO 클래스에서 getter/setter, toString, equals/hashCode, 생성자 등을 일일이 작성해야 하는 번거로움이 있죠.

이런 문제를 해결해주는 도구가 바로 Project Lombok입니다. 이 글에서는 Lombok의 주요 기능부터 실제 사용 예제, 그리고 실무에서 사용할 때의 주의사항까지 정리해보겠습니다.

 

1. Lombok이란?

Lombok은 Java 클래스에 어노테이션을 붙여 반복적인 코드 생성을 자동화해주는 라이브러리입니다. 컴파일 타임에 코드가 자동으로 생성되기 때문에, IDE 상에는 코드가 보이지 않지만 컴파일된 class 파일에는 필요한 메서드들이 포함되어 있습니다.

 

2. Lombok 주요 어노테이션과 예제

2-1. @Getter, @Setter

각 필드에 대해 getter/setter 메서드를 자동으로 생성합니다.


@Getter
@Setter
public class User {
    private String name;
    private int age;
}

2-2. @ToString

toString() 메서드를 자동 생성합니다.


@ToString
public class User {
    private String name;
    private int age;
}

2-3. @NoArgsConstructor, @AllArgsConstructor, @RequiredArgsConstructor

생성자 관련 어노테이션입니다.


@NoArgsConstructor
@AllArgsConstructor
@RequiredArgsConstructor
public class User {
    private final String name;
    private int age;
}

2-4. @Data

@Getter, @Setter, @ToString, @EqualsAndHashCode, @RequiredArgsConstructor를 한 번에 적용합니다.


@Data
public class User {
    private String name;
    private int age;
}

2-5. @Builder

빌더 패턴을 손쉽게 구현할 수 있게 해줍니다.


@Builder
public class User {
    private String name;
    private int age;
}

 

 

3. Lombok 설정 방법

3-1. Gradle 설정


dependencies {
    compileOnly 'org.projectlombok:lombok:1.18.30'
    annotationProcessor 'org.projectlombok:lombok:1.18.30'
    testCompileOnly 'org.projectlombok:lombok:1.18.30'
    testAnnotationProcessor 'org.projectlombok:lombok:1.18.30'
}

3-2. IDE 플러그인 설치

  • IntelliJ: Preferences → Plugins → Lombok 검색 후 설치
  • Settings → Build, Execution, Deployment → Compiler → Annotation Processors → Enable 체크

 

4. 실무에서 Lombok 사용할 때 주의할 점

4-1. 디버깅 시 불편

Lombok이 생성한 메서드는 소스 코드상에 없기 때문에, 디버깅이나 분석 도구에서 추적이 어려울 수 있습니다.

4-2. 클래스 설계에 대한 고민 없이 남용

@Data처럼 너무 많은 기능을 한 번에 사용하는 어노테이션은 구조적 고민 없이 남용될 수 있어, 유지보수성이 떨어질 수 있습니다.

4-3. 호환성 문제

IDE 또는 빌드 도구 버전에 따라 Lombok이 정상 작동하지 않는 경우도 있으므로, 항상 버전을 맞추고 테스트해야 합니다.

 

 

5. 결론

Lombok은 자바 개발자가 자주 작성해야 하는 반복적인 코드를 제거해 개발 생산성을 크게 높여주는 도구입니다. 하지만 남용보다는 필요한 기능만 선택적으로 사용하는 것이 바람직합니다.

잘 쓰면 약이지만, 무분별하게 쓰면 독이 될 수 있는 것이 Lombok입니다. 팀 내 코드 컨벤션이나 가이드라인에 따라 전략적으로 도입하시길 권장합니다.