반응형

실무에서 자주사용하는 Lombok 어노테이션

 

Lombok

개발을 하다보면 기계적으로 코드를 작성할 때가 많다. 예를 들면, DTO를 생성할 때, getter와 setter를 만드는 것이다. 이전 회사에서는 Lombok을 사용하지 않아 getter, setter을 남발(?)했던 기억이 있다. 

public class User {

    private String id;
    private String name;
    private String email;
    private String juso;
    private String phoneNumber;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

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

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getJuso() {
        return juso;
    }

    public void setJuso(String juso) {
        this.juso = juso;
    }

    public String getPhoneNumber() {
        return phoneNumber;
    }

    public void setPhoneNumber(String phoneNumber) {
        this.phoneNumber = phoneNumber;
    }

 

Lombok은 어노테이션 기반으로 코드를 자동완성 해주는 라이브러리이다. Lombok 을 사용하면 Getter, Setter는 물론 ToString 등과 같이 다양한 코드를 자동완성 시킬 수 있다. 

  • 어노테이션 기반의 코드 자동 생성을 통한 생산성 향상
  • 반복적인 코드를 제거하여 가독성과 유지보수 향상
  • Getter, Setter외 Builder 패턴이나 로그 생성 등 활용

 

@Getter / @Setter

import lombok.Getter;
import lombok.Setter;

@Getter
@Setter
public class User {

    private String id;
    private String name;
    private String email;
    private String juso;
    private String phoneNumber;
}

 

@NoArgsConstructor

어떤 변수도 사용하지 않는 기본 생성자를 자동완성해주는 어노테이션이다. 

 

@RequiredArgsConstructor

특정 변수만을 활용하여 생성자를 자동완성해주는 어노테이션이다. 특정 변수를 지정할 경우에는 해당 변수에 @NonNull 어노테이션을 사용하거나 final로 선언하여 사용할 수 있다. 

 

@AllArgsConstructor

모든 변수를 사용하는 생성자를 자동완성해주는 어노테이션이다. 

import lombok.*;

@NoArgsConstructor
@RequiredArgsConstructor
@AllArgsConstructor
public class User {

    private String id;
    
    private String name;
    
    @NonNull
    private String email;
    
    @NonNull
    private String phoneNumber;
}
User user1 = new User();  //@NoArgsConstructor
User user2 = new User("user@gmail.com", "010-1234-5678");  //@RequiredArgsConstructor
User user3 = new User("user", "유저", "user@gmail.com", "010-1234-5678");  //@AllArgsConstructor

 

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 라이프코리아트위터 공유하기
  • shared
  • 카카오스토리 공유하기