인프런 커뮤니티 질문&답변

const.takeo님의 프로필 이미지

작성한 질문수

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

상품 등록

setter 제거에 관한 질문

21.12.17 19:56 작성

·

528

2

선생님 언제나 좋은강의 감사드립니다!

선생님께서는 실무에서 왠만하면 셋터를 전부 제거 하신다고 알려주셨는데요. Book 클래스에서 Setter를 제거하려고 시도하다가 나온 의문점이 있어 질문드립니다.

밑의 코드와 같이 작성하였는데요.
이 경우 author와 isbn필드로 인해 어쩔수없이 private setter를 두개 둘수밖에없었습니다. 이와같이 private setter를 두는것이 옳을지, 필드를 static으로 바꾸는게 좋을지에 대한 질문인데요 Book 객체의 경우 필드가 두개밖에 없어서 static으로 바꿔줘도 상관없을거라고 생각은하는데 실무에서는 무수히 많은 필드가 있는 객체가 있을경우 static 필드 vs private 셋터중 어떤게 옳은 방법인지 궁금해서 질문드립니다.

@Entity
@DiscriminatorValue("B")
@Getter
@NoArgsConstructor(access = AccessLevel.PROTECTED)
public class Book extends Item {
@Setter(value = AccessLevel.PRIVATE)
private String author;
@Setter(value = AccessLevel.PRIVATE)
// static으로 만드는것을 고려?
private String isbn;

public static Book createNewBook(String author, String isbn, String name, int price, int quantity) {
Book book = new Book();
book.setAuthor(author);
book.setIsbn(isbn);
book.setName(name);
book.setPrice(price);
book.setStockQuantity(quantity);
return book;
}
}

답변 1

2

OMG님의 프로필 이미지

2021. 12. 17. 21:37

안녕하세요. const.takeo님, 공식 서포터즈 OMG입니다.

두 방법 중 편하신 것을 사용하시면 됩니다.

아래 질문 링크 참고해주세요 :)

정적 팩토리 메서드 작성 - 인프런 | 질문 & 답변 (inflearn.com)


감사합니다.

const.takeo님의 프로필 이미지
const.takeo
질문자

2021. 12. 17. 21:45

빠르고 정확하고 친절한 답변 감사드립니다.

OMG님의 프로필 이미지

2021. 12. 17. 21:48

열심히 공부하시는 것 같아 보기 좋네요 ^^

영한님 강의로 많은 것을 배워가셨길 바랍니다.

연말 마무리 잘하시고, 열공하세요!! :)