우리 팀엔 자바스크립트 상차만 하는 프런트엔드가 있었다
2
AI 요약

이 글은 AI가 원문을 분석하여 핵심 내용을 요약한 것입니다.

프런트엔드가 index.html을 직접 서빙하도록 구조 전환

이 게시물은 백엔드 리포지터리에서 관리되던 index.html과 정적 리소스 책임을 프런트엔드로 이관해, 프런트엔드 독립 배포와 성능/운영 개선을 이룬 과정을 설명합니다.

기존 구조의 문제

  • 프런트엔드는 빌드된 JS를 S3에 올리고 백엔드 템플릿에 “연결”만 하는 역할이라 index.html 수정이 어려웠음
  • 정적 리소스 책임 경계가 모호해 장애 원인 파악과 커뮤니케이션 비용이 증가
  • 백엔드 템플릿에 JS 경로를 하드코딩해 contenthash 기반 캐시 전략을 적용하기 어려워 캐시 불일치가 발생

이관 설계와 구현

구조 선택

  • CloudFront 경로 기반 라우팅(1안)은 보안/비용/로그 복잡도 이슈로 배제
  • 프런트/백엔드 도메인 완전 분리(2안)로 WAF/Shield 정책 분리, 장애 격리, 배포 독립성을 확보

배포·라우팅·검증

  • S3+CloudFront로 정적 배포 파이프라인을 만들고 캐시 무효화를 포함한 자동화를 구성
  • MPA 특성상 Lambda@Edge로 요청 경로에 맞는 /{path}/index.html을 찾아 반환
  • 도메인 분리로 인한 SameSite 쿠키 문제와 WAF 규칙 문제를 해결했고, 위험을 줄이기 위해 내부→외부 순의 분리 배포로 안정성을 검증

결과

  • 프런트엔드 독립 배포로 배포 주기 단축 및 책임 분리 명확화
  • 로딩 시간: 내부 어드민 72% 감소, 외부 어드민 77% 감소 / Lighthouse 점수: 내부 71→87, 외부 58→87
  • 백엔드는 불필요한 인증/필터 로직과 프런트 관련 코드를 제거(필터 20→10, 약 400개 파일·12만 라인 감소)하고 API/인증 구조를 정리

연관 게시글