4차 산업혁명의 4가지 핵심기술

4차 산업혁명에는 적어도 4가지 핵심기술이 필요합니다.

굳이 라임을 맞추려던 건 아닌데, 어쩌다 보니 4차 산업혁명에 필요한 기술이 적어도 4가지는 필요하네요. 핵심기술에 대한 생각은 학자마다 다르게 정의할 수 있겠지만, 저는 학자가 아닌, 업계 종사자이자 실무자 관점에서 4가지 핵심 기술을 살펴보려 합니다.

1. IoT, 사물인터넷

사물인터넷(IoT) 이라는 말을 처음 접하면 개념부터 혼동이 옵니다. 마치 세상의 온갖 만물이 인터넷 서핑을 하는 것처럼 들리기도 합니다.

하지만, 정확한 의미는, 기존에는 인터넷에 연결되어 있지 않던 가전제품이나 각종 센서제품이 인터넷을 통해서 정보를 보낸다는 뜻입니다.

저희 집만 하더라도, 에어콘, 세탁기, 건조기, 식기세척기 같은 물건들이 와이파이로 우리 집 네트워크에 붙어 있습니다. 세탁기가 세탁을 마치면, 스마트폰으로 세탁이 끝났음을 문자로 보내주고, 에어컨은 집에 들어가기 전에 미리 켜서 집에 들어가자마자 시원하게 맞춰 놓기도 하지요. 이 모든 것이 IoT 기술을 기반으로 하고 있습니다.

IoT는 기존 전자제품(디바이스)에 인터넷 기술을 덧붙인 것

기존에도 이 비슷한 디바이스는 제법 있었습니다. 그렇다면, 기존의 기술과 IoT 기술은 무엇이 다를까요?

1.1. 프로토콜 표준화

IoT의 가장 큰 차이점은 프로토콜의 표준화를 들 수 있습니다. 이것은 이후 이야기할 다른 차이점의 근본이 되는 성질입니다. 프로토콜에 대한 자세한 설명은 여기에 미리 해 두었습니다.

프로토콜 - Protocol 이란 무엇인가?

예전에도 디바이스 간 통신을 시도한 기술은 많았습니다. 그러나 각 회사마다 나라마다 각자 다른 프로토콜을 가지고 있어서, 각각의 작은 시스템은 구축할 수 있어도, 하나의 큰 시스템으로 통합하는 것이 사실상 불가능했습니다. 하지만, IoT 기술로 포장한(?) 센서는 기존의 센서와는 조금 다릅니다. 모두가 같은 인터넷 프로토콜을 사용합니다. 따라서 각자 따로 구축했던 센서 시스템을 하나의 시스템으로 통합하거나 분리하는 일이 예전보다 쉬워졌습니다.

Raspberry-Pi

1.2. 서버 경량화

요즘에는 작은 디바이스에도 대부분 서버 프로그램이 설치됩니다. 즉, 센서 하나가 서버 한 개와 비슷하게 작동합니다. 그래서 앞에서 살펴본 인터넷 프로토콜 통신이 가능한 겁니다. 예전에는 PC에서나 가능했던 서버 통신이 이제는 작은 기기에서도 프로그래밍을 통해 가능한 일이 되었습니다. 대신 센서를 개발하는 입장에서는 해야 할 일이 하나 더 늘긴 했지만요.

1.3. 쌍방향 통신

기존의 센서는 데이터를 보내기만 했다면, 이제는 인터넷 프로토콜을 통한 쌍방향 통신이 가능해졌습니다. 즉, 기기에서 데이터를 보내올 뿐만 아니라, 중앙에서 기기로 명령을 보내는 것도 가능하다는 것이지요. 예전에는 까다로웠던 기술이, 이제는 프로토콜 표준화에 따라, 인터넷에서 사용하던 기술을 그대로 적용할 수 있기 때문에 개발 비용이 적게 듭니다.

1.4. 무선통신

인터넷 프로토콜과 경량서버 기술을 사용하기 때문에 IoT 기기는 무선통신이 가능합니다. 집에 있는 무선공유기를 통해서도 아주 손쉽게 기기들간 연동이 가능합니다. 따라서 기존의 전송 라인을 포설하는 작업이 필요 없어집니다. 기기에 배터리가 있다면, 완전 무선화도 가능합니다. 하지만, 실무적으로는 전기를 필요로 하는 센서가 많아서, 콘센트 근처에 센서를 설치합니다. 대신 랜선이 사라지니 그것만 해도 많은 수고를 덜 수 있습니다.

1.5. 손쉬운 확장

