Notice
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
01-10 04:46
Today
Total
관리 메뉴

그날그날 공부기록

lombok(롬복) 설치 & 적용하기 본문

Spring 공부

lombok(롬복) 설치 & 적용하기

given_dragon 2022. 8. 2. 11:44

 

롬복을 사용하면 생성자나 getter, setter 같은 메서드를 자동으로 작성해준다!

프로젝트를 생성할 때 롬복을 적용했다면 바로 사용 가능하지만 그렇지 않을 경우 직접 추가해야 한다.


롬복 적용하기

build.gradle에 롬복을 추가해 준다.

  1. 제일 바깥쪽에 롬복 설정 코드를 추가한다.
configurations {
    compileOnly {
        extendsFrom annotationProcessor
    }
}
  1. dependencies 안에 롬복 라이브러리를 추가한다.
dependencies {
    ...

    //lombok 라이브러리 추가 시작
    compileOnly 'org.projectlombok:lombok'
    annotationProcessor 'org.projectlombok:lombok'
    testCompileOnly 'org.projectlombok:lombok'
    testAnnotationProcessor 'org.projectlombok:lombok'
    //lombok 라이브러리 추가 끝

    ...    

}
  1. 롬복 설치

Intellij에서 롬복을 처음 사용한다면 설치를 해주어야 한다.

맥북 기준으로 preference(⌘+,) → plugin → lombok 검색 후 설치

체크표시가 되었다면 설치 완료

 

롬복을 설치했다면 preference에서 Annotation Processors를 검색 → Enable annotation processing을 체크해준다.


설치를 마치고 사용해보았다.

public class Member {
    private Long id;
    private String name;
    private Grade grade;

    public Member(Long id, String name, Grade grade) {
        this.id = id;
        this.name = name;
        this.grade = grade;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Grade getGrade() {
        return grade;
    }

    public void setGrade(Grade grade) {
        this.grade = grade;
    }
}

이렇게 getter와 setter가 많아 코드가 길고 헷갈리지만 롬복을 사용하면 다음과 같이 줄어든다.

@Getter
@Setter
public class Member {
    private Long id;
    private String name;
    private Grade grade;

    public Member(Long id, String name, Grade grade) {
        this.id = id;
        this.name = name;
        this.grade = grade;
    }    
}

@Getter, @Setter만 적어주면 자동으로 생성된다. ⌘+F12로 확인해보면 메서드가 생성된 것을 확인할 수 있다.

public으로 알아서 생성되었다!

 


@RequiredArgsConstructor로 final이 붙은 필드를 모아 자동으로 생성자를 추가할 수 있다.

스프링은 생성자가 하나만 있을 경우 @Autowired를 생략할 수 있기 때문에 유용하다.

@Component
@RequiredArgsConstructor
public class OrderServiceImpl implements OrderService{

    private final MemberRepository memberRepository;
    private final DiscountPolicy discountPolicy;

//    @Autowired
//    public OrderServiceImpl(MemberRepository memberRepository, DiscountPolicy discountPolicy){
//        this.memberRepository = memberRepository;
//        this.discountPolicy = discountPolicy;
//    }
}

@RequiredArgsConstructor를 적고 생성자를 주석처리하였다.

⌘+F12로 메서드를 확인해보면 생성자가 존재하는 걸 확인할 수 있다.


정리

롬복은 자바의 Annotation Processor를 사용해서 컴파일 시점에 코드를 추가해준다.

반복적인 코드를 작성할 필요가 없고 코드의 길이가 줄어들어 눈에 훨씬 잘 들어온다.

기능을 좀 더 잘 사용할 수 있게 나중에 추가로 더 알아봐야겠다.

 

 

 


출처

 

스프링 핵심 원리 - 기본편 - 인프런 | 강의

스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다., - 강의 소개 | 인프런...

www.inflearn.com

 

Comments