728x90
반응형

1. 서론: 웹 브라우저의 숨겨진 프로세스
우리가 일상적으로 사용하는 웹 브라우저는 복잡한 과정을 거쳐 우리에게 웹페이지를 보여줍니다. URL을 입력하고 엔터를 누르는 간단한 동작 뒤에는 여러 단계의 정교한 프로세스가 숨어 있습니다.

이 글에서는 브라우저의 동작을 크게 세 가지 단계로 나누어 살펴보겠습니다

내비게이션, 파싱, 렌더링.

 


2. 내비게이션: 웹페이지로의 여정
내비게이션은 사용자가 URL을 입력하고 엔터를 누르는 순간부터 시작됩니다.
1) DNS 요청: 브라우저는 먼저 DNS(Domain Name System) 서버에 URL에 해당하는 IP 주소를 요청합니다. DNS 서버는 마치 인터넷의 전화번호부와 같은 역할을 합니다.
2) TCP 연결: IP 주소를 얻은 후, 브라우저는 서버와 TCP 연결을 수립합니다. 이 과정은 '3-way handshake'라 불리는 세 번의 패킷 교환을 통해 이루어집니다.
3) HTTP 요청: 연결이 수립되면, 브라우저는 서버에 HTTP GET 요청을 보냅니다. 대부분의 경우, 서버는 이에 대한 응답으로 index.html 파일을 전송합니다.

 


3. 파싱: 코드를 이해하는 과정
서버로부터 받은 HTML 파일은 브라우저가 이해할 수 있는 형태로 변환되어야 합니다. 이 과정을 파싱이라고 합니다.
1) HTML 파싱: HTML 파일은 바이트 → 문자 → 토큰 → 노드 → DOM(Document Object Model) 트리로 변환됩니다.
2) CSS 파싱: HTML 파싱 중 <link> 태그를 만나면 CSS 파일을 요청하고 파싱합니다. 이 과정은 CSSOM(CSS Object Model) 트리를 생성합니다.
3) JavaScript 파싱: <script> 태그를 만나면 JavaScript 파일을 요청하고 파싱합니다. 이 과정은 AST(Abstract Syntax Tree)를 생성하고, 이후 바이트 코드로 변환됩니다.

 


4. 렌더링: 화면에 그리는 과정
파싱이 완료되면, 브라우저는 이를 바탕으로 실제 화면에 웹페이지를 그리는 렌더링 과정을 시작합니다.
1) 렌더 트리 생성: DOM과 CSSOM을 결합하여 렌더 트리를 만듭니다. 이 트리는 화면에 실제로 그려질 요소만을 포함합니다.
2) 레이아웃: 렌더 트리의 각 요소의 크기와 위치를 계산합니다.
3) 페인팅: 계산된 위치와 크기에 따라 실제로 픽셀을 화면에 그립니다. 이 과정에서 GPU가 활용되어 효율적으로 처리됩니다.

 


5. 결론
브라우저의 동작은 이렇게 복잡한 과정들이 순차적으로, 때로는 병렬적으로 실행되며 이루어집니다. 내비게이션을 통해 필요한 파일들을 가져오고, 파싱을 통해 브라우저가 이해할 수 있는 구조로 변환하며, 마지막으로 렌더링 과정을 통해 사용자에게 시각적으로 표현됩니다.

이러한 과정을 이해함으로써, 우리는 웹 개발 시 성능 최적화나 문제 해결에 더 효과적으로 접근할 수 있습니다. 브라우저의 동작 원리는 웹 기술의 근간을 이루는 중요한 지식이며, 이를 통해 더 나은 웹 경험을 만들어낼 수 있습니다.

728x90
반응형

+ Recent posts