ㅇLombok 라이브러리: Java 개발에서 반복되는 코드를 줄여주는 라이브러리
Java는 OOP 언어로 강력한 기능을 제공하지만, 반복적인 코드(보일러플레이트 코드)가 많아 개발 효율성을 저하시킬 수 있다. 이를 해결하기 위해 등장한 라이브러리가 Lombok이다. Lombok은 Java 코드에서 반복적으로 작성해야 하는 Getter, Setter, toString, 생성자 등을 자동으로 생성해 주는 어노테이션 기반 라이브러리이다.
[Lombok의 주요 기능]
- @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() 메서드를 작성하지 않아도 자동으로 생성된다
- @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) 형태로 출력된다
- @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; }
- @Data
- @Getter, @Setter, @ToString, @EqualsAndHashCode, @RequiredArgsConstructor을 포함하는 종합적인 어노테이션
import lombok.Data; @Data public class User { private String name; private int age; }
- @Builder
- 객체 생성 시 빌더 패턴을 자동 적용
import lombok.Builder; @Builder public class User { private String name; private int age; } // 객체 생성 User user = User.builder().name("Alice").age(25).build();
[Lombok 설정 및 사용 방법]
- 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' }
- IDE 설정
- IntelliJ IDEA, Eclipse 등에서는 Lombok 플러그인을 설치해야 정상적으로 동작한다!
- annotation processing을 활성화해야 Lombok 어노테이션이 컴파일 시 적용된다
[Lombok의 장점과 단점]
- 장점
- 반복적인(보일러플레이트) 코드 감소로 코드 가독성 향상
- 유지보수 용이
- 코드량 감소로 인해 개발 생산성 향상
- 단점
- 자동 생성된 메서드를 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 |