현재 홈화면 검색, 상세페이지 상품정보, 상세페이지 리뷰 정보를 가져오는데 각각 웹뷰가 사용되고 있음.
이 3개의 웹뷰 컴포넌트는 로직이 완전히 분리되어있는 상황. 유지보수하기에 어려움이 있음.
하지만 이 3개의 별도 로직을 추상화해보면 상당히 비슷함
- 클라이언트 (웹뷰 컴포넌트를 호출하는 쪽) 에서는 uri 세트 ( uri와 inject 할 javascript 코드로 이루어진 세트 ), onSuccess, onError를 웹뷰로 넘겨준다.
2.웹뷰는 uri 세트의 첫번째 세트부터 접속을 시도한다.
- 접속이 성공적으로 되었다면 해당 세트의 javascript 코드를 inject 한다.
- inject 결과가 잘 나왔다면 onSuccess의 반환값으로 넣어준다.
- 실패했다면 다음 uri 세트로 네트워크 접속을 시도한다.
- 성공했다면 3+4, 실패했다면 또 다음
- 만약 마지막 uri 세트까지 실패했다면 그때는 onError를 호출한다.
이런 흐름으로 요약할 수 있음.
따라서 이런 로직을 수행하는 공통 컴포넌트로 추상화하고, webview-search, webview-detail, webview-review는 이 컴포넌트를 활용하는 방향으로 구현해서
향후 유지보수하기 쉽도록 개선할 필요가 있음.
현재 홈화면 검색, 상세페이지 상품정보, 상세페이지 리뷰 정보를 가져오는데 각각 웹뷰가 사용되고 있음.
이 3개의 웹뷰 컴포넌트는 로직이 완전히 분리되어있는 상황. 유지보수하기에 어려움이 있음.
하지만 이 3개의 별도 로직을 추상화해보면 상당히 비슷함
2.웹뷰는 uri 세트의 첫번째 세트부터 접속을 시도한다.
이런 흐름으로 요약할 수 있음.
따라서 이런 로직을 수행하는 공통 컴포넌트로 추상화하고, webview-search, webview-detail, webview-review는 이 컴포넌트를 활용하는 방향으로 구현해서
향후 유지보수하기 쉽도록 개선할 필요가 있음.