2026. 7. 2. 14:57ㆍAI/웹 크롤링
1. 네트워크 (Network)
네트워크(Network)는 여러 대의 컴퓨터와 장치들이 서로 데이터를 주고받도록 연결된 구조이다.
우리가 웹 사이트에 접속하거나 이메일을 보내는 것처럼,
인터넷을 통해 정보를 주고받는 모든 활동은 네트워크를 기반으로 이루어진다.
이 네트워크는 유선 또는 무선으로 연결될 수 있으며,
그 안에서 각 장치는 고유한 주소(IP 주소)를 가지고 서로를 식별하고 통신한다.
쉽게 말해, 네트워크는 컴퓨터들이 서로 이야기할 수 있게 해주는 연결 통로이다.
1) IP 주소 (Internet Protocol Address)
인터넷이나 네트워크에 연결된 각 장치를 구분하기 위해 부여되는 고유한 번호이다.
마치 집마다 주소가 있듯이, 컴퓨터나 스마트폰, 서버 등도 IP 주소를 통해 서로를 식별하고 데이터를 주고받는다.
IP 주소는 일반적으로 숫자로 이루어져 있으며
IPv4는 예를 들어 192.168.0.1 처럼 점(.)으로 구분된 4 부분으로 구성되고
IPv6은 더 많은 장치를 구분할 수 있도록 더 긴 형태를 사용한다.
우리가 웹 사이트에 접속할 때 실제로는 이 IP 주소를 통해 해당 서버에 연결되는 것이다.
IPv4
IPv4 주소는 숫자 4개가 점(.)으로 구분된 형태이다.
각 숫자는 0부터 255까지 가능하며 총 4개(8bit x 4 = 32bit)로 구성되어 있다.
즉, IPv4는 32bit 주소 체계이며, 이론 상 약 43억 개(2^32)의 주소를 만들 수 있다.
IP 주소 클래스
과거에는 IP 주소를 다음과 같은 클래스 체계로 나누었다.
요즘은 CIDR(사이더) 방식으로 네트워크를 더 유연하게 나누지만
클래스 개념은 여전히 이해를 돕는데 유용하다.
(대부분의 가정용 Wifi의 경우 C 클래스에 해당한다)

사설 IP 주소
인터넷에 직접 연결되지 않고, 내부 네트워크(가정, 사무실)에서 사용하는 주소이다.
이 주소들은 공유기나 사무실 LAN에서 사용되고, 외부에서는 직접 접근할 수 없다.

특수한 IP 주소

