더북(TheBook)

공유 종속성의 가장 큰 문제는 소프트웨어에서 공유 코드를 사용하는 부분마다 요구 사항에 차이가 있다는 것이다. 이런 일이 생기면 개발자는 보통 동일한 코드를 사용하면서 다른 요구에 응한다. 즉, 공유 코드가 두 가지 다른 요구 사항을 충족시키도록 선택적 매개변수나 조건부 논리를 추가한다. 이 방법은 실제 코드를 더 복잡하게 만들고, 결국에는 얻는 것보다 잃을 게 더 많아지게 만든다. 어느 시점부터는 복사-붙여넣기 코드보다 더 복잡한 설계를 생각하게 된다.

예를 들어, 온라인 쇼핑 웹 사이트를 위한 API를 작성하는 업무를 맡았다고 생각해 보자. 클라이언트는 다음 PostalAddress라는 클래스로 표현되는 고객의 배송 주소를 변경해야 한다.

public class PostalAddress {
  public string FirstName { get; set; }
  public string LastName { get; set; }
  public string Address1 { get; set; }
  public string Address2 { get; set; }
  public string City { get; set; }
  public string ZipCode { get; set; }
  public string Notes { get; set; }
}
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.