티스토리 뷰
반응형
어떤 것이 궁금한지
모든 컴포넌트를 lazy loading한다면 어떤 결과가 나올까?왜 궁금한지
- React로 개발 시 어차피 클라이언트에서 렌더링이 이루어져 SEO가 중요하지 않다면, 초기 로딩 속도를 더 빠르게 하기 위해 모든 컴포넌트를 lazy loading해도 괜찮지 않을까 궁금하다.
lazy loading이란?
필요한 모듈만 동적으로 로드하여 초기 로딩 속도를 개선하고 네트워크 트래픽을 줄이며, 사용자 경험을 향상시키는 방법입니다. 초기 렌더링 시 모든 모듈을 가져오지 않고, 실제로 필요한 순간에만 로드합니다.
장점
- 초기 로딩 시간 감소: 초기 로딩 시 필요한 최소한의 리소스만 로드하여 초기 렌더링 속도를 개선.
- 네트워크 효율성: 사용자가 필요한 컴포넌트만 로드하므로 네트워크 트래픽 감소.
- 메모리 사용 최적화: 불필요한 컴포넌트를 미리 로드하지 않아 메모리 사용량 절감.
단점
- 복잡성 증가: 모든 컴포넌트를 lazy loading으로 처리하면 코드 복잡성이 높아지고, 의존성 관리가 어려워질 수 있음.
- 사용자 경험: 특정 컴포넌트를 요청할 때 로딩 지연이 발생해 사용자 경험이 저하될 수 있음. 네트워크 상태가 나쁠 때 더욱 문제.
- CLS (Cumulative Layout Shift): 레이아웃 변경 문제 발생 가능.
- 불필요한 네트워크 요청: 과도한 요청으로 네트워크 오버헤드 증가.
불필요한 네트워크 요청이 안좋은 점
1. 성능 저하
- 네트워크 지연: 각 요청마다 지연이 발생하며, 누적된 지연이 사용자 경험을 저하시킬 수 있음.
- 브라우저 제한: 동일 도메인에 대한 연결 수 제한으로 중요한 요청이 지연될 가능성.
2. 리소스 낭비
- 서버 부하 증가: 불필요한 요청 처리로 서버 성능 저하 가능.
- 데이터 사용량 증가: 불필요한 데이터 전송으로 사용자 데이터 소모 증가.
3. 에너지 소비 증가
- 배터리 소모: 모바일 기기에서 요청 증가로 배터리 사용량 증가.
- 환경 영향: 데이터 전송과 서버 운영에 필요한 에너지 소비 증가로 환경에 부정적 영향.
4. 보안 위험
- 공격 표면 증가: 과도한 요청이 보안 취약점을 노출시킬 가능성.
결론
- 모든 컴포넌트를 lazy loading하면 네트워크 효율이 높아질 것 같지만, 실제로는 불필요한 네트워크 트래픽 증가 등 문제점이 있다.
- 중요한 컴포넌트는 미리 로드하고, 덜 중요한 컴포넌트만 lazy loading하자.
- 남용하지 말자, 무조건적인 lazy loading은 피하자.
- 유연함이 핵심: 상황에 맞게 조정하는 것이 가장 중요하다! 뭐든지 유도리!
반응형
'개발 > 개발일지' 카테고리의 다른 글
도메인이 아닌 IP 주소에 SSL 인증서를 적용하여 배포할 수 있는가? (0) | 2024.12.18 |
---|---|
SSR인 페이지에서도 lazy loading이 필요할까? (1) | 2024.12.05 |
페이지의 접근 제한! 클라이언트/서버 어디에서 구현할지 (0) | 2024.12.03 |
현업에서 웹 접근성 얼마나 지키면서 일하시나요? (0) | 2024.12.02 |
Prop style did not match. (feat. Next.js, fullcalendar, SSR) (0) | 2022.11.17 |
TAG
- CSR
- Next
- Proxy
- SSG
- 궁금증
- 브라우저
- Typescript
- https
- 웹 접근성
- s3
- 도메인
- 철학
- 프론트엔드
- SSR
- 실용주의 프로그래머
- NextJS
- IP
- styled component
- Section
- Next.js
- 선언적 프로그래밍
- base64
- HTTP
- lazyloading
- toast
- React
- 성능최적화
- server
- 노션
- editor
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
글 보관함
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
반응형