재취업 준비

과제전형 피드백 회고

chani 2024. 4. 17. 16:45

29CM 백엔드 개발자 채용 공고에 지원하였고, 과제에서 탈락했다.

면접으로 가는 것에 실패했지만, 감사하게도 과제로 제출 한 것에 대한 피드백이 왔고 이것을 리뷰하고자 한다.

 

 

 

 


Setter로 인해 도메인 안정성이 깨질 가능성이 있습니다. 가급적 Setter는 지양해주시면 좋을 것 같습니다.

 

Setter를 사용하지 않는데 여러가지 이유가 있고, 그것을 나열하자면

의도를 파악하기 힘들다.

객체의 일관성을 유지하기 어렵다

도메인 로직의 분산

Setter는 public으로 선언되고 사용

등이 있다.

 

 

1. 의도를 파악하기 어렵다.

@Getter
@Setter
public class Order {

  private UUID orderId;
  private Item item;
  private int quantity;

  public Order(Item item, int quantity) {
    this.orderId = UUID.randomUUID();
    this.item = item;
    this.quantity = quantity;
  }
}

기본적으로 Setter는 public으로 사용할 수 있으며, 위와 같이 Setter를 사용하면 다른 곳에서도 setQuantity를 사용할 수 있다. 이때 여러 곳에서 Setter를 사용할 수 있게되며, 개발자가 데이터의 흐름을 알기 어려워지고 이는 곧 코드를 파악하고 리뷰하는데 오랜시간을 들일 수 

 

대안

생성자 사용

빌더패턴 사용

 


 

도메인에 대한 지식이 부족해서 책을 더 읽고 추가 작성 중...

 

 

 

 

 

 

 

 

 

 

 

참조

"setter 쓰지 말라고만 하고 가버리면 어떡해요"