hoonii2

[SpringBoot] 05. Lombok 본문

개념 공부/(개발) 02. Spring Boot

[SpringBoot] 05. Lombok

hoonii2 2023. 2. 3. 17:57

1. Lombok ?

 - Project Lombok은 편집기 및 빌드 도구에 자동으로 연결되어 Java를 향상시키는 Java 라이브러리
 - 다른 getter 또는 equals 메소드를 다시 작성하지 않고 하나의 Annotation 으로 클래스에 완전한 기능을 갖춘 빌더, 로깅 변수 자동화 등이 가능

 

 

2. 대표적인 2가지

 1) @Data

  : @Getter + @Setter + @RequiredArgsConstructor + @ToString + @EqualsAndHashCode
   //
RequiredArgsConstructor -> 필수적인 인자를 받아야하도록 생성자를 만들어준다

  : 필수적인 인자란 ? -> "final" 필드 들임 ,, SpringBoot 에선 Bean 연결할 사용한다 )

  : 개발자가 의도하지 않은 기능이 들어갈 있어서 사용을 지양한다

 

 2) @Value

  : 불변 객체 생성 사용

  : @Getter + @FieldDefaults(makeFinal=true, level=AccessLevel.PRIVATE) + @AllArgsConstructor + @ToString + @EqualsAndHashCode   // @FieldDefault -> 모든 필드를 자동값으로 Final 하고 private 하게 만들어준다

 

 

3. 단점

  1. 각종 예상치 못한 동작
  2. 과도한 어노테이션 , 관례 기반 코드 스타일 : 동작 예측이 어렵다
  3. 명시적이고 테스트가 쉬운 코드로 회귀하려하다
  4. 롬북에서 해방하려는 분위기

 

4. 촤신 기술 동향

 1) Kotlin : data class 등장

 2) Java 14 : record 등장

 

Comments