도구로서의 소프트웨어는 반복적인 작업을 자동화하여 일의 능률을 높이고, 복잡한 기능을 쉽게 사용할 수 있도록 단순하고 직관적인 인터페이스를 제공합니다.

현대의 워드 프로세서에서는 굵기, 이탤릭체, 밑줄 긋기 등의 기능을 단축키로 쉽게 사용할 수 있고 이외에도 다양한 기능들을 지원합니다. 원고지에 글을 작성하거나, 타자기로 글을 찍어낼 때보다 훨씬 쉽고, 편리하게 글을 쓸 수 있게 됐습니다. 인터페이스도 단순하여 사용법을 따로 공부하지 않아도 금세 익숙해질 수 있습니다.

소프트웨어는 발전할수록 이용자 친화적인 인터페이스를 제공하면서 사용법은 쉬워지고, 다양한 기능을 제공합니다. 그만큼 소프트웨어는 내부에서 처리하는 연산이 점점 많아지고 복잡해질 수밖에 없습니다. 이는 물에 떠 있는 오리가 물밑에서는 발을 열심히 구르고 있는 것과 같습니다. 대표적인 소프트웨어로 **웹 브라우저(Web Browser)**가 있습니다.

이번 강의에서는 브라우저의 기능과 역할에 대해 배워볼 것입니다. 이용자가 주소를 입력하고 웹 페이지가 보일 때까지 브라우저가 하는 역할을 살펴볼 것입니다. 이번 강의에서 다루는 내용은 이후 강의에서 브라우저에 적용된 보호 기법과 클라이언트 사이드의 취약점을 배울 때 도움이 될 것입니다.

웹 브라우저


웹은 인터넷이라는 글로벌 네트워크 위에 구현되어 있으며, 정해진 프로토콜을 기반으로 통신합니다. 개발자가 아닌 일반 이용자가 이러한 규칙을 이해하고 인터넷을 사용하기는 매우 어렵습니다. 만약 그랬다면 지금처럼 SNS와 커뮤니티가 활성화되지는 못했을 것입니다. 20세기에 등장한 웹 브라우저는 서버와 HTTP 통신을 대신해주고, 수신한 리소스를 시각화하여 위와 같은 문제를 해결하였습니다.

웹 브라우저는 뛰어난 이용자 경험(User eXperience, UX)을 제공하는 소프트웨어 중 하나입니다. 이용자는 브라우저를 이용하여 쉽게 정보를 검색하고, 동영상을 보고, 파일을 내려받지만 내부에서 어떠한 연산이 일어나는지는 전혀 알지 못합니다.

해당 그림은 이용자가 주소창에 leeyoonho.com 을 입력했을 때 웹 브라우저가 하게 되는 기본적인 동작을 나열한 것입니다.

  1. 웹 브라우저의 주소창에 입력된 주소를 해석 (URL 분석)
  2. leeyoonho.com 에 해당하는 주소 탐색 (DNS 요청) (DNS에 대한 설명은 강의 후반부에 다뤄집니다.)
  3. HTTP를 통해 leeyoonho.com 에 요청
  4. leeyoonho.com 의 HTTP 응답 수신
  5. 리소스 다운로드 및 웹 렌더링 (HTML, CSS, Javascript)

최근에는 브라우저가 보안과 개발에 필요한 다양한 도구들도 제공하고 있습니다. HTTPS의 적용 여부 및 서버 인증서의 안전성 여부를 식별해주는 것이 있습니다. 다음 장부터는 각 동작에 대해 자세히 알아보도록 하겠습니다.

안전한 인증서

안전한 인증서

안전하지 않은 인증서

안전하지 않은 인증서

18b4420593d315da2369a04ecb429034ca8b6b39292b25aa1eef66d2a9573b73.png

URL