본문

IT 소식
네트워크 개념 잡기

작성일 2023년 06월 27일
main

IT 관련하여 일을 하고 계시거나 흥미를 가지고 계신 분들이 아니더라도 누구나 ‘네트워크’라는 단어를 많이 접하셨을 거라 생각합니다. 일상에서 흔하게 쓰이기도 하는 이 네트워크, 얼마 많이 알고 계신가요?

쿠버네티스에 관심이 있는 분들이라면 , 웹 관련하여 개발을 담당하는 웹 개발자라면, 주니어에서 시니어로의 도약을 앞두고 계신 개발자라면 네트워크에 대한 지식 필요성을 많이 느끼고 계실 것입니다. 특히 최근에는 사이드 프로젝트가 유행하면서 개인 서버 혹은 AWS와 같은 클라우드 서비스를 통해 진행하는 경우가 많아졌습니다. 직접 모든 것을 설정하고 진행해야 할 때 네트워크와 관련된 지식이 있다면 조금 더 수월하게 진행할 수 있을 것입니다.

또한 비전공자, 비개발자이지만 개발자와 함께 협업하는 분들께서도 기초적인 네트워크 지식과 개념을 갖추고 있다면 커뮤니케이션과 실무에 있어 많은 도움이 될 것 같습니다.

그러면 지금부터 네트워크에 대해 알아볼까요?


네트워크(Network)란?

network

사람들이 만나 서로 대화하며 정보를 나누고 관계를 형성하는 일을 네트워킹이라고 하는데요. 흔하게 쓰이는 네트워크라는 단어는 사람, 사물 관계 없이 다양하게 사용되고 있습니다.

네트워크란 그물을 뜻하는 Net과 Work의 합성어로, 그물처럼 서로 긴밀하게 연결되어 있는 것을 뜻합니다. 보통 IT에서 사용되는 정의로 보자면 두 대 이상의 컴퓨터들을 연결하고 서로 통신할 수 있는 것을 말합니다. 하지만 최근에는 컴퓨터 뿐만 아니라 스마트폰, 노트북, IPTV, 로봇 청소기 등 인터넷에 연결되는 다양한 기기들이 서로 연결되어 정보를 주고받는 것 또한 포함되고 있습니다.

그래서 IEEE(Institute of Electrical and Electronics Engineers, 국제 전기 전자 공학회)는 몇 개의 독립적인 장치가 적절한 영역 내에서 적당히 빠른 속도의 물리적 통신 채널을 통하여 서로가 직접 통신할 수 있도록 지원해 주는 데이터 통신 체계라고 정의합니다.

네트워크를 이용하여 우리는 카카오톡을 통해 서로 연락하고, 멜론과 같은 스트리밍 사이트를 이용하여 음악을 듣는 등 다양한 정보를 얻고 소통하고, 생산할 수 있습니다.

네트워크란 연결하는 선이나 장치 같은 물리적인 측면부터 데이터를 주고받는 데에 필요한 메시지나 규약과 같은 물리적이지 않은 측면까지 모두 포함한, 통신 과정 전체를 아우르는 개념입니다.


가까운 통신을 책임지는 LAN과 더 넓은 영역을 책임지는 WAN

LAN,WAN

보통 네트워크라고 하면 가상으로 연결된 것처럼 생각하기 쉬운데요. 사실은 서로 통신하기 위해 다양한 회선이 연결되어 있고, 전기 신호를 데이터로 변경해 주는 장치 등 다양한 매체를 통하고 있습니다.

LAN은 Local Area Network의 줄임말로 근거리 영역 네트워크를 뜻합니다. 쉽게 설명하자면 우리가 집이나 학교, 회사에서 사용하는 공유기를 중심으로 컴퓨터나 노트북, 혹은 여러 인터넷이 가능한 기기들을 사용하고 있는데요. 이것이 바로 LAN의 한 형태입니다. 지리적으로 가까운 기기들이 서로 연결된 소규모의 네트워크인 것이죠. 그렇기 때문에 LAN은 기기가 서로 물리적으로 가까이 연결되어 있기 때문에 비교적 간단하게 구현할 수 있으며, 통신에 필요한 선이 짧으므로 데이터를 주고받는 데에 오류가 적고 속도가 빠릅니다.

