Spring Boot 공부 일기 <6> - Lombok

이동휘·2024년 8월 12일

Spring Boot

목록 보기
6/21

1. IDE

Intellij

2. 오늘 공부 내용

Lombok

@Getter, @Setter

  • @Getter 어노테이션 - 클래스 필드에 대해 getter 메서드 자동으로 생성( 필드의 값을 읽기 위한 메서드)
import lombok.Getter;

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

    // name과 age에 대한 getter 메서드가 자동으로 생성됩니다.
}
// 자동으로 생성 
public String getName() {
    return name;
}

public int getAge() {
    return age;
}
  • @Setter 어노테이션 - 클래스 필드에 대해 setter 메서드 자동으로 생성( 필드의 값을 성정하기 위한 메서드)
import lombok.Setter;

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

    // name과 age에 대한 setter 메서드가 자동으로 생성됩니다.
}
// 자동으로 생성 
public void setName(String name) {
    this.name = name;
}

public void setAge(int age) {
    this.age = age;
}
  • 장점
  • 코드의 간결성: 반복적인 코드 작성을 줄여주어 클래스가 훨씬 간결해집니다.
  • 유지보수성: getter와 setter 메서드를 수동으로 작성하지 않으므로, 코드 변경 시 실수나 누락을 방지할 수 있습니다.
  • 가독성 향상: 불필요한 코드가 제거되어 클래스의 핵심 로직에 집중할 수 있습니다.

@AllArgsConstructor, @NoArgsConstructor, @RequiredArgsConstructor

  • @AllArgsConstructor
    - 기능: 클래스의 모든 필드를 매개변수로 받는 생성자를 자동으로 생성합니다.
    - 사용 시기: 모든 필드를 초기화해야 하는 경우 사용합니다.
import lombok.AllArgsConstructor;

@AllArgsConstructor
public class User {
    private String name;
    private int age;
}
// 자동으로 생성
public User(String name, int age) {
    this.name = name;
    this.age = age;
}
  • @NoArgsConstructor
    - 기능: 파라미터가 없는 기본 생성자를 자동으로 생성합니다.
    - 사용 시기: 기본 생성자가 필요하거나, 프레임워크에서 객체를 생성할 때 기본 생성자가 요구되는 경우 사용합니다.
import lombok.NoArgsConstructor;

@NoArgsConstructor
public class User {
    private String name;
    private int age;
}
// 자동으로 생성
public User() {
}
  • @RequiredArgsConstructor
    - 기능: final 또는 @NonNull이 붙은 필드들만을 매개변수로 받는 생성자를 자동으로 생성합니다.
    - 사용 시기: 필수적으로 초기화해야 하는 필드만을 초기화하는 생성자가 필요할 때 사용합니다.
import lombok.RequiredArgsConstructor;

@RequiredArgsConstructor
public class User {
    private final String name;
    private int age;
}
// 자동으로 생성
public User(String name) {
    this.name = name;
}
  • 장점
  • 코드의 중복을 줄이고, 가독성을 높입니다.
  • 생성자 작성 시 발생할 수 있는 실수를 방지할 수 있습니다.
  • Lombok이 생성자를 자동으로 관리해주므로, 필드가 추가되거나 변경될 때 생성자 수정에 대한 부담이 줄어듭니다

0개의 댓글