프론트엔드
쓰기 쉬운 Toss Front SDK
두줄요약
Toss Front 외부 연동 SDK를 Facade 패턴으로 단순하고 안전하게 설계하는 방법을 소개했습니다. 공통 유즈케이스는 고수준 API로 묶고 특수한 경우만 저수준 API를 남겨 DX와 안정성을 높였습니다.
핵심 내용
- SDK 품질은 제공 기능의 수보다 사용자가 그 기능을 어떤 형태로 쓰게 하느냐에 따라 결정된다는 문제의식
- Toss Front 외부 연동 SDK에서 휴먼 에러와 메모리 누수 같은 위험을 줄이기 위해 Facade 패턴을 적용하는 설계 고민
- 고수준
start()같은 의도 기반 API로 80% 공통 유즈케이스를 단순화하고, 저수준 API로 특수 케이스를 열어두는 구조
장단점
- 장점: 인지 부하 감소, 클린업 책임 명확화, 리스너 누수 방지, Breaking Change 완화
- 단점: 추상화가 높아질수록 세밀한 제어 제약과 내부 오케스트레이션 유지 비용 증가
적용해볼 점
- 사용자 의도 기준으로 SDK 인터페이스를 재구성하는 설계 검토
- 공통 경로는 Facade로 감싸고, 특수 요구는 Escape Hatch로 저수준 API를 제공하는 균형
- 생성한 리소스의 정리 책임을 SDK 내부에서 구조적으로 보장하는 방식