무선통신이고, 프로토콜이 통일되어 있으니, 더 많은 센서를 시스템에 붙이는 것이 쉬워졌습니다. 처음에 10개 정도의 센서로 시범적용해 보고, 시스템이 안정화되면, 100개, 200개 더 붙이는 것이 이전보다 훨씬 쉽습니다. 물론 센서 구입비용은 별도이겠지만, 센서를 더 사 온다고 해서 시스템에 변경을 줄 일은 없습니다. 무선통신 기반이니 랜선을 포설하는 일도 줄어들었지요.

IoT 이전에도 이미 공장 생산 라인에서는 센서가 있었고, 위험을 알리는 경고 알람을 하고 있었지만, 그건 소규모 시스템을 그 공장에 맞게 특화해서 설비를 한 것이고, 제가 하는 것처럼 중앙에서 일반적인 데이터처리로 데이터를 수집하거나 분석할 수 없었습니다. 그렇게 하려면, 시스템 사이 사이에 비싼 장비를 추가구매 해야 했습니다. IoT는 인터넷 프로토콜을 기반으로 하기 때문에, 센서에서 이미 일반적인 데이터 형태로 가공해서 보내주기 때문에 받는 입장에서는 이전부터 하던 시스템에 덧붙이기가 쉽습니다. 또한, 하나의 공장에 특화된 것이 아니라 전국, 혹은 전 세계 공장에서 데이터를 보내오더라도 같은 방식으로 처리할 수 있어서 데이터 가공과 처리를 하나의 일관된 처리 방식으로 수집, 저장, 분석할 수 있습니다.

2. Big Data, 빅데이터

빅데이터라는 말 자체는 기술용어라기보다는 마케팅 용어에 가깝습니다. 제가 소개하는 빅데이터 기술자 관점에서 바라보는 빅데이터 소개와 정의를 내리는 정도가 될 것 같습니다. 물론 저는 빅데이터 전문가는 아니고, 저와 협업하던 분야이기에 제가 아는 선에서 최대한 쉽게 설명하려고 합니다.

2.1. 데이터 량

도대체 얼마나 커야 빅데이터인가? 학자마다, 전문가마다 의견이 다르겠지만, 경험적으로는, 기존 데이터베이스 시스템으로는 며칠 혹은 몇 시간 이내에 용량 증설이 필요한 정도로 빠르게, 어마어마하게 증가하는 데이터입니다. 이런 데이터는 기존의 기술로는 저장 자체가 불가능하기 때문에 아예 새로운 시스템이나 프로그램이 필요합니다.

2.2. 속도

빅데이터는 대부분 실시간성으로 밀려들어오기 때문에, 저장 프로세스가 미처 실행되기도 전에 다음 데이터가 쏟아져 들어와서 저장이 불가능한 실시간 데이터가 쏟아져 들어오는 상태를 말합니다. 저장이 안되니 당연히 조회도 불가능 정도로 많은 분량의 데이터가 밀려들어 옵니다.

Hadoop

2.3. 비정형

데이터량도 많고, 속도도 빠르게 (실시간) 밀려들어 오는 데이터가 일정한 규칙 없이 무분별하게 들어옵니다. 분류 불가능한 데이터가 그냥 마구마구 실시간으로 밀려들어오는데, 그걸 처리하고 저장하고 분석할 시간적 여유가 없습니다. 구글의 검색어나 페이스북, 트위터의 온갖 잡담 같은 것이 대표적인 빅데이터입니다. 전국 핸드폰 기지국에 들어오는 각종 신호도 양이 엄청나서 기존의 기술로는 저장할 수는 있을지라도 그 데이터를 가지고 활용하기 힘들었습니다.

빅데이터는 사실 엄밀히 기술적으로 정의하자면, 데이터라기보다는 로그에 가깝같습니다. 로그는 (수학의 Log 아님), 시스템이 돌아갈 때 우리가 볼 수 없는 시스템 이면의 상황을 기록하는 기록계 같은 겁니다. 블랙박스와 비슷하지요. 아마도 영화나 드라마에서, 시스템을 공격하는 해커의 컴퓨터 화면에 뭔가 알 수 없는 영어로 된 게 주룩주룩 올라가는 걸 보신 적 있으실 겁니다. 그런 게 대부분 로그입니다.

페이스북이나 트위터에 남기는 글도 일핏 데이터처럼 보이지만, 실상은 우리의 일상을 남기는 “기록” 즉 “로그”에 가깝습니다. 단어나 문장의 길이가 제각각이고, 숫자, 문자, 그림이 마구 섞여 있고, 실시간으로 사람들이 기록을 남깁니다. 그래서 대부분의 SNS에서 빅데이터 기술을 다루고 있습니다.

