logo

브라우저 엔진, blink

Computer Science · 9월 14일 · 13 min read
poster

블링크는 크롬 프로젝트의 일환으로 개발된 브라우저 엔진으로 애플, 구글, 메타, 마이크로소프트, 오페라 소프트웨어, 비발디 테크놀로지스, 어도비, 인텔, IBM, 삼성 등이 참여하고 있으며, 2013년 4월에 처음 발표되었다. 되었다.

네이밍

블링크의 네이밍은 속도라는 의미와 넷스케이프 네비게이터(Netscape Navigator)에 의해 도입되어 2013년 8월까지 프레스토(Presto)와 게코(Gecko) 기반 브라우저에서 지원했던 비표준 프레젠테이션용 블링크(blink) HTML 요소에 대한 언급이라는 2가지 Blink는 이름과 달리 기능적으로 이 요소를 지원한 적이 없으며, 이 요소는 두 가지 큰 요소의 조합에 의해 영향을 받았다.

역사

Blink는 WebKit의 WebCore 컴포넌트의 포크이며, 원래는 KDE의 KHTML과 KJS 라이브러리의 포크였다. Chrome 버전 28 이상, Microsoft Edge 버전 79 이상, Opera(15+), Vivaldi, Brave, Amazon Silk 및 기타 Chromium 기반 브라우저와 프레임워크에서 사용되고 있다.

WebCore의 코드 중 상당 부분은 샌드박스, 멀티 프로세스 모델 등 구글 크롬이 구현하는 기능과 다른 기능에 사용됐다. 이러한 부분은 블링크 포크로 인해 변경되어 다소 부피가 커졌지만, 새로운 기능을 추가할 수 있는 유연성이 높아졌다. 이번 포크에서는 CSS 벤더 프리픽스도 폐지된다. 기존 접두사는 단계적으로 폐지되고, 대신 새로운 실험적 기능이 옵트인 기반으로 활성화된다. 이러한 계획된 변경을 제외하면, 블링크는 초기에는 웹코어와 비교적 비슷한 모습을 유지했다.

커밋 수로 볼 때, 구글은 2009년 말부터 블링크의 포크인 블링크 작업을 시작한 2013년까지 웹킷 코드베이스에 가장 많은 기여를 했다.

내부 구조

Blink 엔진에는 다음과 같은 구성요소가 있다:

DOM, HTML DOM, CSS 렌더링 엔진 웹 IDL 구현 Skia Graphics 엔진 - 플랫폼에 의존하는 그래픽 라이브러리(OpenGL, Vulkan, DirectX 등)를 호출한다. V8 자바스크립트 엔진

퍼블릭 API

Blink는 퍼블릭 API를 공개하여 Chromium과 같은 브라우저가 브라우저 엔진의 내부 변경으로부터 차단된 상태에서 Blink와 상호 작용할 수 있도록 하고 있다.

#프레임워크

Chromium의 Blink를 다른 개발자들이 재사용할 수 있는 소프트웨어 프레임워크로 만드는 프로젝트가 몇 개 있다:

현재 지원되는 안드로이드 운영체제 버전(버전 4.4 이상)에서 WebView 컴포넌트는 WebKit이 아닌 Blink를 기반으로 한다. Chromium Embedded Framework는 Adobe Systems의 소프트웨어, Spotify와 같은 스트리밍 미디어 서비스, Battle.net 및 Steam과 같은 비디오 게임 서비스 등에서 널리 사용되고 있다. NW.js(이전에는 Node-Webkit으로 알려짐)는 원래 Node.js 기반 프레임워크로 인텔이 개발했다. Electron은 GitHub에서 개발한 Node.js 기반 프레임워크이다. Qt 5 프레임워크에서는 Qt WebEngine 모듈이 이전 QtWebKit 모듈을 대체하고 있으며, 2013년 Qt WebEngine은 애플이 개발한 WebKit 엔진을 Blink로 대체했다. Qt 개발자들은 Blink의 크로스 플랫폼 기능(WebRTC, WebGL, WebSocket, 시스템 호출 등)을 즉시 사용할 수 있고, Blink가 유지보수 및 테스트가 더 쉽다고 판단했기 때문이다. Microsoft Edge WebView2는 Windows 앱 개발자가 웹 기술을 사용하여 데스크톱 앱을 구현할 수 있는 프레임워크로, 기존의 WebView EdgeHTML 기반 또는 WebBrowser MSHTML 기반 컨트롤을 대체합니다. 대체하는 프레임워크입니다. DotNetBrowser는 독자적인 .NET Chromium 기반 라이브러리로, 데스크톱 및 서버 솔루션 등 다양한 .NET 애플리케이션에서 Chromium 기능을 사용할 수 있다.

