Skip to content

Commit f89d3a6

Browse files
committed
아린 아이템 28 : API 안정성을 확인하라
1 parent 4db90a8 commit f89d3a6

File tree

1 file changed

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

1 file changed

+38
-0
lines changed
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
# API 안정성을 확인하라
2+
3+
이 세상의 모든 자동차의 운전 방법은 같다, 즉 안정적이고 표준적이기 때문에
4+
일시적인 특정 자동차 인터페이스를 배울 필요 없이 바로바로 사용할 수 있다
5+
6+
이처럼 프로그래밍을 할 때도 안정적이고 표준적인 API를 써보자
7+
8+
API가 변경되고 업데이트 한다면 이에 맞게 여러 코드를 수동으로 업데이트 해야 한다
9+
많은 요소가 이 API에 의존한다면 너무나 큰 문제이고, 다른 대안을 찾는 것 또한 어렵다
10+
11+
즉, 라이브러리의 작은 변경으로 다른 코드를 변경해야 한다는 두려움때문에
12+
점점 업데이트가 어려워지고, 버그 및 취약성에 노출될 수 있다
13+
14+
또한, API를 새로 배운다는 것은 대다수에게 너무나 힘들고 피하게 된다
15+
그렇다고, 새로 배우지 않으면 레거시 코드에 의해 문제가 생길 수 있다
16+
17+
즉, 처음부터 안정적이지 않은 모듈을 공부하지 말고 애초에 안정적이고 표준적인 모듈을 공부하자.
18+
19+
말이 쉽지, API를 한 번에 설계하는 것도 어려운 일이다..
20+
21+
API를 안정적으로 유지하기 위해 우리는 적극적으로 의견을 제시하여 균형을 맞추는 자세가 필요하다
22+
23+
### API, API의 일부가 불안정하다면 이를 명확하게 알리자
24+
25+
MAJOR 버전 : 호환되지 않은 수준의 API 변경
26+
27+
MINOR 버전 : 이전 변경과 호환되는 기능 추가
28+
29+
PATCH 버전 : 간단한 버그 수정
30+
31+
Experimental 어노테이션 : 사용자들에게 아직 안정적이지 않은 요소임을 알림
32+
→ 이 요소는 언제든지 변경될 수 있음
33+
34+
Deprecarted 어노테이션 : 안정적인 API의 일부를 변경할 때 사용자에게 미리 알림
35+
→ ReplaceWith를 붙이면, 직접적인 대안을 붙여줄 수 있다
36+
37+
어쨌든 안정적인 라이브러리는 긴 시간이 소요되는게 당연하니까,
38+
무작정 배포하기 보다는 시간이 걸리더라도 적극적인 커뮤니케이션으로 안정적인 API를 적용하는 것이 중요하다

0 commit comments

Comments
 (0)