이펙티브 코틀린 Item 29: 외부 API를 랩(wrap)해서 사용하라

woga·2023년 8월 12일
0

코틀린 공부

목록 보기
32/54
post-thumbnail

API 설계자가 안전하지 않다고 하거나 API 설계자가 안전하다고 해도 신뢰할 수 없다면 해당 API는 불안정하다.
그리고 당연하게도 이 불안정한 API를 과도하게 사용하는 것은 위험하다. 어쩔수 없이 활용해야한다면 이 API를 로직과 직접 결합시키지 않는 것이 좋다. 그래서 외부 라이브러리 API를 랩(wrap)해서 사용한다. 랩해서 사용하면 다음과 같은 장점(자유와 안정성)이 있다.

  • 문제가 있다면 wraaper만 변경하면 되서 API 변경에 쉽게 대응할 수 있다.

  • 프로젝트의 스타일에 맞춰서 API의 형태를 조정할 수 있다.

  • 특정 라이브러리에서 문제가 발생하면 래퍼를 수정해서 다른 라이브러리를 사용하도록 코드를 쉽게 변경할 수 있다.

  • 필요한 경우 쉽게 동작을 추가하거나 수정할 수 있다.


단점으로는 다음과 같다.

  • 래퍼를 따로 정의해야 한다.

  • 다른 개발자가 프로젝트를 다룰 때, 어떤 래퍼들이 있는지 따로 확인해야 한다.

  • 래퍼들은 프로젝트 내부에서만 유효하므로, 문제가 생겨도 질문할 수 없다.

    • ex) 스택오버플로우


이렇듯 장점과 단점을 모두 이해하고 랩할 API를 결정해야 한다.

라이브러리가 얼마나 안정적인지 확인할 수 있는 가장 기본적인 휴리스틱은 버전 번호와 사용자 수이다. 일반적으로 라이브러리 사용자가 많을수록 안정적이다. 사용자가 많으면, 제작자가 프로젝트에 작은 변화를 가할 때도 굉장히 신중하게 할 것이다.
반대로 인기가 없고 새로 만들어진 라이브러리는 위험할 수 있다. 이런 경우에는 신중하게 사용을 결정하고, 사용하기로 했다면 클래스와 함수로 랩하는 것을 고려하기 바란다.

profile
와니와니와니와니 당근당근

1개의 댓글

comment-user-thumbnail
2023년 8월 12일

개발자로서 배울 점이 많은 글이었습니다. 감사합니다.

답글 달기