client/web

엔진과 브라우저

growww 2018. 11. 18. 22:34

1. 엔진 

 - 구분 : 레이아웃 엔진 또는 렌더링 엔진 / 자바스크립트 엔진


 - 렌더링 엔진

  . 기능 : HTML, XML 서식정보인 CSS 등을 읽어드려 사람이 눈으로 읽고 볼수 있는 문서로 표시하는 웹 브라우저의 핵심기능을 담당 한다. '코드'를 호출시에만 읽고서 해석을 한다는 점에서 인터프리터라고도 볼 수 있다.

  . 종류 : 게코(Gecko)웹키트(WebKit)블링크(Blink)트라이던드(Trident) 등

  . 엔진별 설명

    . 블링크 : 웹키트의 웹코어 컴포넌트의 포크 엔진으로 2013년 4월에 처음 발표되었으며 구글 크롬 버전28+, 오페라 브라우저 15+, 비발디 브라우저, 웨일 브라우저, 안드로이드 4.4+의 웹뷰 및 Qt 웹엔진에서 사용 중입니다.


 - 자바스크립트 엔진

  . 기능 : 자바스크립트 엔진(JavaScript engine)은 자바스크립트 코드를 실행하는 프로그램 또는 인터프리터이다. 자바스크립트 엔진은 전통적인 인터프리터일 수도 있고, 특정한 방식으로 바이트코드로 JIT 컴파일을 할 수 있다.

  . 종류 : V8, Rhino, SpiderMonkey 등

  . 엔진별 설명 

    . V8 : V8 엔진(영어: Chrome V8)은 웹 브라우저를 만드는 데 기반을 제공하는 오픈 소스 응용 프로그램 프레임워크이다. 구글 크롬 브라우저와 안드로이드 브라우저에 탑재되어 있다. V8은 자바스크립트를 바이트코드(bytecode)로 컴파일하거나 인터프리트(interpret)하는 대신 실행하기 전 직접적인 기계어(x86, ARM, 또는 MIPS)로 정적 컴파일(static compile)하여 성능을 향상시켰다. 추가적인 속도향상을 위해 인라인 캐싱(inline caching)과 같은 최적화 기법을 적용하였다.


** 최근에는 문서로서뿐만이 아니라 프로그램적인 성격인 사용자의 입력에 대한 반응을 위해 웹 브라우저에는 자바스크립트 엔진 등이 추가로 들어간다.

** 즉 렌더링 엔진과 자바스크립트 엔진은 서로 다른 것임을 기억하자.


2. 브라우저

 - 기능 : 브라우저의 주요 기능은 사용자가 선택한 자원을 서버에 요청하고 브라우저에 표시하는 것이다. 자원은 보통 HTML 문서지만 PDF나 이미지 또는 다른 형태일 수 있다. 자원의 주소는 URI(Uniform Resource Identifier)에 의해 정해진다.


 - 브라우저의 주요 구성 요소


brouser1


 - 구성 요소 상세

  . 렌더링 엔진 : 통신으로부터 요청한 문서의 내용을 얻는 것으로 시작하는데 문서의 내용은 보통 8KB 단위로 전송된다.


brouser2

  

  렌더링은 일련의 과정들이 점진적으로 진행된다는 것을 아는 것이 중요하다. 렌더링 엔진은 좀 더 나은 사용자 경험을 위해 가능하면 빠르게 내용을 표시하는데 모든 HTML을 파싱할 때까지 기다리지 않고 배치와 그리기 과정을 시작한다. 네트워크로부터 나머지 내용이 전송되기를 기다리는 동시에 받은 내용의 일부를 먼저 화면에 표시하는 것이다.




출처 :


https://linkhub.tistory.com/5

https://d2.naver.com/helloworld/59361

https://www.slideshare.net/JinKyoungHeo/1-2-53043752

https://namu.wiki/w/%EC%97%94%EC%A7%84/%EC%9B%B9%20%EB%B8%8C%EB%9D%BC%EC%9A%B0%EC%A0%80

http://mygumi.tistory.com/173