빨간색코딩

lombok (롬복의 특징, annotations) 본문

Spring

lombok (롬복의 특징, annotations)

빨간색소년 2018. 2. 25. 22:08

참조문서 : https://projectlombok.org/

1. lombok 을 왜 쓰는가?

모델 Class (VO, DTO, Entity) 를 만들때, 제일 귀찮은 것이 생성자, 접근자, 설정자, toString() 등이라고 한다. 나는 별로 안 귀찮지만...ㅋㅋㅋ 그래도 lombok을 사용하면 @Getter, @Setter 같은 어노테이션만 붙이면 자동으로 해준다하니 알아보고 좋다면 써보자

기존 방식의 문제점

  1. 멤버변수를 제어하기위해 모델객체마다 반복적으로 메소드들을 생성해야 한다.
  2. IDE에서 generate 를 이용해서 편하게 생성할 수 있지만, 변수명이 바뀌면 다시 만들어야한다.

lombok의 특징

  1. 생성자, 접근자, 설정자, toString() 자동생성 라이브러리이므로 위와 같은 번거로움이 없다.
  2. 이외에도 다양한 기능들이 추가로 있다.

2. maven 에서 사용하기

pom.xml 에 추가, 아래는 현재 기준 최신 버전이다.

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.16.20</version>
    <scope>provided</scope>
</dependency>

3. 주로 사용하는 어노테이션

3-1. 접근자와 설정자 @Getter, @Setter

접근자와 설정자를 자동 생성해준다. 멤버변수 위에 선언해주면 된다. 클래스 위에 선언하면 전체 적용

3-2. 생성자

클래스 위에 쓴다.

  • @AllArgsConstructor : 모든 변수로 생성자 생성
  • @RequiredArgsConstructor : final 키워드나 @NonNull 된 멤버변수로만 생성자 생성
  • @NoArgsConstructor : 기본 생성자 생성

3-3. toString()

@ToString 를 사용한다. @ToString(exclude = "password") 처럼 특정 필드를 제외시킬 수도 있다.

3-4. @EqualsAndHashCode

객체 비교 등의 용도로 사용되는 equals(), hashCode() 메소드의 코드를 생성해준다.

3-5. @Data

위에 있는 @Getter, @Setter, @RequiredArgsConstructor, @EqualsAndHashCode, @ToString 같은 걸 한번에 해준다.

3-6. 기타

  • @NonNull : 변수 위에 사용한다, runtime시에 Null Check을 하여 NullPointerException이 발생하도록 한다.


Comments