포스를 확장하는 가장 빠른 방법, 포스 플러그인
고태완/윤보미 · 토스 · 토스 기술 블로그
소개
토스플레이스 Plugin Silo에서 다양한 서비스에 쉽게 녹아드는 유연한 구조를 고민하며, 사용자와 외부 개발자 모두에게 가치 있는 경험을 만든 경험을 공유합니다.
AI 핵심 요약
업종마다 필요한 기능이 달라 제휴를 늘릴수록 POS 코드의 복잡도와 유지보수 부담이 커지고, 기능의 오너십도 모호해지는 문제가 있었습니다. 이를 해결하기 위해 토스플레이스는 VSCode 확장 구조를 참고해 플러그인 사일로를 만들고, 플러그인 코드를 웹 워커에서 격리한 뒤 SDK와 메시지 통신으로 주문·결제 등 POS 리소스에 접근하도록 설계했습니다. 공통 인터페이스를 통해 제휴사가 자체 기능을 연동하게 해 POS에 제휴사별 코드를 반복해서 추가하지 않도록 했으며, 개발자는 결제수단 등록과 콜백 구현, 개발자센터 배포 절차로 플러그인을 만들 수 있습니다. 핵심 교훈은 다양한 요구를 공통 규격으로 추상화하고 장애를 격리하면 POS의 안정성을 지키면서 외부 개발자의 확장도 지원할 수 있다는 점입니다.
- 플러그인 코드는 웹 워커에서 실행하고 메시지 기반으로 통신하면, 외부 코드의 장애가 POS 핵심 기능으로 번지는 것을 막을 수 있습니다.
- 이벤트 통신의 복잡성은 SDK로 감싸 비동기 메시지 처리와 POS 리소스 접근을 익숙한 함수 호출 형태로 제공할 수 있습니다.
- 제휴사별 구현을 POS에 직접 추가하기보다 공통 리소스와 인터페이스를 정의하면 코드 중복과 유지보수 부담을 줄일 수 있습니다.
- UI 확장 기능은 파트너별 요구를 그대로 반영하기보다 여러 플러그인에 공통으로 필요한 범위부터 제공하는 것이 중요합니다.
비슷한 학습 자료
토스ㅣSLASH 24 - 토스가 오프라인 결제를 빠르고 안정적으로 혁신하는 방법
SLASH · YouTube
토스인컴 세금 환급 서비스 : 빠른 속도에서 품질을 지키기 위한 E2E 자동화 여정
정수호 · 토스 기술 블로그
100년 가는 프론트엔드 코드, SDK
최진영 · 토스 기술 블로그
200여개 서비스 모노레포의 파이프라인 최적화
정석호 · 토스 기술 블로그
웹에서 복잡한 퍼널 쉽게 관리하기
임재후/최수민 · 토스 기술 블로그
크고 복잡한 제품, 과감하게 갈아엎기
이지윤 · 토스 기술 블로그