본문으로 바로가기

[Spring] 롬복(Lombok)

category Programming/Spring 2021. 1. 21. 21:42

롬복이란?

자바에서 Model(DTO, VO, Domain) Object 를 만들때, 멤버필드(프로퍼티)에 대한 Getter/Setter, ToString() 등과 멤버필드에 주입하는 생성자(Argument가 없는 생성자, 있는 생성자)를 만드는 코드 등 불필요하게 반복적으로 만드는 코드를 어노테이션을 통해 줄여 주는 라이브러리

롬복의 특징

  • 위의 설명과 같이 어노테이션을 통해 필요 함수들을 자동으로 생성
  • 생성된 메서드는 호출이 가능하나 눈에 보이지 않는다
  • 기존 IDE에서 자동으로 생성해주는 기능은 있었으나 변수명 변경 시 관련 함수도 모두 변경해야하는데 이런 수고가 없어짐

롬복사용의 주의점

  • 롬복사용 시 자동생성되는 toString() 같은 메서드 무한 재귀 함수 호출로 인해 StackOverflowError 발생 가능

롬복 라이브러리 설치 (Intellij)

1) file 의 Settings 를 실행

2) 검색에 plugin를 검색한 후 plugin 검색에 lombok를 검색하여 설치 후 annotion을 검색해 Annotation ProcessorsEnable annotation processing 을 체크

3) 마지막으로 프로젝트의 build.gradle 에 롬복 dependencies 를 설정

- compile 'org.projectlombok:lombok:1.18.10'
- annotationProcessor 'org.projectlombok:lombok:1.18.10'

롬복 사용방법

package com.example.study.model.entity;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.persistence.*;
import java.time.LocalDateTime;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {

    private Long id;

    private String account;

    private String email;

    private String phoneNumber;

    private LocalDateTime createdAt;

    private String createdBy;

    private LocalDateTime updatedAt;

    private String updatedBy;


}
  • @Data : 각 변수들에 해당하는 getter/setter 를 자동생성
  • @AllArgsConstructor : 모든 Argument를 받는 생성자를 자동생성
  • @NoArgsConstructor : Argument가 하나도 없는 생성자를 자동생성

롬복 사용 후

  • 아래 사진처럼 코드에는 메서드가 없지만 자동생성된 것을 볼 수 있음 ( 사진은 나중에 캡쳐 한 것으로 위 코드랑 조금 상이 )