기본 콘텐츠로 건너뛰기

영화 '이미테이션 게임'에서 느껴보는 빅데이터

  빅데이터에 대해서 말할 때 아직은 모두가 동의하는 정확한 정의는 없습니다. 단순히 이런 것을 빅데이터라고 하면 되지 않을까라고 추상적으로 생각하는 것이 대부분입니다. 빅데이터에 대해서 이해하기 쉽게 설명하기 위해서 빅데이터의 3가지 속성 3V, 여기에 한가지, 두가지를 더해 4V, 5V라고 정의 해보기도 합니다. 

  그러나 빅데이터에 대해서 좀 더 쉽게 접근하기 위해 저는 영화 ‘이미테이션 게임’을 예로 들고 싶습니다.

영화 ‘이미테이션 게임’

  영화 “이미테이션 게임”은 컴퓨터의 초기 개념을 제시한 튜링 머신을 고안해낸 수학자, 앨런 튜링에 대한 이야기입니다. 영화에서 튜링이 맡은 임무는 독일군의 암호를 해독하는 것입니다.  독일군 작전 명령은 전파를 통해 장비만 있으면 누구나 들을 수 있었습니다. 하지만 절대 해독이 불가능한 암호라고 칭해지던 ‘에니그마’로 암호화되어 있어서 연합군은 이를 해독할 수 없었습니다.  24시간 마다 1,590억의 10억 배 경우의 수가 생성되는 ‘에니그마’는 사실상 해독이 불가능하다고 여겨졌습니다. 만약 10명이 하나의 설정을 1분간 확인한다고 하면 매일 24시간씩 일주일 내내 모든 설정을 다 확인하려면 약 2천만 년이 걸리기 때문입니다..
‘에니그마’ (Enigma; 그리스어로 ‘수수께끼’를 뜻한다)
  엘런 튜링은 사람의 머리, 사람의 힘으로는 암호를 재시간에 풀 수 없다는 것을 직감합니다. 그래서 암호를 풀 수 있는 기계를 고안하고, 이를 이용해 암호를 풀려고 한 것입니다. 그러나 완성된 기계만으로 암호를 풀어내는데 실패합니다. 여기에 자주 쓰이는 평문의 목록인 크립을 이용하자는 아주 기가막힌 아이디어가 더해져 결국에는 암호를 풀어낼 수 있게 됩니다. 이로써 연합군은 독일군의 작전 명령을 가로챌 수 있었고, 전쟁에서도 승리할 수 있게 되었습니다. 앨런 튜링은 1,400 만 명의 연합군 목숨을 구한 천재 수학자라는 칭호도 얻게 됩니다.

  앨런 튜링과 독일군 암호, 암호를 해독할 수 있는 장치는 오늘날 우리가 빅데이터를 대하는 모습과 유사합니다. 앨런 튜링에게 주어진 임무는 24시간 안에 독일군의 암호를 해독하는 것이었습니다. 왜냐하면 24시간 내에 해독된 암호만이 연합군에게 의미가 있는 정보이기 때문입니다.

빅데이터는  암호다.

  빅데이터는 ‘에니그마’로 암호화된 해독이 불가능해보이는 암호와 같다고 할 수 있습니다.  일반적인 방법으로 2천이 걸리는 암호 해독을 24시간내에 해내야만 유용한 정보로 쓰일 수 있습니다. 그리고 암호 해독을 위해서 자주 쓰이는 문장을 먼저 찾자는 아이디어가 있었기 때문에 최종적으로 암호 해독에 성공할 수 있었습니다. 이를 빅데이터에 대응시켜보면 다음과 같습니다.

1. 일반적인 방법으로 분석하려면 너무 오랜 시간이 걸린다.
2. 제한된 시간내에 분석이 끝나야지 의미있는 비즈니스 정보를 얻을 수 있다.

  그리고 그 해결 방법도 비슷합니다. 사람이 일일이 푸는 방법으로 불가능하기 때문에 앨런 튜링은 기계를 이용하여 자동화하였습니다. 자동화를 통해 사람이 하는 것보다 더 정확하고 빠르게 암호를 풀 수 있는 발판을 마련하였습니다. 그리고 최종적으로 자주 쓰이는 문장을 이용해보자는 아이디어가 더해서 암호를 자유자재로 풀 수 있게 된 것입니다.

 빅데이터 분야에서는 빅데이터를 빠르게 분석할 수는 컴퓨터를 이용합니다. 여기에 데이터를 여러 컴퓨터로 나누어 보내어 동시에 분석함으로써 같은 시간안에 더 많은 데이터를 분석할 수 있게 되었습니다. 이로써 아무리 데이터가 늘어나더라도 필요한 시기에 분석을 끝마칠 수 있게 되었습니다. 무의미해보여 암호처럼 보이는 데이터에서 새로운 틈새 시장을 찾을 수도 있게 되었고, 전혀 상관없어 보이는 물건들 사이의 상관를 이용하여 매출을 올릴 방안을 찾을 수 있게 되었습니다.

  빅데이터는 유용한 정보들을 숨기고 있는 암호 덩어리입니다. 빅데이터에서 이 정보를 찾아내기 위해서는 누군가 암호를 풀어내야 합니다. 기술이 발전하여 이제는 누구나 빅데이터를 찾아내기만 하면 검증된 장비와 알고리즘을 이용하여 암호를 풀어낼 수 있는 시대가 되었습니다. 그렇기 때문에 누구나 암호를 풀 준비가 필요한 때입니다.

