네트워크(network)는 여러 대의 컴퓨터와 장치들이 서로 데이터를 주고받을 수 있도록 연결된 구조를 말합니다. 우리가 웹사이트에 접속하거나 이메일을 보내는 것처럼, 인터넷을 통해 정보를 주고받는 모든 활동은 네트워크를 기반으로 이루어집니다. 이 네트워크는 유선 또는 무선으로 연결될 수 있으며, 그 안에서 각 장치는 고유한 주소(IP 주소)를 가지고 서로를 식별하고 통신합니다. 쉽게 말해, 네트워크는 컴퓨터들이 서로 이야기할 수 있게 해주는 연결 통로입니다.
IP주소(Internet Protocol Address)는 인터넷이나 네트워크에 연결된 각 장치를 구분하기 위해 부여되는 고유한 번호입니다. 마치 집마다 주소가 있듯이, 컴퓨터나 스마트폰, 서버 등도 IP주소를 통해 서로를 식별하고 데이터를 주고받을 수 있습니다. IP주소는 일반적으로 숫자로 이루어져 있으며, IPv4는 예를 들어 192.168.0.1처럼 점(.)으로 구분된 네 부분으로 구성되고, IPv6는 더 많은 장치를 구분할 수 있도록 더 긴 형태를 사용합니다. 우리가 웹사이트에 접속할 때 실제로는 이 IP주소를 통해 해당 서버와 연결되는 것입니다.
IPv4 주소는 숫자 4개가 점(.)으로 구분된 형태입니다. 각 숫자는 0부터 255까지 가능하며 총 4개 = 8비트 × 4 = 32비트로 구성되어 있습니다. 즉, IPv4는 32비트 주소 체계이며, 이론상 약 43억 개(2³²)의 주소를 만들 수 있습니다.
192.168.0.1
과거에는 IP 주소를 다음과 같은 "클래스" 체계로 나눴습니다. 요즘은 CIDR(사이더) 방식으로 더 유연하게 네트워크를 나누지만, 클래스 개념은 여전히 이해를 돕는 데 유용합니다.
인터넷에 직접 연결되지 않고 내부 네트워크(예: 가정, 사무실)에서 사용하는 주소입니다. 이 주소들은 공유기나 사무실 LAN에서 사용되고, 외부에서는 직접 접근할 수 없습니다.
초기에 만들어질 때는 43억 개면 충분하다고 생각했지만, 지금은 인터넷에 연결되는 기기 수가 너무 많아 주소가 부족해지고 있습니다. 그래서 이 문제를 해결하기 위해 나온 게 IPv6입니다. (IPv6는 훨~씬 더 많은 주소 제공) IPv6는 16비트 × 8블록 = 총 128비트 주소입니다.숫자와 영문자가 16진수로 표현되며, 콜론(:) 으로 구분됩니다. 너무 길기 때문에 0은 생략할 수 있습니다.
2001:0db8:85a3:0000:0000:8a2e:0370:7334
비트(bit)는 컴퓨터가 이해할 수 있는 가장 작은 정보 단위입니다. 비트는 오직 두 가지 값만 표현할 수 있습니다. 0과 1의 조합으로 모든 정보를 만들어내는 게 바로 컴퓨터입니다.
예: 1바이트 = 01001010 ← 이런 식의 8자리 0과 1
IPv4는 총 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
인터넷은 전 세계의 컴퓨터와 스마트폰, 서버 같은 장치들이 서로 연결되어 정보를 주고받을 수 있게 해주는 거대한 네트워크입니다. 우리가 웹사이트에 접속하거나, 메신저로 대화를 하거나, 유튜브 영상을 보는 모든 활동은 이 인터넷을 통해 이루어집니다. 인터넷은 단순한 선이나 전파가 아니라, 전 세계 수많은 장치들이 규칙(프로토콜)에 따라 서로 데이터를 주고받는 방식으로 작동하며, 정보를 빠르게 주고받을 수 있게 해주는 정보 고속도로라고 할 수 있습니다.
프로토콜(protocol)은 컴퓨터나 네트워크 장치들이 서로 통신할 때 지켜야 할 약속이나 규칙입니다. 사람이 서로 말할 때 언어와 예절이 있듯이, 컴퓨터도 데이터를 주고받을 때 어떻게 시작하고, 어떤 순서로, 어떤 형식으로 대화할지에 대한 정해진 규칙이 필요합니다. 예를 들어, 우리가 웹사이트를 볼 때 사용하는 HTTP, 파일을 전송할 때 사용하는 FTP, 이메일을 주고받는 SMTP 같은 것들이 모두 프로토콜입니다. 프로토콜 덕분에 서로 다른 회사의 컴퓨터나 장비도 문제없이 소통할 수 있습니다.
HTTP는 웹사이트를 주고받을 때 사용하는 약속(프로토콜)입니다. 우리가 크롬이나 사파리 같은 브라우저로 웹사이트에 접속할 때, 그 웹페이지의 글, 사진, 영상 등을 서버에서 가져오는 방식이 바로 HTTP입니다. 예를 들어, "http://www.example.com"처럼 주소창에 HTTP가 붙는 걸 볼 수 있죠. 즉, HTTP는 인터넷에서 웹 페이지를 볼 수 있게 해주는 규칙입니다.
FTP는 말 그대로 파일을 주고받기 위한 규칙입니다. 서버와 컴퓨터 사이에서 파일을 업로드하거나 다운로드할 때 사용됩니다. 예를 들어, 웹사이트를 만들고 나서 HTML 파일이나 이미지를 서버에 올릴 때 FTP를 사용합니다. 마치 인터넷상에서 파일을 옮기는 택배 서비스라고 생각하면 됩니다.
SMTP는 이메일을 보낼 때 사용하는 규칙입니다. 우리가 이메일을 작성해서 보내면, 그 이메일을 상대방의 메일 서버로 전달해주는 역할을 하는 것이 바로 SMTP입니다. 이메일이 잘 도착하도록 우체부처럼 배달을 담당하는 프로토콜이라고 보면 됩니다. (이메일을 "받는" 데는 다른 프로토콜이 사용됩니다, 예: POP3, IMAP)
웹(Web)은 우리가 인터넷을 통해 정보를 보고, 읽고, 상호작용할 수 있게 해주는 서비스입니다. 흔히 사용하는 웹사이트, 블로그, 유튜브, 쇼핑몰 등은 모두 웹의 한 형태입니다. 웹은 HTML로 만들어진 문서(웹 페이지)를 브라우저(크롬, 사파리 등)가 읽어서 화면에 보여주는 방식으로 작동합니다. 이 웹은 인터넷 위에서 돌아가는 서비스 중 하나로, 우리가 주소창에 URL을 입력하면 HTTP 같은 프로토콜을 통해 서버에 요청하고, 그 결과를 받아와서 보여주는 구조입니다. 쉽게 말해, 웹은 인터넷 위에 펼쳐진 거대한 정보 공간입니다.
1. 사용자가 웹 브라우저에 주소(URL)를 입력합니다.
https://www.example.com
2. DNS 서버가 주소를 IP 주소로 바꿔줍니다.
3. 브라우저가 서버에 요청을 보냅니다. (HTTP 요청)
4. 서버가 요청을 받고, 웹 페이지 파일을 응답합니다. (HTTP 응답)
HTML: 구조 / CSS: 디자인 / JS: 동작 이 세 가지를 함께 보내줍니다.
5. 브라우저가 파일을 해석해서 화면에 보여준다
DNS는 우리가 웹사이트 주소를 입력할 때 사용하는 도메인 이름(예: www.example.com)을 컴퓨터가 이해할 수 있는 IP 주소(예: 93.184.216.34)로 바꿔주는 시스템입니다. 마치 전화번호부처럼 동작해서, 사람이 기억하기 쉬운 이름을 숫자로 된 주소로 바꿔줍니다. 예를 들어, 사용자가 웹 브라우저에 www.naver.com을 입력하면 DNS는 해당 도메인에 해당하는 IP 주소를 찾아주고, 그 주소를 통해 실제 서버와 통신이 시작됩니다. DNS 덕분에 우리는 복잡한 숫자 대신 친숙한 이름으로 쉽게 웹사이트에 접속할 수 있습니다.
서버(Server)와 클라이언트(Client)는 인터넷에서 정보를 주고받는 관계를 설명하는 기본 개념입니다. 클라이언트는 정보를 요청하는 쪽, 예를 들어 우리가 사용하는 웹 브라우저나 스마트폰 앱이 이에 해당하고, 서버는 그 요청을 받아 정보나 서비스를 제공하는 쪽, 즉 웹사이트의 본체나 데이터가 저장된 컴퓨터입니다. 예를 들어, 우리가 브라우저에 www.example.com을 입력하면, 클라이언트인 내 컴퓨터가 서버에게 웹페이지를 요청하고, 서버는 그에 대한 내용을 응답해주는 식입니다.
최초의 웹사이트는 1991년, 스위스에 있는 CERN(유럽 입자 물리 연구소)에서 팀 버너스리(Tim Berners-Lee)라는 과학자에 의해 만들어졌습니다. 이 웹사이트는 "월드 와이드 웹(WWW)이란 무엇인가?"를 설명하는 사이트였습니다. 즉, 웹 자체에 대한 소개서 같은 역할을 했습니다.
개설 시기: 1991년 8월 6일
주소(URL): http://info.cern.ch/
웹 서비스란 인터넷을 통해 클라이언트(사용자)와 서버 간에 데이터를 주고받으며 기능이나 정보를 제공하는 소프트웨어 시스템입니다. 사용자는 웹 브라우저나 애플리케이션을 통해 웹 서버에 요청을 보내고, 서버는 요청에 맞는 데이터를 처리하여 결과를 응답합니다. 웹 서비스는 HTML 페이지 제공, 파일 업로드, API 서비스 등 다양한 형태로 제공되며, HTTP 프로토콜을 기반으로 작동합니다.
파이썬에서 웹 서비스를 개발한다는 것은, 파이썬 코드로 사용자의 요청(예: 게시글 보기, 로그인 시도 등)을 처리하는 웹 애플리케이션을 만들고, 이를 웹을 통해 사용할 수 있도록 서버를 실행하는 것을 의미합니다.
파이썬으로 웹 서비스를 만들 때 가장 많이 사용하는 도구는 웹 프레임워크입니다. 대표적으로는 다음과 같은 것들이 있습니다:
프롬프트 엔지니어링 (1) | 2024.11.28 |
---|---|
파이썬과 몽고DB 연동 (0) | 2024.11.22 |
MongoDb (1) | 2024.11.21 |
크롤링 (2) | 2024.11.20 |
생성형 AI (3) | 2024.11.15 |