-
Notifications
You must be signed in to change notification settings - Fork 0
프론트엔드 분리 #32
Copy link
Copy link
Open
Labels
Description
현재 MVC 패턴으로 서버에서 페이지를 내려주고 있는데 프론트엔드 서버 분리
REST 아키텍처 표준을 따르기 위함, UI/UX 에 대해서 집중하기 위함
SSR vs CSR(SPA) 비교
| 비교 항목 | SSR (서버 사이드 렌더링) | CSR/SPA (클라이언트 사이드 렌더링) |
|---|---|---|
| SEO | 매우 좋음 - 크롤러가 완성된 HTML을 바로 읽을 수 있음 | 불리함 - JavaScript 실행 필요 (개선되고 있지만) |
| 초기 로딩 속도 | 빠름 - 서버에서 렌더링된 HTML을 바로 표시 | 느림 - JS 다운로드 및 실행 후 렌더링 |
| 페이지 전환 | 느림 - 매번 서버 요청 및 전체 페이지 새로고침 | 빠름 - 필요한 데이터만 가져와 부분 업데이트 |
| 사용자 경험 | 페이지 전환 시 깜빡임, 상태 유지 어려움 | 부드러운 전환, 앱 같은 느낌 |
| 서버 부하 | 높음 - 매 요청마다 렌더링 작업 수행 | 낮음 - 정적 파일 제공, API만 처리 |
| 서버 요구사항 | 필수 - Node.js 등 렌더링 서버 필요 | 선택적 - 정적 호스팅만으로도 가능 |
| 개발 복잡도 | 높음 - 서버/클라이언트 환경 모두 고려 | 상대적으로 낮음 - 프론트엔드에 집중 |
| 캐싱 전략 | 복잡함 - 동적 콘텐츠 캐싱 어려움 | 쉬움 - 정적 파일은 CDN 캐싱 용이 |
| 소셜 미디어 공유 | 완벽 - 동적 메타태그 생성 가능 | 어려움 - 모든 페이지가 같은 메타태그 |
| JavaScript 의존도 | 낮음 - JS 없이도 기본 콘텐츠 표시 | 높음 - JS 없으면 작동 안 함 |
| 번들 크기 | 작을 수 있음 - 필요한 부분만 전송 가능 | 큼 - 전체 앱 로직을 클라이언트로 전송 |
| Time to Interactive | 빠를 수 있음 - 점진적 향상 가능 | 느림 - JS 로딩 및 실행 대기 |
| 개발 생산성 | 낮음 - 서버/클라이언트 동기화 필요 | 높음 - 단일 코드베이스로 개발 |
| 확장성 | 어려움 - 서버 렌더링 리소스 관리 필요 | 쉬움 - CDN으로 전 세계 배포 용이 |
| 적합한 사례 | 블로그, 뉴스, 쇼핑몰, 포트폴리오 사이트 등 | 대시보드, 어드민, SaaS, 소셜 미디어 등 |
Reactions are currently unavailable