WAN은 Wide Area Network의 줄임말로, 이름에서 알 수 있는 것처럼 지역이나 국가와 같이 넓은 영역을 연결하는 광역 네트워크입니다. 주로 여러 곳에 흩어진 소규모 네트워크, 즉, LAN을 연결한 것을 WAN이라고 부르기도 합니다. WAN은 물리적으로 범위가 넓어서 개인이 구현하기는 어렵습니다

우리가 잘 알고 있는 KT, SK브로드밴드, LG U+와 같은 인터넷 서비스 제공자들이 전국에 회선을 설치하고, 우리는 그것을 이용하고 있는 것입니다. WAN은 LAN과 달리 구조도 복잡하기 때문에 여러 물리적 상황과 환경에 영향을 많이 받을 수 있습니다. 따라서 LAN에 비해 속도도 느리고, 오류가 발생할 확률도 높다는 특징이 있습니다


적절한 통신 경로를 안내해 주는 라우터(Router)

Hub, Switch

인터넷이 발달하고 네트워크의 규모가 커지면서 흩어진 LAN을 연결하고, 또 다른 LAN으로 데이터가 올바르게 전달될 수 있는 장치가 필요해졌습니다. 이렇게 데이터를 올바르게 전달할 수 있도록 도와주는 장치가 바로 라우터입니다. 라우터는 길을 뜻하는 루트(Route)에서 따온 용어로, 데이터가 목적지에 원활하게 도착할 수 있도록 적절한 통신 경로를 안내하는 장치입니다.

우리가 지도 앱을 이용하여 길찾기를 할 때 매번 상황에 따라 다양한 길을 안내하는 것처럼 수많은 데이터가 오가는 네트워크망에서도 다양한 변수에 의해 가장 빠른 경로가 바뀝니다. 라우터는 적절한 통신 경로를 안내하는 것과 더불어 가장 빠르게 도착할 수 있는 최적의 경로를 찾아 안내합니다.

라우터는 라우팅 테이블(Routing table)이라는 공간에 미리 다양한 경로의 정보를 저장하고 있습니다. 라우팅 테이블이란 최종 목적지의 IP 주소와 목적지에 도달하기 위해 경유해야 할 인근 라우터의 정보가 담긴 테이블로, 라우터가 하는 가장 중요한 일이 바로 이 라우팅 테이블을 구성하는 것입니다. 그래야 최적의 경로를 안내할 수 있기 때문입니다.

경로를 저장하는 방법은 크게 두 가지가 있습니다. 관리자가 직업 라우팅 테이블의 내용을 추가하는 방법과 인근 라우터와 정보를 교환해 자동으로 경로 정보를 갱신하는 방법입니다. 만약 라우터가 잘못된 정보를 가지고 있으면 어떻게 될까요? 데이터가 길을 잃거나 무한 루프가 발생할 경우를 대비해 데이터마다 TTL(Time To Live)이라는 유효기간을 정해둡니다.

TTL이란 데이터의 유효 기간을 나타내는 것으로 데이터가 무한히 네트워크를 방지하는 역할을 합니다. 데이터의 헤더에 포함되는 정보로 0부터 255까지의 숫자로 표기되어 있어, 하나의 라우터를 거칠 때마다 일정량이 줄어들게 됩니다. 데이터가 목적지에 도착하지 않았더라도 이 TTL이 0이 되면 데이터가 폐기됩니다.

같은 네트워크에서 다른 기기에게 데이터를 전송해 주는 허브와 스위치

아까 네트워크란 두 대 이상의 컴퓨터들을 연결하고 서로 통신하는 것이라고 말씀드렸습니다. 만약 세 대, 네 대 그 이상의 컴퓨터들이 통신을 해야 한다면 어떻게 해야 할까요? 각각 모든 컴퓨터를 연결하게 된다면 너무 복잡해지기 때문에 관리와 비용에 부담이 될 수 있습니다. 그래서 복잡하게 연결하는 것이 아닌 중앙에 하나의 연결 장비를 두고,그 장비에 컴퓨터를 연결해 서로 데이터를 주고받는 방식으로 변했습니다. 각 컴퓨터는 하나의 케이블을 통해 네트워크 안에 있는 모든 다른 기기와 통신할 수 있게 되는 것이죠.