이런 로그 기록은 그저 많이 모으기만 한다고 해서, 가치 있는 데이터가 되진 않습니다. 시스템의 기록 혹은 삶의 기록일 수는 있지만, 이렇게 무질서하게 저장된 데이터는 나중에 찾아보기(검색)도 어렵고, 검색에 걸리는 시간도 오래 걸리며, 기록에서 뭔가 특별한 가치를 찾기도 어렵습니다. 그래서 빅데이터는 저장하는 기술 못지않게, 분석의 과정이 매우 중요합니다.

최근에서야 이러한 방대한 데이터를 실시간으로 처리하면서 동시에 유용한 데이터를 뽑아서 정리하는 기술이 개발되었습니다. 이를테면, “고열, 기침” 같은 검색어가 갑자기 많이 검색되는 지역이 있으면, 곧 그 지역에 “코로나 바이러스”가 유행할 것이라는 예측하는 것 같은 기술 말이지요.

얼마전 우리 나라에서도 데이터 댐을 만들겠다는 발표가 있었습니다. 댐을 만드는 것도 중요하지만, 그 댐을 어떻게 활용할 것인가에 대한 고민도 필요하고, 댐에 있는 물의 수질관리(데이터 정제)도 중요할 것입니다.

3. AI, 인공지능

인공지능(Artificial Intelligence)이라고 하면 흔히, 사람을 능가하는 어떤 능력을 가진 컴퓨터로 생각하기 쉽지만, 그보다는 문제를 해결하는 알고리즘에 가깝습니다. 그래서 모든 일에 만든 해결사가 아니라, 특별한 일에 특화된 작업을 합니다. 바둑으로 유명한 알파고 역시도 바둑은 잘 두지만, 체스는 서투릅니다. 물론 알파고에 썼던 알고리즘이나 기반 기술을 다른 인공지능 알고리즘에 적용할 수는 있습니다.

인공지능이라는 말은 단어 그대로 인간의 지능이 시작되는 곳. 즉, 뇌의 신경흐름을 본 따 그와 유사하게 동작하는 알고리즘을 말합니다. 여기서 중요한 것은 바로 “알고리즘”이라는 것이지요. 즉, “인공지능 알고리즘”이라고 말하는 것이 정확한 단어 선택인 것 같습니다.

인공지능은 알고리즘 입니다.

인공지능은 “장치”와 같은 물리적인 것을 말하는 것이 아닙니다.

인공지능에 대한 개념은 꽤 오래전부터 있었습니다. 적어도 수십 년은 되었지요. 어쩌면, 처음 컴퓨터의 시작과 함께 한다고 해도 과언이 아닙니다. 그런데, 최근 들어 인공지능에 대한 이야기가 많이 회자되는 이유는 인공지능의 비약적인 발전에 기안한다고 봅니다. 인공지능의 비약적에 크게 기여한 것은 세 가지 정도로 요약할 수 있습니다.

3.1. 알고리즘의 발전

과거에는 “퍼지이론”이 대표적인 인공지능 알고리즘이라고 했다면, 현재는 신경망 알고리즘이 단연 인공지능의 대표주자라고 할 수 있을 것 같습니다. 신경망 알고리즘은 인간의 뇌에서 벌어지는 현상을 모델링해서 만든 알고리즘입니다. 말 그대로 뇌를 모델링했으니 정말 인공지능에 가깝다고 할 수 있을 것 같습니다.

ai-neuron

3.2. 컴퓨팅 성능의 비약적인 발전

새로운 알고리즘이 나왔다고 하더라도, 그것을 사람 손으로 풀진 않겠지요. 당연히 컴퓨팅 기술의 뒷받침이 있어야 합니다. 현재 우리가 들고 다니는 노트북(PC)은 불과 십여전 전만 하더라도, 지금 우리가 큰 컴퓨터라고 생각하는 “서버”와 맞먹는 정도의 성능입니다. 그렇다면, 그런 PC가 사무실 하나를 가득 채울 만큼 있다면, 그 성능은 얼마 정도 일지 짐작하시겠지요? 과거 인공지능이 구동되는 컴퓨터는 작은 프로그램 혹은 작은 컴퓨터(서버)에서 구동되었다면, 현재 인공지능은 그보다 몇 백배 뛰어난 컴퓨터를 몇 백대 연결한 시스템에서 구동됩니다. 따라서 컴퓨팅 성능 면에서 과거와는 월등히 차이가 납니다.

