Super Kawaii Cute Cat Kaoani Lombok (롬복)이란?

Lombok (롬복)이란?

2024. 2. 4. 00:23
728x90
SMALL

 

📌 Lombok이란 

  • @Getter, @Setter 등 여러 어노테이션을 제공하고 반복되는 코드를 간편하게 줄여주는 라이브러리이다.
  • 대표적인 예제 : Getter, Setter, ToString, Constructor(생성자)

 

📌 Lombok의 장점

  • 복잡하고 반복되는 코드를 어노테이션 기반의 코드 자동 생성으로 생산성이 향상된다.
  • 반복되는 코드가 줄어들어 가독성 및 유지보수성을 향상시킬 수 있습니다.

 

📌 Lombok의 단점

  • 직관성을 중요시하는 개발자에겐 코드가 직접 눈에 보이지 않아 별로일 수 있다.
반응형

📌  Lombok 사용과 일반 java 코드의 차이

 getter/setter

  • 직접 작성
public class MemberDto {
	private String id;
	private String password;
	private String username;
	private String email;
	
	
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}
}
  • Lombok의 getter / setter 어노테이션을 사용
@Getter
@Setter
public class MemberDto {
	private String id;
	private String password;
	private String username;
	private String email;
}

 

728x90

 

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

  • @Getter : code가 컴파일 될 때 getter 메서드들을 생성, 속성 @Getter(lazy = true) 사용시 최초 한번만 Getter 호출. 이후 캐시된 값을 사용
  • @Setter : code가 컴파일 될 때 setter 메서드들을 생성
  • @ToString : toString() 메서드를 생성
  • @Data : Getter, Setter, RequiredArgsConstructor, ToString, EqualsAndHashCode를 한번에 설정해주는 어노테이션으로 실무에서는 너무 무겁고 객체의 안정성을 지키기 때문에 @Data의 활용을 지양합니다.
  • @Builder : 자동으로 해당 클래스에 빌더를 추가해줍니다.
  • @NorgsConstructor : 파라미터가 없는 기본 생성자를 만들어줍니다.
  • @AllArgsConstructor : 모든 필드 값을 파라미터로 받는 생성자를 만들어줍니다.
  • @RequiredArgsConstructor : final이나 @NonNull 인 필드 값만 파라미터로 받는 생성자를 만들어줍니다.
  • @EqualsAndHashCode : equals와 hashcode를 자동으로 생성해주는 어노테이션입니다.
  • @Log, @Log4j, @Slf4J : 로그 기능을 사용 가능
  • @Value : 불변 클래스를(Immutable Class) 생성,  모든 필드를 Private, Final 로 설정하고, Setter를 생성하지 않음(상수로 만든다.)

 

 

SMALL

 

728x90
LIST

BELATED ARTICLES

more