웹을 이해하기 위해서는 먼저 인터넷(Internet)에 대해 알아야 한다.
전 세계의 모든 컴퓨터를 하나의 통신망 안에 연결한다는 의미를 가진 International Network의 약자
월드 와이드 웹(world wide web)은 인터넷에 연결된 컴퓨터를 통해 사람들이 정보를 공유할 수 있는 공간을 말한다. 보통 www, w3 그리고 월드 와이디 웹을 열여서 웹(Web)이라고 불린다.
웹은 1980년대 어느날, 스위스의 입자 물리 연구소 CERN의 컴퓨터 과핮가 팀 버너스-리에 의해 연구원들 간 신속한 정보교환을 위해 고안 되었다.
이는 페이스북의 탄생 배경과 비슷하다.
웹은 정보를 하이퍼텍스트 형식으로 표현하여, 링크를 따라 이동하며 다양한 정보/ 문서들을 연결, 제공한다.
하이퍼 텍스트란?
"단순히 굴자가 아닌 이상의 기능을 가진 텍스트"로 주로 링크, 참조의 역할을 하는 기술을 의미한다.
이러한 웹은 웹 사이트가 있고, 이 사이트는 웹 페이지로 구성되어있다.
웹 페이지나 웹상의 데이터를 찾거나 읽을때 사용하는 것을 웹 브라우저(Web browser)라고 한다.
웹을 사용하는 것은 레스토랑에서 주문하는 것에 많이 비유된다.
클라이언트(손님)가 서버에게 어떤 서비스나 정보를 요청하면 저장소(주방)에서 찾아(요리해서) 정보를 가져다준다.
프로토콜
서버와 클라이언트 간의 통신을 위한 약속이다. 반드시 이 약속을 지켜서 통신을 해야한다.
인터넷으로 연결된 클라이언트와 서버는 웹 프로토콜인 HTTP(HyperText Transfer Protocol)를 사용하여 데이터를 주고 받는다.
우리가 컴퓨터에서 웹 브라우저를 통해 웹 페이지 주소를 가져와 달라고 신청하면 인터넷을 통해 해당 페이지가 들어있는 웹 서버에서 페이지를 받아오게된다.
그렇다면 각 개발에 대해서 알아보자
웹 서비스(웹 사이트)에서 사용자 측면(Client-side)의 그래픽 사용자 인터페이스로, 사용자와 상호작용(글자 입력, 버튼 클릭, 화면 출력 등)을 담당하게 된다.
즉, 화면에 나오는걸 담당하게 된다는 말이다.
화면을 그리기 위해서는 3가지가 필요하다.
웹 서비스(웹 사이트)에서 사용자 눈에는 보이지 않는 서브측(Server-side)에서 프론트엔드에서 전달받은 데이터와 요청을 내부 데이터와 연산을 활용하여 처리하고 프론트엔드에 결과를 전달합니다.
프론트와 백을 모두 할 줄 아는 개발자
레스토랑에 비교
🍽 레스토랑 = 웹사이트
웹사이트는 레스토랑처럼 손님(사용자)에게 서비스를 제공하는 곳
🏠 레스토랑의 외관 = 프론트엔드(Front-end)
레스토랑에 들어가면 먼저 보이는 게 인테리어, 메뉴판, 테이블 등을 만듬
HTML → 건물의 뼈대 (벽, 기둥, 테이블 배치)
CSS → 인테리어 (색깔, 디자인, 조명)
JavaScript → 웨이터의 움직임 (버튼 클릭, 애니메이션)
👩🍳 주방 = 백엔드(Back-end)
손님이 음식을 주문하면 주방에서 요리를 가져다줌
서버 → 주방 (요리를 만들고 처리하는 곳)
데이터베이스 → 식자재 창고 (음식 재료 저장소)
API → 웨이터 (주방과 손님을 연결하는 역할)
🛎 손님이 주문하는 과정 = 데이터 요청
손님(사용자)이 메뉴(웹페이지 버튼)를 보고 음식을 주문(클릭)
웨이터(API)가 주문을 주방(서버)으로 전달
주방(백엔드)이 요리(데이터 처리)
웨이터(API)가 완성된 음식을 손님에게 서빙(웹페이지 업데이트)
IDE(integreated Development Environmnet,통합 개발 환경)을 사용한다.
대표적으로 vscode, eclipse, IntelliJ가 있다.