Programming/Spring

스프링 프레임워크 기초: Lombok

vita12321 2023. 8. 6. 17:10
728x90
반응형

Lombok 자바 개발을 더욱 효율적으로 만들기 위한 라이브러리로, 주로 코드 줄이기 가독성 향상을 목적으로 사용됩니다. 글에서는 스프링 프레임워크와 함께 Lombok 사용하는 방법과 효과를 알아봅니다.


 

1. Lombok 소개

 

Lombok Java 장황함을 줄이기 위한 라이브러리로, 코드 생성 수정을 간단하게 처리하는 기능을 제공합니다. 주로 getter, setter, 생성자, `toString`, `hashCode`, `equals` 같은 메소드를 자동으로 생성해 줌으로써 코드량을 줄이고 가독성을 향상시킵니다.


 

2. Lombok의 필요성


자바는 장황한 코드로 유명하며, 특히 데이터 객체를 다룰 때 일일이 getter, setter, 생성자 등 다양한 메소드를 작성해야 합니다. 이러한 코드 작성은 시간이 많이 소요되며, 가독성을 떨어트릴 수 있습니다. Lombok은 이런 문제점을 해결하기 위한 라이브러리로, 자동으로 코드를 생성해 줌으로써 개발자의 부담을 줄일 수 있습니다.


 

3. Lombok 설치 설정

 

Lombok 사용하기 위해서는 먼저 라이브러리를 프로젝트에 추가해야 합니다. Maven이나 Gradle 사용하는 경우 빌드 파일에 다음과 같은 의존성을 추가합니다.

 

  • Maven
xml

<dependency>

    <groupId>org.projectlombok</groupId>

    <artifactId>lombok</artifactId>

    <version>1.18.20</version>

</dependency>

 

  • Gradle
gradle

implementation 'org.projectlombok:lombok:1.18.20'

annotationProcessor 'org.projectlombok:lombok:1.18.20'

 

또한, 사용 중인 IDE Lombok 플러그인을 설치해야 합니다. IntelliJ Eclipse에서는 'Preferences' 또는 'Settings' 메뉴에서 'Plugins' 검색하여 'Lombok' 찾아 설치합니다.


 

4. Lombok 사용방법

 

Lombok은 어노테이션을 사용하여 코드 자동 생성 및 수정을 처리합니다. 주로 사용되는 Lombok 어노테이션은 다음과 같습니다.

 

  • @Data: @Getter, @Setter, @RequiredArgsConstructor, @ToString, @EqualsAndHashCode을 한꺼번에 적용하는 어노테이션입니다.

  • @Getter: 모든 필드에 대한 getter 메소드를 생성해 줍니다.

  • @Setter: 모든 필드에 대한 setter 메소드를 생성해 줍니다.

  • @NoArgsConstructor: 파라미터 없는 기본 생성자를 생성해 줍니다.

  •  @AllArgsConstructor: 모든 필드를 파라미터로 가진 생성자를 만들어 줍니다.

  • @RequiredArgsConstructor: final 또는 @NonNull 어노테이션이 붙은 필드들만 파라미터로 가진 생성자를 만들어 줍니다.

  • @EqualsAndHashCode: hashCode 및 equals 메소드를 생성해 줍니다.

  • @ToString: 객체의 문자열 표현을 반환하는 toString 메소드를 생성해 줍니다.

  • @Slf4j나 @Log: 로깅을 처리하기 위한 로거(Logger) 객체를 자동으로 생성해 줍니다.

  • @Builder: 빌더 패턴으로 객체를 생성할 수 있도록 하는 어노테이션입니다.


이러한 어노테이션을 사용한 예시는 다음과 같습니다.

import lombok.Data;

@Data
public class User {
    private Long id;
    private String name;
    private String email;
}



위의 @Data 어노테이션은 @Getter, @Setter, @RequiredArgsConstructor, @ToString, @EqualsAndHashCode을 한 번에 적용해 줍니다. 따라서 자동으로 getter, setter, 기본 생성자, toString, hashCode, equals 메소드가 생성됩니다.


 

5. Lombok 사용 예시

 

Lombok 사용하여 자동으로 코드를 생성할 있습니다. 다음은 Lombok 어노테이션을 사용한 예시입니다.

 

import lombok.Getter;

import lombok.Setter;

import lombok.NoArgsConstructor;

import lombok.AllArgsConstructor;

import lombok.ToString;

import lombok.EqualsAndHashCode;

 

@Getter

@Setter

@NoArgsConstructor

@AllArgsConstructor

@ToString

@EqualsAndHashCode

public class User {

    private Long id;

    private String name;

    private String email;

}

 

위의 코드에서 `@Getter`, `@Setter`, `@NoArgsConstructor`, `@AllArgsConstructor`, `@ToString`, `@EqualsAndHashCode` 같은 어노테이션을 사용하여 자동으로 생성자, getter, setter, `toString`, `hashCode`, `equals` 메소드가 생성됩니다.

 

이렇게 생성된 메소드들은 실제로 코드에 작성하지 않았지만, 컴파일되는 과정에서 추가되어 정상적으로 사용할 있습니다.


 

6. Lombok 사용 주의사항


Lombok은 편리한 기능을 제공하지만 잘못 사용하면 문제가 발생할 수 있습니다. 아래와 같은 주의사항을 인지하고 사용하는 것이 좋습니다.

 

  • Lombok의 기능이 컴파일 시점에 코드를 생성하기 때문에, IDE가 그 내용을 인식하지 못하면 작성한 코드에 빨간 줄이 그어질 수 있습니다. 이를 해결하려면  적절한 Lombok 플러그인을 설치해야 합니다.

  •  Lombok은 개발자의 실수를 방지하고 가독성을 높이지만, 코드를 이해하기 어려운 경우도 있으므로 적절한 주석을 통해 내용을 설명하는 것이 좋습니다.

  • Lombok에 익숙하지 않은 개발자가 프로젝트에 참여할 경우 가독성이 오히려 떨어질 수 있으므로, 팀원들과 협업 및 교육이 필요합니다.

4. 요약

 

Lombok 코드의 가독성을 높여 개발 시간을 줄이며, 실수 발생 확률을 낮추는 이점을 제공합니다. 간편한 코드 작성을 돕는 Lombok 라이브러리를 활용하여 효과적인 스프링 프레임워크 애플리케이션 개발에 도움이 되길 바랍니다.

728x90
반응형