요즘 제일 ‘핫’하다는 이벤트-드리븐… 누구냐, 넌!
이벤트-드리븐(event-driven). 요즘 IT 담론 공간에서 가장 뜨거운 화두 중 하나다. 지난해 말 세계적 정보기술(IT) 연구∙자문 회사 가트너가 ‘2018 10대 중요 IT 기술’에 포함시킨 이래 이벤트-드리븐에 대한 관심은 수면 위로 껑충 떠올랐다. 실제로 온라인 공간에선 하루가 다르게 이벤트-드리븐을 설명하는 자료가 쏟아지고 있다.
중요하다곤 하는데… 의미는 ‘알쏭달쏭’
이벤트-드리븐은 워낙 새롭게 부상하는 개념인 만큼 정확한 의미도 아직 채 규정되지 않았다. 같은 단어를 전혀 다르게 설명하고 있는 웹사이트가 많단 사실이 이를 방증한다. 이 같은 현상은 소프트웨어 개발자로 활동 중인 마틴 파울러(Martin Fowler)의 경험담에서도 고스란히 드러난다. (미국 IT컨설팅 기업 소트워크스(ThoughtWorks)에 소속된 파울러는 IT 분야 이론가 겸 교육자로도 활동 중이다.)
“우리 회사는 최근 일이 년간 ‘이벤트를 많이 사용하는’ 시스템 구축에 힘써왔습니다. 때마침 작년 말 세계 각 지사의 중견 개발자들이 한데 모인 가운데 이벤트-드리븐 시스템을 주제로 워크숍이 열렸죠. 당시 우리가 거둔 최대 성과는 ‘너도 나도 말하는 이벤트가 실은 서로 상당히 다른 걸 의미한다’는 사실이었습니다.”
이벤트-드리븐을 우리말로 번역한 표현 중 가장 널리 쓰이는 건 ‘사건 기반’이다. 하지만 조금만 시간을 들여 검색해봐도 이 개념이 얼마나 다르게 이해되고 쓰이는지 확인할 수 있다. 그중 상당수는 영단어 ‘event’의 의미에 대한 혼란에서 기인한다. 케임브리지∙콜린스 같은 영어사전을 찾아보면 ‘(뭔가) 일어나는 일’이란 기본 설명에 ‘특히 중요하거나 의미가 있는 일’이란 부연 설명이 달려있다. 반면, 온라인 비즈니스 용어 사전엔 “특정 시∙공간에서 인간의 개입이 있거나 없이 벌어지는 일”이라고 정의돼 있다. 각각의 설명을 취합하면 이벤트란 ‘세상에서 벌어지는 일 전부’를 가리킨다 해도 과언이 아니다.
하지만 한국 사회에서 이벤트는 그 의미가 좀 다르다. ‘뭔가 정말 특별한 일’만 지칭하는 경우가 많기 때문이다. ‘사건’이란 번역어가 주는 의미도 결코 일상적이지 않다. 더욱이 젊은 층은 이벤트를 ‘이성에게 사랑 메시지를 전하기 위해 기획하는 깜짝 파티’, 혹은 ‘특정 업체가 자사 상품을 홍보하기 위해 한시적으로 제공하는 행사’ 따위로 이해하곤 한다. 이처럼 번역 과정에서 또 한 차례 의미가 왜곡되다 보니 혼란은 더욱 가중된다.
2018년을 시작부터 뜨겁게 달구고 있는 ‘IT 핫 토픽’ 이벤트-드리븐. 정확히 어떤 개념이며 왜 이렇게 심상찮은 관심을 모으는 걸까?
확실히 새로운, 어찌 보면 낯익기도 한
이벤트-드리븐은 ‘일어나는 일’이란 뜻의 영단어(event)에 ‘특정 방향으로 몰고 가다’란 동사(drive)의 과거완료형이 합쳐져 ‘어떤 일의 발생에 의해 특정 방향으로 가도록 된’이란 의미를 갖는 형용사다. 즉 특정 행동이 자동으로, 혹은 정해진 순서에 따라 발생하는 게 아니라 어떤 일에 대한 반응으로 일어나는 구조를 가리킨다.
이벤트-드리븐이란 용어가 언제부터 사용됐는지 정확히 검증하긴 어렵지만 가장 활발하게 쓰인 분야가 ‘컴퓨터 소프트웨어 프로그래밍’인 건 분명한 사실이다. 컴퓨터 용어로서의 이벤트는 ‘컴퓨터 회로를 구동시키기 위해 발생하는 일’을 일컫는다. 예를 들어 누군가가 PC 모니터를 보며 마우스를 클릭하거나 키보드 자판을 두드리고, 모바일 기기를 손으로 ‘터치’한다면 그는 이벤트-드리븐 구조를 활용, 이벤트를 발생시키고 있는 것이다. 이런 동작은 기기 내부가 특정 코드를 선택, 그에 맞는 반응 행동을 보이도록 이끈다.
이벤트-드리븐 프로그래밍에서 사용자는 과거, 이를테면 순차(順次) 프로그래밍으로 작업할 때보다 훨씬 더 비중 있는 역할을 맡는다. 비록 처음부터 정해진 프로그램 안에서이긴 하지만 사용자가 마우스를 클릭하거나 키보드로 뭔가를 입력함으로써, 다시 말해 컴퓨터 입장에서 보면 이벤트를 발생시켜 자신의 선택을 표현하는 기회가 많아지는 것이다. 그리고 이벤트-드리븐 프로그래밍의 비중은, 앞서 언급한 마틴 파울러의 말에서 짐작하듯 최근 부쩍 더 커지고 있다.
여기서 생기는 의문 하나. 몇몇 전문가에 의해 제한적으로 쓰이던 이 개념이 왜 갑자기 돌풍을 일으키고 있는 걸까? 이벤트-드리븐은 원래 컴퓨터 프로그래밍에 국한되지 않고 시스템 이론 전반에서 사용되던 개념이다. 문제는 최근 사회 전반에 걸쳐 시스템 패러다임에 엄청난 변화가 일고 있단 사실이다. 그리고 이 변화는 이제껏 스페셜 리포트에서도 몇 차례 다뤘듯 IT기술 발달과 밀접하게 관련돼 있다<이와 관련해선 2016년 11월 23일부터 2017년 1월 4일까지 연재된 5부작 기획 ‘디지털, 세상을 뒤집다’를 참조할 것>. 특히 인공지능(AI)과 빅데이터, 사물인터넷(IoT) 관련 기술이 일상에서 빠르게 실용화되며 이벤트-드리븐 아키텍처(Event-Driven Architecture, 이하 ‘EDA’)가 종전 패러다임을 제치고 압도적 기세로 점유율을 늘려가고 있다. 무슨 얘기냐고?
구조도 법칙도 안 통하는 세상… 대안은?
시스템 이론에서 EDA는 복잡성 이론(complexity theory)에 그 뿌리를 두고 있다. 20세기 전반까지의 근대 과학에선 삼라만상을 비교적 단순한 모델로 환원시켜 그 안에서 법칙성을 찾아냈다. 하지만 20세기 후반 들어 과학기술이 발달하며 실제 세상에서 벌어지는 일들은 하나같이 너무 복잡하고 끊임없이 바뀌었다. 자연히 단순화 모델에 기반한 설명은 점차 쓸모를 잃어갔다.
IT(와 관련 사회 변화를 다룬) 온라인 교육 웹사이트 ‘컴플렉시티랩스(Complexity Labs)’는 △바닷속을 헤엄치는 물고기 떼의 움직임 △교통 체계 △소셜 네트워크 △금융 시장 등을 ‘복잡한 동시에 계속 바뀌는’ 시스템의 예로 꼽는다. 이처럼 역동성이 강한 시스템에서 최적의 설명과 예측, 대응이 이뤄지려면 모델을 새로 만들거나 디자인 방법 자체를 바꿔야 한다. 즉 복잡성 이론에 기반한 모델을 개발해야 한다.
EDA는 현존하는 최고 수준의 복잡성과 역동성에 가장 효율적으로 대응할 수 있는 모델로 평가된다. 시시각각 발생하는 이벤트의 생성과 감지, 반응을 중심으로 구축되는 디자인 유형이기 때문이다. 실제로 EDA에선 고정된 구조가 없다. 심지어 구조 자체가 없을 때도 있다. 이벤트 발생으로 데이터와 데이터가 느슨하게 연결되며(coupling) 없던 구조가 생겨나기도 한다.
일례로 해외여행을 계획 중인 사람이 숙박 장소를 검색한다고 해보자. 첫째 날엔 검색하는 데이터가 한국 서버를 통해 연결됐는데 둘째 날 다시 검색해보니 데이터 부하량 변화로 같은 정보가 미국 텍사스 기반 데이터센터를 통해 제공될 수 있다. 끊임없이 변화하며 상호작용하는 데이터 간 흐름에서 사용자가 일으킨 ‘이벤트’, 즉 키보드와 마우스 조작이 그때그때 상황에 따라 그에 반응하는 코드(와 그 코드가 대변하는 데이터)와 끊임없이 새로운 관계를 맺는 것이다.
관건은 ‘이벤트 반응 데이터 간 짝짓기’
종전 시스템에서와 달리 이런 관계 설정과 그에 따른 변화는 실시간으로 일어난다. 앞서 예로 든 상황(해외여행 시 이용할 숙박 장소 정하기)을 다시 떠올리면 동원할 수 있는 수단이 전화나 이메일 정도였던 10년 전만 해도 최적의 숙소를 정하는 데 짧게는 며칠, 길게는 몇 주씩 걸렸다. 하지만 오늘날은 키보드를 두드리고 마우스를 클릭하는 이벤트를 일으켜 그에 반응하는 데이터 경로를 따라 곧바로 적당한 장소를 확인한 후 예약을 완료할 수 있다. 변심에 따른 취소 절차를 밟을 때에도 예전보다 훨씬 부담이 적다. 여러 데이터 센터가 무수한 웹사이트를 통해 방대한 정보 중 사용자에게 적합한 걸 짝지어주니 사용자도 제공자도 얼마든지 다른 업체나 고객을 찾아낼 수 있다.
이처럼 이벤트 발생에 따르는 정보 연결(커플링) 수요는 IoT 시대에 접어들고 AI와 빅데이터가 결합되며 폭발적으로 증가했다. 지난해 12월 20일자 스페셜 리포트(“60년 전 구겐하임미술관이 지향했듯… 도시, ‘살아있는 유기체’로 거듭나다”)에서 예로 든 스마트시티를 생각해보자. 집을 나서면 등 뒤로 스마트록(smart lock)이 작동되고, 도로로 나서면 앞쪽 가로등이 저절로 켜지며, 횡단보도에 서면 신호등이 알아서 파란불로 바뀐다. 동네 분리수거함 속 폐기물은 다 채워지면 곧바로 근처를 지나는 수거용 트럭에 의해 치워진다. 잔디밭에 설치된 스마트 스프링클러는 기상 상태에 따라 자동으로 적정량의 물을 뿌려준다.
이 상황에서 스마트록∙가로등∙신호등엔 센서가 있어 사용자가 이들 기기 가까이에 일정 거리 내로 접근하면 그 자체가 곧 이벤트로 정의될 수 있다. 다시 말해 스마트 장치 내에선 그에 반응하는 코드를 구동시켜 자물쇠가 잠기게, 가로등이 켜지게, 신호등 색이 바뀌게 한다. 폐기물 수거함은 “내용물이 일정 높이까지 찼다”는 센서 신호를 이벤트로 해 작동된다. 스프링클러 역시 토양∙공기 중 수분 농도를 측정하는 센서를 탑재하고 있어 해당 농도가 일정 이상 도달해 센서 내 반응을 일으키면(이벤트가 발생하면) 그에 대응하며 작동된다.
이 과정은 두 가지 수준에서 ‘이벤트-드리븐적(的) 작업’을 필요로 한다. 스마트록을 예로 들어보자. 우선 ‘사람의 움직임’이란 이벤트에 센서가 반응하는 관계가 있다. 다음으로 ‘센서 신호’란 이벤트 발생에 따라 자물쇠(하드웨어)가 움직여 문이 열리는 관계도 존재한다. 이런 관계의 총합이 바로 EDA다. 그런데 이 구조는 앞선 과정 전체를 코드(cord)화해 만든 알고리즘 탑재 스마트 기기가 있어야 비로소 구현 가능하다. 이렇게 볼 때 이벤트-드리븐 프로그래밍은 바로 이 알고리즘을 만드는 작업이라고 할 수 있다.
복잡한 세상, 계획적으로 살기 위한 기술
근대 이전 사회에선 어느 누구도 세상만사가 왜 일어나고 어떤 원리로 작동되는지 굳이 이해하려 들지 않았다. 당시 인류 대다수의 대응 수단은 오로지 경험, 그리고 (경험의 축적물인) 구비전승이었다. 시간이 흘러 근대 사회로 접어들며 사람들은 ‘나(self)’를 중심으로 세상을 이해하고자 했다. 동시에 너무 복잡한 현상에 대해선 “일단 단순화한 후 이해하면 통제할 수 있을 것”이라고 생각했다. 그리고 근대를 넘어 ‘포스트모던(post-modern) 시대’로 진입한 오늘날, 인류는 과학기술의 도움으로 세상을 보다 깊고 넓게 이해하기에 이르렀다. 그 결과, 세상은 특정 개인(집단)이 중앙집중 방식으로 통제할 수 있는 게 아니란 사실도 확인했다.
끊임없이 변해가는 현대 사회에서 인간이 진정으로 갖춰야 할 덕목은 ‘계획적 대응’이다. 이런 상황에서 등장한 복잡성 이론, 그중에서도 보다 많고 유동적인 행위자 사이에서 자유로운 네트워크를 형성해가며 작동 과정을 설명할 수 있는 이벤트-드리븐 모델이 주목 받게 된 건 어찌 보면 지극히 당연한 일이다.
더욱이 IoT의 보급으로 이미 시중엔 상당히 다양한 센서가 보급돼 있다. 그 센서들이 전달하는 이벤트 정보는 빅데이터에 의해 분석, 수시로 작동장치(actuator)에 전달된다. 이 모든 (이벤트-드리븐적) 작업은 이벤트-드리븐 프로그래밍으로 처리해야 한다. 누가 봐도 이벤트-드리븐 시스템 수요는 폭발적으로 증가할 수밖에 없다. 가트너가 이 개념을 올해 주목해야 할 기술 트렌드로 꼽은 것 역시 그런 차원에서였을 것이다.
삼성전자 뉴스룸의 직접 제작한 기사와 이미지는 누구나 자유롭게 사용하실 수 있습니다.
그러나 삼성전자 뉴스룸이 제공받은 일부 기사와 이미지는 사용에 제한이 있습니다.
<삼성전자 뉴스룸 콘텐츠 이용에 대한 안내 바로가기>