JongTachi의 개발 블로그

[Lombok] - 자바 개발자를 위한 필수 라이브러리 본문

Java/Lombok

[Lombok] - 자바 개발자를 위한 필수 라이브러리

JongTachi 2024. 12. 19. 15:44
728x90
반응형

자바로 프로젝트를 개발하다 보면 반복적인 코드 작성이 불가피합니다. 예를 들어, Getter/Setter, toString(), equals(), hashCode(), 생성자 등 많은 보일러플레이트(boilerplate) 코드가 자바 클래스에 추가됩니다.

 

이런 반복 작업을 줄이고 개발 생산성을 높이기 위해 등장한 것이 바로 Lombok입니다.

1. what is Lombok?

Lombok은 자바에서 보일러플레이트 코드를 줄이기 위한 라이브러리입니다.
애노테이션을 사용하여 자바 클래스에서 반복적으로 작성해야 하는 코드를 컴파일 시 자동으로 생성합니다.
이를 통해 코드의 가독성을 높이고, 유지보수를 쉽게 할 수 있습니다.

 

※ 주요 특징

  • 코드 간소화: 반복적으로 작성하던 코드를 자동 생성.
  • 가독성 향상: 클래스에 핵심 로직만 남겨 코드를 깔끔하게 유지.
  • 생산성 증가: 개발시간 절약.

2. Main Annotations Of Lombok

 

1) @Getter와 @Setter: 클래스의 필드에 대한 Getter와 Setter 메서드를 자동 생성합니다

import lombok.Getter;
import lombok.Setter;

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

 

위 코드의 결과는 다음과 같습니다.

public class User {
    private String name;
    private int age;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

 

2) @ToString: 클래스의 toString() 메서드를 자동으로 생성합니다.

import lombok.ToString;

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

 

위 코드의 결과는 다음과 같습니다.

public String toString() {
    return "User(name=" + this.name + ", age=" + this.age + ")";
}

 

3) @EqualsAndHashCode: equals()와 hashcode() 메서드를 자동 생성합니다.

import lombok.EqualsAndHashCode;

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

 

4) @NoArgsConstructor, @AllArgsConstructor, @RequiredArgsConstructor : 생성자 자동 생성에 사용됩니다.

  • @NoArgsConstructor: 기본 생성자 생성.
  • @AllArgsConstructor: 모든 필드를 포함하는 생성자 생성
  • @RequiredArgsConstructor: final 또는 @NonNull이 붙은 필드만 포함하는 생성자 생성.
import lombok.NoArgsConstructor;
import lombok.AllArgsConstructor;
import lombok.RequiredArgsConstructor;

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

 

 

5) @Data: @Getter, @Setter, @ToString, @EqualsAndHashCode, @RequiredArgsConstructor를 한 번에 처리합니다.

import lombok.Data;

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

 

6) @Builder: 빌더 패턴을 자동 생성합니다.

import lombok.Builder;

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

 

사용예시 입니다

User user = User.builder()
                .name("John")
                .age(25)
                .build();

 

 

감사합니다.

 

728x90
반응형

'Java > Lombok' 카테고리의 다른 글

[Lombok] lombok 적용하기(인텔리제이)  (1) 2023.12.25