
요즘 웹 성능 최적화에 대해 공부하고 있다. 성능 최적화를 위해 개발자 도구에서 주로 사용되는 탭에는 Network, Performance, Lighthouse 등이 있다. Network탭은 기존에 개발하면서 자주 사용하던 기능이지만, 복습할 겸 오늘은 Network 탭에 대해 다시 정리해보려고 한다.
개발자도구의 네트워크 탭은 웹 브라우저와 서버 간의 네트워크 요청과 응답을 실시간으로 모니터링할 수 있는 탭이다. 웹 페이지가 로드되거나 사용자 상호작용으로 발생하는 모든 네트워크 활동(예: HTTP 요청, 파일 로드, 데이터 전송 등)을 상세히 확인할 수 있다.
네트워크 탭은 개발자가 페이지 성능, 네트워크 오류, API 디버깅 등 다양한 문제를 해결할 때 사용할 수 있어 웹 개발자에겐 매우매우 필수이다!!

위는 우리가 잘 아는 크롬 개발자도구에 네트워크 탭이다. 네트워크 탭에서 각 영역과 기능에 대해 살펴보자.
1. Filter (필터)
필터는 Fetch/XHR, Doc, CSS, JS등 네트워크 요청을 유형별로 필터링한다. 특정 파일 형식이나 특정 요청 유형만 보고 싶다면 필터링을 해서 볼 수 있다.
Fetch/XHR: API 요청(예: fetch, axios 등).
Doc: HTML 문서.
CSS: 스타일시트.
JS: JavaScript 파일.
Img: 이미지 파일.
Font: 폰트 파일.
Media: 비디오나 오디오 파일.
Manifest: 웹 애플리케이션 매니페스트 파일.
WS (WebSocket): WebSocket 연결.
Other: 기타 유형 요청.
또한 특정 HTTP 메소드만 필터링해서 보고 싶다면 필터링 텍스트 박스에 입력해서 볼 수 있다.
ex) HTTP Method 가 GET 인 인터페이스만 필터링 하고 싶다면

2. Preserve log (로그 유지)
3. Disable cache (캐시 비활성화)
4. Throttling (네트워크 속도 제한)
5. Request Overview
시간 축(타임라인)을 기준으로 네트워크 요청을 시각적으로 표시한다.
색상 막대는 각 요청의 진행 상태를 나타낸다.
파란색: 네트워크 요청이 시작되어 데이터를 다운로드하는 시간.
노란색: 브라우저가 응답을 처리하는 시간.
녹색(없음): HTTP 응답을 기다리는 시간.
각 요청에 대한 소요 시간을 확인할 수 있다.
6. Big request rows
7. Group by frame (프레임별 그룹화)
8. Screenshots (스크린샷)

아마 웹 개발자분들이라면 대부분 알거라고 생각하지만 간단하게만 살펴보자.
1. Name (이름)
2. Status (상태 코드)
3. Type (유형)
document: HTML 문서.
script: JavaScript 파일.
jpeg, png: 이미지 파일.
fetch: API 요청(데이터 호출).
4. Initiator (요청자)
5. Size (크기)
6. Time (시간)

Headers (헤더)

Preview (미리보기)

Response (응답)

Initiator (요청자)

Timing (타이밍)
Queueing: 요청이 대기열에 머문 시간.
DNS Lookup: DNS 조회 시간.
Initial Connection: 서버와의 연결 설정 시간.
Request Sent: 요청이 서버로 전송된 시간.
Waiting (TTFB): 서버 응답을 기다린 시간(Time to First Byte).
Content Download: 응답 데이터를 다운로드한 시간.
혹시라도 잘못된 내용이 있거나 질문사항 있으시면 댓글 남겨주세요! 어떤 댓글이든 달게 받겠습니다!