1030

리뷰와 페어코딩을 통해 배운 것:

  • 지금까지는 라이브러리를 사용할 때 인터페이스가 노출되는 범위에 대해 신경쓰지 않고 개발해왔는데(아무래도 코드를 여럿이서 써본 경험이 없어서 그랬던 것 같다)
  • 인터페이스를 외부로 얼만큼 노출시키냐에 따라 전반적인 코드 안정성(버그 가능성, 일관성 등)을 결정할 수 있다는 점을 새롭게 알게 됐다
  • 외부에서도 내부 인터페이스를 자유자재로 사용할 수 있게 되면 그 장점으로는
    • 자유도가 높아진다
    • 요구사항에 유연하게 대처할 수 있다
  • 단점으로는
    • 작업자마다 해석의 여지가 생겨 같은 라이브러리를 사용하지만 곳곳에서 일관성 없는 코드가 남용될 수 있다
    • 공용 컴포넌트의 의미가 퇴색된다
    • 중복 코드가 발생한다 = 관리 및 추적이 어려워진다
  • 반대로 내부 인터페이스를 노출시키지 않고 외부에서 필요한 옵션들만 선언적으로 열어주는 방식의 장점은
    • 코드 퀄리티와 제품의 일관성을 유지할 수 있다
    • 작업자 또한 굳이 라이브러리 내부를 뜯어볼 필요가 크게 없어진다
  • 단점으로는
    • 초기 개발 공수가 많이 들어간다
    • 요구사항에 유연하게 대처하기가 어려워진다
  • 그래서 역시나 두 방식의 효용성 그래프는 트레이드 오프가 있는 것 같다 👀