1. 웹 브라우저
ㅇ HTTP를 이용하여 하이퍼텍스트 문서를 검색하고, 이를 보여주는 프로그램
- 즉, 웹에서 사용자 인터페이스(정보 검색, 표시, 상호작용 등)를 제공하는 프로그램
. 또한, 단순한 정보 제공 도구를 넘어, 현대 디지털 생태계의 중심적인 역할 수행
※ 여기서, 브라우저가 상징하는 요소는, (로터스사 사장 재프 패포우즈, Jeff Papows)
- "PC 내부를 들여다보는 기존의 시각 틀에서,
PC 밖으로의, 즉 외부 네트워크를 향해 나아가 보려는 시각의 변화이다."
* (시각적 패러다임의 전환)
2. 수용 언어 및 기능
ㅇ 언어측면 : HTML (콘텐츠 구조화 언어), CSS (디자인 및 스타일링 언어),
Java Script (사용자 인터페이스의 동적 제어, 상호작용), VRML (3D 가상 세계) 등
ㅇ 부가기능 : 이메일 클라이언트, News 읽기 및 구독, 실시간 채팅과 메시징 지원 등
3. 웹 브라우저 내의 구동 엔진들
ㅇ 랜더링 엔진
- HTML,CSS를 한줄씩 순차 파싱하며, DOM,CSSOM을 생성하는 등
- 例) Blink (Chrome, Edge), WebKit (Safari), Gecko (Firefox) 등
ㅇ 자바스크립트 엔진
- 자바스크립트 코드를 파싱하고, 추상적 구문 트리를 생성하고,
이를 기반으로 실행가능 중간 코드인 바이트코드를 생성 실행하게 됨
- 이때, 자바스크립트 언어 규격인 ECMAScript 규격을 준수하게됨
- 例) 파이어폭스 : SpiderMonkey, 인터넷 익스플로러,엣지 : Chakra, 사파리 : JavaScriptCore,
구글 크롬, Node.js : V8 등
ㅇ Web API ☞ MDN Web API 목록 참조
- DOM API (HTML 문서 구조 조작), WebGL API (그래픽 렌더링), WebRTC API (실시간 통신 지원) 등
ㅇ JVM 엔진
- 자바 기반 애플릿이나 기타 Java 관련 코드를 실행하기 위해 필요한 엔진
ㅇ 기타 플러그-인 모듈 : ActiveX 콘트롤, VRML 등
- (단, 현대 브라우저에서는 보안 문제로 플러그인 의존도가 감소하는 추세임)
4. 웹 브라우저의 특징
ㅇ 이벤트 기반 구조
- 웹 문서,브라우저,요소,객체 등에서 어떤 흥미로운 일이 일어났음을 알리는 이벤트 발생
- 이는 GUI 어플리케이션의 주요 특징이기도 함
ㅇ 코드 실행 결과의 검증 등을 위한 웹 콘솔 지원 등
- 웹 개발자 도구(DevTools)를 통해 제공되며,
- JavaScript 실행 결과 확인, DOM 검사, 네트워크 요청 추적, 오류 디버깅 가능 등
ㅇ 다중 스레딩 및 비동기 처리
- 특히, 현대 브라우저는 HTML 파싱, CSS 처리, 자바스크립트 실행 등을 별도의 스레드에서 처리
- 따라서, 병렬성을 극대화
ㅇ 웹 보안 및 개인정보 보호, 데이터 관리 강화
- HTTPS 지원 및 브라우저별 보안 정책(Same-Origin Policy, CSP 등) 적용
- 쿠키, 세션 스토리지, 로컬 스토리지 등을 통해 사용자 데이터 관리 등
ㅇ 확장성과 표준 준수
- 확장성 : 확장 프로그램(Extensions)을 통해 기능 추가 가능
- 표준 준수 : W3C, WHATWG 등에서 정의한 웹 표준 준수