Chorme은 멀티 스레드 방식과 멀티 프로세스 방식 중 멀티 프로세스 방식으로 브라우저를 관리한다.
프로세스 처리 방식
Chrome은 크게 4가지의 process를 사용한다. 탭은 한 process만 지니는 게 아니라 여러개의 process를 지닌다.
프로세스 | 프로세스의 제어영역 |
브라우저 프로세스 | 탭 외부의 크롬 내장 기능(URL 표시줄, 북마크 바, 이전페이지, 다음 페이지 등)을 담당 |
렌더러 프로세스 | 탭 내부의 웹 사이트 표시되는 모든 것을 담당 |
플러그인 프로세스 | 웹 사이트에서 사용하는 플러그인(flash, PDF, media, music 등)을 담당. |
CPU 프로세스 | GPU 사용하는 부분은 해당 프로세스가 담당. |
탭의 핵심은 렌더러 프로세스 (iframe)
iframe은 사이트 내부에 또 다른 웹 사이트를 삽입하는 것으로 Chrome에서 이를 어떻게 처리할까?
동일 프로세스로 접근하면 브라우저 사용자의 개인 정보 등 취약한 정보에 접근할 수 있는 문제가 생길 수 있으므로 iframe별로 서로 다른 Renderer가 담당하도록 해서 동일 출처 정책(Same Origin Policy)를 적용한다. (이런 이유때문에 CORS 문제를 겪기도 한다.)
댓글