댓글

이 블로그의 인기 게시물

AWS ELB 504 Error

AWS EC2  운영 중 가끔씩 볼 수 있는 에러가 있습니다. 대표적으로 다음의 세가지 502, 503, 504 입니다. 이 중에서 이번에 알아볼 문제는 HTTP 504 에러입니다 .  타임 아웃이 되어   Request 를 처리하지 못하는 상황이 됩니다 .   해결 방법부터 이야기 하자면 다음과 같이 웹서버의 Time-out 시간을 60 초 이상으로 늘리는 것입니다 . Web Server & Application Time-out >= 60 sec 그 이유는 다음과 같은 ELB의 특성 때문입니다. ELB는 클라이언트와 EC2 서버 양쪽으로 커넥션을 유지하고 있습니다. ELB는 클라이언트와  EC2 서버간의 커넥션을 관리하는 역할을 맡고 있습니다. 그래서 유효한 커넥션만을 남겨놓습니다. 이를 위해서 Time-out 시간을 가지고 이 시간동안 데이터가 송수신되지 않으면 연결을 끊습니다.  기본적으로 Elastic Load Balancing는 두 연결 모두에 대해 Time-out(유휴 시간) 시간을 60초로 되어 있습니다. 그렇기 때문에 HTTP 또는 HTTPS를 사용할 경우 "KeppAlive" 옵션을 사용하여 커넥션을 재활용해야 합니다. 이 때  ELB 커넥션도 재사용되기 때문에 CPU 사용률을 줄일 수 있습니다. Browser Time-out Opera 11.11 120 sec IE 9 60 sec Chrome 13 300 sec FireFox 4 115 sec 서버 로직 중에서 60초 이상 실행될 수 있는 부분이 있는 경우 504 에러를 자주 볼 수 있을 것입니다. 문제 해결을 위해서는 Web Server는 물론  Tomcat 설정 또한 60초 이상으로 변경해주어야 합니다. ...

Cassandra vs MongoDB vs CouchDB vs Redis vs Riak vs HBase vs Membase vs Neo4j comparison

번역 작업 원문 NoSQL DB 비교 분석 자료 MongoDB 구현 : C++ 특징 : 몇가지 SQL과 비슷한 속성을 가짐(Query, index 등) 라이센스 : AGPL 프로토콜 : Custom, binary(BSON) 특징 Master/slave replication(auto failover with replica sets) Sharding built-in Queries are javascript expressions Run arbitrary javascript functions server-side Better update-in-place than CouchDB Uses memory mapped files for data storage Performance over features Journaling (with --journal) is best turned on On 32bit system, limited to 2.5Gb An empty database takes up 192Mb GridFS to store big data + metadata (not actually an FS) Has geospatial indexing 주요 사용처 만약 다양한 쿼리가 필요하다면 map/reduce 함수가 아니라 인텍스를 선호한다면 big DB에서 좋은 성능을 바란다면  CouchDB를 사용하길 원하지만, filling up disks에 너무 많은 데이터 변화가 있다면 사용예 For most things that you would do with MySQL or PostgreSQL, but having predefined columns really holds you back. CouchDB 구현 :  Erlang 주요특징 : DB consistency, 쉬운 사용 라이센스 : Apache 프로토콜 : HTTP/REST 상세특징 Bi-directional r...

Cron expression

초 0-59 , - * / 분 0-59 , - * / 시 0-23 , - * / 일 1-31 , - * ? / L W 월 1-12 or JAN-DEC , - * / 요일 1-7 or SUN-SAT , - * ? / L # 년(옵션) 1970-2099 , - * / * 모든 값 ? 특정 값 없음 - 범위 지정에 사용 , 여러 값 지정 구분에 사용 / 초기값과 증가치 설정에 사용 L 지정할 수 있는 범위의 마지막 값 W 월~금요일 또는 가장 가까운 월/금요일 # 몇 번째 무슨 요일 2#1 => 첫 번째 월요일 예제) Expression Meaning 초분시일월주(년) "0 0 12 * * ?" 아무 요일, 매월, 매일 12:00:00 "0 15 10 ? * *" 모든 요일, 매월, 아무 날이나 10:15:00 "0 15 10 * * ?" 아무 요일, 매월, 매일 10:15:00 "0 15 10 * * ? *" 모든 연도, 아무 요일, 매월, 매일 10:15 "0 15 10 * * ? 2005" 2005년 아무 요일이나 매월, 매일 10:15 "0 * 14 * * ?" 아무 요일, 매월, 매일, 14시 매분 0초 "0 0/5 14 * * ?" 아무 요일, 매월, 매일, 14시 매 5분마다 0초 "0 0/5 14,18 * * ?" 아무 요일, 매월, 매일, 14시, 18시 매 5분마다 0초 "0 0-5 14 * * ?" 아무 요일, 매월, 매일, 14:00 부터 매 14:05까지 매 분 0초 "0 10,44 14 ? 3 WED" 3월의 매 주 수요일, 아무 날짜나 14:10:00, 14:44:00 "0 15 10 ? * MON-FRI" 월~금, 매월, 아무 날이나 10:15:00 "0 15 10 15 * ?...