Lombok 롬복이란?

SangWoo·2022년 5월 14일
1

Lombok

목록 보기
2/2

Lombok 롬복이란?

Lombok은 여러가지 @어노테이션을 제공하고 컴파일 과정에서 자동으로 개발자가 원하는 메소드를 생성/주입 방식으로 동작하는 라이브러리입니다.


Lombok 롬복의 기능

  • Lombok의 기능은 model 클래스나 Entity 같은 도메인 클래스 등에 반복되는 getter, setter, toString 등의 메소드를 자동으로 만들어주는 기능을 합니다.

Lombok 롬복의 장점

  • Lombok은 복잡하고 반복되는 코드를 어노테이션 기반의 코드 자동생성으로 생산성이 향상되고 코드가 축소되어 가독성 및 유지보수성을 높일 수 있습니다.

Lombok 롬복의 단점

  • 코드가 직접 눈에 보이는게 아니므로 직관성이 떨어질수 있습니다.

Lombok 롬복 toString 어노테이션 사용 전/후

  • Lombok 사용전 HomeController 실행시 해쉬코드가 찍히는걸 확인 할수 있습니다.

  • Lombok의 toString 어노테이션을 사용하면 컴파일 과정에서 자동으로 toString을 생성해줍니다.

  • 아웃라인을 보시면 toString 어노테이션을 붙인것 만으로도 생성하지 않은 toString 메소드가 컴파일 과정에서 추가 된걸 확인할수 있습니다.

Lombok 롬복의 getter / setter 어노테이션 사용 전 / 후

  • 직접 getter / setter 를 작성해 주었을때
public class UserDto {
	private String id;
	private String pwd;
	private String name;
	private String email;
	private Date birth;
	private String sns;
	private Date reg_date;
	
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getPwd() {
		return pwd;
	}
	public void setPwd(String pwd) {
		this.pwd = pwd;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}
	public Date getBirth() {
		return birth;
	}
	public void setBirth(Date birth) {
		this.birth = birth;
	}
	public String getSns() {
		return sns;
	}
	public void setSns(String sns) {
		this.sns = sns;
	}
	public Date getReg_date() {
		return reg_date;
	}
	public void setReg_date(Date reg_date) {
		this.reg_date = reg_date;
	}
}
  • Lombok의 getter / setter 어노테이션을 사용했을때
@Getter
@Setter
public class UserDto {
	private String id;
	private String pwd;
	private String name;
	private String email;
	private Date birth;
	private String sns;
	private Date reg_date;
}
  • 위와 아래의 코드양을 보아도 Lombok을 활용하면 생산성과 유지보수 및 가독성을 높일수있는것을 확인할 수 있습니다.

자주 사용되는 Lombok 어노테이션

  • @NorgsConstructor : 파라미터가 없는 기본 생성자를 만들어줍니다.

  • @AllArgsConstructor : 모든 필드 값을 파라미터로 받는 생성자를 만들어줍니다.

  • @RequiredArgsConstructor : final이나 @NonNull 인 필드 값만 파라미터로 받는 생성자를 만들어줍니다.

  • @EqualsAndHashCode : equals와 hashcode를 자동으로 생성해주는 어노테이션입니다.

  • @Data는 위에서 설명한 Getter, Setter, RequiredArgsConstructor, ToString, EqualsAndHashCode를 한번에 설정해주는 어노테이션으로 실무에서는 너무 무겁고 객체의 안정성을 지키기 때문에 @Data의 활용을 지양합니다.

  • @Builder : 자동으로 해당 클래스에 빌더를 추가해줍니다.

0개의 댓글