컴퓨터 네트워크(이하 네트워크)는 데스크톱, 노트북, 스마트폰 같은 장치들을 유무선으로 연결되어 정보를 주고받을 수 있는 통신망을 의미한다.
스마트폰이나 PC로 인터넷을 이용하거나 다른 장치의 정보를 주고받을 수 있는 이유는 컴퓨터 네트워크가 있기 때문이다.
또한 멀리 떨어진 장치와도 정보를 주고받을 수 있는데, 이를 가능하게 해주는 기술이 인터넷이다.
인터넷은 여러 네트워크끼리 연결한 형태이며 ‘네트워크의 네트워크’라고 이해할 수 있다.
여러개의 네트워크가 엮여있는 모습
현대에 사용하는 여러가지 프로그램을 떠올려보자. 유튜브, 웹툰, 브라우저 등 다양한 프로그램이 있는데 이들 중에서 인터넷 연결 없이 온전하게 실행되는 프로그램은 몇 없다. 그만큼 현대엔 많은 사람들이 인터넷을 많이 사용하고 있으며, 인터넷이 없으면 일상에 크게 불편할 것이다.
2021년 10월경에 있던 KT 인터넷 장애 사건만 살펴봐도 인터넷이 마비될때 우리의 일상이 얼마나 불편해지는지 옅볼 수 있다.
링크 : https://www.youtube.com/watch?v=WGY_d4XFcjo
지금까지 한 이야기는 사용자의 입장이었고, 개발자의 입장에서 다시 살펴보자.
많은 사람들이 인터넷 연결이 필요한 프로그램을 사용한다는 의미는 그만큼 네트워크를 지원하는 프로그램이 많으며, 네트워크를 사용하는 프로그램을 개발해야할 일이 많아진다는 의미이다. 이것이 우리가 네트워크를 공부해야 하는 이유이다.
네트워크 지식이 있어야 네트워크를 쉽게 개발하도록 도와주는 프레임워크를 사용할 수 있다. 또한 인터넷 연결과 관련한 에러나 서버의 동작에 있어서 에러가 발생했을때 해결할 수 있다.
네트워크는 그래프의 형태를 띄고 있다. 그래프란 노드와 노드를 연결하는 간선으로 이루어진 자료구조이다.