topic난이도 · 약 25

웹의 기본 구조

Client가 요청하고 Server가 응답한다 — 이 한 문장이 웹의 전부이다.

#Client#Server#HTTP#URL#DNS#CDN
왜 배우는가

주소창에 URL을 입력하고 엔터를 누르면, 화면이 나타난다. 단 1초 안에 수십 개의 과정이 일어나고 있다. 브라우저와 서버 사이에서 정확히 무슨 일이 일어나는 걸까?

웹은 식당과 같습니다. 손님이 주문하고, 주방이 요리합니다

AI 개발자에게 웹 지식이 왜 필요할까요? ChatGPT도, Claude도, 결국 웹을 통해 사용자와 만납니다. 여러분이 만든 AI 모델이 아무리 뛰어나도, 웹으로 전달하지 못하면 아무도 쓸 수 없습니다. 이번 섹션에서는 '주소창에 URL을 입력하고 엔터를 누르면 1초 안에 벌어지는 일'을 하나씩 풀어봅니다.

브라우저(손님)가 서버(주방)에 요청(주문)을 보내면, 서버가 응답(요리)을 돌려줍니다. 이 단순한 주고받기가 웹의 전부입니다.

Client, Server, HTTP, Request, Response, URL, DNS, Port, IP, Protocol, CDN

웹의 가장 기본적인 구조는 '묻는 쪽'과 '답하는 쪽'입니다. 이 두 역할만 이해하면 웹의 절반을 아는 셈입니다. 재미있는 건, 우리가 Ch8에서 만든 TinyLM도 서버에 올리면 '답하는 쪽'이 됩니다. AI 모델을 서빙(serving)한다는 것이 바로 이것입니다.

Client(클라이언트) — 서비스를 요청하는 쪽입니다. 브라우저, 앱, 심지어 AI 에이전트도 클라이언트가 될 수 있습니다. 식당의 '손님'이죠.

Server(서버) — 요청을 받아 처리하고 응답하는 컴퓨터입니다. 24시간 켜져 있는 주방과 같습니다. '서빙하다(serve)'에서 온 이름입니다.

HTTP/HTTPS — 클라이언트와 서버가 대화하는 규칙(프로토콜)입니다. HTTP는 평문, HTTPS는 암호화된 버전입니다. 'S'는 Secure(보안)입니다.

Request(요청) — 클라이언트가 보내는 메시지. '이 페이지 주세요!' Response(응답) — 서버가 돌려보내는 메시지. '여기 있습니다!'

Client = 요청하는 쪽 (브라우저, 앱) Server = 응답하는 쪽 (24시간 대기 컴퓨터) HTTP = 대화 규칙 / HTTPS = 암호화된 대화 Request → Response = 웹의 기본 사이클

HTTP 요청-응답 사이클 — 클라이언트가 요청하고 서버가 응답하는 흐름

클라이언트가 서버에 요청을 보내려면 먼저 '주소'를 알아야 합니다. 현실에서 배달을 시키려면 식당 위치를 알아야 하듯, 인터넷에서도 서버의 정확한 위치를 찾아가는 체계가 필요합니다. 이 주소 체계가 바로 URL, DNS, IP, Port입니다. 하나씩 뜯어봅시다.

URL(Uniform Resource Locator) — 웹 자원의 주소입니다. `https://www.example.com:443/page?q=hello` 처럼 프로토콜, 도메인, 포트, 경로, 쿼리가 합쳐진 것입니다.

Domain(도메인) — 사람이 읽을 수 있는 서버 이름입니다. `google.com` 같은 것. 실제로는 숫자(IP)로 변환되어야 합니다.

DNS(Domain Name System) — 도메인을 IP 주소로 바꿔주는 전화번호부입니다. `google.com` → `142.250.196.110` 으로 변환해줍니다.

IP(Internet Protocol) 주소 — 인터넷에서 컴퓨터의 고유 번호입니다. 집 주소와 같습니다. Port(포트) — 같은 컴퓨터 안에서 서비스를 구분하는 번호입니다. 아파트 호수와 같습니다. HTTP=80, HTTPS=443.

URL = 프로토콜 + 도메인 + 포트 + 경로 DNS = 도메인 → IP 변환 (인터넷 전화번호부) IP = 컴퓨터의 고유 주소 (집 주소) Port = 서비스 구분 번호 (호수)

지금까지 '어디로(URL), 어떻게 찾아가고(DNS→IP), 몇 호실인지(Port)'를 배웠습니다. 이번에는 '어떤 언어로 대화하는지(Protocol)'와, 개발자가 매일 쓰는 특별한 주소 두 가지를 알아봅시다.

Protocol(프로토콜) — 통신 규칙입니다. HTTP, FTP, WebSocket 등이 있습니다. '우리 이렇게 대화하자'는 약속입니다.

Localhost — 내 컴퓨터 자체를 가리키는 특별한 주소입니다. `localhost:3000`은 '내 컴퓨터의 3000번 포트'라는 뜻입니다. 개발할 때 항상 씁니다.

CDN(Content Delivery Network) — 전 세계에 퍼져 있는 서버 네트워크입니다. 한국 사용자는 한국 서버에서, 미국 사용자는 미국 서버에서 파일을 받으니 빠릅니다. 편의점 체인과 같습니다.

Protocol = 통신 약속 (HTTP, WebSocket 등) Localhost = 내 컴퓨터 (개발 서버) CDN = 전 세계 분산 서버 (빠른 전송)

개념만 알면 반쪽입니다. Python으로 직접 웹 요청을 보내봅시다. 아래 코드 한 줄이면 클라이언트가 되어 서버에 요청을 보내고 응답을 받을 수 있습니다. 이것이 바로 Ch10에서 배울 OpenAI API 호출의 기초이기도 합니다.

requests.get()으로 서버에 GET 요청을 보내고 응답을 받는다.

`requests.get()`이 바로 Client → Server 요청입니다. URL 안에 프로토콜(https), 도메인(jsonplaceholder.typicode.com), 경로(/posts/1)가 모두 들어있죠. `response.status_code`가 200이면 성공, `response.json()`으로 응답 데이터를 받습니다. 이게 웹의 전부입니다.

이 한 줄의 코드 안에 Client, Server, HTTP, URL, Request, Response, JSON이 모두 들어있습니다

Client & Server설명
Client서비스를 요청하는 쪽 (브라우저, 앱)
Server요청을 받아 응답하는 쪽 (24시간 대기 컴퓨터)
Request → Response웹의 기본 사이클 — 요청하고 응답받기
주소 체계설명
URL프로토콜 + 도메인 + 포트 + 경로로 구성된 웹 주소
DNS도메인을 IP 주소로 변환하는 인터넷 전화번호부
IP / PortIP = 컴퓨터의 고유 주소, Port = 서비스 구분 번호
프로토콜 & 인프라설명
HTTP / HTTPS대화 규칙. HTTPS는 암호화된 버전 (S = Secure)
Localhost내 컴퓨터 자체를 가리키는 주소 (개발 서버)
CDN전 세계 분산 서버 네트워크 (��른 전송)

Client가 요청하고 Server가 응답한다 — 이 한 문장이 웹의 전부입니다

실기 드릴 4문항
edit실기 드릴 · 단답형

도메인 이름을 IP 주소로 변환해주는 시스템은?

edit실기 드릴 · 단답형

HTTPS의 S가 의미하는 것은?

edit실기 드릴 · 단답형

localhost:3000에서 3000은 무엇인가?

check_circle실기 드릴 · OX

웹에서 클라이언트가 서버에 요청을 보내고, 서버가 응답을 돌려준다