사전 준비 | Lombok

Faithful Dev·2025년 2월 25일

스프링 프레임워크

목록 보기
14/20

Lombok은 자바 개발에서 반복적인 코드를 줄여주는 라이브러리이다. 주로 Spring Framework와 함께 많이 사용되며, 어노테이션을 통해 자주 사용하는 코드(예: getter, setter, toString, equals, hashCode, 생성자 등)를 자동으로 생성해 준다. 이렇게 하면 코드를 더 간결하게 유지하면서 생산성을 높일 수 있다.


주요 어노테이션

@Getter / @Setter

  • 각각 필드에 대한 gettersetter 메서드를 자동으로 생성해준다.
import lombok.Getter;
import lombok.Setter;

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

위 코드는 getName(), setName(), getAge(), setAge() 메서드를 자동으로 생성한다.


@ToString

  • 클래스의 필드를 기반으로 한 toString() 메서드를 자동으로 생성한다.
import lombok.ToString;

@ToString
public class User {
	private String name;
    private int age;
}

출력 예시: User(name=John, age=25)


@NoArgsConstructor / @AllArgsConstructor / @RequiredArgsConstructor

  • 생성자를 자동으로 생성해준다.
    • @NoArgsConstructor: 매개변수가 없는 기본 생성자 생성
    • @AllArgsConstructor: 모든 필드를 매개변수로 받는 생성자 생성
    • @RequiredArgsConstructor: final이나 NonNull이 붙은 필드만 초기화하는 생성자 생성
import lombok.AllArgsConstructor;
import lombok.NoArgsConstructor;

@NoArgsConstructor
@AllArgsConstructor
public class User {
	private String name;
    private int age;
}

@Data

  • @Getter, @Setter, @ToString, @EqualsAndHashCode, @RequiredArgsConstructor가 포함된 종합 어노테이션이다.
import lombok.data;

@Data
public class User {
	private String name;
    private int age;
}

대부분의 일반적인 메서드가 자동으로 생성되므로 간편하게 사용할 수 있다.


@Builder

  • 빌더 패턴을 쉽게 사용할 수 있도록 도와준다.
import lombok.Builder;

@Builder
public class User {
	private String name;
    private int age;
}

사용 예시:

User user = User.builder()
				.name("John")
                .age(25)
                .build();

@Slf4j

  • 로깅 관련 어노테이션으로, log.info(), log.debug() 등을 사용할 수 있게 한다.
import lombok.extern.slf4j.Slf4j;

@Slf4j
public class LoggerExample {
	public void doSomething() {
    	log.info("Logging example with Lombok!");
	}
}

장점

  • 반복적인 코드를 줄여 가독성을 높임
  • 생산성 향상
  • 코드 유지보수가 쉬움

주의할 점

  • IDE 지원: 일부 IDE(특히 IntelliJ)에서는 Lombok 플러그인을 따로 설치해야 한다.
  • 명시성 부족: 자동 생성된 메서드가 코드에 명시적으로 나타나지 않기 때문에, 다른 개발자들이 코드를 처음 볼 때 헷갈릴 수 있다.
  • 디버깅: 런타임에서 자동 생성된 코드를 디버깅하기 어렵다.
profile
Turning Vision into Reality.

0개의 댓글