⚡네트워크란?
기본 정의 정의로는 Net + Work의 합성어로 컴퓨터들이 통신 기술을 이용하여 그물망처럼 연결된 통신 이용 형태를 의미한다.
쉽게 말하면 두대 이상의 컴퓨터들을 연결하고 서로 통신할 수 있는 것이라고 정의할 수 있다.
⚡프로토콜
각 컴퓨터는 통신을 통해서 데이터를 주고받는 형식을 정할수 있었는데 A 컴퓨터에서 보내는 데이터를 제목, 날짜, 형식, 내용 순서로 보냈지만, B 컴퓨터에서는 제목, 내용, 날짜, 형식으로 받도록 하다보니 서로의 통신 내용을 이해하는데 어려움을 격게 되었고, 이때 주고 받는 데이터를 어떻게 할 것인지 정하게 되었다. 이러한 약속된 데이터 형식을 프로토콜이라고 부르게 되었다.
⚡허브
두대의 컴퓨터를 1:1로 연결할 때는 직접 연결을 해서 사용하면 된다. 하지만 엄청나게 많은 숫자의 컴퓨터를 서로 연결을 해서 통신을 하려면 선으로 연결을 하게 된다고 할 때 엄청나게 복잡한 연결이 되게 된다. 이때 컴퓨터끼리 직접적으로 연결하지 않고 중앙에 하나의 장치를 두기로 했는데 중앙에 위치한다는 의미로 허브라고 부르게 되었다. 허브가 생기니 컴퓨터바다 복잡하게 연결을 해야 할 필요성이 사라지고 간단하게 허브에 연결만 하면 되게 되었다.
⚡스위치
허브만 연결을 했을 때 문제가 발생했다. 허브는 단순히 자신에게 들어온 데이터를 연결된 컴퓨터로 보내주기만 했다. 그러다 보니 한대의 컴퓨터에만 전달해야 되는 중요한 정보가 모든 컴퓨터에 전달이 된 것이다. 허브만 연결했을 때 문제점을 깨닫고 특정 컴퓨터에만 데이터를 전달할 수 있도록 이름을 붙이기로 한다. 또한 단순하게 데이터만 전달하던 허브를 데이터의 방향 전환이 가능한 장치로 향상하게 된다. 이를 데이터의 전환이 가능하다는 의미로 스위치라고 부르기로 했다.
⚡라우터
그렇다면 허브와 스위치를 이용한다고 하더라도 소규모에서는 가능하겠지만 다른 나라까지 통신이 필요하다면 어떻게 해야 하는가?
각 나라별로 똑같은 방식으로 허브와 스위치를 이용해서 서로 통신을 하고 있을 테니 말이다. 이를 나라마다 각자의 지역 네트워크를 형성하였다 하여 LAN(Local Area Network)라고 부르기로 하였다.
이제 서로의 나라를 연결하여 통신만 하면 되는데 이때 각 나라에 존재하는 스위치를 연결하려고 생각해 보자.. (엄청 복잡하다....)
내부적으로도 LAN이 늘어남에 따라서 스위치를 또 연결해야 하는 번거로움도 존재하게 된다.
그래서 이러한 문제점은 각 나라를 대표하는 장치를 두어 연결하는 것으로 해결하기로 했다. 나라의 경로를 표시한다는 의미로 라우터라고 부르기로 했다.
⚡생각
개발자를 하면서 거듭해서 개발에 대한 내용도 공부를 하고 있지만 빠질 수 없는 내용이 네트워크이다. 프로젝트를 배포하고 운영하는데 있어서 빠질수 없는 내용이다. 나도 처음에는 어차피 배포하고 운영인데 개발보다 중요한가?라는 생각을 했지만 개발자로 연차가 늘어감에 따라서 네트워크 지식이 필요하다는 것을 계속해서 깨닫는 중이다. 요즘 클라우드 서비스가 대세이다. AWS DOC 및 관련 블로그들을 잘만 찾아본다면 네트워크 지식이 없어도 그냥 따라 하면 정상적으로 배포 및 운영하는데 문제가 없을 수 있다. 하지만 네트워크 지식을 공부를 잘만 해놓는다면 이슈가 발생했을 때 해당 이슈를 좀 더 빠르게 캐치하고 해결해 나갈 수 있으면 운영시 많은 도움이 될 것이다. 완전 기초적인 내용에 대해서 쉽게 설명해 놓은 블로그를 봐서 나도 한번 정리해보게 되었다.
'CS' 카테고리의 다른 글
[CS] 업캐스팅 & 다운 캐스팅에 대한 내용 정리 및 사용 이유 (0) | 2023.01.24 |
---|---|
[Git] git -f 명령어 위험성 공유 (0) | 2022.10.23 |
HTTPS 개념 및 내용 정리 (0) | 2022.10.08 |
프로세스와 스레드에 대한 내용 정리 (0) | 2022.10.06 |
HTTP 대한 개념 및 내용 정리 (0) | 2022.10.04 |