이번 글에서는 흔히 사용되는 단어인 인터넷 과 웹 이 무엇이고 그들의 차이점에 대해 알아보겠습니다.
TCP / IP
인터넷과 웹을 알아보기 전에 TCP/IP
라는 것에 대해 살펴봅시다.
TCP IP - 위키백과
TCP/IP는 패킷 통신 방식의 인터넷 프로토콜인 IP (인터넷 프로토콜)와 전송 조절 프로토콜인 TCP (전송 제어 프로토콜)로 이루어져 있다. IP는 패킷 전달 여부를 보증하지 않고, 패킷을 보낸 순서와 받는 순서가 다를 수 있다.(unreliable datagram service) TCP는 IP 위에서 동작하는 프로토콜로, 데이터의 전달을 보증하고 보낸 순서대로 받게 해준다. HTTP, FTP, SMTP 등 TCP를 기반으로 한 많은 수의 애플리케이션 프로토콜들이 IP 위에서 동작하기 때문에, 묶어서 TCP/IP로 부르기도 한다.
IP 는 순서나 패킷이 누락되어도 일단 빠른 전달을 목적으로 합니다.
TCP 는 IP위에서 동작하는 프로토콜로 전달중 누락된 패킷을 재 요청하고 뒤죽박죽된 패킷을 다시 재 배치합니다.
즉 TCP/IP 는 TCP와 IP 두가지 프로토콜의 조합으로 이루어진 패킷 통신을 위한 프로토콜입니다.
패킷은 한 번에 전송되는 정보의 단위를 뜻합니다. 통신에 있어 데이터들을 패킷 단위로 쪼개어 전달합니다.
TCP/IP가 무엇인지 간단하게 알아보았습니다.
인터넷 ?
인터넷 - 위키백과
인터넷은 컴퓨터로 연결하여 TCP/IP라는 통신 프로토콜을 이용해 정보를 주고받는 컴퓨터 네트워크이다.
TCP/IP 를 알면 위의 정의가 이해하기 수월해집니다. 즉 인터넷은 TCP/IP를 이용하여 정보를 주고받는 네트워크를 말합니다.
하지만 과연 네트워크 가 무엇인지 정의를 내릴 수 있으신가요? 저는 생각보다 쉽게 정의를 내릴 수 없었습니다. 그렇다면 네트워크 란 무엇일까요?
컴퓨터 네트워크 - TCPSchool
여러 컴퓨터가 각각 클라이언트와 서버로써 서로 연결되어 구성된 망을 컴퓨터 네트워크(computer network)라고 합니다.
인터넷의 정의에서 컴퓨터 네트워크 라 표현하여 그에 관해 찾아보았습니다. 위의 정의가 컴퓨터 네트워크라면 네트워크는 여러 장치의 연결로 구성된 망
으로 정의를 해 볼 수 있을 것 같습니다.
웹 ?
웹 - 위키백과
월드 와이드 웹(World Wide Web, WWW, W3)은 인터넷에 연결된 컴퓨터를 통해 사람들이 정보를 공유할 수 있는 전 세계적인 정보 공간을 말한다. 간단히 웹(Web)이라 부르는 경우가 많다
그리고 위키백과에서는 아래와 같이 인터넷과 웹이 같지 않다는 것을 명확히 표시하고 있습니다.
이 용어는 인터넷과 동의어로 쓰이는 경우가 많으나 엄격히 말해 서로 다른 개념이다. 웹은 전자 메일과 같이 인터넷 상에서 동작하는 하나의 서비스일 뿐이다.
정리하자면 웹은 인터넷에 속하는 서비스라는 것입니다.
웹의 특징
웹의 특징으로는 URL로 문서의 위치를 표시합니다. 또한 텍스트나 멀티미디어 정보(이미지, 소리, 영상)를 하이퍼텍스트 방식으로 연결하여 제공합니다. 이 하이퍼텍스트를 전송하기 위해 HTTP(Hyper Text Transfer Protocol)를 사용합니다.
하이퍼텍스트 - TCPSchool
하이퍼텍스트(hypertext)란 문서 내부에 또 다른 문서로 연결되는 참조를 집어 넣음으로써 웹 상에 존재하는 여러 문서끼리 서로 참조할 수 있는 기술을 의미합니다.
이때 문서 내부에서 또 다른 문서로 연결되는 참조를 하이퍼링크(hyperlink)라고 부릅니다.
하이퍼텍스트는 웹 브라우저 라 불리는 프로그램을 통해 웹 서버에서 정보를 읽어들여 보이게 됩니다.
웹의 구성
HTML
을 이용하여 작성된 하이퍼텍스트 문서를 웹 페이지 라고 합니다. 이 웹페이지들의 관련된 집합을 웹 사이트 라고 합니다.
마무리
일단 제가 이해한 정도로만 작성을 해보았습니다. 아직도 궁금한 부분이 많기에 더 공부해서 TCP/IP의 계층과 OSI 7계층등과 같은 부분들을 나중에 더 상세히 작성해 보도록 하겠습니다.
'개발' 카테고리의 다른 글
Git-flow를 사용한 프로젝트 관리 (0) | 2020.12.02 |
---|---|
Docker(도커) + Node.js 배포 (2) | 2020.08.11 |
HTTP란? (0) | 2020.06.21 |
컴파일과 빌드 (feat. Gradle) (0) | 2020.06.21 |
SSL, HTTPS란? 블로그에 적용해보자 (0) | 2020.06.21 |