Skip to content

[09-15] 리얼월드 데이터통신 - 0 #7

@me1111on

Description

@me1111on

리얼월드 데이터통신.

0. 우리는 왜 모르는가?

유비쿼터스라는 개념을 들어본 적이 있나요? 유비쿼터스라는 단어는 ‘어디에나 있는’이라는 뜻으로 주로 종교나 철학에서 쓰이던 개념입니다. 그러나 과거 IT 기술자와 미래학자들은 유비쿼터스 컴퓨팅이라는 개념을 상상하며, 어디서나 컴퓨터가 존재하고 언제 어디서든 컴퓨팅 자원을 활용할 수 있는 미래를 꿈꿨습니다. 그 이유는 당시 컴퓨팅 자원이 너무 비싸고 접근성이 떨어졌기 때문이죠.

“엥? 그런데 분명 역사책 같은 데서 보면 80년대 초부터 애플이 애플 컴퓨터를 만들며 대중화되었다고 하던데요?”라고 생각할 수도 있습니다. 사실, 이는 매우 미국 중심적인 시각에 가깝습니다. 컴퓨터라는 물건은 그 당시 물가를 고려했을 때 미국 외에 사는 일반인들에게는 매우 비싸고 귀한 물건이었음을 부정하기 어렵습니다. 대중화되었다는 것은 그 당시 미국의 중산층에게나 해당되는 이야기거나, 이전에 연구소나 대학에서만 쓰이던 물건이니 그 전과 비교해 대중화되었다고 표현하는 게 맞겠죠. 이러한 상황이다 보니 미래학자들은 황금빛 미래를 꿈꾸며, 컴퓨터의 가격, 크기, 대중성 측면에서 훨씬 나아질 것이고, 그렇게 되면 컴퓨터의 수량과 분포가 증가할 것이라고 생각해 유비쿼터스라는 개념을 상상했던 것입니다.

그래서 그 당시 미래를 그린 영화를 보면 일상 곳곳에 컴퓨터가 등장합니다. 창문, 컵, 의자, 소파 등 어디에나 컴퓨터가 있어서, 심지어 컴퓨터를 입고 다닌다는 개같이 촌스러운 말을 진지하게 하곤 했죠. 하지만 우리가 현재 마주한 모습은 그들이 상상한 미래와 비슷하면서도 다른 방향으로 흘러간 것 같습니다. 컴퓨터의 가격과 크기는 그 당시 예측했던 것보다 훨씬 발전했지만, 그 결과는 컴퓨터의 유비쿼터스로 이어지지 않았죠. 그렇다고 지금 우리가 유비쿼터스 시대가 아니라고 할 수는 없습니다. 지금 우리는 유비쿼터스 시대에 살고 있습니다. 다만 그 유비쿼터스의 주체는 컴퓨터 그 자체가 아닌 ‘연결성’에 가깝다고 할 수 있습니다.

오늘날 우리는 ‘연결성의 유비쿼터스’ 시대에 살고 있다고 해도 과언이 아닙니다. 이 연결성은 마치 공기처럼 어디에나 존재하고 항상 우리 곁에 있습니다. 정말 공기처럼 여기고 그것이 없으면 숨을 쉴 수 없을 것처럼 느끼죠. 여러분, 인터넷 없이 5일 동안 버틸 수 있을 것 같나요? 이처럼 우리 생활에 밀접하게 연관되어 있고, 없으면 큰일 날 정도로 중요한 요소지만, 정작 그것이 어떻게 동작하는지, 어떤 흐름을 타고 있는지는 전공자조차 깊이 알지 못하는 경우가 많습니다. 아니, 생각해보면 학교에서 우리가 산소로 어떻게 호흡하고 살아가는지, 밥이나 물을 마시면 어떻게 소화하고 배설하는지 가르쳐주는데, 왜 이 21세기의 산소라고 할 수 있는 연결성의 원리와 동작에 대해서는 모르는 걸까요?

그 이유는 아주 간단합니다. 안 가르치기 때문이죠. 그러면 자연스럽게 ‘왜 안 가르칠까?’라는 의문에 도달하게 됩니다. 음… 제 생각에는 이에 대해 두 가지 이유가 있다고 봅니다.

