재사용성을 고려한다는 의미를 명확히 이해해야 한다.

Tags
 
  • 단순히 props를 옵셔널로 여러가지를 열어둔다고 해서 컴포넌트가 유연하다고 볼 수 있을까?
  • 정말 드문 케이스에서만 사용되는 프롭들을 계속 덕지덕지 추가 해나가는 것이 과연 올바른가?
 
  • 패스워드 변경 모달 리팩토링 건 예시로 정리하기
 
주입 받으면 되는 것
  • 전달된 값
  • 인증 처리 로직
  • 후속 처리 로직
 
위 3가지를 모달 내에서 내포하게 된다면 사용 케이스들을 모달 내에서 다 다뤄야한다.
당연히 사용 케이스가 늘어나거나, 기존 사용 케이스에서 변화가 생기면 모달 코드를 변경해야하고, 변경이 필요하지 않은 다른 모달에도 영향이 갈 수 있다.
 
반면 위 3가지를 외부에서 주입받아서 내부로직에서는 상황에 맞게 활용만 할 뿐이라고 한다면, 수정되는 부분만 영향을 받게 되고, 기존 로직에는 영향을 주지 않는다.
새롭게 사용 케이스가 추가되는 경우에도 그냥 위 3가지만 잘 정의해서 전달해주면 완성이다.
 
확장성에 열려있고, 변경에 닫혀있는 OCP 원칙을 준수하게 된다.