2024.10.25 - [컴퓨터 공학 기초 지식/웹] - [웹 기본] 인터넷은 어떻게 동작하는가?
- 지난 포스팅에서는 인터넷이 무엇인지와 우리가 몰랐던 여러 중요한 키워드들을 통해 데이터가 인터넷에서 어떻게 전달되는지를 알아봤다.
- 여기서 다뤘던 주요 개념들은 TCP/IP 프로토콜, 데이터 패킷, 분산형 네트워크, IP 주소, DNS, 라우터였다.
- 이제, 이번 포스팅에서는 인터넷 상에서 정보를 주고받는 두 가지 중요한 주체인 클라이언트와 서버에 대해 자세히 알아보도록 하자.
1. 클라이언트란 무엇인가?
클라이언트는 인터넷에서 정보를 요청하는 주체를 뜻한다. 쉽게 말하면, 우리가 매일 사용하는 컴퓨터, 스마트폰, 태블릿 같은 장치들이 클라이언트 장치 라고 볼 수 있다. 웹 브라우저나 앱이 바로 클라이언트 역할을 수행한다.
- 예시: 우리가 웹 브라우저에 www.example.com을 입력하고 사이트에 접속할 때, 브라우저가 서버에 **"이 사이트의 정보를 주세요"**라고 요청을 보내는 것이 클라이언트가 하는 일이다
- 즉, 내가 직접 사용하는 장치나 프로그램이 바로 클라이언트 역할.
게임 업계에서는 클라이언트라는 표현을 자주 사용하는데, 예를 들어 게임 클라이언트는 게임 유저가 설치하고 플레이하는 소프트웨어를 의미한다. 이 게임 클라이언트는 서버에 데이터를 요청하고, 서버가 보내주는 정보를 바탕으로 게임 화면이나 상태를 업데이트한다. 플레이어가 캐릭터를 움직이거나 아이템을 사용할 때, 그 명령은 클라이언트를 통해 서버로 전달되는 것이다.
클라이언트는 꼭 웹 브라우저만을 의미하지 않는다. 사실, 클라이언트는 인터넷이나 네트워크에서 서버에게 정보를 요청하는 모든 장치나 프로그램이다.
2. 서버란 무엇인가?
서버는 클라이언트가 요청한 정보를 제공하는 주체다. 클라이언트가 뭔가를 요청하면, 서버는 그 요청을 받아서 적절한 정보를 찾아 클라이언트에게 전달해준다. 웹 서버, 게임 서버, 파일 서버 등 다양한 종류의 서버가 있으며, 이들은 각각 특정 데이터를 처리하고 제공하는 역할을 한다.
- 예시: www.example.com 같은 웹사이트에 접속할 때, 그 사이트의 정보가 저장된 서버가 클라이언트의 요청을 받고 해당 데이터를 보내준다. 클라이언트가 정보를 요청하면 서버는 그 요청에 맞춰 웹 페이지나 데이터를 제공하는 거다.
게임 업계에서 말하는 게임 서버도 비슷한 개념이다. 게임 서버는 모든 플레이어의 데이터를 관리하고, 실시간으로 여러 유저 간의 상호작용을 조정한다. 예를 들어, MMORPG 같은 게임에서는 한 유저가 몬스터를 공격하면 그 정보가 서버로 전달되고, 서버는 그 결과를 처리한 뒤 다른 유저들에게도 그 상황을 업데이트한다. 서버가 중심에서 모든 플레이어의 행동과 상태를 실시간으로 관리하는 역할을 하는 거지.
3. 클라이언트와 서버의 상호작용
이제 클라이언트와 서버가 각각 어떤 역할을 하는지 알았다면, 이들이 어떻게 서로 상호작용하는지도 알아보자. 인터넷 상에서 정보가 어떻게 주고받는지 이해하는 데 필수적인 부분이다.
클라이언트는 꼭 웹 브라우저만을 의미하지 않는다. 사실, 클라이언트는
인터넷이나 네트워크에서 서버에게 정보를 요청하는 모든 장치나 프로그램이다.
웹 브라우저 클라이언트 | 가장 익숙한 클라이언트는 우리가 웹사이트를 탐색할 때 사용하는 웹 브라우저다. 크롬, 파이어폭스, 사파리 같은 브라우저들은 웹 서버에 HTTP(S) 요청을 보내고, 서버에서 받은 데이터를 웹 페이지로 보여준다. 이게 기본적인 웹 클라이언트의 예다. |
게임 클라이언트 | 게임에서 사용하는 클라이언트도 중요한 예다. 예를 들어, MMORPG 게임이나 FPS 게임을 할 때, 설치한 게임 프로그램이 서버와 통신하면서 게임 데이터를 주고받는다. 플레이어가 캐릭터를 움직이거나, 다른 유저와 상호작용할 때 클라이언트가 서버로 명령을 보내고, 서버에서 그 결과를 처리한 후 다시 클라이언트로 보내면 그걸 실시간으로 화면에 반영한다. |
이메일 클라이언트 | 이메일 클라이언트도 또 다른 클라이언트다. 우리가 사용하는 Gmail이나 Outlook 같은 이메일 서비스는 웹에서만 사용되지 않는다. Outlook, Thunderbird, Apple Mail 같은 프로그램들이 IMAP이나 POP3 프로토콜을 사용해 이메일 서버와 통신한다. |
FTP 클라이언트 | 파일을 서버에 업로드하거나 다운로드할 때 사용하는 FTP 클라이언트도 있다. FileZilla나 Cyberduck 같은 프로그램들이 FTP 클라이언트인데, 이를 통해 서버에 파일을 업로드하거나 서버에서 파일을 받아온다. 이때 FTP 클라이언트가 서버에 연결해 사용자의 파일 요청을 처리한다. |
데이터베이스 클라이언트 | 개발자들이 자주 사용하는 데이터베이스 클라이언트도 있다. MySQL Workbench나 pgAdmin 같은 프로그램들이 데이터베이스 서버에 연결돼서 데이터를 조회하거나 추가, 삭제하는 명령을 내리면, 이 클라이언트가 서버와 통신해서 데이터를 처리한다. |
종류가 많지만, 일단 웹 브라우저의 기준으로 설명하겠다.
1) 클라이언트의 요청 (Request)
클라이언트가 서버에 정보를 요청하는 과정은 매우 일상적인 일이다. 예를 들어, 사용자가 웹 브라우저에 www.example.com을 입력하면, 브라우저는 그 웹사이트의 서버에 "이 페이지의 정보를 보내주세요"라는 요청을 보낸다. 이 요청은 HTTP 또는 HTTPS 프로토콜을 통해 전달된다. HTTP는 웹에서 데이터를 주고받는 규칙이고, HTTPS는 이 규칙에 암호화를 더한 보안 강화 버전이다. 둘 다 클라이언트와 서버 간의 데이터를 주고받는 중요한 역할을 한다.
어? 근데 인터넷은 TCP/IP 프로토콜을 사용한다며? HTTP는 뭔데?
TCP/IP | HTTP(S) |
TCP/IP는 인터넷의 기본 통신 프로토콜로, 데이터를 인터넷 상에서 전송하기 위한 기반 구조를 제공 | HTTP(HyperText Transfer Protocol)는 TCP/IP 위에서 동작하는 응용 계층 프로토콜 웹 브라우저(클라이언트)와 웹 서버 간에 하이퍼텍스트 문서(즉, 웹 페이지)를 주고받기 위한 규칙을 정의 |
데이터가 인터넷을 통해 어떻게 이동하는지에 대한 기본 통신 규약 데이터를 나누고 경로를 지정해서 목적지까지 전달하는 역할 |
HTTP는 TCP/IP 위에서 작동하는 응용 계층 프로토콜로, 웹 브라우저가 서버에 데이터를 요청하고 서버가 웹 페이지 등의 정보를 응답하는 데 사용 |
2) 서버의 응답 (Response)
서버는 클라이언트로부터 요청을 받으면, 그 요청에 맞는 데이터를 찾아 클라이언트에게 다시 보낸다. 예를 들어, www.example.com의 서버는 해당 웹 페이지의 HTML, CSS, 그리고 이미지 파일들을 클라이언트로 전송한다. 이 데이터를 통해 클라이언트는 웹 페이지를 볼 수 있게 된다.
3) 데이터 전달 (Data Transmission)
서버에서 클라이언트로 데이터를 전송할 때는 데이터 패킷이라는 작은 단위로 쪼개져서 전송된다. 데이터를 패킷으로 나누는 이유는 네트워크 상에서 더 효율적으로 전송하고, 만약 전송 중 일부 패킷이 손실되면 그 부분만 다시 요청할 수 있도록 하기 위해서다. 라우터는 이 패킷들이 최적의 경로로 전달될 수 있도록 중계 역할을 한다. 여러 라우터를 거쳐 패킷들이 이동하고, 최종적으로 클라이언트가 모든 패킷을 받아 데이터를 다시 조립한다.
4) 클라이언트의 데이터 처리 (Data Processing)
클라이언트는 서버에서 받은 데이터를 처리해서 사용자에게 웹 페이지나 애플리케이션 화면을 보여준다. 예를 들어, 서버가 보낸 HTML 파일은 클라이언트 브라우저에서 해석되어 웹 페이지로 표시되며, 게임 서버에서 받은 게임 상태 정보는 실시간으로 화면에 반영된다.
'컴퓨터 공학 기초 지식 > 웹' 카테고리의 다른 글
[웹 기본] IP 란?(니아이피추적한다) (3) | 2024.10.25 |
---|---|
[웹 기본] 인터넷은 어떻게 동작하는가? (0) | 2024.10.25 |