주메뉴바로가기.. 본문바로가기

사람만 선거하나? 컴퓨터도 선거한다

카카오스토리 네이버밴드 구글플러스

2016년 04월 18일 07:00 프린트하기

13일에 있었던 총선 여파가 가라앉지를 않고 있습니다. 16년만의 여소야대 정국 탄생, 제 3당의 약진, ‘작대기를 꽂아놔도 된다’는 여당 텃밭에서의 야당 강세 등 참으로 이야기할 거리가 많네요. 이 총선 결과에 맞춰 여야 각 진영이 세불리기 또는 굳히기, 정계개편을 시도할테니 앞으로 더 시끄러워질 수도 있습니다. 총선이 끝나도 끝난게 아닌 것 같네요.  

 

총선은 끝나도 끝난게 아니다?! - 클립아트코리아 제공
총선은 끝나도 끝난게 아니다?! - 클립아트코리아 제공

여당 지지자와 야당 지지자 모두에게 충격적인 이번 선거 결과를 이끌어낸 일등 공신은 늘어난 20~30대의 투표율이라는 분석이 나오고 있습니다. 특히 20대의 경우 지난 총선 대비 투표율이 무려 13%p 넘게 올랐다고 합니다.(☞참고: http://news.naver.com/main/read.nhn?mode=LSD&mid=sec&sid1=100&oid=028&aid=0002314609)

 

아무래도 최근 들어 경기가 부쩍 안좋아진데다 노동법 개정 등 여러 민감한 정치적 이슈가 한꺼번에 불거지다보니 정치에 대한 유권자들의 관심이 세대를 막론하고 전반적으로 높아지지 않았나 생각합니다. 정치란 결국 우리 삶의 구체적인 형태를 결정하는 중요한 일이니만큼 선거에 관심 갖는 사람들이 많아진 건 좋은 일이겠지요. 설령 그것이 어떤 정치적 의식에 기반한 것이 아니라 그저 호기심일지라도요.
 
그런데 이런 선거에 대한 관심이나 호기심의 영역을 살짝 넓혀봐도 좋을 것 같습니다. 선거란 것이 꼭 사람들 사이에서만 이뤄지는 것은 아니거든요. 이를테면 컴퓨터들이 선거를 치르는 경우도 있습니다. 사람 선거 치르는 것도 골치가 아픈데 이런 걸 꼭 알아야 하냐구요? 당연히 아닙니다. 그래도 재밌잖아요? 사람 아닌 것들의 선거라니. 그리고 이런 걸 잘 뜯어보면 뭔가 생각할 거리가 생길 수도 있으니까요.

 

컴퓨터 과학에는 분산 컴퓨팅(Distributed computing)이라는 개념이 있습니다. 네트워크에 연결된 여러 컴퓨터들의 자원을 공유해 거대한 계산 문제를 해결하려는 모델을 말하죠.

 

대학 수업에서 조별 발표 과제가 있을 경우 보통 조장을 먼저 정한 후 조장이 “너랑 너는 각각 1, 2 단원을 정리해 와. 나는 3단원을 정리해 오겠어, 그런 다음 셋이 같이 정리해서 발표 자료를 만들자”라고 하는 경우가 있는데 개념 자체는 이것과 비슷합니다.

 

한 대의 컴퓨터로 처리하기 어려운 일을 마치 조원들처럼 네트워크로 연결된 몇 대의 컴퓨터가 나눠서 처리하고 각각의 컴퓨터에서 처리된 결과를 종합해 원래의 문제에 대한 해답을 제시하는 것이 기본적인 분산 컴퓨팅의 과정입니다.

 

픽사베이  제공
픽사베이  제공

그런데 앞서의 예에서도 보았듯이 분산 컴퓨팅을 잘 작동시키기 위해서는 참여하는 컴퓨터들 중에 조장이나 대장이 필요합니다. 어떤 컴퓨터에게 어떤 일을 하도록 시켜야 하고 시키는 일들 사이에 중복이 발생하지 않도록 해야 합니다. 같은 부분을 두 명이 정리하면 낭비니까요.

 

각각의 컴퓨터에서 끝난 과업을 취합하는 일도 (꼭 본인이 하지 않고 누군가에게 시켜서라도) 진행해야 합니다. 중간에 “나 못하겠어”라고 뻗어버린 컴퓨터의 일은 또 다른 컴퓨터에게 맡겨야 합니다. 정말 중요한 역할이죠. 분산 컴퓨팅에 참여하는 컴퓨터들(노드라고 합니다.) 가운데 이런 역할을 하는 컴퓨터를 리더(leader) 또는 조정자(coordinator)라고 부릅니다.

 

이 리더가 과업 시작 처음부터 끝까지 일을 잘 해 주면 좋은데 안타깝게도 현실은 그렇지 못합니다. 조별 과제를 진행할 때 아예 조장이 연락두절되어 버리는 경우도 있지요. 말도 없기 갑자기 입대를 한다거나, 누군가 갑자기 돌아가셨다거나, 몸, 특히 배가 마구 아팠다거나 하는 주로 확인이 불가한 이유를 대면서 말이죠. (대학생이란 사람들은 유난히 다른 사람들보다 배가 많이 아픈 족속들인 것 같아요.)

 

컴퓨터도 마찬가지입니다. 컴퓨터 자체가 고장나서 역할을 수행하지 못하게 될 수도 있고 컴퓨터를 연결하는 네트워크가 끊겨서 컴퓨터가 아예 다른 컴퓨터들에게 보이지 않을 수도 있습니다.

 

이럴 때 어떻게 하냐구요? 조장 빠졌다고 발표를 아예 안하는 건 F의 지름길이니 별 수 없습니다. 남은 컴퓨터들 사이에서 리더 업무를 수행하기에 가장 적합한 컴퓨터를 선거를 통해 뽑아야 합니다. 새 조장을 정하는 것처럼요. 새 리더는 기존 리더의 일을 그대로 받아 수행해야 합니다. 이것이 바로 분산 컴퓨팅에서 말하는 리더 선출(leader election)입니다. 시스템 전체의 신뢰성과 직결되는 매우 중요한 부분이지요.

 

분산 컴퓨팅의 리더 선출 방법(알고리즘)에는 여러 가지가 있습니다. 대표적인 것 중의 하나가 불리(bully) 알고리즘인데요, 이는 리더의 고장을 발견한 컴퓨터가 자기는 물론이고 자기보다 우선순위가 높은 모든 컴퓨터들에게 리더를 뽑도록 하는 방법입니다.

 

좀 더 구체적으로 설명해 보겠습니다. 어떤 컴퓨터가 리더 컴퓨터에게 어떤 것을 요청했는데도 일정 시간이 지날 때까지 반응하지 않을 경우 이 컴퓨터는 리더에게 어떤 문제가 있다고 판단하고 자신보다 번호가 높은 컴퓨터들 모두에게 “리더를 뽑아야 함”이라는 메시지를 보내고 타이머를 작동시킵니다.

 

이 메시지를 받은 컴퓨터는 메시지를 보낸 컴퓨터에게 “ㅇㅇ 알았삼”이라고 회신을 해 주고 역시 자신보다 높은 번호의 컴퓨터들에게 모두 “리더를 뽑아야 함”이라는 메시지를 보내고 타이머를 작동시킵니다.

 

타이머에 설정된 시간 내에 회신을 하지 못하는 컴퓨터는 뭔가 문제가 있다는 걸 의미합니다. 결국 리더를 뽑자는 메시지를 보낸 컴퓨터가 정해진 시간 안에 하나라도 회신을 받은 경우 이 컴퓨터는 나보다 우선순위가 높은 컴퓨터가 있다는 걸 알게 되고 새로운 리더가 선출되기를 기다립니다.

 

반대로 회신을 하나도 받지 못한 컴퓨터는 자신이 우선순위가 가장 높다는 것을 알게 되고 다른 모든 컴퓨터들에게 “지금부터 내가 리더임. 앞으로 나를 따라주삼”이라는 메시지를 보내게 됩니다.

 

이 외에도 많은 리더 선출 알고리즘들이 있습니다만, 그 바닥에 깔린 아이디어는 모두 같다고 볼 수 있습니다. 바로 ‘정상적으로 작동하는 컴퓨터들 중에서 가장 우선순위(priority)가 높은 컴퓨터를 리더로 선출하고 나머지 컴퓨터들은 모두 선출된 리더를 따른다’는 것입니다. 그리고 각 컴퓨터들의 우선순위는 과업을 해결하는 과정에서 네트워크를 통해 전송되는 데이터의 양과 전체 과업 수행 시간을 최소화하는 방향으로 정해집니다.

 

리더 선거의 원칙이 분명하고, 원칙대로 진행된 선거의 결과에 모두가 깨끗하게 승복하는 시스템이죠. 우선순위는 네트워크에 연결된 개별 컴퓨터들의 연산 능력에 따라 정해지기 때문에 중간에 어떤 술수나 야료가 개입될 여지도 없습니다. 정말 기계적이면서 차가운, 논리적이기만 한 선거 방식이지만 왠지 이런 것이 오히려 민주적인 선거에 가깝지 않나 하는 생각도 듭니다. 아니, 컴주적(com主的)이란 말이 더 어울릴지도 모르겠네요.

 

이제 다시 우리 선거를 되돌아봅시다. 원래 정치란 것이 그렇다고는 합니다만 근 한달 사이에 이상한 편가르기와 남 보기에 부끄러운 싸움박질, 흑색선전이 여야를 막론하고 난무하지 않았나 싶습니다. 인간은 기계를 닮을 수도 없거니와 닮아서도 안 됩니다. 하지만 컴퓨터들의 행동을 통해 우리들이 지금까지 선거를 어떻게 치렀는지 한 번 돌아볼 필요는 있을 것 같네요.

 

 

※ 필자소개

넓붉발. 학교생활도 적당히, 군대생활도 적당히, 기자생활도 적당히 하다 하던 걸 대부분 그만두고 글을 쓰기로 한 사람. 음악, 미술, 기예, 기술 등 모든 영역에 적당히 관심이 있으나 뭐 하나 딱 부러지게 잘하는 건 없다. 그나마 IT와 미디어 분야에 대한 지식이 좀 있는 편. 그래도 부끄럽지 않은 글을 써보려 노력중이다. 

 

 


넓붉발

카카오스토리 네이버밴드 구글플러스

2016년 04월 18일 07:00 프린트하기

 

혼자보기 아까운 기사
친구들에게 공유해 보세요

네이버밴드 구글플러스

이 기사가 괜찮으셨나요? 메일로 더 많은 기사를 받아보세요!

18 + 4 = 새로고침
###
과학기술과 관련된 분야에서 소개할 만한 재미있는 이야기, 고발 소재 등이 있으면 주저하지 마시고, 알려주세요. 제보하기

관련 태그뉴스