SpringBoot

JPA Entity에 @Setter를 지양하는 이유

똑똑한망치 2024. 6. 29. 14:10
728x90
반응형

@Setter 어노테이션 사용을 지양해야 하는 이유

 

① @Setter는 사용 의도 / 목적이 분명하지 않다. (Update 인지 / Create 인지)

Entity를 만들 때는 외부에서 쉽게 변경할 수 없게 @Setter를 사용하지 않는다. 그 이유는 @Setter를 사용하면 의도가 불명확하고 변경하면 안되는 중요한 값임에도 불구하고 변경 가능한 값으로 착각할 수 있다. 이말은 안정성 보장이 되지 않는다는 의미이다.

 

② 무분별한 변경으로 객체의 일관성을 보장하기 어렵다 -> @Builder 패턴 적용 권장

@Builder 패턴 사용 시 장점

  • 가독성을 높일 수 있다.
Board board =
	Board
    .builder()
    .title("안녕하세요 과거일지입니다.")
    .writer("안정균")
    .role("관리자")
    .build();
  • 필요한 데이터만 build 할 수 있다.
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private boardSeq
private String title;
private String writer;
private String role;

@Builder
public Board(String title, String writer, String role) {
        this.title = title;
        this.writer = writer;
        this.role = role;
    }
반응형

'SpringBoot' 카테고리의 다른 글

QueryDSL 이란?  (0) 2024.07.17
Spring WebSocket  (0) 2024.07.16
SpringSecurity Bcrypt 를 이용한 비밀번호 암호화  (0) 2024.06.26
@Controller와 @RestController 차이점  (0) 2024.06.25
RedirectAttributes  (0) 2024.05.02