웹 브라우저
웹 브라우저는 웹의 문서와 응용 프로그램을 탐색하고 실행하는 응용 소프트웨어이다. 사용자가 입력한 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, 이미지, 글꼴과 기타 자원을 해석하여 화면에 표시한다. JavaScript와 WebAssembly로 작성된 프로그램을 실행하며, 입력 처리, 오디오와 영상 재생, 파일 전송, 로컬 저장소, 알림과 장치 접근 등 웹 플랫폼의 기능을 응용 프로그램에 제공한다.
웹 브라우저는 단순히 웹 문서를 보여 주는 프로그램에서 출발했지만, 현대에는 문서 편집기, 메신저, 미디어 플레이어, 게임, 개발 환경과 업무용 소프트웨어를 실행하는 범용 응용 프로그램 플랫폼으로 확장되었다. 브라우저 안에서 실행되는 웹 응용 프로그램은 운영체제와 하드웨어에 직접 접근하는 대신 브라우저가 제공하는 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
브라우저 게임
클라우드 응용 프로그램
원격 데스크톱과 스트리밍
웹 기반 개발 환경
호환성과 웹 개발
표준 모드와 호환 모드
브라우저별 차이
기능 탐지
반응형 웹 디자인
폴리필과 트랜스파일
브라우저 호환성 시험
개발자 도구를 이용한 분석
배포와 업데이트
운영체제 내장 브라우저
독립 설치형 브라우저
모바일 애플리케이션 스토어
자동 업데이트
장기 지원과 기업 정책
관리형 브라우저
생태계와 거버넌스
브라우저 개발사
오픈 소스 프로젝트
표준화 단체
웹 개발자와 웹사이트
검색 엔진과 기본 검색 계약
인증 기관
브라우저 엔진의 다양성
다른 소프트웨어와의 관계
웹 서버
검색 엔진
운영체제
네트워크 클라이언트
문서 뷰어
응용 프로그램 런타임
게임 엔진과 사용자 인터페이스 도구
영향
웹의 대중화
소프트웨어 배포 방식의 변화
운영체제 독립적인 응용 프로그램
정보 접근과 통신
전자 상거래와 온라인 서비스
클라우드 컴퓨팅
모바일 컴퓨팅
개방형 웹과 플랫폼 경쟁
장점과 한계
관련 문서