본문 바로가기
Programming

Web이란 무엇인가?

by 개발자 염상진 2023. 1. 3.

 

Web 이란?

 

최초로 웹을 창시한 건 구글이 아닙니다.

 

 

 

영국 출신의 팀 버너스 리 입니다. 그는 www, URL, HTTP등을 통해 웹을 현실화 시켰고, 이 후 구글, 네이버, 페이스북, 카카오 등 다양한 서비스가 나오면서 웹 기반 거대 테크 회사 성장할 수 있었습니다.

팀 버너스 리는 전세계의 망을 하나로 묶어 WWW(월드 와이드 웹)을 고안했고, 웹 내에서 서버와 클라이언트간 통신 프로토콜인 HTTP와 URL을 개발했습니다. 그는 이 공로로 영구에서 기사작위를 수여받았습니다.

전 세계에서 웹을 통해 가장 돈을 많이 벌어들인건 미국이지만 사실 기술의 기반은 영국이라는 점이 아이러니 합니다.

더 충격적인 건 팀 버너스 리가 웹의 사용권을 특허를 내지 않고 무료로 공개한 것입니다. 앞으로 더 자유롭고 풍부하게 성장할 웹을 기대하고 한 행동입니다. 그는 현재 W3C를 조직하고 운영하면서 web3.0을 위한 표준을 준비하고 있습니다.

 

web이 작동하는 방식

 

우리는 컴퓨터를 켜고, 크롬이나 사파리 등의 웹 브라우저를 통해 인터넷에 간단하게 접속할 수 있습니다. 

여기서 우리가 어떻게 네이버 메인 페이지에 접속해서 검색을 하고 결과를 확인할 수 있는지 잠깐 생각해보겠습니다.

 

 

 

웹의 기본 구조는 서버와 클라이언트로 구성됩니다. 

클라이언트는 일반적인 사용자를 의미합니다. 어떠한 자료를 가지고 있지 않은 상태로 정보를 요청하는 주체입니다. 

서버란 네이버나 구글과 같은 정보를 가지고 클라이언트 요청에 따라 정보를 전달해주는 주체를 의미합니다. 

즉, 우리가 구글 메인 페이지에 접속한다는 말은 메인 페이지의 리소스(HTML, CSS, Javascript, Image 등)를 요청한다는 말과 동일합니다. 

클라리언트는 서버에서 전달받은 리소스들을 렌더링이라는 과정을 통해 우리가 사용할 수 있는 페이지로 변환해주는 작업을 거쳐 전달됩니다.

 

서버와 클라이언트는 어떻게 연결될까?

 

클라이언트가 서버에 리소스를 요청하기 위해서는 인터넷에 접속되어야 합니다. 

여기서 OSI 7계층 개념이 등장합니다. 

복잡한 개념은 생략하고 간단하게 인터넷에 접속 과정을 보겠습니다.

 

 

 

Layer1부터 컴퓨터에 꽂혀 있는 RS45 케이블을 통해 인터넷에 접속하고 최종 HTTP 애플리케이션 계층 까지 데이터가 전달됩니다. 

OSI 7계층을 통해 클라이언트가 서버에 데이터를 요청하고 리소스를 받아올 수 있다는 정도만 기억하셔도 무방합니다.

더 자세히 알아보고 싶으신 분들은 아래 글을 참고해주세요

 

 

[Network] API란 무엇인가? (feat OSI 7계층, Protocol)

클라이언트 ~ 서버 네트워크 패턴 웹 애플리케이션은 클라이언트-서버 패턴을 가진다. 클라이언트는 자원을 서버에 요청하게 되고, 서버는 요청에 적합한 자원을 반환하면서 클라이언트와 서버

about-tech.tistory.com

 

웹 개발이란?

 

웹에 대해서 간단하게 살펴보았습니다. 그럼 웹 개발이란 무엇일까요?

웹 개발은 크게 2가지 파트로 구분됩니다.

클라이언트 역할을 담당하는 프론트엔드와 서버 역할을 담당하는 백엔드로 구분됩니다.

 

 

여기서 클라이언트는 리액트, VUE, Angular 등의 프레임워크로 제작됩니다. 

백엔드는 서버가 데이터를 잘 전달해줄 수 있도록 데이터베이스를 구축하고, API 아키텍쳐를 구성하는 작업을 의미합니다.

 

만약 프론트엔드와 백엔드를 모두 구성하고 개발할 수 있는 개발자를 풀스택 개발자라고 할 수 있습니다. 

하지만 사실 주니어 레벨에서 풀스택을 구성한다는 말은 위험할 수 있습니다. 프론트엔드와 백엔드 모두 깊게 들어가면 정말 한도 끝도 없이 어렵기 때문입니다.

우리 목표는 간단한 웹앱을 구성해보면서 웹을 이해하는 것입니다. 전체적인 학습을 마친 후에 더 관심이 가고 의욕이 생기는 분야에 도전하시길 추천드립니다. 

 

 

'Programming' 카테고리의 다른 글

AWS 10,000 크레딧 수령하는 방법  (0) 2023.01.05
Node.js 크롤링 하는 방법  (0) 2023.01.05
SVG란 무엇인가? CSS 적용하기  (0) 2023.01.03
2022년 회고  (0) 2023.01.02
CI/CD #4 배포 구성하기 AWS EC2 [최종]  (0) 2022.12.29

댓글