웹 브라우저

웹 브라우저는 웹의 문서와 응용 프로그램을 탐색하고 실행하는 응용 소프트웨어이다. 사용자가 입력한 URL이나 하이퍼링크를 바탕으로 웹 서버와 통신하고, 전송받은 HTML, CSS, 이미지, 글꼴과 기타 자원을 해석하여 화면에 표시한다. JavaScript와 WebAssembly로 작성된...

분류응용 소프트웨어, 인터넷 소프트웨어, 클라이언트 소프트웨어
용도 자원의 탐색, 요청, 표시와 실행
주요 입력URL, 사용자 입력, 하이퍼링크
주요 프로토콜HTTP, HTTPS, DNS, WebSocket
주요 웹 기술HTML, CSS, JavaScript, WebAssembly, DOM
핵심 구성 요소사용자 인터페이스, 네트워크 스택, 렌더링 엔진, JavaScript 엔진, 저장소, 보안 경계
대표 렌더링 엔진Blink, Gecko, WebKit
대표 JavaScript 엔진V8, SpiderMonkey, JavaScriptCore
최초의 웹 브라우저WorldWideWeb
최초 개발1990년
주요 형태데스크톱 브라우저, 모바일 브라우저, 텍스트 기반 브라우저, 임베디드 브라우저

웹 브라우저의 문서와 응용 프로그램을 탐색하고 실행하는 응용 소프트웨어이다. 사용자가 입력한 URL이나 하이퍼링크를 바탕으로 웹 서버와 통신하고, 전송받은 HTML, CSS, 이미지, 글꼴과 기타 자원을 해석하여 화면에 표시한다. JavaScriptWebAssembly로 작성된 프로그램을 실행하며, 입력 처리, 오디오와 영상 재생, 파일 전송, 로컬 저장소, 알림과 장치 접근 등 웹 플랫폼의 기능을 응용 프로그램에 제공한다.

웹 브라우저는 단순히 웹 문서를 보여 주는 프로그램에서 출발했지만, 현대에는 문서 편집기, 메신저, 미디어 플레이어, 게임, 개발 환경과 업무용 소프트웨어를 실행하는 범용 응용 프로그램 플랫폼으로 확장되었다. 브라우저 안에서 실행되는 웹 응용 프로그램은 운영체제와 하드웨어에 직접 접근하는 대신 브라우저가 제공하는 API와 권한 체계를 사용하며, 브라우저는 서로 다른 출처에서 전달된 코드를 격리하고 사용자의 데이터와 장치를 보호하는 실행 환경 역할도 맡는다.

일반적인 웹 브라우저는 주소 표시줄과 탭을 관리하는 사용자 인터페이스, 서버와 통신하는 네트워크 스택, 문서 구조와 스타일을 처리하는 렌더링 엔진, 프로그램을 실행하는 JavaScript 엔진, 그래픽 합성과 미디어 처리를 담당하는 구성 요소, 방문 기록과 쿠키를 관리하는 저장소로 이루어진다. 현대 브라우저는 안정성과 보안을 높이기 위해 이러한 기능을 여러 운영체제 프로세스로 분리하고, 웹사이트나 프레임을 별도의 렌더러 프로세스와 샌드박스에 배치하는 구조를 널리 사용한다.

최초의 웹 브라우저인 WorldWideWeb팀 버너스리CERN에서 1990년에 개발했으며 웹 문서를 열람하는 기능과 편집 기능을 함께 제공했다. 이후 여러 환경에서 실행할 수 있는 라인 모드 브라우저와 그래픽 브라우저가 등장했고, 1993년 공개된 NCSA Mosaic은 문자와 이미지를 한 화면에 통합하여 표시하면서 웹의 대중화에 중요한 역할을 했다. 웹 브라우저는 이후 Netscape Navigator, Internet Explorer, Mozilla Firefox, Safari, Google Chrome 등으로 계보가 이어졌으며, 웹 표준의 발전과 함께 운영체제에 준하는 규모의 소프트웨어 체계로 성장했다.

---

역사

웹 이전의 하이퍼텍스트와 인터넷 클라이언트

WorldWideWeb와 초기 웹 브라우저

라인 모드 브라우저와 플랫폼 확장

NCSA Mosaic과 웹의 대중화

Netscape Navigator와 상용 웹의 성장

제1차 브라우저 전쟁

웹 표준 운동과 Mozilla

WebKit과 모바일 웹의 성장

Google Chrome과 Chromium

현대 웹 브라우저의 발전

정의와 역할

웹 클라이언트로서의 브라우저

문서 뷰어와 응용 프로그램 플랫폼

브라우저와 사용자 에이전트

브라우징 컨텍스트

웹 브라우저와 검색 엔진의 차이

사용자 인터페이스

주소 표시줄과 검색 통합

탭과 창

탐색과 세션 기록

북마크와 읽기 목록

다운로드 관리

개인 정보 보호 모드

사용자 프로필과 동기화

내부 구조

브라우저 프로세스

렌더러 프로세스

사이트 격리와 프로세스 모델

