Skip to content

Commit d227d38

Browse files
committed
아린 아이템 29 : 외부 API를 랩(wrap)해서 사용하자
1 parent f89d3a6 commit d227d38

File tree

1 file changed

+24
-0
lines changed
  • docs/EffectiveKotlin/아린/Chapter04_추상화_설계

1 file changed

+24
-0
lines changed
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# 외부 API를 랩(wrap)해서 사용하자
2+
3+
외부 API 설계자가 안전하다고 하든, 말든
4+
우리가 그것을 신뢰할 수 없다고 하면 이 API는 불안정한 것이다
5+
6+
이렇게 불안정한 API를 과도하게 쓰는 건 위험한 일이고, 이러한 API를 어쩔 수 없이 사용해야 한다면
7+
최대한 이 API를 로직과 직접 결합시키지 않는 것이 좋다
8+
9+
따라서, 잠재적으로 불안정한 외부 라이브러리는 랩(wrap)해서 사용한다
10+
11+
### wrap으로 다음과 같은 자유, 안정성을 얻는다
12+
13+
- 문제 발생 시 래퍼(warpper)만 변경하면 되어 API 변경에 쉽게 대응할 수 있다
14+
- 프로젝트 스타일에 맞춰 API 형태 조정이 가능하다
15+
- 특정 라이브러리가 문제라면 래퍼를 수정해서 다른 라이브러리로 대체해 코드를 쉽게 변경할 수 있다
16+
- 쉽게 동작을 추가하고 수정할 수 있다
17+
18+
### wrap은 다음과 같은 단점도 있다
19+
20+
- 래퍼를 따로 정의해야 한다
21+
- 다른 개발자들은 어떤 래퍼들이 있는지 따로 확인해야 한다
22+
- 이 래퍼들은 특정 프로젝트 내부에서만 유효하므로 스택오버플로와 같은 곳에 질문할 수 없다
23+
24+
이 장단점을 모두 이해한 뒤에야, wrap할 API를 결정해야 한다

0 commit comments

Comments
 (0)