자바 API 디자인

[…] 우리는 개발자들이 가장 하고 싶어하는 일, 즉 라이브러리를 이용해 애플리케이션을 만드는 일을 할 수 있도록 즉시 준비돼 있는 문서를 갖게 되길 바란다.

1

API가 별건가 싶었던 어린 시절을 거쳐서, 그래봐야 API야라고 생각하고 있는데 현재까지 API 디자인에 대해서 많은 고민을 했지만 딱히 답도 없고 그렇다고 참고할 만한 뭔가(GitHub api 문서?)가 없었다.

몇 해 전에 읽었던 책을 다시 뒤적였다. 이젠 나이가 들어서 그런지 아니면 실력이 조금 좋아졌는데 책을 읽으면서 몇몇 구절에선 깊은 공감을 하였고, 어떤 부분에서 남일 같지 않았던 에피소드도 있다.

2

API 디자인에 관한 어느 개발자의 현실적인 에피소드와 이야기를 엿보고 싶다면 이 책을 천천히 읽어보자. 꼭 처음부터 읽지 않아도 좋으니 «[3부] 일상 생활»은 서점에서 뒤적여보고 마음에 든다면 구입해 보자.


라이브러리를 변경해야 할 때마다 변경사항의 가장 중요한 측면에 집중해야 한다. 그게 뭐냐고? 바로 변경된 동작 방식이다.

훌륭한 API 설계의 또 한 가지 측명은 자기 문서화(self documentation)이다. 사실 프로퍼티 포맷과 XML 포맷 모두 자기 문서화를 올바른 방향으로 지향한다.

다시 한 번 말하지만 아름다움은 멋진 것이지만 API의 가장 중요한 속성은 아니다.

[…] 지원 중단된 요소는 API 사용자가 좀 더 현대적인 대체재로 옮겨가도록 장려하거나 API를 처음 사용하는 사람들이 API에서 이미 낙후된 요소를 사용하지 않도록 방지하는 중요한 수단이다.

[…] “크기”는 외부 의존성의 수로 측정된다. 모든 라이브러리의 의존성을 충족시키는 데 필요하다는 이유로 단순히 수십 또는 수천 개의 추가적인 라이브러리에 의존한다거나 어떤 작지만 유용한 기능을 담고 있다는 이유로 단 하나의 라이브러리에 의존하는 것은 굉장히 바람직하지 않은 일이다.

Written on August 25, 2019