[Spring] Lombok 정리

장성준·2024년 1월 25일
1

Spring

목록 보기
1/5
post-thumbnail

Lombok

Lombok은 어노테이션 기반으로 클래스에 코드를 추가해주는 라이브러리입니다.
반복적으로 작성하는 코드의 양을 줄여주어 간결한 코드를 작성하는데 도움을 줍니다.

적용

build.gradle

compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
testCompileOnly 'org.projectlombok:lombok' // 테스트 코드에서 사용하려면 추가
testAnnotationProcessor 'org.projectlombok:lombok' // 테스트 코드에서 사용하려면 추가

plugin

file -> setting -> plugins

Annotation processing 활성화

Enable annotation processing 체크

사용

@Getter

해당 필드들의 Getter 함수를 자동으로 생성해줍니다.

@Setter

해당 필드들의 Setter 함수를 자동으로 생성해줍니다.

@NoArgsConstructor
@NoArgsConstructor(access = AccessLevel.PROTECTED) : Entitiy 작성 시 많이 사용합니다.

기본 생성자를 자동으로 생성해줍니다.

@AllArgsConstructor

모든 필드가 들어가는 Constructor를 자동으로 생성해줍니다.

@RequiredArgsConstructor

final 필드가 들어가는 Constructor를 자동으로 생성해줍니다.
의존성을 주입받을때 많이 사용합니다.

@ToString
@ToString(of = {"id", "username", "age"}) : 다음과 같이 특정 필드만 출력할 수도 있습니다.

toString()을 자동으로 생성해줍니다.
양방향 매핑 관계의 경우 무한 순환 참조가 발생할 수 있으니 주의하셔야합니다.

@EqualsAndHashCode

equals(), hashCode() 메소드를 자동으로 생성해줍니다.

@Data

@Getter, @Setter, @RequiredArgsConstructor, @ToString, @EqualsAndHashCode를 자동으로 생성해줍니다.
김영한님은 Form이나 DTO에서 해당 어노테이션 사용을 추천하고 있습니다.

@Builder

빌더 패턴을 자동으로 생성해주는 기능을 제공합니다.
김영한님은 사용하지 않으셨지만 여러 깃헙 소스에서 많이 사용되는 것 같아 추가하였습니다.
주로 생성자에 어노테이션을 추가한 후 인스턴스를 생성할때 다음과 같은 방식으로 사용합니다.

Person person = Person.builder()
    .firstName("John")
    .lastName("Doe")
    .age(30)
    .address("123 Main Street")
    .build();
profile
Backend Engineer

0개의 댓글