2-2. 웹 스크래핑 기초 : 서버(Server)와 클라이언트(Client)
안녕하세요, 허밍입니다! 😊
오늘은 웹 크롤링을 배우기 전 꼭 이해해야 하는 개념,
바로 **서버(Server)**와 **클라이언트(Client)**에 대해 알아보겠습니다.
웹은 단순히 정보만 띄워주는 게 아니라,
**서버와 클라이언트가 주고받는 요청(Request)과 응답(Response)**으로 이루어진 구조입니다.
이 기본 흐름을 이해하면 웹 크롤링은 훨씬 쉽게 느껴질 거예요!
📲 클라이언트(Client)란?
**클라이언트(Client)**는
웹 서비스에서 요청을 보내는 쪽, 즉 사용자 측을 의미해요.
우리가 사용하는 **웹 브라우저(크롬, 사파리 등)**가 대표적인 클라이언트입니다.
예를 들어,
- 내가 블로그 주소를 브라우저에 입력하고
- 엔터를 누르면
- 그 요청은 서버로 전송되고
- 서버가 해당 내용을 응답하면
- 브라우저가 받아서 화면에 보여주는 거예요.
즉, 클라이언트는 **“이거 보여줘!”**라고 요청하는 역할이에요.
📌 웹 크롤링을 할 때 우리가 작성하는 파이썬 코드도
웹사이트에 **요청(Request)**을 보내는 클라이언트 역할을 하게 됩니다.
🖥️ 서버(Server)란?
**서버(Server)**는
클라이언트의 요청을 받고, 그에 맞는 **데이터나 페이지를 응답(Response)**하는 제공자 역할입니다.
인터넷에서 웹사이트는 모두 서버에 저장된 파일/데이터로 구성되어 있어요.
예를 들어,
- 블로그 글, 뉴스 기사, 상품 정보 등은 서버에 저장돼 있고
- 누군가 요청하면,
- 서버는 “여기 있어요!” 하고 데이터를 보내주는 거죠.
서버는 쉽게 말해, “여기 데이터 있어요~” 하고 응답해주는 존재입니다.
🔄 서버와 클라이언트의 통신 구조
웹은 **요청(Request) → 응답(Response)**의 구조로 작동해요.
이를 전문 용어로는 **Client-Server Architecture(클라이언트-서버 아키텍처)**라고 부릅니다.
[Client (사용자/크롤링 코드)] → [Request 요청] → [Server (웹사이트)]
↓
[Client (브라우저/크롤링 코드)] ← [Response 응답] ← [Server (웹서버)]
이 구조를 통해 우리가 웹에서 정보를 받아올 수 있는 것이고,
웹 크롤링도 이 구조를 자동화하는 기술이라고 볼 수 있어요.
📦 웹 크롤링과의 관계
웹 크롤링에서 파이썬이 하는 일은 브라우저처럼 행동하는 것이에요.
- requests 라이브러리는 클라이언트처럼 **요청(Request)**을 보내고,
- 서버는 이에 대해 **HTML 코드로 응답(Response)**합니다.
- 크롤링 코드는 응답받은 HTML을 파싱하여 원하는 정보를 추출하는 거죠.
이 과정은 모두 서버-클라이언트 구조를 기반으로 진행됩니다.
🚫 크롤링 시 주의할 점
클라이언트가 무분별하게 너무 많은 요청을 보내면
서버 입장에서는 **공격(DoS)**처럼 인식될 수 있어요.
그래서 웹 크롤링을 할 땐
- 너무 자주 요청하지 않기
- User-Agent 설정하기
- robots.txt 확인하기
등의 예의 있는 요청 방식이 필요합니다.
📍 마무리하며
서버(Server)와 클라이언트(Client)는 웹의 기본 구조이며,
웹 크롤링은 클라이언트가 서버에 요청하고 응답을 받아 분석하는 과정입니다.
이 기본 흐름만 이해하고 있다면,
앞으로 requests, BeautifulSoup, Selenium 등을 배우는 데 큰 어려움 없이 따라올 수 있어요! 😊
공감 한 번 눌러주시면 다음 글 준비에 큰 힘이 됩니다 💛