Which One Is Better Choice Lombok Library or Record Classes In Spring Boot Application -2024
Medium
스프링 부트 애플리케이션인 lombok과 자바 14에서 출시된 새로운 기능인 record 클래스, 두 가지를 비교해 봅시다.
Project Lombok
Lombok은 에디터와 빌드 도구에 자동으로 연결되어 자바 개발 속도를 높여주는 자바 라이브러리입니다. getter와 equals 메서드를 작성할 필요가 없습니다. 어노테이션 하나만 추가하면 완전한 기능을 추가할 수 있으니까요.
Record Classes in JAVA14
Recrod는 자바 14에서 보일러플레이트 코드를 제거하기 위해 새롭게 추가된 클래스입니다.
Record 클래스는 클래스를 단순한 데이터 전달자로 사용하고 싶을 때 권장되는 방법입니다.
빌더 패턴
빌더 패턴은 객체를 만들 때 좋은 선택입니다. Lombok은 @Builder 어노테이션으로 쉽게 만들 수 있어 빌더 패턴을 지원합니다. Record는 그런 것들을 제공하지 않습니다.
빈 컨벤션
getX(...) setX(...)와 같은 메서드를 자주 사용하시죠? Record를 사용하면 더 이상 getter/setter 보일러 플레이트 코드를 생성하지 않아도 됩니다. 반면 Lombok을 사용하면 @Getter/@Setter 어노테이션을 추가한 후 getter/setter 메서드를 사용할 수 있습니다.
상속
현재 Record 클래스는 직접 상속을 지원하지 않지만 Lombok은 어노테이션의 도움을 받아 수행할 수 있습니다.
결론
Record는 보일러 플레이트 코드를 원하지 않고 더 깨끗한 코드를 만들고 싶을 때 좋은 선택이 될 수 있습니다.
하지만 빌더와 같은 더 많은 옵션을 사용하고 싶다면 Lombok이 승자입니다.
번역: [https://ducktopia.tistory.com/106]
원문:
다음 내용이 궁금하다면?
이미 회원이신가요?
2024년 2월 19일 오후 1:01
좋은 글 잘 읽었습니다. 저도 비슷하게 판단하는데 추가적으로 몇가지의 의견 나누고 싶습니다. Record를 사용할 때는 데이터 중심적인 접근 방식을 취해야 하는데, 이는 우리가 지난 20년 정도 동안 익숙해진 POJO에서 상당히 벗어난 것입니다. Getter/Setter 2024년에 정말로 아직도 필요할까 싶습니다. 제 개인적인 생각에 Setter/Getter의 필요성 하나로 Lombok같은 라이브러리를 사용하는것은 너무 큰 부담됩니다. 게다가 Lombok은 기본적으로 컴파일 오류가 있는 불완전한 코드를 생성하며, 이는 런타임에서만 수정됩니다. 저는 그것이 여전히 조금 무섭다고 생각합니다. 😅
잘 읽었습니다. 코틀린으로 가시죠!
record 코틀린 data class 참고 한거 아닐까요?
@최광성 c# record 그대로 가져온듯해요