목록 보기
모바일 줌 SpringBoot → NodeJS 전환기 (feat. VueJS SSR)
백엔드

모바일 줌 SpringBoot → NodeJS 전환기 (feat. VueJS SSR)

ZUM
ZUM
2020년 6월 20일

두줄요약

모바일 줌의 Spring Boot 백엔드를 Node.js Express와 Vue SSR 기반으로 전환했습니다. 검색엔진 유입과 TPS가 개선되고 코드와 메모리 사용량도 줄었습니다.

문제 상황

  • 모바일 줌의 Spring Boot 백엔드가 프론트 서비스 성격에 비해 무겁고, Node.js 기반 SSR 적용과 운영 환경 전환이 필요
  • Java 환경에서 Vue SSR Renderer를 안정적으로 돌릴 대안이 부족해 유지보수 가능한 실행 방식 탐색 필요

원인 분석

  • SPA 특성상 검색엔진 노출과 저사양 기기 체감 속도 개선을 위해 SSR 필요
  • 브라우저 표준 객체 의존, JNI 메모리 누수 위험, Nashorn의 CommonJS 미지원과 낮은 성능으로 Java 백엔드에서 SSR 수행 곤란
  • 프론트 서비스는 API Aggregation 및 Frontend Serving 중심이라 Spring Boot보다 가벼운 스택이 적합

해결 방법

  • Spring Boot 대신 Node.js Express 백엔드로 전환하고, 도커 기반 운영 환경으로 재구성
  • 표준화 라이브러리와 TypeScript, 데코레이터를 활용해 코딩 스타일과 공통 기능을 통합
  • JSDOM을 global에 바인딩해 Vue SSR Renderer의 브라우저 객체 문제를 해결하고 SSR 공통화

성능/운영 포인트

  • SSR 적용 후 검색엔진 유입과 PV 증가 확인
  • 같은 사양 대비 TPS 약 40% 증가, 메모리 사용량 절반 이상 감소
  • 코드 라인 수 1608줄에서 472줄로 감소

댓글 0

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...