- 이전글 -
lombok 이란 어노테이션 기반으로 코드를 자동완성해주는 라이브러리이다.
lombok을 이용하면 Getter, Setter, Equlas, ToString 등과 다양한 방면의 코드를 자동완성시킬 수 있다.
개발을 하다보면 기계적으로 작성하는 코드들이 상당히 많다.
기계적인 코드들을 자동화하여 코드를 다이어트 해주는 라이브러리가 lombok이다.
오늘은 lombok 라이브러중 @Getter, @Setter, @AllArgsConstructor, @NoArgsConstructor, @RequiredArgsConstructor, @ToString, @Data 어노테이션에 대해 정리하겠다.
코드 다이어트라는 것이 어떤것인지 간단한 예를 들어보겠다.
lombok 적용전
public class Login {
private String id;
private String pw;
public String getId() {
return id;
}
public String setId(String id) {
this.id = id;
}
public String getPw() {
return pw;
}
public String setPw(String pw) {
this.pw = pw;
}
}
getter, setter와 같이 기계적으로 추가해주는 코드들이 상당히 많다.
lombok을 적용시켜 보겠다.
lombok 적용 후
@Getter
@Setter
public class Login {
private String id;
private String pw;
}
소스가 간결해진 것을 확인할 수 있다. class에 변수가 많으면 많을수록 코드는 간결해진다.
[ @Getter, @Setter ]
lombok에서 가장 많이 사용되는 어노테이션이다.
@Getter, @Setter를 클래스에 적용하게 되면 모든 변수들에 적용이 가능하고, 변수에 적용하게 되면 해당 변수만 적용된다.
@Getter
public class User {
private String id; //아이디
@Setter
private String pw; //비밀번호
private String jumin; //주민번호
@Setter
private String accessTime; //접속시간
}
다음과 같은 객체가 있다면 id, jumin 변수에는 getter만 사용할 수 있고 pw, accessTime 변수는 getter/setter를 사용 할 수 있다.
[ @AllArgsConstructor ]
@AllArgsConstructor는 모든 변수를 사용하는 생성자를 자동완성시켜주는 어노테이션이다.
@Getter
@AllArgsConstructor
public class User {
private String id; //아이디
private String pw; //비밀번호
private String jumin; //주민번호
private String accessTime; //접속시간
/*
AllArgsConstructor 어노테이션을 사용하여 생성자를 자동으로 생성할 수 있다.
public User (String id, String pw, String jumin, String accessTime){
this.id = id;
this.pw = pw;
this.jumin = jumin;
this.accessTime = accessTime;
}
*/
}
[ @NoArgsConstructor ]
@NoArgsConstructor는 기본 생성자를 자동완성시켜주는 어노테이션이다.
@Getter
@NoArgsConstructor
public class User {
private String id; //아이디
private String pw; //비밀번호
private String jumin; //주민번호
private String accessTime; //접속시간
/*
NoArgsConstructor 어노테이션을 사용하여 기본 생성자를 자동으로 생성할 수 있다.
public User (){
}
*/
}
[ @RequiredArgsConstructor ]
@RequiredArgsConstructor는 특정 변수만 활용하는 생성자를 자동 생성해주는 어노테이션이다.
생성자의 인자로 추가하는 방법으로는 @NonNull어노테이션과 변수를 final로 선언하는 두 가지 방법이 있다.
@Getter
@RequiredArgsConstructor
public class User {
@NonNull
private String id; //아이디
@NonNull
private String pw; //비밀번호
private final String jumin; //주민번호
private String accessTime; //접속시간
/*
RequiredArgsConstructor 어노테이션을 사용하여 생성자를 자동으로 생성할 수 있다.
public User (String id, String pw, String jumin){
this.id = id;
this.pw = pw;
this.jumin = jumin;
}
*/
}
[ @ToString ]
@ToString 어노테이션을 활용하면 ToString 메소드를 자동 생성해준다.
출력을 원하지 않는 변수에는 @ToString Exclude를 선언한다.
@Getter
@ToString
public class User {
private String id; //아이디
@ToString.Exclude
private String pw; //비밀번호
@ToString.Exclude
private String jumin; //주민번호
private String accessTime; //접속시간
}
[ @Data ]
@Data 어노테이션은 @ToString, @EqualsAndHashCode, @Getter, @Setter,@RequiredArgsConstructor를 자동완성시켜준다.
@Data 어노테이션은 사용을 지양한다.
모든 변수에 @Setter가 적용된다면 변경되면 안돼는 변수들을 수정할 수 있기 때문이다.
lombok @Builder
[Spring Boot/lombok] - lombok @Builder (점층적 생성자 패턴, 자바 빈즈 패턴, 빌더 패턴)
lombok @Builder (점층적 생성자 패턴, 자바 빈즈 패턴, 빌더 패턴) (0) | 2021.09.18 |
---|---|
eclipse(STS)에 lombok 설치 (0) | 2021.09.16 |
댓글 영역