본문 바로가기

IT관련 정보

lombok을 이용해 코드의 반복을 줄이고 생산성 높이기

평소 자바쪽 개발을 하다보면, 반복적으로 작성되는 게터(getter), 세터(setter), equals, hashCode, toString 등의 메서드들이 많은 시간을 차지하게 되는데 기본적으로 생성하는 기능을 제공하긴 하지만 코드가 더러워지는건 어쩔수가 없다.

그런데 롬복(Lombok)을 사용하면 코드를 길게 쓰지않고도 간결하게 작성할 수 있다.

 

 

롬복은 자바 소스 코드에 어노테이션을 추가함으로써, 컴파일 시점에 자동으로 반복적인 코드를 생성해주는 라이브러리다

우선 롬복을 사용하기 위해서는 vscode기준  extensions에서 lombok을 설치하고

build.gradle에 의존성을 추가해야 한다.

implementation 'org.projectlombok:lombok:1.18.22'

이런식으로 추가하면 된다.

 

 

이제 롬복의 주요 기능에 대해 알아보자

1. @Getter, @Setter

import lombok.Getter;
import lombok.Setter;

@Getter
@Setter
public class A 
{
    private String aa;
    private String bb;
}

이렇게 위에 어노테이션을 써주면 자동으로 게터 세터가 생성되어 귀찮게 직접 작성하지 않아도 된다.

2. @ToString

import lombok.ToString;

@ToString
public class To 
{
    private String A;
    private String B;
}

@ToString 어노테이션을 작성하면 toString()메서드가 자동으로 생성된다.

 

3. @NoArgsConstructor

import lombok.NoArgsConstructor;

@NoArgsConstructor
public class no {
    private String A;
    private String B;
}

@NoArgsConstructor를 사용하면 파라미터가 없는 생성자가 생성된다.

 

@Data어노테이션은 getter,setter,toString,equals,hashCode의 기능을 생성해준다.

public class User 
{


    
    private String username;
    private String password;

    
    public User() {}


    public String getUsername() {
        return this.username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return this.password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

}

만약 이러한 코드가 있을때 @Data를 사용하면 

 

import lombok.Data;

@Data
public class User 
{
    private String username;
    private String password;

}

이렇게 깔끔하게 바뀐다.

 

결론적으로 롬복은 개발할때 참 편하지만 하지만 너무 남용하지 않는 것이 좋다.