logo

[Spring] JPA Entity에서 @AllArgsConstructor, @Setter사용하지 않고 @Builder 잘 사용해보자!

language-logoSpring

• JPA Spring Date를 공부하며 Lombok 라이브러리의 @AllArgsConstructor와 @Setter의 문제점을 발견, 이 두 어노테이션을 사용하지 않고 Entity 객체를 만드는 방법을 탐구하였다. @Setter는 객체의 필드 값을 어디서든 변경할 수 있어 객체의 안전성을 해칠 수 있으며, @NoArgsConstructor는 기본 생성자를 자동으로 생성해주지만 접근 제어자를 명확하게 정의하지 않으면 문제가 발생할 수 있다.
• 이에 따라 @Setter 대신 의미 있는 메서드를 통해 값을 변경하는 방식을 추천하며, @NoArgsConstructor의 접근 제어자를 명확하게 정의하는 것이 중요하다고 강조하였다. 또한, @ToString 사용 시 순환 참조에 유의해야 한다고 말하였다.
• Lombok 라이브러리를 사용하여 코드를 간결하게 작성할 수 있지만, @NoArgsConstructor를 사용할 때 접근 제어자를 명시하여 무분별한 객체 생성을 방지하고, @AllArgsConstructor 대신 @Builder를 사용하여 필드 순서 변경으로 인한 오류를 방지해야 한다.
• @ToString 어노테이션을 사용할 때는 연관 관계 필드를 명시적으로 제외하여 무한 루프 문제를 방지해야 한다.

thumbnail
북마크
공유하기
신고하기
7분 분량
조회수 198
profile-image
일 년 전
Copyright © 2025. Codenary All Rights Reserved.