스테이지1. Background: Web

웹이란?


인터넷을 기반으로 구현된 서비스 중 HTTP를 이요하여 정보를 공유하는 서비스를 웹이라고 한다.

여기서 정보를 제공하는 주체를 웹 서버(Web Server), 정보를 받는 이용자를 웹 클라이언트(Web Client) 라고한다.

식당에서 음식을 서빙하는 사람(Server)과 음식을 주문하는 고객(Client)의 관계로 생각하면 된다.

여기서, HTTP란 웹상에서 서로 통신을 하기 위해 정해둔 프로토콜이다.

💡
프토토콜(Protocol)이란? : 통신 프로토콜 또는 통신 규약은 컴퓨터나 원거리 통신 장비 사이에서 메시지를 주고 받는 양식과 규칙의 체계이다. 즉 통신 규약 및 약속이다.

프론트엔드와 백엔드란?


웹 서비스는 다양한 기능을 수행한다.

예를 들어, 구글과 같은 검색 서비스는 이용자가 “검색어”라는 형태로 자신이 원하는 정보를 추상화해서 전달하면, 구글이 이를 해석하고 가공하여 필요한 정보를 제시한다.

이런 구조에서, 이요자의 요청을 받는 부분을 프론트엔드(Front-end), 요청을 처리하는 부분을 백엔드(Back-end)라고 부른다.

호틀 프론트에 이런저런 서비스를 요청하면 뒤의 공간에서 고객 모르게 복잡한 일들이 벌어지는 것과 비슷하다.

프론트엔드는 이용자에게 직접 보여지는 부분으로, 웹 리소스(Web Resource)로 구성된다.

페이지가 보여주고 있는 정보들은 모두 웹 리소스에 명시되어 있다.

페이지에 담기는 글, 글자들의 색깔과 모양, 배경 색상, 이미지의 크기나 투명도 등이 관련 언어로 적혀있다.

지금 보고있는 Notion 페이지도 여러 웹 리소스들을 바탕으로 시각화 된 것이다.

웹 리소스란?


웹 리소스란, 웹에 갖춰진 정보 자산을 의미한다.

웹 브라우저 주소창에  http://dreamhack.io/index.html 주소를 입력하면 dreamhack.io에 존재하는 /index.html 경로의 리소스를 가져오라는 의미이다.

모든 웹 리소스는 고유의 Uniform Resource Identifier (URI)를 가지며, 이를 이용하여 식별된다.
웹의 프론트엔드를 구성하는 대표적인 웹 리소스들은 다음과 같다.

  • Hyper Text Markup Language (HTML)
  • 웹 문서의 뼈와 살을 담당합니다. 태그와 속성을 통한 구조화된 문서 작성을 지원합니다.
  • Cascading Style Sheets (CSS)
  • 웹 문서의 생김새를 지정합니다. 웹 리소스들의 시각화 방법을 기재한 스타일 시트입니다. 글자의 색깔이나 모양, 배경 색상, 이미지의 크기나 위치 등을 CSS로 지정할 수 있습니다. 브라우저는 이를 참고하여 웹 문서를 시각화합니다.
  • JavaScript (JS)
  • 웹 문서의 동작을 정의합니다. 이용자가 버튼을 클릭했을 때, 어떻게 반응할지, 이용자가 데이터를 입력하면 어디로 전송할지 등을 JS로 구현할 수 있습니다. JS는 이용자의 브라우저에서 실행되는데, 클라이언트가 실행하는 코드라고 하여 Client-Side Script라고도 부릅니다.
  • 그 외
  • 문서, 이미지, 동영상, 폰트 등

웹 클라이언트와 서버의 통신


  1. (클라이언트) 이용자가 브라우저를 이용하여 웹 서버에 접속한다.
  2. (클라이언트) 브라우저는 이용자의 요청을 해석하여 HTTP 형식으로 웹 서버에 리소스를 요청한다.
  3. (서버) HTTP로 전달된 이용자의 요청을 해석한다.
  4. (서버) 해석한 이용자의 요청에 따라 적절한 동작을 한다.  리소스를 요청하는 것이라면, 이를 탐색한다. 계좌 송금, 입금과 같은 복잡한 동작을 요구할 경우 내부적으로 필요한 연산을 처리한다.
  5. (서버) 이용자에게 전달할 리소스를 HTTP 형식으로 이용자에게 전달한다.
  6. (클라이언트) 브라우저는 서버에게 응답받은 HTML, CSS, JS 등의 웹 리소스를 시각화하여 이용자에게 보여준다.

키워드


  • 통신: 정보를 전하는 것. 현대에는 전화, 인터넷 등의 통신 수단을 이용하여 과거보다 시간과 공간의 제약을 받지 않고 이뤄짐.
  • : 인터넷이라는 통신망을 활용하여 구현된 전 지구적 정보 공간
  • 웹 클라이언트: 웹에서 정보를 요구하는 주체
  • 웹 서버: 웹에서 정보를 제공하는 주체
  • 웹 리소스: 웹 서버가 제공하는 정보 자원(e.g. HTML, Javascript, CSS 등)
  • 웹 서비스: 웹 상에서 제공되는 서비스 (e.g. SNS, 온라인 쇼핑몰 등)