IPv6
초기에 만들어질 때는 43억 개면 충분하다고 생각했지만
지금은 인터넷에 연결되는 기기 수가 너무 많아 주소가 부족해졌다.
그래서 이 문제를 해결하기 위해 나온 것이 IPv6이다.
IPv6은 16 bit x 8 block = 128 bit 주소이다.
숫자와 영문자가 16진수로 표현되며, 콜론(:)으로 구분된다.
너무 길기 때문에 0은 생략할 수 있다.
2001:0db8:85a3:0000:0000:8a2e:0370:7334
비트와 바이트
비트(bit)는 컴퓨터가 이해할 수 있는 가장 작은 정보 단위이다.
비트(bit)는 오직 두 가지 값만 표현할 수 있다.
0과 1의 조합으로 모든 정보를 만들어내는 게 바로 컴퓨터이다.
1 Byte = 8 bit
1 Byte = 01001010
IP 주소에서 비트
총 32비트 주소로, 8비트 씩 4부분으로 나누어서 10진수로 변화한 것이 우리가 보는 IPv4 주소이다.
11000000.10101000.00000001.00000001 => 192.168.1.1
IPv6는 무려 128개의 0과 1로 구성된 주소로, 너무 길어 16비트씩 8덩어리로 나누고 16진수로 바꿔 표현한다.
2001:0db8:85a3:0000:0000:8a2e:0370:7334
2. 인터넷 (Internet)
인터넷은 전세계의 컴퓨터와 스마트폰, 서버와 같은 장치들을 구축하여
IP 주소 혹은 도메인 주소를 통해 서로 연결되어
정보를 주고받을 수 있게 해주는 거대한 네트워크이다.
우리가 웹 사이트에 접속하거나, 메신저로 대화를 하거나, 유튜브 영상을 보는 등의
모든 활동은 이 인터넷을 통해 이루어진다.
인터넷은 단순한 선이나 전파가 아니라
전 세계 수 많은 장치들이 규칙(프로토콜)에 따라 서로 데이터를 주고받는 방식으로 작동하고
정보를 빠르게 주고받을 수 있게 해주는 정보 고속도로라고 할 수 있다.
1) 프로토콜 (Protocol)
프로토콜(Protocol)은 컴퓨터나 네트워크 장치들이 서로 통신할 때 지켜야 할 약속이나 규약이다.
사람이 서로 말할 때 언어와 예절이 있듯이 컴퓨터도 데이터를 주고받을 때
어떻게 시작하고, 어떤 순서로, 어떤 형식으로 대화할 지에 대한 정해진 규칙이 필요하다.
예를 들어, 우리가 웹 사이트를 볼 때 사용하는 HTTP,
파일을 전송할 때 사용하는 FTP, 이메일을 주고받는 SMTP
같은 것들이 모두 프로토콜이다.
프로토콜 덕분에 서로 다른 회사의 컴퓨터나 장비도 문제없이 소통할 수 있다.
HTTP (HyperText Transfer Protocol)
웹 사이트를 주고받을 때 사용하는 약속(프로토콜)이다.
우리가 크롬이나 사파리 같은 브라우저로 웹 사이트에 접속할 때,
그 웹 페이지의 글, 이미지, 영상 등을 서버에서 가져오는 방식이다.
HTTP는 인터넷에서 웹 페이지를 볼 수 있게 해주는 규칙이다.
FTP (File Transfer Protocol)
말 그대로 파일을 주고받기 위한 규칙이다.
서버와 컴퓨터 사이에서 파일을 업로드하거나 다운로드 받을 때 사용된다.
예를 들어, 웹 사이트를 만들고 나서, HTML 파일이나 이미지를 서버에 올릴 때
FTP가 사용됩니다. 마치 인터넷 상에서 파일을 옮기는 택배 서비스로 이해하면 편합니다.
SMTP(Simple Mail Transfter Protocol)
이메일을 보낼 때 사용하는 규칙이다.
우리가 이메일을 작성하여 보내면, 그 이메일을 상대방의 메일 서버로
전달하는 역할을 하는 것이 SMTP이다.
이메일이 잘 도착하도록 우체부처럼 배달을 담당하는 프로토콜이라고 보면 된다.
이메일을 받는 프로토콜은 다른 프로토콜이 사용된다(POP3, IMAP)
3. 웹 (Web)
웹(Web)은 우리가 인터넷을 통해 정보를 보고 읽고, 상호작용할 수 있게 해주는 서비스이다.
웹은 HTML로 만들어진 문서 (웹 페이지)를 브라우저가 읽어서 화면에 보여주는 방식으로 작동한다.
이 웹은 인터넷 위에서 돌아가는 서비스 중 하나로,
우리가 주소창에 URL를 입력하면, HTTP 같은 프로토콜을 통해 서버에 요청하고
그 결과를 받아와서 보여주는 구조이다.
쉽게 말해, 웹은 인터넷 위에 펼쳐진 거대한 정보 공간이다.
1) 웹 페이지 동작 원리
1. 사용자가 웹 브라우저에 URL 주소 (도메인 주소)를 입력한다.
2. DNS 서버가 URL 주소(도메인 주소)와 맵핑되어 있는 IP 주소를 찾아 IP 주소로 바꿔준다.
- 컴퓨터는 사람이 쓰는 도메인 주소를 이해하지 못하기 때문이다.
- DNS 서버가 나서서 도메인 주소를 IP 주소로 바꿔준다.
- 한번 찾으면, 내 컴퓨터에 IP 주소와 도메인 주소가 등록된다.
- 이후 접속 시에는 맵핑된 주소를 찾을 필요 없이 빠른 접속이 가능
3. 브라우저가 서버에 요청을 보낸다. (HTTP Request)
- 이제 브라우저는 해당 IP 주소를 가진 서버에게 웹 페이지 보여달라는 요청을 함
- 이것을 HTTP Request 라고 부른다.
- 이 요청이 웹 서버에 도착하게 된다.
4. 웹 서버가 요청을 받고, 웹 페이지 파일을 응답 (HTTP Response)
- 웹 서버는 요청을 받으면, 내부에 저장된 HTML, CSS, JS 파일을 찾아 브라우저에게 보냄
5. 브라우저가 파일을 해석해서 화면에 보여줌.
- 서버로부터 받은 HTML, CSS, JS 파일을 읽고 해석해서 화면을 그려준다.
- 사용자는 웹 사이트를 보고 클릭하고 입력할 수 있는 상태가 된다.
2) DNS (Domain Name System)
DNS는 우리가 웹 사이트 주소를 입력할 때 사용하는 도메인 이름을
컴퓨터가 이해할 수 있는 IP 주소로 바꿔주는 시스템이다.
마치 전화번호부처럼 동작해서 사람이 이해하기 쉬운 이름을 숫자로 된 주소로 바꿔준다.
그 주소를 통해 실제 서버와의 통신이 시작된다.
DNS 덕분에 우리는 복잡한 숫자 대신 친숙한 이름으로 웹 사이트에 접속할 수 있다.
3) 서버(Server)와 클라이언트(Client)
서버(Server)와 클라이언트(Client)는 인터넷에서 정보를 주고받는 관계를 설명하는 기본 개념이다.
클라이언트는 정보를 요구하는 쪽, 즉, 우리가 사용하는 웹 브라우저나 스마트 폰 같은 것이고
서버는 그 요청을 받아 서비스를 제공하는 쪽, 웹 사이트의 본체나 데이터가 저장된 컴퓨터이다.
예를 들어 우리가 URL 주소에 접속하면
클라이언트인 내 컴퓨터가 서버에게 웹 페이지를 요청하고,
서버는 그에 대한 내용을 응답해주는 방식이다.
4. 웹 서비스 (Web Service)
웹 서비스는 인터넷을 통해 클라이언트(사용자)와 서버 간 데이터를 주고받으며
기능이나 정보를 제공하는 소프트웨어 시스템이다.
사용자는 웹 브라우저나 애플리케이션을 통해 서버에 요청을 보내고
서버는 요청에 맞는 데이터를 처리하여 결과를 응답한다.
웹 서비스는 HTML 페이지 제공, 파일 업로드, API 서비스 등 다양한 형태로 제공되며
HTTP 프로토콜을 기반으로 응답한다.
그럼 파이썬으로 제공할 수 있는 웹 서비스에는 어떤 것들이 있을까?
🐍 파이썬의 웹 서비스란?
파이썬(Python)에서 웹 서비스를 개발한다는 것은 파이썬 코드로 사용자의 요청을
처리하는 웹 어플리케이션을 만들고, 이를 웹을 통해
사용할 수 있도록 서버를 실행하는 것을 의미한다.
파이썬(Python)으로 웹 서비스를 만들 때 많이 사용하는 도구는
웹 프레임워크이다. 대표적으로 다음과 같은 것들이 있다.
1) 플라스크 (Flask)
- 가볍고 배우기 쉬운 웹 프레임워크
- 마치 공부용 혹은 소규모 프로젝트에 적합
- 설치도 간단하고, 코드를 빠르게 작성해볼 수 있어 초보자에게 유리
2) 장고 (Django)
- 대형 서비스도 가능한 풀스택 프레임워크
- 사용자 인증, 데이터베이스 연동, 관리자 페이지 등 기능 내장
- 더 구조적이고 큰 프로젝트에 적합 ex) 쇼핑몰
3) FastAPI
- 빠르고 현대적인 비동기 웹 프레임워크
- 비동기 지원(async/await 사용)
- 고성능 서버 쉽게 작성
- 더 많은 요청 빠르게 처리
- 자동 API 문서 생성
- 개발자가 API 문서 만들 필요 없음
- /docs에 접속시 Swagger UI 제공
- 타입 힌트를 통한 유효성 검사
- Python 타입 힌트 통해서 입력값 자동 검증
- 오류 메시지 깔끔히 제공
'AI > 웹 크롤링' 카테고리의 다른 글
| 웹 크롤링 - 서울시 공공자전거 실시간 대여정보 API (0) | 2026.07.07 |
|---|---|
| 웹 크롤링 - 셀레니움 (5) (0) | 2026.07.06 |
| 웹 크롤링 - 크롤링의 활용 (4) (0) | 2026.07.02 |
| 웹 크롤링 - 크롤링과 HTML (3) (0) | 2026.07.02 |
| 웹 크롤링 - Git과 Github (2) (0) | 2026.07.02 |