본문 바로가기
Old Posts/Java

[Java] Project Lombok Annotation

by A6K 2021. 3. 30.

자바의 버전이 올라가면서 간결한 코드 작성을 위한 장치들이 많이 도입되고 있다. 하지만 여전히 자바의 가장 큰 문제점 중 하나로 군더더기가 많은 점이 꼽힌다. '프로젝트 롬복(Project Lombok)'은 자바로 작성된 소스코드를 좀 더 간결하게 만들어주기 위한 프로젝트다.

간단한 클래스를 작성해보자.

public class Student {

    private final int id;

    private final String name;

    private final int age;

    private final String department;

    public Student(int id, String name, int age, String department) {
        this.id = id;
        this.name = name;
        this.age = age;
        this.department = department;
    }
    
    public int getId() {
        return id;
    }

    public String getName() {
        return name;
    }
    
    public int getAge() {
        return age;
    }

    public String getDepartment() {
        return department;
    }
}

Student 클래스에 멤버 변수들이 하나씩 추가될 때마다, 그 멤버 변수의 값을 세팅하거나 읽어오는 Getter / Setter 메소드들이 추가되고, 생성자에도 멤버 변수들을 추가해야한다. 단순히 멤버 변수를 하나 더 추가하기 위해 너무 많은 코드들이 추가된다.

물론 요즘 IDE에서는 자동으로 Getter / Setter 및 생성자 수정을 도와주는 기능이 있어서 매번 코드를 입력하지는 않겠지만 그래도 코드의 양이 많아져 가독성이 떨어진다는 문제가 생긴다. 프로그래머는 이런 세리머니 코드들 말고 비즈니스 로직에 집중해야한다.

프로젝트 롬복은 여기에서부터 시작했다. 롬복 애너테이션을 이용해서 Student 클래스를 다시 정의해보면 다음과 같다.

import lombok.Data;

@Data
public class Student {

    private final int id;

    private final String name;

    private final int age;

    private final String department;
}

클래스 정의 코드 위에 @Data 라는 애너테이션을 추가했을 뿐 별다른 메소드와 생성자가 보이지 않는다. 하지만 프로젝트의 다른 부분에서 Student 객체를 사용할 때, getter 메소드와 생성자를 사용할 수 있다. 개발자가 소스코드 파일에 명시적으로 추가하지는 않았지만 @Data 애너테이션이 자동으로 추가된 메소드를 사용할 수 있게 해준 것이다.

훨씬 가독성이 좋게 코드가 간결해진 것을 알 수 있다.

Maven Dependency

프로젝트 롬복을 사용하기 위해서는 메이븐 dependency를 추가해야한다.

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <!--버전은 상황에 맞게-->
    <version>1.16.10</version> 
</dependency>

Lombok 애너테이션들

프로젝트 롬복(Project Lombok)은 '@Data' 어노테이션 이외에도 다양한 어노테이션들을 지원한다. 하나하나를 나열하기보다는 링크를 따라가서 확인하면 된다. 

링크 :  https://projectlombok.org/features/all

IntelliJ IDEA에서 Lombok Plugin 설치

인텔리J에서 롬복을 사용하기 위해서는 플러그인을 설치해야한다. 애너테이션을 붙여서 Student 코드를 작성했지만 인텔리J의 소스코드 편집기는 냉정하게도 문법 에러를 출력한다.

[Preference] 메뉴를 들어간다. (윈도우 사용자의 경우 File - Setting)

Plugins 메뉴를 선택한다

"Marketplace" 탭을 선택하고, "Lombok"을 검색하면 플러그인을 설치할 수 있는 창이 나온다. Install 버튼을 눌러서 플러그인 설치를 시작한다.

설치가 끝나면 Restart IDE 버튼을 눌러서 IntelliJ를 재시작한다.

편집기가 롬복 애너테이션을 알아주기 시작한다.

댓글