3.3. 알고리즘과 컴퓨팅의 타협

아무리 컴퓨팅 성능이 뛰어나도 시간이 너~~ 무도 오래 걸려 사실상 컴퓨터가 풀지 못하는 것도 있습니다. 이를테면 현재 AES 암호(128비트 암호) 해독은 현재 컴퓨팅 성능으로는 몇십 년, 혹은 몇 백 년이 걸리기 때문에 “사실상 풀 수 없는 암호”로 불립니다. 적어도 양자컴퓨터가 나오기 전까지는 말이지요. 새로운 신경망 알고리즘도 100% 완벽한 답을 기대하진 않습니다. 90% 정확한 답이다. 95% 정확한 답이다로 만족하는 것이지요. 정말로 100%의 답을 기대한다면, 현재의 컴퓨팅 성능으로도 해결하지 못했을 수도 있습니다. 정확성을 다소 포기하고, 성능과 타협한 것이지요.

handshake-computer

인공지능이라는 단어는 왠지 거부감부터 듭니다. 인간이 인간일 수 있는 가장 기본이라고 생각하는 “지능”을 기계나 로봇에게 빼앗긴다는 느낌 때문일까요? 한동안 인공지능은 영화에서나 가능하고, 현실세계에서는 그저 우스꽝스러운 수준의 로봇에 비유되기도 했습니다. 그런데, 알파고가 이세돌을 이기면서 분위기가 많이 바뀐 듯합니다.그런데, 체스와는 다르게 인공지능이 영원히 정복하지 못할 것 같았던 인간 게임의 성지(?)인 바둑을 ‘알파고’에게 내주었지요.

인공지능은 일반적으로 제가 쓰고 있는 프로그래밍 기술에서 가장 동 떨이진 기술입니다. 기술이라기 보다는오히려 수학에 가깝습니다. 제가 하는 일은 주로 이미 구현된 인공지능 알고리즘을 가져다 쓰는 일입니다. 내부 구조는 저도 잘 모릅니다. 그런 건 저와 같은 프로그래머의 영역이 아니지요.

그래서, 알고리즘 자체를 만들거나 고도화하는 것은 기술보다는 수학의 영역에 더 가깝고, 그래서 기초학문이 중요한 이유이기도 합니다.창조하는 것과 조립하는 것은 다른 문제이니까요.

4. Cloud, 클라우드

클라우드라는 말은 기술 용어라기 보다는 마케팅 용어에 가깝습니다. 어려운 기술적 단어를 뒤로 감추고, 사용자가 쉽게 다가갈 수 있게 하는 단어이지요. 그래서 기술적으로 클라우드라는 말을 이해하기 위해서는 조금 다른 방법으로 접근해야 합니다. 클라우드 기술 혹은 클라우드 서비스를 이해하기 위해서는 먼저 서버라는 용어를 알아야 할 것 같습니다.

4.1. 서버란?

서버는 논리적으로 서비스를 하는 1개의 단위라고 말할 수 있습니다. 물론 1개의 서비스 단위가 물리적인 서버인 경우가 많습니만, 서버를 구분하는 것은 물리적인 구분이 아니라 논리적인 구분을 기준으로 하는 게 맞다고 생각합니다.

저도 처음에는 서버라는 게 물리적으로 큰~컴퓨터를 말하는 줄 알았습니다. 그리고 현재도 그렇게 혼용해서 쓰고 있습니다. 그래서 서버실이라는 말이 존재하지요. 따라서 서버 = 큰~ 컴퓨터라고 일반적으로 생각합니다.

하지만, 엄밀히 말해서, 논리적 서버는 굳이 큰~컴퓨터가 아니어도 상관없고, 물리적으로 1개의 컴퓨터가 반드시 1개의 서버일 필요도 없습니다. 집에 있는 PC도 서버가 될 수 있고, 심지어, 한 대의 PC가 여러 개의 서버 역할을 할 수도 있습니다. (물론 성능이 좋지는 않을 겁니다) 어떻게 보면, 1개의 논리적 서버는 1개의 프로그램이라고 봐도 무방합니다.

* 용어의 혼선을 피하기 위해, 이다음부터 사용하는 용어를 구분하겠습니다. 
물리 서버 = 서버용 대형 컴퓨터
논리 서버 = 웹서비스(구글 드라이브, 메일,...)

4.2. 사용자 관점의 클라우드

사용자는 그 서버가 어디에 있는지 알 필요 없이 그냥 사용하기만 하면 된다. 즉, 어딘서든 보이는 구름 같은 어떤 저장소에 내 데이터를 올려두고 쓴다는 개념이지요. 대표적으로 안드로이드 폰에서 찍은 사진이 구글 서버에 저장되고, 아이폰에서 찍은 사진이 애플 서버 어딘가에 저장되는 그런 겁니다.

