반응형


출처 : [ 이 글은

코드로 배우는 스프링 웹 프로젝트 

http://wonwoo.ml/index.php/post/1607

http://www.daleseo.com/lombok-popular-annotations

에서 참고하여 작성된 글입니다. ]


[ 코드로 배우는 스프링 웹 프로젝트 ]

이 책을 통해 Lombok에 대해서 알게되었다

 

Lombok을 이용하면 Java 개발 시 자주 사용하는 getter/setter, toString(), constructor 등을 자동으로 생성해 주므로 약간의 코드만으로도 필요한 클래스를 설계할 때 유용하다Lombok은 라이브러리에서 제공하는 어노테이션으로 코드에 적용할 수 있다.


먼저 Lombok 라이브러리 설치 방법부터 알아보자.

Lombok 다운로드는 http://projectlombok.org/download 에서 jar 파일 형태로 다운 받을 수 있다.


2018년 10월 현재 Lombok버전은 1.18.2 버전을 다운로드 할 수 있다.

다운받은 파일을 실행 시키면..


Lombok 설치 프로그램이 실행된다. default로 eclipse 경로가 잡혀있는데 STS에 설치하고 싶은 경우 Specify location... 을 클릭해서 STS가 설치되어있는 경로를 잡아주면 된다.


STS경로를 잡아주고 Install / Update 클릭Quit Installer 클릭

만일 Lombock을 설치한 후 바탕화면의 이클립스(STS) 바로가기가 정상적으로 동작하지 않는다면..

1. 이클립스가 설치된 경로에서 제대로 실행되는지 확인

2. 바탕화면의 바로가기 삭제 후 다시 생성

위의 과정을 수행한다면 문제없이 실행될 것이다.



그럼 Lombok 어노테이션에 대해서 하나씩 알아보자.


@Getter / @Setter

이름 그대로 getter와 setter를 생성해준다. 가장 많이 사용되는 어노테이션 중 하나이다.

1
2
@Getter @Setter
private String name;
cs

이처럼 필드에 어노테이션을 붙여주면, getter와 setter를 자동으로 생성해준다. 속성으로 value, onMethod 속성이 존재한다.

value의 경우 AccessLevel(접근제어) 지정을 통해서 접근 레벨을 제한할 수 있다.(PUBLIC, PROTECTED, PACKAGE, PRIVATE)

@Getter(value = AccessLevel.PRIVATE), @Setter(value = AccessLevel,PUBLIC)



@XXXArgsConstructor

생성자를 생성해주는 어노테이션이다. 3가지 종류가 있는데..

1. @NoArgsConstructor : 디폴트 생성자(파라미터가 없는 생성자)를 생성해주는 어노테이션

2. @AllArgsConstructor : 모든 필드의 생성자(파라미터로 받는)를 생성해주는 어노테이션

3. @RequiredArgsConstructor : 필수 생성자를 생성해주는 어노테이션



@EqualsAndHashCode

@EqualsAndHashCode 어노테이션은 hashcode와 equals를 생성해주는 어노테이션이다.

공통 속성으로 exclude, of, callSuper, doNotUseGetters가 존재한다.


@ToString

@ToString 어노테이션은 toString() 메서드를 생성해주는 어노테이션이다.

@EqualsAndHashCode와 마찬가지로 공통 속성으로 excludeofcallSuperdoNotUseGetters가 존재한다.


@EqualsAndHashCode / @ToString 공통 속성

▶ exclude : 제외시킬 변수명을 작성 → @EqualsAndHashCode(exclude={"field1", "field2"})

▶ of : 포함시킬 변수명을 작성 → @EqualsAndHashCode(of = "id")

▶ callSuper : 상위 클래스의 호출 여부를 묻는 속성 → @EqualsAndHashCode(callSuper = true)

▶ doNotUseGetters : getter 사용여부 확인(..?)


@Data

@Data@Getter, @Setter, @XXXArgsConstructor, @ToString, @EqualsAndHashCode 을 한꺼번에 설정해주는 어노테이션이다.

1
2
3
4
@Data
public class Test{
 
}
cs

클래스 레벨에 @Data어노테이션을 붙여주면 모든 필드를 대상으로 접근자와 설정자가 자동으로 생성된다.

final로 지정됐거나, @NonMull로 명시된 필드에 대한 값을 받는 생성자 메소드 코드를 생성한다.



[ 실습하면서 글 작성중이므로 변경사항이 있을 때마다 수정하겠습니다. ]

반응형

+ Recent posts