19P by xguru 2023-10-17 | favorite | 댓글 5개
  • 클라이언트 연결을 유지해주는 프록시 서버로 어떤 언어/프레임워크와도 쉽게 연동 가능
  • 리얼타임 API 엔드포인트를 쉽게 만들어 줌
  • HTTP 스트리밍/롱폴링, 웹 소켓 지원
  • 클라이언트는 전혀 모르게(transparent) 이용 가능
  • KONG, 3SCALE 같은 API 관리도구로 실시간 엔드포인트 관리가능
  • Rust & C++ 로 작성됨

두어달 사용해 보았습니다.

PHP 같이 리얼타임 처리가 곤란한 환경에서 큰 메리트를 느꼈습니다. 별도의 리얼타임 서버를 작성하지 않아도 된다는 점 하나만으로도 꽤 매력적이예요.
특히 일반적인 PHP 프로젝트에서 리얼타임 엔드포인트의 인증을 위해 복잡한(귀찮은) 데이터 교환 없이, 인가된 사용자에게만 Grip 헤더를 넘겨주면 되니 비즈니스 로직에 조금 더 집중할 수 있었구요.

PHP와 다르게 요청을 계속 붙들고 있어도 문제가 없는(?) 다른 언어들에서는 직접 리얼타임 엔드포인트를 열어 사용하는 것에 비해 큰 메리트를 느끼지 못했지만...

인증절차나 스케일링 관련된 측면에서 이론적으로는 꽤 이점이 많은 솔루션으로 생각됩니다.

... 다만 왜 “이론적으로는” 이라는 수식어가 붙었냐 하면, 솔루션 자체가 좀 불안정합니다. 특히 해당 솔루션에서 제일 중요한 부분이라 말해도 부족하지 않을 프록시 서버가 꽤 불안정합니다.

따로 버그를 찾아 나서지는 않았습니다만, 제 세팅에서는 POST 리퀘스트가 들어가면 그 이후의 요청들은 한동안 싹 다 죽어버리더군요.
GET 요청이 대해서만, 특히 Accept 헤더가 SSE일 때만 pushpin을 향하도록 프록시 서버를 한 번 더 두는 것으로 해결(???)했지만, 아직까진 시기상조인 것 같습니다. 토이 프로젝트 용도로만...

아무튼, 프로덕션용으로 사용하기엔 문제점이 많이 있지만, 아이디어는 꽤 괜찮다~ 정도로 정리할 수 있겠네요.

와 좋은 후기 고맙습니다.

음… 이거 마법 같으면서도 기존 일반적인 웹 api에 이걸 붙여서 어따쓰지? 하는 의문이 해결이 안되네요… ㅠㅠ

API 요청이 점점 많아져서 고민이 좀 있었는데, 이런 프로그램을 사용해보는 것도 방법이겠군요. +_+

이름이 익숙하다 했는데 PushPin - Local-first 실시간 협업 도구 이것과 이름이 같네요.
하지만 전혀 다른 솔루션 입니다.

Thoughtworks Technology Radar, Volume 29 에서도 프레임워크 분야에서 Trial 해볼만한 기술로 선정된바 있습니다