Kotlin

[Effective Kotlin] 29 - 외부 API를 Wrap해서 사용하라

매운돌 2023. 8. 13. 01:09

API 설계자가 안전하지 않다고 하거나 API 설계자가 안전하다고 해도 우리가 그것을 제대로 신뢰할 수 없다면, 해당 API는 불안정한 것입니다. 이러한 불안정한 API를 과도하게 사용하는 것은 위험합니다. 따라서 최대한 이러한 API로직과 직접 결합하지 않는 것이 좋습니다. 그래서 많은 프로젝트가 잠재적으로 불안정하다고 판단 되는 외부 라이브러리 API를 Wrap해서 사용합니다. Wrap해서 사용하면 다음과 같은 자유와 안정성을 얻을 수 있습니다.

  • 문제가 있다면 Wrapper만 변경하면 되므로, API 변경에 쉽게 대응할 수 있습니다.
  • 프로젝트의 스타일에 맞춰서 API의 형태를 조정할 수 있습니다.
  • 특정 라이브러리에서 문제가 발생하면, Wrapper를 수정해서 다른 라이브러리를 사용하도록 코드를 쉽게 변경할 수 있습니다.
  • 필요한 경우 쉽게 동작을 추가하거나 수정할 수 있습니다.

하지만 아래와 같은 단점도 존재 합니다.

  • Wrapper를 따로 정의해야 합니다.
  • 다른 개발자가 프로젝트를 다룰 때, 어떤 Wrapper들이 있는지 따로 확인해야 합니다.
  • Wrapper들은 프로젝트 내부에서만 유효하므로, 문제가 생겨도 질문할 수 없습니다.

장점과 단점을 모두 이해하고 Wrap할 API를 결정해야 합니다. 라이브러리가 얼마나 안정적인지 확인할 수 있는 가장 기본적인 휴리스틱은 버전 번호와 사용자 수입니다. (일반적으로 라이브러리 사용자가 많을 수록 안정적입니다.)