회원가입을 하면 원하는 문장을
저장할 수 있어요!
다음
AWS 이용 중이라면 최대 700만 원 지원받으세요
네트워크는 눈에 보이지 않습니다. 그래서 공부에 어려움을 겪는 분들이 많습니다. 대학에서는 네트워크 기초만 한 학기 동안 배울 만큼 공부할 분량도 많습니다. 하지만 저는 이번 시리즈에서 주니어 개발자가 실무에서 활용하는 데 어려움이 없을 만큼의 기본적인 이야기들을 하려고 합니다.
회원가입을 하면 원하는 문장을
저장할 수 있어요!
다음
회원가입을 하면
성장에 도움이 되는 콘텐츠를
스크랩할 수 있어요!
확인
네트워크는 눈에 보이지 않습니다. 그래서 공부에 어려움을 겪는 분들이 많습니다. 대학에서는 네트워크 기초만 한 학기 동안 배울 만큼 공부할 분량도 많습니다. 하지만 저는 이번 시리즈에서 주니어 개발자가 실무에서 활용하는 데 어려움이 없을 만큼의 기본적인 이야기들을 하려고 합니다.
이전 글 ‘주니어 개발자를 위한 엄청 쉬운 네트워크 이야기’에서 컴퓨터 마트 창업자 김씨가 마트를 확장해가면서 다른 지점과 통신하는 과정을 통해, 네트워크의 전반적인 용어를 알아봤습니다. 이때 다른 지점과 통신을 하는 데는 약속이 필요하다고 말했습니다. 상대방의 컴퓨터에서 내가 보낸 데이터를 그대로 받아보려면 내가 보낸 데이터 형식을 상대방 컴퓨터 또한 똑같은 형식으로 받겠다고 지정해야 했습니다. 내가 엑셀의 제1항목으로 ‘제목’을 써서 보냈는데, 상대방 컴퓨터에서는 제1항목으로 ‘이름’을 받겠다고 하면 다른 데이터가 된다는 것이죠. 그때 필요한 게 ‘프로토콜’입니다. 이 부분이 잘 이해가 안 되신다면 이전 글을 먼저 보고 와주세요.
네트워크에서 ‘프로토콜’은 중요한 개념입니다. 주니어 개발자도 일을 하면서 ‘TCP/IP’라는 단어를 들어봤을 텐데요, 이것이 우리가 인터넷에서 사용하는 표준 프로토콜입니다. 우리가 인터넷에서 다른 컴퓨터와 데이터를 주고받을 수 있는 것은 이 TCP/IP 덕분입니다. 구글 크롬 표시 줄에 https://www.naver.com을 쳤을 때, 이것이 네이버의 서버에 도달해 내 컴퓨터 화면 앞에 네이버를 띄워줄 때까지, TCP/IP의 약속을 따라 진행된다는 겁니다.
조금 더 자세히 들여다보면, 이 TCP/IP에서는 내가 www.naver.com을 치고 그 화면을 받을 때까지, 데이터가 4계층에 걸쳐서 만들어지고, 다시 그 4계층을 역으로 거치는 과정이 일어납니다. 이 모델을 그림으로 나타내면 아래와 같습니다. 용어를 먼저 이해하려 하기보다 응용, 전송, 인터넷을 거쳐 이더넷에 도달한 뒤 다시 거꾸로 인터넷, 전송, 응용을 거치는 과정을 머릿속에 그려보시면 됩니다.
그리고 이 과정에서 각 단계마다 ‘캡슐화’라는 과정이 일어납니다. 이는 데이터가 다음 계층에 의해 감싸지는 것이라고 이해하시면 됩니다.
눈에 잘 보이지 않기 때문에 잘 와닿지 않을 텐데요, 좀 더 극단적으로 설명해보면, 네이버 화면을 불러오고 싶다면, 내가 입력한 www.naver.com이라는 데이터가 4단계에 걸쳐서(계층) 4번 포장지에 쌓여야(캡슐화) 네이버 서버의 문을 두드릴 수 있는 데이터가 됩니다. 그리고 다시 거꾸로 4단계를 거쳐 그 포장지를 풀어야 네이버의 서버가 내가 보낸 진짜 데이터를 읽을 수 있게 됩니다. 그 과정과정마다 약속이 있는 것입니다.
오늘은 이렇게 데이터가 4단계에 걸쳐, 단계에 따라 포장지에 쌓여 생성된 뒤, 다시 거꾸로 그 과정을 거쳐 수신자에게 전달되는 과정에 대해 전반적인 흐름만 이해해보고자 합니다. 정말 다행이게도 이런 구조는 사실 현실 세계에 존재합니다. 극단적으로, 우리가 편지를 주고받는 상황이 이것과 비슷합니다. 이번 글에서는 우선 편지가 전달되는 과정을 통해 전반적인 흐름을 직관적으로 이해하는 것을 목표로 하고, 다음 글에서는 이것을 실제 네트워크 세계의 용어로 설명드리겠습니다. TCP/IP의 계층과 캡슐화라는 개념을 머릿속에서 흐름만 잡아보시면 좋겠습니다.
네트워크에서 데이터가 목적지로 전달되는 과정은, 편지를 전달하는 과정과 유사합니다. 다만 현실에서는 전달을 해주는 주체는 인간이기 때문에, 목적지가 “롯데월드타워”라면 “아, 거기” 하면서 스스로 찾아갈 수 있는 반면, 컴퓨터는 철저히 몇 가지 단계에 따라서 목적지를 찾아가야 합니다.
서울이라는 네트워크에 사는 김씨가, 같은 네트워크, 즉 같은 서울에 사는, 이씨에게 편지를 택배로 보내고자 합니다. 우선, 같은 지역에서 김씨의 택배가 어떠한 단계를 거쳐서 이씨를 찾아가는지 알아보겠습니다.
첫번째 단계로, 김씨는 이씨에게 전달하고자 하는 글을 편지지 양식에 맞춰서 써내려 갔습니다.
정성 들여 작성한 편지지를 편지봉투에 넣고, 이 편지를 보내는 이, 받는 이를 적어 넣습니다.
편지지를 편지봉투로 감쌌다고 볼 수 있습니다. 실제 네트워크에서는 다음 계층이 이전 계층을 감싸는 과정이 일어나는데, 이를 캡슐화라고 부릅니다. 캡슐화는 내용물을 목적지로 보내기 위해 단계별로 감싸는 행동입니다. 편지를 보내려면 편지봉투가 편지지를 감싸야 하겠죠. 여기서도 편지지를 편지봉투가 감싸는 캡슐화가 일어났습니다.
이 편지를 택배 상자에 넣어 캡슐화하고, 송장에 이 택배를 받을 아파트를 적어 붙입니다.
김씨의 편지가 서울 우체국에 도착하였습니다. 우체국에서는 송장을 확인해 실제 배달부가 찾아가야 할 주소를 붙여주는 일을 하게 됩니다. “서울 B아파트는 서울 동부 20-1번지”라는 식으로 주소를 붙이죠. 이 또한 다른 주소가 감싸는 캡슐화라고 할 수 있습니다.
이렇듯 각 단계가 존재하는 이유는, 캡슐화라는 과정을 통해 이전 단계의 내용물을 다른 곳으로 이동시키기 위한 것이라 할 수 있겠습니다.
최종 목적지인 B아파트, “서울 동부 20-1번지”로 캡슐화한 덕분에, 택배 기사는 정확하게 택배상자를 전달할 수 있었습니다. B아파트에서는 어떠한 과정을 통해 이씨에게 전달되는지 알아보겠습니다.
이처럼 캡슐화된 내용들을 꺼내면서 목적지를 찾아가는 과정을, 캡슐화의 반대라고 하여 역캡슐화라고 부릅니다. “편지지 -> 받는 이 -> 받는 곳” 이 과정을 그대로 반대로 하여 “받는 곳 -> 받는 이 -> 편지지”의 과정을 거쳐서 이씨가 편지를 받을 수 있게 된 것입니다.
같은 서울이라는 공간에서의 택배는 서울 우체국을 통해 전달이 가능했습니다. 그렇다면 다른 도시로의 전달은 어떻게 이루어질까요?
이번엔 부산의 C아파트 박씨에게 택배를 보내려고 합니다. 서울 우체국 까지의 과정은 동일합니다.
같은 지역, 서울에 있는 사람에게 보내는 택배가 아니다 보니, 서울 우체국에서 해결할 수가 없었습니다. 그래서 서울에서 밖으로 나가려면 반드시 통해야 하는 서울 톨게이트를 ‘받는 곳’으로 하여 전달하게 됩니다.
서울 톨게이트는 ‘받는 곳’을 확인하여 본인에게 전달된 것이 맞는지 확인하게 됩니다. 그 뒤 톨게이트에 연결된 여러 고속도로 중, 부산으로 이어지는 곳이 있는지 찾은 후 해당 고속도로로 택배상자를 전달하게 됩니다.
톨게이트는 고속도로로 반드시 이어져 있어서, 받는 곳을 따로 지정하여 캡슐화를 하지 않고, 해당 고속도로 방면으로 보내기만 하면 되었습니다.
부산 고속도로와 이어져 있는 다른 톨게이트, 즉 부산 톨게이트에서는 부산으로 전달해야 하는 택배인 것을 알고 부산 우체국으로 전달합니다.
주소를통해 이동하며, 아파트라는 변하지 않는 목적지가 존재하기 때문에 편지는 부산까지 무사히 도착하여 박씨에게 전달될 수 있었습니다.
같은 지역, 다른 지역으로 편지를 전달하는 과정을 알아보았습니다. 같은 지역이라는 의미가 익숙하실 수 있는데요. 네트워크에서 LAN(Local Area Network)이라는 것이 같은 지역이라고 할 수 있습니다. 그럼 다른 지역으로 넘어가는 것은 무엇일까요? 바로 WAN (Wide Area Network)라고 하여, 같은 지역에서의 연결이 아닌, 지역과 지역의 넓은 연결을 의미합니다.
네트워크가 컴퓨터 간의 통신을 의미하는 것처럼, 현실에서도 사람과 사람, 사람과 회사, 회사와 회사 등 많은 것들이 연결되어 통신하고 있습니다. 이번에는 데이터가 만들어지는 4단계와 캡슐화, 역캡슐화라는 내용에 대해 설명을 드렸습니다. 물론 위의 예시도 아주 정확하게 표현된 것은 아닙니다만, 추상적이고 눈에 보이지 않던 개념을 이해하는 수준으로 받아들여 주시면 감사하겠습니다.
다음 편에서는 현실을 빗대어 설명드린 데이터의 캡슐화 4단계가, 컴퓨터 세계에서는 어떻게 이루어지는지 알아보겠습니다!
요즘IT의 모든 콘텐츠는 저작권법의 보호를 받는 바, 무단 전재와 복사, 배포 등을 금합니다.