Vue.js에서 성능 분석 도구를 사용하는 방법은 무엇인가요?
_____A:
- Vue Devtools: 컴포넌트별 렌더링 시간, 업데이트 횟수 측정
- Chrome/Firefox DevTools Performance 탭: CPU·메모리 프로파일링, 타임라인 분석
- Lighthouse: 페이지 로드 성능, 접근성, 모범 사례 등 종합 진단
- webpack-bundle-analyzer: 번들 크기·의존성 시각화
2. Q: Vue Devtools 프로파일러를 어떻게 활성화하나요?
A:
1) 브라우저 확장(Chrome/Firefox) 설치
2) 개발 모드에서 Vue.config.devtools = true 설정
3) Performance 탭 열기 → Record 클릭 → 사용자 동작 수행 → Stop 후 결과 확인
4) Components 트리에서 “Actual render time”, “Component init time” 등 세부 값 조회
3. Q: Vue.config.performance 옵션은 무엇이고, 어떻게 사용하나요?
A:
- 역할: 개발 모드에서 컴포넌트 마운트·업데이트 타이밍을 브라우저 Performance API로 기록
- 사용법: main.js 또는 진입 파일에
```js
Vue.config.performance = true
```
- 효과: Chrome DevTools Performance 타임라인에 “[vue-perf]” 라벨로 마커 표시
4. Q: Chrome DevTools로 Vue 앱을 프로파일링하려면?
A:
1) DevTools 열기(F12) → Performance 탭 클릭
2) 녹화 버튼(●) 클릭 후 화면 제어
3) 스크롤, 클릭, 라우터 전환 등 주요 시나리오 수행
4) Stop → Main thread, Scripting, Rendering 등 단계별 시간 분석
5) “Call Tree”에서 빈번히 호출되는 함수나 렌더링 작업 확인
5. Q: Lighthouse를 통한 성능 진단 절차는?
A:
1) Chrome DevTools → Lighthouse 탭 선택
2) 테스트 카테고리(Performance, PWA 등) 선택
3) Generate report 클릭 → 최적화 항목(첫 번째 콘텐츠풀 페인트, 최대 콘텐츠풀 페인트, JavaScript 실행 시간 등) 확인
4) 권장 개선사항(코드 스플리팅, 이미지 최적화, 캐싱 활용)을 단계별로 적용
6. Q: 번들 크기를 시각화·분석하려면 어떻게 하나요?
A:
- vue.config.js에 플러그인 추가
```js
const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin;
module.exports = {
configureWebpack: {
plugins: [new BundleAnalyzerPlugin()]
}
}
```
- npm run build 실행 시 브라우저 창에 번들 구조 그래프 표시 → 큰 모듈, 중복 의존성 탐색
7. Q: 자주 렌더링되는 컴포넌트를 식별하려면?
A:
- Vue Devtools Profiler에서 “Flamegraph” 보기
- 높은 렌더링 횟수 또는 긴 렌더 타임을 기록한 컴포넌트 필터링
- 불필요한 reactive 프로퍼티, computed 호출 여부 점검
- v-once, v-memo 또는 functional 컴포넌트 도입 고려
8. Q: 메모리 누수나 가비지 컬렉션 이슈는 어떻게 조사하나요?
A:
1) Chrome DevTools → Memory 탭 선택
2) Heap snapshot 찍기 전/후로 비교
3) Detached DOM 노드, 이벤트 리스너 누수 확인
4) unmounted 이후에도 참조가 남는지 조사 → beforeDestroy/destroyed 훅에서 클린업
9. Q: 실사용 환경(Production)에서 성능 데이터를 수집하려면?
A:
- 웹 Vitals(First Paint, LCP, CLS 등) 스크립트 삽입
- Sentry, New Relic, Datadog 등 APM(Application Performance Monitoring) 도구 연동
- 사용자 환경별 지연(Time to Interactive) 수집 → 문제 구간 로깅 및 리포트
10. Q: 성능 최적화를 위해 자주 쓰는 기법은?
A:
- 코드 스플리팅(lazy loading via dynamic import)
- 이미지·폰트 최적화 및 CDN 활용
- Debounce/Throttle 적용 (입력, 스크롤 이벤트)
- v-lazy 또는 Intersection Observer로 컴포넌트 지연 로드
- CSS 트리 쉐이킹(PurgeCSS), JS 압축·난독화
- SSR/Pre-Rendering 도입으로 초기 로드 시간 감소
작성자:
유재석 [비회원]
| 작성일자: 1년 전
2024-09-14 17:14:48
조회수: 141 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
조회수: 141 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.