Java Lombok 개요

Lombok이란?

  • 어노테이션을 선언하면, getter, setter, toString, equals등의 “반복적으로 작성하는 코드"를 컴파일시에 자동 생성해 준다.
  • 하지만 Getter, Setter 자동 생성은 함부로 하게 되면, 객체 지향을 파괴하는 것이기도 하다.
  • 그러기에 사용하고 있는 프레임워크에서 Getter, Setter를 필요로 하기에 어쩔 수 없는 상황인 경우가 아니라면 사용해서는 안되지 않을까?

환경 설정

Lombok은 툴에 따라, 따로 플러그인을 설치하거나 설정이 있어야 한다. 인텔리제이 IDEA 최근 버전 같은 경우에는 따로 플러그인은 설치하지 않고, 설정만 해도 구동이 된다. 각 툴마다 설치 방법은 검색해서 찾아 설정 바란다.

Hello World

build.gradle를 아래와 같이 작성한다.

plugins {
    id 'java'
}

group 'com.devkuma'
version '1.0-SNAPSHOT'

repositories {
    mavenCentral()
}

dependencies {
    testCompile group: 'junit', name: 'junit', version: '4.12'

    compileOnly 'org.projectlombok:lombok:1.18.20'
    annotationProcessor 'org.projectlombok:lombok:1.18.20'

    testCompileOnly 'org.projectlombok:lombok:1.18.20'
    testAnnotationProcessor 'org.projectlombok:lombok:1.18.20'
}

HelloLombokTutorial.java 파일을 생성하여 코드를 아래과 같이 작성한다.

package com.devkuma.tutorial.lombok;

import lombok.Data;

@Data
public class HelloLombokTutorial {

    private String string;
    private int number;
    
    public static void main(String[] args) {
        HelloLombokTutorial tutorial = new HelloLombokTutorial();

        tutorial.setString("Hello Lombok!!");
        tutorial.setNumber(999);

        System.out.println(tutorial);
    }
}

실행결과

Main(string=Hello Lombok!!, number=999)
  • 클래스에 @Data 어노테이션을 선언하여 getter, setter, toString등의 메소드가 자동으로 생성되었다.
  • Lombok 자체는 컴파일시에만 사용하기 때문에 종속 범위는 compileOnly으로 한다.

참조




최종 수정 : 2024-01-18