Bun 기반 서버 라이브러리 Verb: HTTP, WebSocket, gRPC를 하나의 API로!
by DD
5개월 전
조회수 10
Bun을 위한 Express 스타일의 서버 라이브러리 Verb를 개발함
HTTP, WebSocket, gRPC 등 다양한 프로토콜을 단일 API로 지원
93k req/sec의 높은 성능과 0.5ms의 낮은 레이턴시를 달성
Verb 아키텍처: Bun의 성능을 활용
Verb는 Bun의 내장 API만을 사용하여 의존성 관리를 단순화했다. 구체적으로 HTTP, WebSocket, gRPC를 동일한 API로 처리하여 개발 편의성을 높였다. 따라서 O(1) 정적 룩업 기반의 하이브리드 라우터를 통해 높은 요청 처리량을 달성했다.
다양한 프로토콜 지원의 장단점
Verb는 HTTP, WebSocket, gRPC를 하나의 API로 통합하여 개발 유연성을 제공한다. 반면, 각 프로토콜의 특성을 완벽하게 활용하기 어려울 수 있다. gRPC의 경우, Protocol Buffers를 직접 사용하지 않으므로 성능 최적화에 한계가 있을 수 있다. 따라서, 프로토콜별 성능 튜닝이 필요하다.
Verb 생태계 확장 전략
Verb는 Hull, Allow, Hoist, Shelves 등 다양한 도구를 제공하여 개발 생산성을 높인다. 구체적으로 Ecto에서 영감을 받은 Hull은 데이터베이스 작업을 단순화한다. 따라서, JWT, OAuth 기반의 Allow를 통해 보안을 강화하고, Self-hosted 배포를 지원한다.