플랫폼

Chromium Blink는 Windows, macOS, Linux, ChromeOS, Fuchsia, Android, Android WebView 등 7가지 플랫폼에 구현되어 있다.

Blink는 FreeBSD와 OpenBSD에서도 비공식적으로 지원된다.

iOS 버전의 Chromium은 여전히 WebKit WebCore 렌더러를 사용하고 있다.

관련 포스트
post image
머신 코드
컴퓨터 프로그래밍에서 기계어 명령어로 구성된 컴퓨터 코드를 말하며, 컴퓨터의 중앙처리장치(CPU)를 제어하는 데 사용된다. 과거에는 10진법 컴퓨터가 일반적이었지만, 현대 시장에서는 2진법 컴퓨터가 주류다. 이러한 컴퓨터에서 기계 코드는 '컴퓨터가 실제로 읽고 해석하
Computer Science·12월 26일·22 min read
post image
책 디자인 패턴 후기
디자인 패턴: Elements of Reusable Object-Oriented Software(디자인 패턴: 재사용 가능한 객체지향 소프트웨어의 요소)(1994)는 소프트웨어 디자인 패턴을 설명한 소프트웨어 공학 서적이다. 에리히 감마, 리처드 헬름, 랄프 존슨,
Computer Science·12월 16일·16 min read
post image
웹프레임워크란?
웹 프레임워크(WF) 또는 웹 애플리케이션 프레임워크(WAF)는 웹 서비스, 웹 리소스, 웹 API를 포함한 웹 애플리케이션 개발을 지원하도록 설계된 소프트웨어 프레임워크이다. 웹 프레임워크는 월드와이드웹에서 웹 애플리케이션을 구축하고 배포하기 위한 표준적인 방법을
Computer Science·7월 24일·11 min read
post image
nextjs의 탄생배경
Next.js는 민간기업 베르셀(Vercel)이 개발한 오픈소스 웹 개발 프레임워크로, 서버 측 렌더링과 정적 웹사이트 생성 기능을 갖춘 리액트 기반 웹 애플리케이션을 제공한다. 리액트 문서에서는 'Node.js로 서버 렌더링된 웹사이트를 구축할 때' 개발자에게 조
Computer Science·7월 14일·16 min read
post image
알고리즘의 정의
수학 및 컴퓨터 과학에서 알고리즘은 일반적으로 특정 문제 클래스를 해결하거나 계산을 수행하는 데 사용되는 엄격한 명령의 유한한 시퀀스이다. 알고리즘은 계산이나 데이터 처리를 수행하기 위한 사양으로 사용된다. 고급 알고리즘은 조건식을 사용하여 코드 실행을 다양한 경로(
Computer Science·7월 4일·29 min read
post image
운영체제 톺아보기
운영체제(OS)는 컴퓨터의 하드웨어 및 소프트웨어 자원을 관리하고 컴퓨터 프로그램에 공통된 서비스를 제공하는 시스템 소프트웨어이다. 시간 공유 운영 체제는 시스템을 효율적으로 사용하기 위해 작업을 예약하고 프로세서 시간, 대용량 저장 장치, 주변 장치 및 기타 자원
Computer Science·5월 21일·17 min read
post image
백그라운드-프로세스에-대해-알아보기
백그라운드 프로세스는 사용자의 개입 없이 무대 뒤에서(즉, 백그라운드에서) 실행되는 컴퓨터 프로세스를 말한다. 이러한 프로세스의 일반적인 작업에는 로깅, 시스템 모니터링, 스케줄링, , 사용자 알림 등이 있다. Windows 시스템에서 백그라운드 프로세스는 사용자
Computer Science·3월 1일·15 min read
post image
프로세스란?
컴퓨팅에서 프로세스는 하나 이상의 스레드에 의해 실행되는 컴퓨터 프로그램의 인스턴스이다. 다양한 프로세스 모델이 존재하며, 일부는 경량화되어 있지만, 거의 모든 프로세스(전체 가상 머신 포함)는 프로그램 코드, 할당된 시스템 자원, 물리적 및 논리적 액세스 권한, 실
Computer Science·2월 16일·26 min read