3. Web Front-End & Back-End

1) Front End

Web Front End란?
  • 사용자에게 웹을 통해 다양한 콘텐츠(문서, 동영상, 사진 등)을 제공
  • 사용자의 요청(요구사항)에 반응해서 동작
  • Client Side
Web Front End의 역할
  • HTML : 웹 콘텐츠를 잘 보여주기 위한 구조
  • CSS : 적절한 배치와 일관된 디자인 등을 제공
  • JavaScript : 사용자의 요청을 잘 반영

2) Back End

Web Back End란?
  • 정보처리 및 저장, 요청에 따라 정보를 내려주는 역할
  • Server Side
Back End 개발
  • 프로그래밍 언어(Java, PHP, Python, JavaScript 등)
  • 웹의 동작 원리
  • 알고리즘, 자료구조 등 프로그래밍 지식
  • 운영체제, 네트워크 등에 대한 이해
  • 프레임워크에 대한 이해(Spring, Django 등)
  • DBMS에 대한 이해와 사용방법(MySQL, Oracle 등)

4. Web Browser의 동작1

Browser란?2
  • 데이터를 해석해주는 파서 + 데이터를 화면에 표시해주는 렌더링엔진을 포함한 소프트웨어
Browser의 기본 구조
구성 요소 특징
User Interface 주소표시줄, 이전/다음 버튼, 북마크 메뉴, 브라우저에서 보이는 모든 요소(요청 페이지 창을 제외)
Browswer Engine UI와 렌더링 엔진 사이의 작업을 정렬
Rendering Engine 요청된 콘텐츠를 보여주는 역할, ex) 요청된 HTML을 렌더링 엔진이 HTML과 CSS를 파싱하여 화면에 파싱된 콘텐츠를 보여줌
Networking 플랫폼 독립 인터페이스로, HTTP 요청과 같은 네트워크 호출에 사용
JavaScript Interpreter 자바스크립트 코드를 파싱하고 처리함
UI Backend 콤보 박스와 창 같은 기본적인 위젯을 그리는데 사용, 플랫폼에 종속되지 않은 일반 인터페이스
Data Storage 영구적인 층으로, 브라우저는 쿠키와 같은 모든 종류의 데이터를 로컬로 저장 가능해야 함
Main Flow(Webkit)

Webkitflow Image3

Parsing General
  • Lexical Analysis
  • Syntax Analysis
  • Semantic Analysis
  • 자세한 부분은 컴파일러 관련으로 Pass
HTML Parser
  • HTML 태그를 통해 DOM Tree 구성
CSS Parser
  • Brace로 작성, Selector, Declaration로 Tree 구조 구성