발표 스터디 7번째 주제로 선정한,
최신 브라우저의 내부 살펴보기
에 대한 정리 글입니다.📌 최신 브라우저의 내부 살펴보기 포스팅은 Google Developers에 있는 해당 포스팅을 요약했습니다.
자원
을 서버로 요청하고, 응답 받은 자원을 알맞게 표시해주는 소프트웨어
💡 브라우저가 실행되는 환경을 이해하려면 몇 가지 컴퓨터 부품과 그 기능을 이해해야 한다.
→ 컴퓨터의 핵심은
CPU
와GPU
이다!
두뇌
라 할 수 있다.여러 종류의 작업
을 하나씩 순서대로 처리할 수 있다.그래픽 작업
을 처리하기 위해 개발되었다.간단한 작업
에 특화되어 있지만, 여러 GPU 코어가 동시에
작업을 수행할 수 있다.https://www.youtube.com/watch?v=-P28LKWTzrI
프로그램
프로그램의 일부
브라우저 프로세스
는 애플리케이션의 각 부분을 맡고 있는 다른 프로세스를 조정한다.렌더러 프로세스
는 여러 개가 만들어져 각 탭
마다 할당(process per tab)된다. 최근까지 Chrome은 탭마다 프로세스를 할당했으나, 현재는 사이트
마다 프로세스(process per site, iframe
포함)를 할당한다.프로세스 | 프로세스가 제어하는 부분 |
---|---|
브라우저 프로세스 | 주소 표시줄, 북마크 막대, 뒤로 가기 버튼, 앞으로 가기 버튼 등 애플리케이션의 "chrome" 부분(브라우저의 UI 영역)을 제어한다. 네트워크 요청이나 파일 접근과 같이 눈에 보이지는 않지만 권한이 필요한 부분도 처리한다. |
렌더러 프로세스 | 탭 안에서 웹 사이트가 표시되는 부분의 모든 것을 제어한다. |
플러그인 프로세스 | 웹 사이트에서 사용하는 플러그인(예: Flash)을 제어한다. |
GPU 프로세스 | GPU 작업을 다른 프로세스와 격리해서 처리한다. GPU는 여러 애플리케이션의 요청을 처리하고 같은 화면에 요청받은 내용을 그리기 때문에 GPU 프로세스는 별도 프로세스로 분리되어 있다. |
각각의 탭이 독립적인 렌더러 프로세스에 의해 실행되므로, 응답하지 않는 탭이 생기면 그 탭만 닫고 실행 중이 다른 탭으로 이동할 수 있다. 만약 모든 탭이 하나의 프로세스에서 실행 중이었다면, 응답하지 않는 탭이 생기면 모든 탭이 응답하지 못하게 된다.
하지만, 동일한 프로세스의 스레드가 메모리를 공유할 수 있는 데 반해 서로 다른 프로세스는 메모리를 공유할 수 없어 메모리 사용량이 더 많아질 수 밖에 없다. Chrome은 메모리를 절약하기 위해 기기의 메모리 용량과 CPU 성능에 따라 실행할 수 있는 프로세스의 개수를 제한한다.