[2023. 11. 21 ~ 24 학습 분]
1. 웹의 시작
웹의 시작은 컴퓨터와는 관계가 없는 곳에서 시작되었다.
1989년 CERN에서 근무하던 팀 버너스 리가 연구원 간에 정보 교환을 빠르게 하기 위해 만들었다고 전해진다.
이른바 WWW(World Wide Web) 되시겠다.
지금도 최초의 웹 페이지가 남아있다 (링크)
링크를 들어가보면 알겠지만 지금 우리가 보고 있는 웹과는 달리 지극히 단순한 형태이다.
그럼에도 웹의 특징을 잘 담고 있는데,
정보를 하이퍼텍스트 형식으로 표현하여 하이퍼텍스트(링크)를 따라 이동하며 다양한 정보, 문서들을 연결, 제공
한다는 것이다.
* 하이퍼텍스트: 단순 문자가 아닌 그 이상의 기능을 가지는 텍스트, 주로 링크, 참조의 역할을 하는 기술
2. 웹의 구조
웹의 구조는 단 두 가지, 클라이언트와 서버 두 종류의 컴퓨터로 이루어진다.
서비스를 요청하는 객체를 클라이언트(Client), 서비스를 제공하는 객체를 서버(Server)라고 한다.
식당을 예로 들어보자.
손님은 식당에 들어와서 음식을 주문하고, 식당은 주문을 받아 음식을 내 준다.
이때 손님이 클라이언트가 될 것이고, 식당(내지는 식당의 종업원들)이 서버가 될 것이다
과정도 단순하다.
클라이언트가 서버에 요청을 하면 서버는 그 요청을 받아 이를 해석, 처리해서 그 결과를 다시 클라이언트에게 전해준다.
정말 이게 전부다(...)
여기까지 오면 아마 이런 의문이 들 것이다.
'클라이언트랑 서버 두 기기 간에 통신을 한다는데 서로 물리적으로 멀리 떨어져있는 이 둘을 어떻게 연결할 것이며 어떤 방법으로 요청을 주고받음?'
그에 대한 답은 각각 인터넷과 HTTP가 될 것이다.
먼저 인터넷은 International Network의 줄임말로 의미 그대로 전 세계를 잇는 통신망이다.
시초는 미 국방성의 통신망 프로젝트였던 ARPANET인데 여기서는 이 프로젝트 자체가 중요한 것이 아니라 각 지점을 망의 형태로 이었다는 것이 중요하다.
이걸 가지고 전세계에 있는 서버들과 컴퓨터들을 잇게 되는데, 이것이 지금의 인터넷이다.
이로 인해 서버와 클라이언트가 서로 연결 할 수 있게 되었으며, 웹이라는 공간을 형성하기에 이른다.
다음으로 HTTP는 HyperText Transfer Protocol의 약자로 웹 통신 시에 쓰기 위해 정해진 통신 규약이다.
이 규약을 가지고 클라이언트와 서버가 각각 요청을 전달하고 결과를 돌려준다.
이 두개를 가지고 서버와 클라이언트를 잇고 통신할 수 있게 되면서 별도 지식 없이도 웹 브라우저를 통해서 웹서핑을 할 수 있게 되는 것이다.
3. 웹 개발
웹 개발은 프론트엔드와 백엔드 두 가지로 나눌 수 있다.
- 프론트엔드는 브라우저 상에 화면을 구성하는 역할을 하며 Client-side에서 세부 화면 구성, 이미지, 레이아웃, 사용자와의 상호작용을 맡는다.
- 백엔드는 Server-side에서 돌아가며 프론트엔드에서 받은 요청 및 데이터들을 내부 데이터 및 내부 로직에 따른 연산을 활용하여 가공, 처리한 뒤에 그 결과를 다시 클라이언트에 전달하는 역할을 한다.
보통은 프론트엔드와 백엔드가 언어 및 사용 기술이 다르나 이번에 배우는 Node.js의 경우에는 프론트엔드와 백엔드 둘 다 가능하다는 특징이 있다
[다음글에 이어서]
'Development > 데브코스(TIL, 회고록 등등...)' 카테고리의 다른 글
[회고록] 웹 풀사이클 데브코스 회고 - 23년 11월 (1) | 2023.12.30 |
---|---|
[데브코스 웹 풀스택 과정 TIL] 5주차 - Express.js, Postman 다뤄보기 (31) | 2023.12.19 |
[데브코스 웹 풀스택 과정 TIL] 4주차 - REST API, Node.js, 그리고 Express.js (0) | 2023.12.12 |
[데브코스 웹 풀스택 과정 TIL] Day 6~9 - 웹 생태계 전반에 대한 이론 및 실습 (3) - Node.js로 만드는 웹서버 (0) | 2023.11.30 |
[데브코스 웹 풀스택 과정 TIL] Day 6~9 - 웹 생태계 전반에 대한 이론 및 실습 (2) - HTML, CSS 그리고 Javascript (0) | 2023.11.27 |