프론트 개발시 디자인 패턴이나 SOLID 적용을 위해서 고민 하시는군요. 정확히 어떤 상황에 처해 계신지 가늠해보기는 어렵지만 공통으로 고민해볼 수 있는 방법은 각 케이스를 다르게 처리하지 않고 최
프론트 개발시 디자인 패턴이나 SOLID 적용을 위해서 고민 하시는군요. 정확히 어떤 상황에 처해 계신지 가늠해보기는 어렵지만 공통으로 고민해볼 수 있는 방법은 각 케이스를 다르게 처리하지 않고 최대한 같은 인터페이스로 처리하게 하려는 노력이 필요할 것 같아요. 사실 객체 지향에서 다루고 있는 인터페이스를 통한 추상화를 자바스크립트 에서는 같은 입력과 출력을 가지는 함수 혹은 같은 함수 시그니처를 가지는 객체 같은 방법을 써서 수행하거든요. 입출력 인터페이스를 통일시켜 보시면 어떤 형태로든 재사용성을 높일 수 있는 방법이 보일 것 같아요. 함수형태로든, 커스텀 hook 형태로든요. 그리고 너무 많은 고민을 해가며 매우 유연한 설계를 하기 보다는 적당한 유연성을 가지도록 설계하시는게 개발속도 측면에서 좋습니다. 매우 유연하게 설계했는데, 막상 작업 하려니 불편하게 되는 상황도 자주 발생 하거든요. 더 복잡해지기도 하구요. 요구사항이 늘어날 때 뭔가 반복되는 느낌이 든다면, 현재 구조를 리팩토링 하시는 방법으로 작업하시는게 좋을 것 같아요. 결론: - 함수 혹은 결제 수단의 인터페이스를 통일시킨다. - 공통으로 사용할 수 있는 hook을 만들어본다. - 너무 막연히 최고의 유연성을 추구하지 말 것. 컴퍼넌트 설계에 대한 내용은 아래 링크들에서 많은 아이디어를 얻었어요. - https://toss.im/slash-21/sessions/3-3 - https://www.youtube.com/watch?v=HYgKBvLr49c&t=7s