외부 API를 랩(wrap)해서 사용하라 #
" API 설계자가 안전하지 않다고 하거나 API 설계자가 안전하다고 해도 우리가 그것을 제대로 신뢰할 수 없다면, 해당 API는 불안정한 것입니다. “
불안정한, 신뢰할 수 없는 API를 사용하는 것은 위험하다. 어쩔 수 없이 이런 API를 활용해야 한다면, 최대한 우리의 제품(로직)과 직접적인 결합을 만들지 않는 것이 좋다.
그래서 많은 프로젝트가 (잠재적으로 불안한 API에 대해서) 랩(wrap)해서 사용한다.
랩해서 사용하면 다음과 같은 장,단점이 있다.
장점 | 단점 |
---|---|
- (해당 API에) 문제 발생 시, 래퍼(wrapper)만 변경하면 되므로 API 변경에 쉽게 대응할 수 있다.(다른 API로 쉽게 교체할 수도 있겠다.) - (우리)프로젝트의 스타일에 맞춰 API 형태를 조정할 수 있다. - 필요하다면 쉽게 기능/동작을 추가하거나 수정할 수 있다. | - 래퍼를 추가로 작성/관리해줘야 한다. |
모든 외부 API를 래핑하라는 것은 아니다. 래핑을 고려해볼 수 있다는 것을 기억하자.
래핑해서 사용하는 것은 나름 익숙하게 해왔던 것 같다.