허브와 스위치는 같은 네트워크상에서 서로 다른 기기로 데이터를 전송하기 위해 사용하는 장비입니다. 여러 장비를 연결하고 케이블을 하나로 연결해 주는 일 또한 합니다.

허브(hub)는 데이터를 자신에게 연결된 모든 기기에게 전달하는 연결 장비입니다. 한 포트에서 전기 신호가 들어오면 이를 허브에 연결된 전체 포트로 연결하는, 네트워크 전체를 목적지로 데이터를 전송하는 브로드캐스트 통신 방식입니다. 허브의 통신 방식은 데이터를 전송할 때 어느 기기로 보내야 하는지 판단하지 않아도 되기 때문에 부담은 덜 하지만, 한 번에 하나의 장비만 데이터를 보낼 수 있으므로 전체 네트워크 성능이 저하되는 문제가 있습니다. 또 동시에 여러 기기에서 데이터를 전송하면 충돌이 발생할 수 있다는 문제도 있습니다.

이러한 문제를 해결하기 위해 등장한 것이 바로 스위치(switch)입니다. 스위치는 허브와 달리 데이터가 들어왔을 때 해당 데이터를 요청한 기기가 누구인지 파악하고 정확한 목적지로 전달하는 장비로 출발지와 목적지가 각각 하나씩만 있는 유니캐스트 방식입니다. 스위치는 자신에게 연결된 기기의 정보를 따로 저장하고 있기 때문에 데이터의 목적지를 정확하게 찾을 수 있습니다. 따라서 여러 기기가 동시에 데이터를 주고받더라도 충돌하는 일이 없습니다.


데이터를 주고 받기 위한 약속, 프로토콜

Protocol

지금까지 다양한 장치들을 통해 어떤 방식으로 통신하는지에 대해 알아보았습니다. 그런데 주고받는 데이터의 형식이 다를 경우 같은 내용이라고 해도 통신이 어렵다는 사실을 알고 계신가요? 이름, 날짜, 내용의 순서로 요청했지만 만약 받는 쪽에서 데이터의 형식을 이름, 내용, 날짜로 정한다면 날짜와 내용의 위치가 뒤바뀌어 들어오게 됩니다. 이러한 일을 방지하기 위해서 보내는 데이터의 내용을 그대로 받아보려면 보낸 데이터의 형식을 받는 쪽에서도 똑같은 형식으로 지정해야만 합니다. 이렇게 정해진, 약속된 데이터의 형식을 프로토콜이라고 합니다. 프로토콜은 네트워크에 있어서 가장 중요한 개념입니다. 우리는 알게 모르게 벌써 정해진 약속을 지키면서 통신을 하고 있습니다.

네트워크 안에서 원활하게 통신을 하려면 각 상황에 맞는 프로토콜을 사용해야만 합니다. 우리가 인터넷에 접속하여 자주 사용하는 URL을 보면 http로 시작하는 것을 알 수 있습니다. 바로 이 HTTP가 웹 통신에서 사용하는 대표적인 프로토콜입니다. 그 외에도 파일 송수신을 위한 프로토콜 FTP 등이 있습니다.

프로토콜은 네트워크의 흐름을 파악하는 데에 있어 핵심적인 역할을 하므로 각 프로토콜의 역할과 기능을 인지하는 일은 매우 중요합니다.


마치며

지금까지 네트워크의 개념과 전체적인 구조에 대해 함께 알아보셨습니다. 위에서 설명한 다양한 장치들을 이용하여 실제로 발송하는 출발지부터 도착지까지 신호를 나르고 컴퓨터들끼지 데이터를 전달하는 등 기본적인 네트워크 구성이 완료되면 그 다음으로 실질적인 통신이 이루어집니다. 컴퓨터들끼리 통신을 하기 위해서는 정해진 약속인 프로토콜을 지켜야만 하는데요.

다음 콘텐츠에서는 이 프로토콜과 함께 그 종류에 대해 더 자세히 알아보겠습니다. 감사합니다. 🙂

서비스 성능관리는 와탭 애플리케이션 모니터링으로!
와탭 무료로 시작하기
박소현[email protected]
Marketing TeamManager

지금 바로
와탭을 경험해 보세요.