우리는 일상 속에서 인터넷과 웹을 거의 구분하지 않고 생활하는 것 같다. 웹서핑을 할 때, 흔히 "인터넷을 한다"고 이야기하는 걸 보면 말이다. 오늘 그 차이에 대해서 구분짓고 넘어가보자.
인터넷과 음성통화
먼저 인터넷을 알기 위해서는 네트워크에 대하여 알아야한다. 네트워크란 흔히 컴퓨터 네트워크를 말하며, 이는 여러 컴퓨터가 각각 클라이언트와 서버로써 서로 연결되어 구성된 망을 말한다. 인터넷은 이러한 컴퓨터 네트워크가 전 세계적인 규모로 수없이 많이 모여서 이루어진 일종의 컴퓨터 네트워크 시스템이다. 즉, 인터넷이란 수많은 클라이언트 컴퓨터와 서버 컴퓨터, 그리고 이들로 구성된 네트워크들의 집합체이다. 네트워크의 원리는 전화와 같은 무선통신의 원리를 따져보면, 간단하다.
음성통화에서의 통신 방식
발신자가 통화 버튼을 누르는 순간, 휴대폰은 가장 가까운 무선 기지국 안테나와 교신을 시작하며 이 안테나를 통해 목소리가 전파에 실려 전달된다. 이 전파는 기지국에서 교환기로 송신되며, 케이블을 통해 전송된다. 상대방과 가까운 위치의 교환기에서 다시 기지국으로 이동한 후, 상대방에게 통신이 연결된다. 전화기에 친구 번호를 입력하고 통화를 시도하면 나와 가장 가까운 기지국과 특정 주파수의 전파가 사용된다. 이 때 상대방의 위치는 휴대폰이 5초에 한번씩 자신의 위치를 '홈 위치 등록기'에 보고함으로써 알 수 있게 된다. 특정 주파수의 전파를 편의상 '채널'이라 부르며, TV의 채널도 방송국의 전송 장비에서 오는 다양한 전파 중 내가 보고 싶은 전파를 골라서 보는 개념이다. 이처럼 전화는 사용자의 목소리가 통신 사업자의 주파수 대역 전파에 실려 가장 가까운 위치의 무선 기지국에 전달되는 방식으로 통신이 이뤄진다.
컴퓨터의 통신방식
(후술 할 예정)
서킷 방식과 패킷 방식
인터넷 역시 음성통화와 비슷한 원리이나, 조금의 부가 설명이 필요할 것이다. 음성통화와 컴퓨터 네트워크는 통신 방식의 차이가 있다. 먼저 전자는 서킷통신 방식을 활용(인터넷 전화나 VoLTE와 같이, 패킷 방식으로 목소리를 전달하는 것은 예외로 함).하며 후자인 인터넷은 패킷방식을 활용하는 TCP/IP 프로토콜을 사용한다. 서킷통신은 A에서 B로 정보를 보낼 때 특정 경로를 독점하는 방식으로, 연결을 끊지 않는 이상 계속 같은 경로를 사용하기 때문에 정보를 안전하게 보낼 수 있다는 장점이 있다. 그러나 회선이 끊어지면 다시 연결해야 하고 누군가 사용 중이면 기다려야 한다. 반면, 패킷통신은 보내는 데이터를 일정 크기로 조각(패킷)내서 보내는 방식이다. 특정 경로를 점유하지 않으므로 효율적으로 네트워크를 쓸 수 있으며 동시에 여러 곳에서 통신하는 것도 가능하다. 또한 서킷방식과는 다르게, 중간에 내용이 끊어지거나 사라지더라도 그 부분만 다시 요청해서 받으면 되므로 효율적이다.
TCP/IP
TCP/IP란 패킷통신을 위한 인터넷 규약으로, IP는 데이터의 조각들을 최대한 빨리 목적지로 보내는 역할을 하며 TCP는 도착한 조각들을 점검하여 줄을 세우고 망가졌거나 빠진 조각들을 다시 요청한다. 두 방식의 조합을 통하여 인터넷 통신을 하는 것을 TCP/IP라 부른다.
웹이란
인터넷은 웹(Web)이 존재하기 전부터 있었던 개념이다. 인터넷은 1960년대 미국 국방성에서 군사적인 목적으로 구축한 알파넷(ARPANET)으로부터 시작되어, 다양한 연구기관의 컴퓨터들 간의 정보전송에 활용되었다. 연구 목적으로 활용되던 인터넷의 대중화를 가져온 사람이 '팀 버너스 리'이다. 그는 월드 와이드 웹(World Wide Web, 줄여서 웹(Web))이란 정보 관리 시스템을 창안하였는데, 이것이 바로 우리가 아는 웹을 말한다. 웹은 인터넷에 연결된 컴퓨터를 통해 사람들이 정보를 공유할 수 있는 전 세계적인 정보 공간을 말하며, 구성요소로는 웹의 정보를 표현하는 HTML, 이러한 HTML 파일들을 교환하기 위한 프로토콜인 HTTP(Hyper Text Transfer Protocol), 통일된 웹 자원의 주소를 나타내는 URL로 이루어져 있다.
참고사이트
'CS > 기타' 카테고리의 다른 글
[소프트웨어 아키텍처 101] 챕터 3. 모듈성 (1) | 2024.01.17 |
---|---|
[소프트웨어 아키텍처 101] 챕터 2. 아키텍처 사고 (0) | 2024.01.12 |
[소프트웨어 아키텍처 101] 챕터 1. 서론 (0) | 2024.01.12 |
[GIT] .gitignore가 작동하지 않을 때 대처 방법 (0) | 2023.06.23 |
[Computer Science] 하드웨어의 한계, JavaScript에서의 부동소수점 (0) | 2020.11.10 |
댓글