네트워크 서비스

렌더링 엔진

JavaScript 엔진

그래픽 합성과 GPU 가속

오디오와 영상 처리

데이터 저장소

확장 기능 시스템

웹 페이지의 처리 과정

URL 해석과 탐색 시작

DNS 조회와 연결 수립

HTTP 요청과 응답

자원 불러오기

HTML 구문 분석과 DOM 구성

CSS 구문 분석과 CSSOM 구성

JavaScript 실행

스타일 계산과 레이아웃

페인트와 합성

사용자 입력과 화면 갱신

렌더링 엔진

Blink

Gecko

WebKit

역사적 렌더링 엔진

엔진 계통과 코드 공유

렌더링 엔진과 브라우저의 구분

JavaScript 엔진

V8

SpiderMonkey

JavaScriptCore

JavaScript 해석과 컴파일

JIT 컴파일

가비지 컬렉션

WebAssembly 실행

렌더링 엔진과의 연동

웹 플랫폼

HTML

CSS

JavaScript와 ECMAScript

Document Object Model

Web API

네트워크 API

그래픽과 멀티미디어 API

장치 접근 API

백그라운드 실행

Progressive Web App

웹 표준과 상호 운용성

WHATWG

World Wide Web Consortium

Ecma International

Internet Engineering Task Force

Living Standard

브라우저 구현과 표준화

상호 운용성 시험

접두사와 실험적 기능

하위 호환성

보안

동일 출처 정책

출처와 사이트

샌드박스

사이트 격리

HTTPS와 인증서 검증

콘텐츠 보안 정책

권한 관리

다운로드 보호

악성 웹사이트와 피싱 방지

브라우저 취약점과 업데이트

개인 정보 보호

쿠키

제3자 쿠키

캐시와 브라우저 저장소

브라우저 지문 채취

추적 방지

개인 정보 보호 모드의 범위

데이터 삭제와 보존

동기화 데이터

네트워크와 저장소

HTTP와 HTTPS

연결 재사용과 다중화

프록시와 VPN

DNS 처리

HTTP 캐시

쿠키 저장소

Web Storage

IndexedDB

Cache API

오프라인 실행

성능과 자원 관리

페이지 로딩 성능

렌더링 성능

JavaScript 실행 성능

메모리 관리

탭 절전과 폐기

네트워크 최적화

사전 연결과 사전 로딩

GPU 가속

전력 소비

확장 기능과 자동화

브라우저 확장 기능

콘텐츠 스크립트

권한과 격리

사용자 스크립트

북마클릿

개발자 도구

WebDriver

헤드리스 브라우저

브라우저 자동화

접근성과 국제화

접근성 트리

보조 기술 연동

키보드 탐색

확대와 글꼴 설정

문자 인코딩

국제화와 현지화

오른쪽에서 왼쪽으로 쓰는 문자

입력기와 복합 문자 처리

브라우저의 종류

그래픽 웹 브라우저

텍스트 기반 웹 브라우저

데스크톱 웹 브라우저

모바일 웹 브라우저

임베디드 웹 브라우저

헤드리스 웹 브라우저

키오스크 브라우저

프라이버시 중심 브라우저

게임기와 스마트 TV의 브라우저

주요 웹 브라우저

Google Chrome

Safari

Microsoft Edge

Mozilla Firefox

Opera

Samsung Internet

Chromium 계열 브라우저

기타 웹 브라우저

운영체제와의 관계

데스크톱 운영체제

모바일 운영체제

시스템 웹뷰

기본 브라우저

파일과 프로토콜 연결

운영체제 보안 기능과의 연동

브라우저 기반 운영체제

웹 응용 프로그램과의 관계

전통적인 웹사이트

단일 페이지 응용 프로그램

Progressive Web App

브라우저 게임

클라우드 응용 프로그램

원격 데스크톱과 스트리밍

웹 기반 개발 환경

호환성과 웹 개발

표준 모드와 호환 모드

브라우저별 차이

기능 탐지

반응형 웹 디자인

폴리필과 트랜스파일

브라우저 호환성 시험

개발자 도구를 이용한 분석

배포와 업데이트

운영체제 내장 브라우저

독립 설치형 브라우저

모바일 애플리케이션 스토어

자동 업데이트

장기 지원과 기업 정책

관리형 브라우저

생태계와 거버넌스

브라우저 개발사

오픈 소스 프로젝트

표준화 단체

웹 개발자와 웹사이트

검색 엔진과 기본 검색 계약

인증 기관

브라우저 엔진의 다양성

다른 소프트웨어와의 관계

웹 서버

검색 엔진

운영체제

네트워크 클라이언트

문서 뷰어

응용 프로그램 런타임

게임 엔진과 사용자 인터페이스 도구

영향

웹의 대중화

소프트웨어 배포 방식의 변화

운영체제 독립적인 응용 프로그램

정보 접근과 통신

전자 상거래와 온라인 서비스

클라우드 컴퓨팅

모바일 컴퓨팅

개방형 웹과 플랫폼 경쟁

장점과 한계

관련 문서