첫째, 몰라도 상관없기 때문입니다. 연결성의 원리와 동작을 개념화하자면, 이는 데이터 통신이라고 말할 수 있겠죠? 데이터 통신은 매우 뛰어나게 계층화되고 캡슐화된 구조로 설계되어 있습니다. 따라서 이를 블랙박스처럼 다루고, 그 안에서 무슨 일이 일어나는지 몰라도 사용하는 데는 아무 문제가 없습니다. 이 계층화된 구조 덕분에 우리는 데이터를 전송하는 방법보다는 어떤 데이터를 전송할지, 받은 데이터를 어떻게 처리할지, 궁극적으로는 이 과정을 통해 무슨 문제를 어떻게 해결할지에 집중할 수 있습니다.

컴퓨터를 통해 해결해야 할 문제는 정말 무궁무진합니다. 어떻게 하면 전 세계의 고객에게 실시간으로 영상을 스트리밍할 수 있을까? 수천 개의 커넥션을 유지하면서 동시성을 어떻게 지원할 수 있을까? 등등. 문제 해결의 관점에서 볼 때, 데이터가 어떻게 전달되는지는 그딴 거라고 표현해도 전혀 과언이 아닙니다. 전혀 고려하지 않고, 고려할 필요도 없기 때문입니다.

기술의 본질은 문제를 해결하기 위해 존재하는 것이고, 서비스 관점에서 문제가 없고 상관없는 곳에는 투자나 연구가 이루어지지 않습니다. 그러니 알 필요도 가르칠 필요도 없다는 것이죠. 이게 문제가 되는 곳은 대학의 연구실이나 통신회사 같은 곳의 연구소밖에 없을 테니까요.

그럼 이런 의문이 들 수도 있겠죠. “아니, 그럼 데이터 통신에 문제가 왜 안 생긴다는 거야? 이렇게 많이, 널리 쓰이고 있는데 문제가 없을 리가 없잖아?”라는 의문이죠. 이는 제가 생각하는 두 번째 이유로 이어집니다.

데이터 통신에 대해 자세히 가르치지 않는 두 번째 이유는 이것이 완성된 기술이라는 점입니다. 데이터 통신의 대부분을 차지하는 것은 인터넷이고, 이 인터넷을 이루는 주요 프로토콜들은 수십 년 동안 큰 업데이트 없이 안정적으로 사용되고 있습니다. 인터넷이 세상에 등장하고, 월드 와이드 웹이 나와서 정보 민주화를 이루어내고, 클라우드 시대를 열며 세상을 뿌리부터 흔들어놓은 것은 모두가 알고 있는 사실입니다. 그러나, 정작 이를 이루는 가장 핵심적인 기술은 의외로 40년 넘는 세월 동안 큰 변화 없이 거의 초기 모습 그대로 유지되고 있다는 사실은 대부분 모르고 있을 겁니다. 견고함과 유연함을 모두 갖춘 정말 끝내주게 잘 만든 궁극의 기술이라고 불러도 과언이 아닐지도 모릅니다. 그래서 문제도 생기지 않고, 변화도 없으며, 앞으로도 이대로 쭉 쓰일 예정이라서 관심도가 상대적으로 떨어지는 것 같습니다.

결국 우리는 몰라도 되기 때문에 모릅니다. 그러므로 이 글은 그런 몰라도 되는 내용을 다룹니다. 하지만, 적어도 전공자나 관련 종사자라면 인터넷이 단순히 마법같이 작동하는 시스템이 아니라는 정도는 알아야 하지 않을까요? 마치 ‘인터넷의 요정’이 패킷을 들고 마법 터널을 지나 상대방 모니터에 데이터를 뿌려주는 식의 이해로는 충분하지 않을 것 같습니다.

그래서 우리는 간단한 시나리오를 통해 인터넷에서 데이터가 어떤 과정과 순서로 이동하는지 알아보려 합니다. 이 과정에서 어플리케이션과 운영체제 사이를 넘나들며, 경비 아저씨 몰래 아파트 단지나 건물 지하의 MDF실에도 들어갔다 나올 것이고, 때로는 바다 아래 심해 케이블을 타고 대륙을 넘나들지도 모릅니다.

하지만 걱정할 필요는 없습니다. 해봤자 갔다 오는 데 10ms밖에 안 걸릴 테니까요.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions