Syrup 모바일 웹 개선 사례
프론트엔드
Syrup 모바일 웹 개선 사례
두줄요약
Syrup 모바일 웹의 느린 응답 문제를 해결하기 위해 웹 게이트웨이를 WebFlux와 SSE 중심으로 개편했습니다. 또한 Next.js의 SSG를 적용해 초기 로딩과 운영 효율을 함께 개선했습니다.
문제 상황
- 오랜 기간 운영된 Syrup 모바일 웹의 레거시 웹 게이트웨이 응답 지연
- 다수 외부 파트너 API를 순차 호출하며 전체 응답 시간이 누적되는 구조
- CompletableFuture 기반 비동기 처리의 복잡성, 스레드 풀 관리 부담, 컨텍스트 스위칭 오버헤드
구조와 흐름
- 웹 게이트웨이 중심의 API 병합 방식에서 클라이언트 병렬 호출 방식으로 인한 중복 트래픽 문제
- 서버에서 개별 API 응답을 즉시 푸시하고 프론트엔드가 바로 렌더링하는 SSE 흐름
- Next.js 기반 SSR과 SSG 검토 후 SSG 중심 적용
선택 이유
- RDBMS 직접 연동보다 파트너 연동이 많은 서버 특성에 WebFlux가 적합
- Mono.zip으로 단순한 비동기 조합 가능
- SSR보다 SSG가 서버 리소스와 운영 부담 측면에서 효율적
주의할 점
- 리액티브 프로그래밍 모델과 Reactor 사용법에 대한 학습 필요
- 멀티 스레드 기반 라이브러리 사용 시 정보 노출 위험
- 롱-폴링은 스레드 점유와 타임아웃 문제 고려 필요
적용해볼 점
- 대량 외부 API 연동 서버의 논블로킹 전환 검토
- 실시간 응답이 필요한 화면에 SSE 적용 검토
- 운영 비용과 성능 균형을 고려한 SSG 우선 채택
