⏰ 2024. 06. 10 월
✔ 스프링 이론 강의를 듣고 정리하면서 작성했습니다.
Lombok
라이브러리
이다.Maven
이나 Gradle
과 같은 의존성 관리 도구를 통해 프로젝트에 간단히 추가할 수 있다.코드의 간결성
: Lombok을 사용하면 Getter, Setter, Equals, HashCode 등과 같은 반복적이고 번거로운 작업을 자동화하여 코드를 훨씬 간결하게 작성할 수 있다.
생산성 향상
: Lombok은 반복적이고 일상적인 작업을 자동화하여 개발자가 보다 중요한 로직에 집중할 수 있도록 하기 때문에 개발 작업의 생산성을 향상시킨다.
유지보수 용이성
: Lombok을 사용하면 코드 중복을 줄이고 읽기 쉽고 유지보수하기 쉽다.
IDE 의존성
: Lombok은 IDE(통합 개발 환경)에 대한 의존성이 있어 Lombok을 사용하는 개발자는 이를 설치하고 구성해야 한다. 때로는 IDE 설정에 따라 Lombok이 원활하게 작동하지 않을 수도 있다.
코드 가독성 감소
: Lombok을 남용하면 코드의 가독성이 감소할 수 있고, Lombok 어노테이션을 과도하게 사용하면 클래스나 메서드의 의도가 명확하지 않게 될 수 있다.
메타 프로그래밍 부작용
: Lombok은 메타 프로그래밍 기술을 사용하여 코드를 생성하기 때문에 예상하지 못한 부작용을 일으킬 수 있다. 따라서 Lombok을 사용할 때에는 신중하고 꼭 필요한 부분에서 사용해야 한다.
@Getter
와 @Setter
를 클래스 이름 위에 적용시키면 모든 필드들에 적용이 가능하고, 개별 필드 이름 위에 적용시키면 해당 필드들만 적용 가능하다.생성자
를 자동완성 시켜주는 어노테이션이다.기본 생성자
를 자동완성 시켜주는 어노테이션이다.@NonNull
어노테이션을 붙인 필드와 final
로 선언된 필드에 의존성을 주입한다.equals
메서드와 hashCode
메서드를 자동으로 생성한다.@EqualsAndHashCode(of = {"a", "b"})
로 설정하여 필드 a
와 b
가 동일하다면 같은 객체로 인식하도록 한다.callSuper = false
를 추가하면 된다.@EqualsAndHashCode(of = {"a", "b"}, callSuper = false)
ToString
메서드를 자동으로 완성시켜 준다.@ToString.Exclude
어노테이션을 붙여주면 출력을 제외할 수 있다.toString
을 적용시키고자 한다면 어노테이션 속성으로@ToString(callSuper = true)
를 적용하면 된다.@ToString
, @EqualsAndHashCode
, @Getter
, @Setter
, @RequiredArgsConstructor
를 자동완성 시켜준다.@Data
어노테이션은 너무 무겁고 객체의 안정성을 지키기 어렵기 때문에 @Data
의 사용을 지양한다.build
하기를 원한다면 클래스 위에 @Builder
를 붙이면 되고, 특정 필드 만을 build
하기 원한다면 생성자를 작성하고 그 위에 @Builder
어노테이션을 붙여주면 된다.log.log메서드();
를 통해 로그를 작성할 수 있다.log.error("Error");