4.3. 관리자 관점의 클라우드

관리자 관점에서는 물리 서버와 논리 서버를 조화롭게 운영하는 기술입니다. 현대에 와서는 여러 대의 물리 서버가 하나의 논리적인 서버처럼 동작하기도 하고(Scalable), 한 개의 물리 서버가 여러 개의 논리 서버로 동작하기도 합니다.

여러 대의 물리 서버가 한 개의 서비스를 제공하는 대표적인 예는 SNS입니다. 모든 사람이 같은 페이스북이나 트위터를 사용하지만, 실제 물리적인 서버는 전 세계에 흩어져 있지요. 반대로 한 개의 물리 서버를 여러 개의 논리 서버로 사용하는 경우는 회사나 대학에서 서버 컴퓨터(대형 컴퓨터) 1대를 공유해서 사용하는 경우를 들 수 있습니다.

docker

서버는 설치 및 관리가 상당히 번거롭습니다. 물리 서버 논리 서버 둘 다 말이지요.

일단 물리 서버는 덩치가 큽니다. 공간이 필요하지요. 게다가 뜨거워지면 안 되고, 습도가 높아서도 안됩니다. 그래서 보통 서버실에는 항온항습 장치가 들어갑니다. 에어컨이 필수이지요. 전기요금도 많이 나옵니다.

논리 서버는 서버만 설치하는 것이 아니라 물리 서버에 OS를 설치하고, 관리 프로그램이 설치된 후에 설치됩니다. 그냥 물리 컴퓨터만 덜렁 가져다 놓으면, 고철 덩어리이지요. 근데 서버 컴퓨터에 설치하는 OS는 보통 Linux (또는 Unix)입니다. 일반인이 다루기 어렵습니다. 게다가 논리 서버 설치는 더블클릭으로 되는 게 아닙니다. 프로그램 설치 전문가가 필요합니다.

아마존이나 구글 같은 거대 기업은 대규모 트래픽을 감당해야 합니다. 그래서 데이터센터라고 불리는 곳에 엄청나게 많은 물리 서버를 가지고 있습니다. 하지만 이렇게 많은 물리 서버가 늘 풀가동하는 것은 아닙니다. 트래픽이 가장 많을 때를 대비해서 비축한 물리 서버는 한가한 때는 놀고(?) 있습니다. 이렇게 여유 있는 서버를 빌려주자는 아이디어가 클라우드의 시작이라고 볼 수 있습니다. 사용자 입장에서는 마침 관리가 번거로운 서버 작업을 대행해줄 관리자가 필요했습니다. 이 둘 간의 좋은 딜이 성사된 것이지요.

모든 길은 로마로 통한다. 모든 데이터는 클라우드로 통한다.

IoT에서 올라오는 데이터는 인터넷 프로토콜을 이용해 클라우드에 저장됩니다. 그러면 클라우드는 빅데이터 솔루션으로 데이터를 저장하고, 클라우드에 저장된 AI를 이용하여 데이터를 분석합니다. 앞서 설명한 3개의 핵심기술을 이어주는 매개체이자 저장소이기도 합니다. 그래서 클라우드는 4차 산업혁명의 가장 중심에 있다고 말할 수 있습니다.

5. 맺음말

다소 거창하게 4차 산업혁명에 필요한 4가지 핵심 기술에 대해서 알아봤습니다.

네 가지 기술 모두 어느순간 갑자기 나타난 기술은 아닙니다. 거창하게 4차 산업혁명이라는 이름표를 붙이고 나왔지만, 이전부터 있던 기술을 조금씩 발전시키고, 다른 기술과 결합한 형태입니다.

앞으로도 이러한 기술은 서로 간의 경계를 넘어서 결합과 분리를 지속하면서, 새로운 가치를 창출할 것입니다. 변화의 속도는 이전보다 훨씬 빠르고, 파급효과도 훨씬 큽니다. 또한, 한 번 트랜드를 놓치면 다시는 따라잡기 힘든 방향으로 진행하곤 합니다.

개인의 입장에서는 이러한 트랜드에 촉각을 곤두세우는 일도 중요하지만, 기반 기술에 대한 지식을 다지는 일 또한 중요하다고 생각합니다. 기반 기술에 대한 지식이 탄탄하면 할수록 변화하는 기술에 대해서도 더욱 민감하게 반응할 수 있으니까 말이지요.