외부 인터페이스 선설계 → 번들 크기 → 타입스크립트
팀 내 유틸리티 라이브러리를 처음 만들 때 API 설계가 가장 어려운 지점이었습니다. 내부 구조에 맞춰 인터페이스를 짰더니 사용하는 쪽에서 옵션이 너무 많다는 피드백이 나왔고, 이후에는 외부 인터페이스를 먼저 그리고 내부를 채우는 방식으로 바꿨습니다. 번들 크기는 처음엔 간과했다가 호스팅 앱에서 2배 이상 증가했다는 리포트를 받고 나서야 트리 쉐이킹 구조로 전면 재작성했습니다. 타입스크립트 지원은 처음부터 하는 편이 낫다고 생각합니다. 나중에 .d.ts를 추가하다 보면 실제 동작과 타입 정의가 어긋나는 케이스가 어김없이 생겼습니다.
하위 호환을 유지하면서 기능을 확장하는 게 생각보다 까다롭다는 점도 이 과정에서 처음 체감했습니다.