외부 프로젝트 수주로 인해 인력 부족이 심각해져 각 부분별 개발자 & 디자이너를 채용합니다. 요구조건은 아래와 같습니다

 

Android 개발자:

기능, 서버, DB쪽 작업이 된 앱의 Front-end 작업

디테일한 요구사항들을 직접 구현하는 걸 즐길 수 있는 마인드

React Native, Flutter를 이용한 개발에 관심있는 분

2019년 내에 최소 앱 2개 출시

관련 로켓펀치 링크

 

iOS 개발자:

Android 앱의 일부 기능을 제외한 단촐한 but App Store 요구조건에 맞는 앱 개발

2019년 내에 최소 앱 2개 출시

관련 로켓펀치 링크

 

Web Front 개발자:

광고 관련 주요 Stat 관리자 페이지 개발

MarTech 관련 시장 지식 (Strictly preferred)

관련 로켓펀치 링크

 

UI / UX 디자이너:

앱 UI/UX 디자인 – 20-40대 여성향 UI 디자인 (주요 서비스 타겟층)

광고 관리자용 웹 페이지 디자인 – 정돈된 페이지 디자인

디자인 Agency 출신 우대

UX 디자인 감각 우대

MarTech 관련 시장 지식 선호

관련 로켓펀치 링크

 

기획자:

앱 2개, 광고 관리자용 웹 페이지 디자인에 대한 설명을 듣고 PPT로 계속 찍어낼 수 있는 능력

개발자, 디자이너와 지속적인 커뮤니케이션

MarTech 관련 시장 지식 필수

 

공통사항:

스타트업 마인드

개념 장착

프리랜서 X, 리모트 X

 

직원복지:

회사 앞 Gym 회원권 (센트리얼 휘트니스)

연봉: Competitive (딴 직장 알아보고 싶은 마음이 안 들도록)

 

지원방식:

이메일 지원 – [email protected]

1-2페이지 Resume 및 개인 포트폴리오

1 문단 정도의 블로그 감상평

채용시 글 삭제

외부 프로젝트 수주로 인해 인력 부족이 심각해져 각 부분별 개발자를 채용합니다. 요구조건은 아래와 같습니다

 

Android 개발자:

기능, 서버, DB쪽 작업이 된 앱의 Front-end 작업

디테일한 요구사항들을 직접 구현하는 걸 즐길 수 있는 마인드

React Native, Flutter를 이용한 개발에 관심있는 분 (Not necessary at this stage)

2019년 내에 최소 앱 2개 출시

관련 로켓펀치 링크

 

iOS 개발자:

Android 앱의 일부 기능을 제외한 단촐한 but App Store 요구조건에 맞는 앱 개발

2019년 내에 최소 앱 2개 출시

관련 로켓펀치 링크

 

공통사항:

스타트업 마인드

개념 장착

프리랜서 X, 리모트 X

 

직원복지:

회사 앞 Gym 회원권 (센트리얼 휘트니스)

연봉: Competitive (딴 직장 알아보고 싶은 마음이 안 들도록)

 

지원방식:

이메일 지원 – [email protected]

1-2페이지 Resume 및 개인 포트폴리오

1 문단 정도의 블로그 감상평

채용시 글 삭제

외부 프로젝트 수주로 인해 인력 부족이 심각해져 데이터 사이언티스트 1인을 채용합니다. 요구조건은 아래와 같습니다

 

필수지식:

대학원 수준의 수리통계학

시계열 및 Sequence형 데이터 처리 (Autoregressive process, VAR, Kalman filtering, Fourier Transform 등)

패널 (Panel) 데이터 처리 (Bargava-Sargan, Arellano-Bond)

베이지안 통계학 (Thompson sampling 아이디어를 적용하는 모델들 ex. Bandit, Temporal-difference, Metropolis-Hasting 등)

계산통계학 (FFT, Finite Diff, Euler discretization, Stratified sampling, Importance sampling 등)

통상 머신러닝 or 데이터 마이닝

Predictive modeling (Online learning, FTRL 계열 모델들)

Multi-task learning

네트워크 이론 (eigen centrality를 활용한 Node별 ordering 경험 or 환상형 네트워크에서 propagation 효과를 풀어낸 경험)

게임이론 (Cho and Kreps, Trembling-Hand-Equilibrium 등 uncertainty case)

 

우대조건:

위의 필수지식과 관련된 논문

MarTech 관련 시장 지식

 

직원복지:

회사 앞 Gym 회원권

최소 연봉 12,000만원 (위의 조건 모두 만족시)

 

지원방식:

이메일 지원 – [email protected]

1-2페이지 Resume

필수지식을 갖춘 부분을 설명하는 one-pager essay

 

 

아래는 New York University (NYU)의 Data Science 석사 프로그램에서 지원자에게 요구사항으로 제시해놓은 글을 바탕으로 했다.

GRE, TOEFL, SOP, 추천서 등등의 상식적인 서류들은 다 제쳐놓고, Educational Prerequisites 라는 부분만 살펴보자.

 

듣고와야하는 과목 (Educational Prerequisites)

학부 전공을 보면 통계학, 컴퓨터 과학 (컴퓨터 공학 아니고), 수학, 공학, 경제학, 경영학, 생물학, 물리학, 심리학 등이다. 학점이 좋아야 한다는 말을 빼놓고 나면, 학부 전공에 관계없이 높은 수준의 수학적인 훈련 (specific and substantial knowledge of certain mathematical competencies)기본적프로그래밍 지식을 요구 (some training in programming and basic computer science)하는 걸 볼 수 있다. 한국에서 공학 (특히 컴공) 전공자들이 Data Science에 적합한 교육을 받았다고 생각하거나, 심지어는 개발자가 Data Science에 적합하다고 착각하는 것과 엄청나게 다르다는 걸 바로 눈으로 확인할 수 있다.

필자가 영미권에서 겪었던 Admission 을 떠올려볼 때, 일단 수학 훈련이 거의 안 되었을 보통의 개발자들이 저런 석사 프로그램에 지원하면 애시당초 Resume Screening 작업에서 탈락할 것이다. 공대에서 수학을 깊게 공부하는 전공들, 특히 통계학 지식을 많이 활용하는 컴퓨터 과학이나 산업공학 정도가 요구조건을 충족하고, 나머지 공학 전공들은 본인이 학부 과정을 어떻게 밟았느냐가 굉장히 중요해보인다.

구체적으로 명시한 조건들을 보면, 미분방정식, 선형대수학, 확률론 등에 대한 지식을 기본적으로 갖춘 상태에서, 약간의 프로그래밍 지식, Python과 R에 대한 깊이있는 경험을 제시해놨다. 혹자들은 오해할수도 있겠지만, 프로그래밍 지식Python/R을 이용한 “Serious Academic” 지식은 완전히 별개의 경험이다. R/Matlab/Mathematica를 이용한 “Serious Academic” 경험이 있는 필자는 (어린시절 GW-Basic, Q-Basic, Visual Basic 로 했던 걸 제외하면) 프로그래밍을 한번도 해본적이 없고, 할 줄 아는거라고는 Android Studio로 간단한 앱 만들기 밖에 없기 때문이다. (코딩이 중요한게 아니라, 수학이 중요하다는 Pabii 데이터 사이언스 수업 홍보글도 같은 맥락이다. “머신러닝이라는 것도 결국은 코딩이라고 생각하고~”라던 개발자들 우르르 떠오르네.)

위의 그림에서 가장 흥미있는 부분은 맨마지막에 있는 “Econometrics course with heavy mathematical content” 라는 문구다. 필자가 경제학부 시절 들은 계량경제학 수업이 딱 여기에 해당한다. 우리과에서 고시 안 치고 박사 유학가겠다던 친구들 사이에서 필수였던 수업이기도 하고. 이런 문구를 보면, 한국적인 관점에서 문과/이과 구분해서 공대 출신이면 더 잘할 수 있다고 착각할게 아니라, 학부 과정에서 수학을 통계학 모델링에 썼냐 안 썼냐로 데이터 사이언스 예비 전공을 했냐 안 했냐를 구분하는게 미국의 스탠다드라는게 느껴지는가? (필자가 블로그에서 줄곧 공대 출신보다 통계학 공부 열심히 한 경제학과 출신이 더 Data Science에 적합하다고 주장하는 근거이기도 하다. 물론 수학 안 듣고 졸업한 경영학과스러운 경제학과는 제외한다ㅋ)

 

계량경제학, 수리통계학, 계산통계학

경제학과에서 통계학을 배우다보면, 크게 2갈래의 방향이 나눠지는걸 보게된다. 첫번째는 “응용통계학”이라고해서, 다른 사회과학 학문에서 쓸법한 수준의 통계학 지식을 실용적으로 활용하는 부분이 강조된다. 간단한 예시는 선거 전 여론조사할 때 적정한 샘플 추정 및 여론조사의 결과 해석이라고 보면 된다. 두번째는 “수리통계학”이라고해서, 수학을 이용한 모델링을 하는 학문에서 두루두루 쓰이는 지식인데, 이게 바로 NYU DS에서 요구하는 “Econometrics (계량경제학) with heavy mathematical content”라고 생각하시면 되겠다. LSE에서 경제학 석사시절, 박사과정의 Econometrics까지 다 듣고, 그 위로 어떤 수업이 있는지 살펴보니 이해 불가능해 보이는 수학 증명들 몇 십개를 달달 외우지 않고는 기말고사를 칠 수가 없어 보이는 수업들만 있길래 좌절하고 포기했던 기억이 난다. (제대로 된 학문이면 주제에 상관없이 수학 못하면 많은 걸 포기해야한다…)

우리나라에서 공부 좀 잘한다는 학생들이 가는 대학으로 유명한 K대와 Y대에는 문과 전공 중에 통계학과가 있다. 필자가 다녔던 S대를 비롯한 많은 대학들이 통계학을 이과, 특히 수학과 옆에 배치해놓는데 비해, K대와 Y대는 경제학 전공, 심하게는 경영학 전공의 연장 선상에서 통계학에 접근하는 것 같은 학과 체계와 수업 커리큘럼을 갖고 있다보니, 가끔 이런 질문을 받는다.

“인공지능이라는거, 통계학만 잘하면 된다면서요? 그러면 K대나 Y대 (응용)통계학과 가면 되겠네요?”

꼭 틀린 말은 아닌데, 굳이 정답을 말해라면 이렇게 답하고 싶다. 데이터 사이언스는 응용통계학 Line이 아니라, 수리통계학 지식을 기반으로 한 계산통계학이라고. (여담으로 K대쪽 통계학이 좀 더 수리통계학을 강조하는걸로 알고 있지만, Y대에도 엄연히 수리통계 I, II가 학부 과정에 있다.)

도대체 뭐가 다른지 이해가 잘 안 된다고? 계산 통계학이라는거 그냥 평균, 분산 같은 주제를 빨리 계산하는 “응용”통계학 같은거 아니냐고?

 

계산통계학 (Computational Statistics)이란?

10^n 개의 가능한 Path를 이용해서 내일의 주가 수익률이 10% 이상일 확률을 시뮬레이션 하는 문제를 푼다고 생각해보자. 대략 10억개 정도의 가능한 Path를 정규분포 기반의 Markovian process로 생성한 다음, 아주 작은 확률로 대폭락이 있는 경우를 포아송 분포를 이용해 모델에 추가해서, 정규분포 + 포아송 분포 두 가지 Source에 기반한 Path들 중 주가가 10% 이상 뛴 경우의 수를 잡아내고, 그 주식을 밑바탕에 깔고 있는 파생상품의 가격을 계산하는 교과서적인 기본 문제에서 쉽게 볼 수 있는 사례다.

이 계산의 포인트는 10^n개의 데이터 포인트 묶음 (가능한 path 1개는 최소 몇 백만개의 작은 랜덤 데이터들의 결합으로 만들어진다) 때문에 발생하는 Computational cost다. 어떻게든 빨리 계산해서 결과값을 찾고 싶은데, 거기다 예상하는 기간이 1일이 아니라 1주일, 1달, 1년 등등으로 늘어나서, 혹은 고려해야하는 요소들이 추가되는 탓에 가능한 Path가 더 복잡해지면, 시뮬레이션 데이터를 더더욱 많이 생성해내야 한다.

이런 계산을 좀 빨리해보려고 10^n개의 데이터를 2^n개 형태로 재배열하고 (직관적으로 설명하면, 2^3 = 8이니까 10-8 정도의 약간의 손실이 발생하기는 한다), 10진법이 아니라 2진법으로 이 계산을 바꿔서 접근하면 계산에 필요한 시간을 상당히 줄일 수 있다. Fast Fourier Transform (FFT) 계산법이라고 한다. 물론 정확도에는 손실이 있고, 이런 상충관계에서 시간 vs. 정확도의 타협점을 찾기위해 샘플 데이터로 여러차례 계산하는 과정이 뒤따른다. (FFT말고도 비슷하게 시간을 줄여주는 계산법들로만 두꺼운 교과서 몇 권 만들 수 있다)

당연하겠지만 위의 교과서 같은 예제로 일을 하는건 아니고, 증권사에서 파생상품 가격 계산을 위해 돌아가는 모델은 수학적으로 굉장히 복잡한 형태를 갖추고 있다. FFT가 효율적인 계산법이라는걸 배웠다면 단지 계산을 좀 더 빨리 해줄 수 있을 뿐, 정작 Stochastic calculus에 기반한 수학 모델링은 또 다른 차원의 문제다.

딱 위의 내용을 금융공학 석사 2학년 학생들에게 가르쳤고, 학생들이 기말 프로젝트를 위해서 FFT를 다양하게 응용하는 걸 봤던 기억이 난다.

그 FFT는 계산통계학과의 여러가지 “계산법” 중 하나에 불과하다. 계산통계학의 궁극적인 목표는 시간 vs. 정확도의 적절한 타협점을 찾고, 시간적으로 좀 더 빠른 계산을 위한 수학적인 개선법을 찾아가는 과정이기 때문이다.

왠지 Machine Learning이랑 비슷한 이야기하는거 같지 않나?

질문1. 위에 나온 FFT를 더 배우고 싶다는 말을 들으면 어떤 생각이 드는가?

그냥 여러가지 계산법 중 하나인데, 아예 FFT라는 계산법을 수학적으로 엄청나게 깊게 파겠다는 이론적인 연구가 아니라면, 굳이 “더” 배워야할 필요는 없다. 왜? FFT는 계산통계학의 수많은 계산법 중 하나에 불과하니까. 그런 수업에서 배운 10개 남짓한 계산법 중 하나에 불과하고, 교과서 밖에는 수없이 많은 계산법들이 있으니까. 특별히 그 계산법을 깊게 판다고해서 Dramatic하게 바뀔 구석도 별로 없으니까.

질문2. 그렇다면 Deep Learning을 더 배우고 싶다는 표현은 어떻게 생각되나?

이런 계산법들은 “더” 배워야할 주제가 아니라, 그냥 여러개의 계산법을 배운 다음에 내가 쓰는 데이터사용 목적에 맞게 골라쓰는 도구에 불과하다.

(한국에서 요즘 Deep Learning이라는 주제를 소화하는 분위기가 계산 구조를 이해하고 응용하는 방식이 아니라, 딥러닝에 대한 맹목적인 광신과 데이터 입력해서 나오는 결과값의 Matching rate만 보는 상황이니 퐝당할 뿐이다.)

 

NYU Data Science 프로그램의 교수진들

위의 섹션 제목에 걸린 링크를 따라 들어가면 NYU Data Science 프로그램의 교수진들을 볼 수 있다. 그리고 25명의 주요 교수진들의 전공을 보면 컴퓨터 공학(Computer Engineering) 타이틀이 달린 분이 1명이다. 1명 Yann Lecun (그것도 박사가 아니라 학부 때만 전공했더라)

나머지 교수진 전원은 Computational stat을 활용하는 연구자들이 했을법한 전공 출신들이다. (Statistics, Applied Math, Computer Science, Neural Science, Physics 같은 전공들) 필자가 Financial Math하면서 수학쪽 대형 학회인 SIAM에서 발표했던 적 (링크의 Keith Lee )이 있는데, 그 때 흔히 봤던 전공 사람들이고, 나중에 실리콘밸리에서 Data Scientist 면접보겠다고 찾아다닐 때 경쟁자(?)로 or 면접관으로 볼 수 있었던 사람들 전공이기도 하다.

 

머신러닝 vs. 계산통계학

통계학, 특히 수리통계학을 하던 사람 입장에서보면 머신러닝은 Non-linear approximation을 하는 다양한 방법들을 수학으로 해결하기보다 계산으로 해결하는 지식이다. 처음 머신러닝이라는 단어를 들었을 때가 MIT에서 머신러닝을 이용해 사람이 내일 어디에 있을지를 95%의 정확도로 예측할 수 있다고 주장하는 PT에서 였는데, PT 내내 그 때까지 필자가 연구에 썼던 계산통계학 방법론을 그대로 쓰고 있다는 느낌을 받았다.

NYU의 Educational requirements에 나오는 내용을 봐도, Machine Learning, Computational Statistics, Data Mining 같은, 경험자의 눈에 사실상 같은 지식, 다른 이름인 내용들이 나열되어 있다. 그 뒤에 따라나오는 Large-scale computing은 필자가 연구실에서 매일같이 하던 작업이고, Operations research 하던 친구들이 다루던 데이터도 어마어마한 대용량(+Pattern)이었었던 기억이 난다. 한 예로, 2개의 다른 Risk source에서 나온 결과값을 3차원 그래프로 그려서 Copula를 만들고 있던 중이었는데, 같은 연구실에서 Operations research하던 중국인 박사 과정 친구가 Alibaba의 구매 데이터로 비슷한거 그리고 있다면서 경험담을 공유했던 기억이 있다.

 

나가며 – Not 공학 But 수학

경제학을 공부하다보면, 수학 모델링을 잘하는 사람들 (미시경제학 Line)과 통계학 모델링을 잘하는 사람들 (계량경제학 Line)로 교수 사회가 구분이 되는 걸 볼 수 있다.  (거의 대부분의 Quantitative 전공들 사정이 비슷할 것이다.) 물론 둘 다 잘하면서 자기가 좋아하는 주제를 잡는 천재들이 많긴 하지만, 재능이 부족한 필자는 좀 만만(?)해 보이는 금융시장 문제 하나를 잡고 통계학 모델링으로 그 문제를 풀려다가 시뮬레이션이라는, 수(리통계)학을 쓰는 사람들이 절대로 손을 대지 말아야하는 금기를 범했다. (수학적으로 Elegant하지 않으면, 시뮬레이션 같은 “꼼수”를 쓰면 논문이 Publish되기 힘든 전공이니까…)

시뮬레이션에 손을 대면서 만났던 계산통계학 때문에 연구 주제의 방향과 연구용 지식 도구가 경제학 중심의 학계에서는 받아들여지기 어려운 방향으로 흘러갔고, 뜻하지 않게 Financial Mathematics를 공부하게 됐다. 당시엔 뭔가 잘못된 방향으로 인생이 꼬인 것 같은 생각도 들고, 항상 마음 속 깊은 곳에 찜찜함이 남아있었는데, 요즘 Machine Learning에 대한 열광을 보는 눈이 달라지게 된 점을 생각하면 한편으로는 전화위복이 아닌가 싶다.

우리나라야 아직까지 머신러닝이 계산통계학과 같은 지식이라는 사실을 인지 못해서 정부 프로젝트가 여전히 (수학아니라 계산 중심인) 공대 출신들에게 가고 있기는 하지만, 의사 결정권자들이 바보도 아니고, 근시일내에 미국에서 그런 것처럼 공학대신 수학 지식, 통계학 훈련을 탄탄하게 받은 사람들이 Data Science 분야를 이끌고 갈 수 있는 길이 열릴 것이라고 생각한다. Pabii에서 이야기하는 대로 통계학 기반으로 공부했다가 지금처럼 공대 출신만 Data Scientist로 뽑고 있으면 취직 못하는거 아니에요? 라는 질문 하시는 분들이 가끔 있던데, 한국 시장이 느리고 멍청하다는 생각을 많이 하지만, 그래도 전 세계를 기준으로 하면 꽤나 빨리 변하는 축에 속한다. 당장 홍보없이 돌아가는 이런 블로그 1달 평균 방문자가 1년 반 사이에 0명에서 2만명으로 뛴 걸 보시라… 통계학 중심으로한 Data Science 저변이 빠르게 넓어지고 있다는 증거가 아닐까?

처음에 강의 시작했을 때만해도 필자더러 “저 사람 뭐하는 사람이냐?”는 황당하다는 반응과 “인공지능 쓰는 코드만 주시면 됩니다”고 하던 사람들을 엄청나게 만났는데, 1년이 좀 넘은 이 시점에 벌써 수학이 중요하다는 사실을 인지했다는 다양한 종류의 Feedback을 여러 경로로 받고 있다. 이런식의 지식 선도 산업에서 미국이 틀리고 한국이 맞았던 적이 단 한 차례도 없었기 때문에(ㅠㅠ), 한국이 언제나 Follower였기 때문에(ㅠㅠㅠㅠ), 근시일내로 인력에 대한 요구 조건이 빠르게 바뀔 것이라고 생각한다. (이미 많이 바뀌기도 했고.)

아직도 Data Science 공부를 하고 싶은 분, 석사 과정에 진학하고 싶으신 분들은 위의 Data Science 석사 입학 조건에서 보신것처럼 수(리통계)학 공부에 열정을 쏟으실 것을 추천한다.

 

데이터 사이언스 석사 시리즈

데이터 사이언스 석사 – 이렇게 돌아간다

데이터 사이언스 석사 – 이렇게 준비하자

데이터 사이언스 석사 – 필요한 기초지식

첫 직장인 D모 투자은행의 Investment Banking Division (IBD, 속칭 i-Banking) 사람들이 가장 싫어하는 단어가 “컨설팅”이었다. i-Banking 업무 자체가 기업을 사고 파는 업무(M&A)를 “컨설팅”해주는 업무임에도 불구하고, 전략 컨설팅 회사들 (McKinsey, Bain & Compnay, Boston Consulting Group 등)이 “컨설팅”이라는 단어를 선점한 상태인데다,  i-Banker들은 컨설턴트들이 숫자 읽을 줄 모르고 그림만 그린다면서 매우 깔보고 무시했기 때문이다. (뭐… 무시해야할 이유가 그것뿐인건 아니지만…) 무시하는 사람들과 같은 그룹으로 묶이게 되는 “컨설팅”이라는 단어에 경끼를 일으키는게 그들 입장에서는 당연하겠지만, i-Banking(아이뱅킹)이라는 용어를 잘 모르는 사람들이 많아 보통의 한국 사람들에게 업무를 설명하기 어려운 점이 적잖이 있었다. (덧붙여서, 일반 상업은행 – 국민,우리,신한,외환은행 등- 업무, 증권사의 투자 관련 업무랑 다르다고 자기들을 항상 “i-banker (아이뱅커)”라고 불렀다. 자부심 아주 쩐다ㅋㅋㅋ) 아무리 설명하기 어려워도 자존심에 끝까지 컨설팅이라는 이름을 쓰지 않았던 걸 생각해보면 ㅋㅋ

비슷한 맥락에서 요즘 “데이터 분석”이라는 단어를 들을 때 조심스러워진다. 보통 데이터에 “분석”이라는 용어를 붙이는 사람들이 가지는 관점이

  • 데이터로 작업하는데, 개발은 아닌 작업
  • 데이터로 작업하는데, 그래프 그려놓고 썰 푸는 작업
  • 데이터로 작업하는데, 데이터를 “잘 본다”고 주장하는 작업

이라고들 생각하는 경향이 짙다.

내 입장에선 그래프를 그린다는게 성장율 CAGR을 그린다거나하는 1차원 그래프가 아니라, 수학 모델을 만들어놓고 그 모델을 통해서 A 입력치가 변했을 때 B 결과가 어떻게 바뀌는지를 볼 수 있는, 추론의 결과를 가늠하는 시각 도구적인 관점이 강한데, 아무래도 보통 사람들이 그런 수학 모델을 만나는 일이 드물다보니 “분석”이라는 단어가 주는 뉘앙스가 내가 전달하고 싶지 않은 의미가 되어 버린 것 같다.

본의 아니게 “분석”이라는 단어를 회피하다보니 더더욱 Data “과학(Science)”이라는 표현을 더 쓸 수 밖에 없다. 위에 살짝 언급한 수학 모델 기반의 결과 시뮬레이션과 단순한 CAGR 그래프와는 급이 같은 업무는 아니라는 걸 강조하기에 달리 방법이 없어보인다.

 

 

Data Analysis vs. Data Science

용어가 혼선을 낳는 더 근본적인 이유는 역시 Data Science가 뭔지에 대한 제대로 된 관점이 잡혀있지 않기 때문이라고 생각한다. 우리는 계산통계학 (Computational Statistics)을 특정 업무 분야에 적용하는 사람들, 상황에 맞게 적절한 수(리통계)학 모델링을 하는 사람들인데, 외부인들에게는 아무래도 “데이터”가 더 크게 눈에 들어오지 “Science”가 더 크게 눈에 들어오지는 않는 것 같다.

얼마전 수업 시간에, 통계학에서 활용하는 Two Stage Least Square (2SLS, 회귀분석을 2단계로 돌리는 작업)을 선형대수학의 벡터 개념을 빌려서 설명한 적이 있다. 머신러닝 수업하는데 왜 이런 내용이 나오는지 의아한 분도 있겠지만, 여러개의 설명 변수(x값)들 중 일부의 효과를 배제한 상태에서 종속 변수(y값)을 설명하기에 굉장히 효율적인 계산법이다.

수업 중간에 이런 통계학의 회귀분석 내용을 왜 머신러닝 가르쳐 준다는 수업에서 배우고 있는지 의아한 분위기가 느껴지는 시점에

“이런 작업의 공식 명칭이 뭔 줄 아세요? ‘데이터 전처리’라고 하죠.”

라고 하니 정말 표정들이 일순간 강의실 전체가 충격의 도가니로 바뀌는 것을 느꼈다.

일전에 커닝 없이 시험 점수가 실력을 제대로 평가한 숫자인지를 확인하려는 예시에 관한 글을 쓸 때도 마찬가지고, 위의 2SLS 예시도 모두 수학적인 도구를 활용해 데이터 “분석”을 효과적으로 진행하기 위한 작업의 일환이다. 다만, 한국에서 일반적으로 “분석”이라는 단어를 쓰는 사람들이 2SLS를 쓸 줄 알기는 커녕, 들어본 적도 없는 사람들이 대부분이기 때문에, 어쩔 수 없이 저런 작업의 명칭을 “분석” 대신에 “고급 통계학” or 데이터 “Science” or 데이터 “모델링”이라는 표현을 쓰게될 수 밖에 없는 것이다.

 

의학계 vs. 금융권

예전에 Pabii 수업을 듣고 간 어느 산업공학과 학부생 하나가 대학원에 진학했는데, 의학 분야쪽에 머신러닝 적용한다는 교수님 연구실에 갔더니 기대한 것과 너무 다르다고 상담을 왔던 적이 있다. 자기가 원하는 지식이 뭔지 한참 설명을 듣고 나니, 어차피 한국의 어지간한 학교 대학원에서 원하는 걸 다 배우기는 어려워 보이고, 기술적으로 필요한 수학만이라도 챙겨주는 연구실을 찾아보라고 추천해 줄 수 밖에 없었다. 그렇게 고른 곳이 산업공학과에서 Finance 관련한 연구를 하고 계신 교수님의 연구실이더라.

필자가 Finance 출신이라서 편견이 있다고 볼 수도 있지만, 대체로 의학쪽 통계와 금융쪽 통계를 1:1로 비교해보면, 수학/통계학 필요 스킬 셋이 정말 하늘과 땅 차이로 큰 격차가 있다. 의학쪽 논문을 봐 달라는 요청이나, 필요한 코멘트를 해 주는 경우를 보면, 대부분 내가 연구하던 시절 사회학자라고 무시하고 폄하했던 친구들 수준의 통계 지식만을 갖고 논문을 써 놨다는 느낌이 든다. 반면, Finance 분야에서 그런 논문을 내면 학회에서 폭격을 맞기 전에, 동료 연구자들에게 먼저 비웃음을 산다.

Data “Analysis”와 Data “Science”의 차이점을 놓고 설명을 할 때 항상 마음 속에 떠오르는 것도 위의 두 분야에서 겪는 사건들이다. 의학쪽, 더 나아가 사회학적 통계 방법론을 쓰시는 분들이 아무리 노력해봐야 내 눈엔 “Analysis” 수준에 지나지 않는다. 이걸 “Science”의 영역으로 끌어들이려면 최소한 Toy model (단순한 모델을 학자들이 부르는 방식) 이라도 수학적인 모델을 갖고 입력값이 어떤 side effect과 함께 출력값을 내놓는지 확인할 수 있어야하지 않을까?

 

(데이터를 이용한) 모델링

Reinforcement Learning을 일반에서는 “인공지능”이라고 부른다. 바둑부터 다양한 종류의 게임을 풀어나가는 “지능”을 “학습”하는 것처럼 보이기 때문이다. 기존의 Reinforcement learning은 데이터 입력을 요구했는데, 이제는 기본 지식만 가르쳐주고나면 데이터 입력 없이도 알아서 척척척 Learning을 한다면서, 이제 “데이터”는 “인공지능”에 필요없다고 주장하는 댓글도 달린 걸 봤다.

이쪽 관련 모델링을 공부하신 분들은 알겠지만, State 1 -> State 2로 상태가 바뀌는 확률을 이용한 모델링 작업을 Markov Process라고 부르고, 이 때 참여자 (Agent)의 행동 (Action)이 확률이나 결과값에 영향을 줄 수 있으면 Markov Decision Process라고 부른다. 그 때 확률을 계산하는 방식이 기존의 Reinforcement learning에서는 과거 데이터를 활용했다면, 규칙만 알려주면 “데이터 없이” 스스로 Learning한다는 모델들은 데이터를 생성하는 시뮬레이션을 활용한다. 보통 주식 가격의 범위를 예측하는 (주식 가격을 예측하는게 아니다) 시뮬레이션 모델링을 할 때처럼 단순한 Factor (들)로 만든 모델도 시뮬레이션 필요 숫자가 10억개씩인 경우가 비일비재했었다. 근데, 스타크래프트 같은 게임으로 치면 가능성의 조합은 얼마나 많을까? 저 댓글을 잘 모르는 일반인이 썼다면 그러려니 했을텐데, 혹시나 싶어서 IP를 추적해보니 모교의 어느 연구실이더라. 이런 종류의 시뮬레이션에 필요한 Computational cost의 크기를 전혀 가늠하지 못하는 걸로 봐서 수학, 통계학, 물리학같은 자연대쪽이 아니라 공대쪽 석박 연구실 학생일 것 같은 느낌이 드는데, 이미 공대를 무시하고 폄하하는 글을 너무 많이 써 놨으니 여기까지만 쓴다.

기업들이 우리학교 이름만 보고 학교 연구실에 외주 프로젝트 주는 경우가 많을텐데…. 왜 Data Science 프로젝트들이 수(리통계)학 많이 쓰는 전공들로 가질 않고 공대쪽으로 가는지, 왜 우리나라만 요모양 요꼴인지…..

요즘 Reinforcement Learning을 연구하는 사람들의 숙제는 Game Theory를 어떻게 모델 내재화하느냐다. (애시당초 Game Theory를 이해할 수 있는 수준의 수학 모델링 공부를 하지 않는 공대생들 중심으로 돌아가는 한국의 Data Science 업계가 양적성장만 가능하고 질적성장이 불가능한 이유가 여기에 있다.) 시뮬레이션을 저렇게 무한대의 숫자로 다 하는 것은 아무리 Computing power가 좋아져도 한계가 있기 때문에, 필요한 최소한의 시뮬레이션을 하기 위해서 가능성이 있는 Path들만 뽑아내려는 작업을 한다는 뜻이다. 여태까지 Alpha-Go를 위시한 대부분의 “인공지능”들이 사실은 “컴퓨터 학대”였다는 사실을 인지하고, 이제 좀 더 복잡한 문제들을 풀기 위해서 컴퓨터를 효율적으로 쓸 수 있도록 인간이 문제를 효율적으로 Re-structuring해서 간략화한 계산을 컴퓨터에게 맡긴다고 생각하면 얼추 맞아들어갈 것 같다. (알파고 만들어서 큰 돈 벌었던 데미스 하사비스도 더 이상 꿈꾸는 소리는 못하겠는지 Reinforcement learning 방식으로 일반 인공지능을 만드는건 불가능하다고 인터뷰도 해 놨더라ㅋㅋ)

 

나가며 – Engineers and Analysts are Degrading Science

데이터의 종류마다 필요한 데이터 전처리가 다르고, 활용하는 모델도 달라진다는 이야기를 블로그에서도, 또 수업에서도 여러번 반복한다. 이미지, 자연어 등 데이터 자체가 특정한 체계를 갖추고 있는데, 그 구조가 계층적으로 복잡한 경우에 “딥러닝”이라는 모델이 잘 작동하고, 그 이외에는 괜히 계산 비용만 많이 들고 Overfitting이 생길 수 밖에 없다는 이야기를 여러번 한다. 어떤 모델도 모든 데이터 셋에서 항상 우월한 결과를 가질 수 없다는 머신러닝의 Fundamental theorem을 굳이 복잡한 수식을 이용해 증명하지 않더라도, 몇 번의 데이터 작업에서 “딥러닝”이 무조건적인 해결책이 아니라는 사실쯤은 한두번쯤 겪어 봤을 것이다.

이런 지식은 데이터 모델링을 공부한 사람들에게는 꽤나 상식적인 지식이다. 설령 자기 전공의 모델링에만 집중한 탓에 머신러닝이 적용되는 방식을 잘 몰랐다고해도, 간단한 설명만 들으면 충분히 이해하고 따라올 수 있을 것이다. 반대로, 모델링을 해 본적이 없었던 사람에게 이런 지식은 말 그대로 4차원의 지식일 수 밖에 없다.

앞으로 외부 미팅에서 “데이터 분석”과 (“데이터 엔지니어링”과) “데이터 과학”을 좀 명확하게 구분해주는 분들을 만날 수 있으면 좋겠다.

매번 하는 이야기지만, 데이터 사이언스를 하기 위한 최고의 학부 전공은 통계학이고, 관련 내용을 충실하게 배운 컴퓨터 과학, 산업공학, 경제학 출신들이 좋은 성과를 낼 수 있는 토대를 쌓고 졸업한다. 같은 맥락에서, PPT 만들다가 졸업하는 경영학과나, 코드 치다가 졸업하는 컴퓨터 공학과는 데이터 사이언스와 별 관련 없는 전공들이다.

그런데 왜 오해들을 할까? Data “Science”가 데이터 “분석”이나 “해석”으로 곡해되어 있기도 하고, 아이디어를 체계화 하는 작업에 코딩이 들어가니 컴공들이 하는거라고 잘못된 생각을해서 일 수도 있다. 좀 더 나가면 머신러닝 “패키지”라고 이름 붙은 것들 중에서 “자동화” or “정형화”된 코드를 그냥 “갖다 쓰면” 되는 부분들이 좀 보여서 일 수도 있다.

지금까지 사업차 미팅을 가거나, 저녁 시간에 짬을 낸 강의에서 만난 사람들 중 경영학과 출신들은 수식이 좀 나오면 대부분 “알아서 꼬리를 내리”더라. 모르는거니까, 학부 때도 깊이 없는 공부하는거 같아서 찜찜했는데, 정말 저런 지식들이 쓰이는 영역이 있구나, 눈치껏 도망가자는 생각을 하는게 눈에 보인다.

근데, 개발자들은 도무지 알아먹질 못하는 눈빛이다. 끝까지 다 할 수 있다고 바득바득 우기고, 심지어는 통계학이 뭐가 중요하냐, 머신러닝이 모든 걸 다 자동화 할 수 있다고 광신도처럼 믿고 있는 사람들도 수두룩하다. (정말로 그랬으면 인류가 지난 몇 백년간 쌓아올린 모든 학문의 연구자들이 전부 “알파고”로 대체되어야 한다. 한마디로 박사과정, 교수, 연구직 등등의 업무가 하나도 필요없다는 말과 같다. 겨우 데이터를 이용한 패턴 매칭하는 코드 카피하는 개발자 주제에 꿈도 크다고 말해주고 싶다 ㅋㅋ)

 

(꼰대) 개발자들의 거만함

몇 줄 코딩 베끼기 지식에 대한 그런 퐝당한 거만함은 도대체 어디서 나오는걸까? 경영학과 친구들처럼 옆 동네 경제학과 애들한테 학부 시절부터 “PPT나 만들던 X보들ㅋㅋ”이라는 모욕을 한 번도 들어본 적이 없어서일까? 공대도 자연대 앞에서 기죽지 않나? 공대 안에서도 다른 전공들 대비 코드치는 컴공의 (수학적인) 학문적 깊이가 얕다는 사실을 인지할 기회가 없나? 그동안 만나봤던 컴공, 전기공 교수들도 인정을 하던데, 왜 박사 받고 와서 가르치는 레벨도 아니고 학부 갓 졸업하고 직장생활 n년 했던 개발자들이 그렇게 거만한거지? 님들 진짜 수학 하나도 모르시던데, 왜 수학이랑 수리통계학 엄청 쓰는 분야와서 물 흐리고 있냐? 수학 공부나 좀 하고 거만해지던가?

개발자들의 거만해빠진 메일을 받는 경우가 자주 있는데, 보통은 데이터 사이언스라는거 그냥 쉽게 코드 카피해서 쓱쓱쓱~ 하면 전문가 될 수 있는 것처럼 착각하는티가 팍팍 난다.

아래는 국내 어느 유명 IT 기업에 다닌다는 개발자가 쓴 메일이다.

제목: 개발자 관점에서 데이터 사이언스를 좀 더 이해하고자 문의 메일 드리게 되었습니다.

내용: 안녕하세요. 블로그 글 잘 읽어 보았습니다. 매우 알차게 읽었습니다. ^^; 저는 현재는 XX라는 회사에서 개발자로 일하고 있고, 데이터를 다루는데 있어서 여러 일에 흥미를 느끼고 있습니다. C++, Python, Lua, C#, Javascript 등의 언어 스킬과 Docker, Kubernetis, Mesos (DC/OS), Spark의 운영과 분산 잡모델, 빠른 데이터 검색 등에 대한 오픈소스 개발 지식을 가지고 있습니다. 최근 저는 YY와 관련한 정보를 전반적으로 다루는데 흥미를 느끼고 있고, 이를 위한 개인 프로젝트 및 회사를 창업하는데까지도 목표를 두고 데이터를 바라보고 있습니다. 데이터를 다루는 기술에 대해서 보다가, 일개 개발자 이지만 데이터 사이언스라는 것에 대한 올바른 인식이 좀 필요해서 개인 인터뷰를 해보고 싶은 생각이 들었습니다. 혹시 괜찮으시다면, 인터뷰가 가능할지 문의하고자 메일 드리게 되었습니다.

 

거만함? 모자람!

초딩이 수학과 교수한테 “3+2=5정도는 알고 있고, 친구들 사이에서 암산 속도 빠르다는 평가 받고, 당신 블로그 글은 좀 읽어봤는데, 수학 박사에 대한 올바른 인식이 필요해서 개인 인터뷰가 가능할지” 라고 묻는 걸 초딩의 거만함이라고 불러야할까? 모자람이라고 불러야할까?

올바른 인식 쌓으라고, 제발 좀 읽고 정신차리라고, 써 놓은 글만해도 100개가 넘는데, 글을 다 읽고 이해했으면 저런 메일을 썼을까? 읽어봤는데도 “올바른 인식이 필요해서 개인 인터뷰가 가능할지” 물어보는 메일을 쓸 용기가 나는건 거만함일까? 모자람일까? 내 밥벌이할 시간도 부족한데, 하다못해 통계학 석사하고 요즘 고민이 많습니다도 아니고, 완전히 비관련 업무에 종사하는 개발자가 뜬금없이 개인 인터뷰라니? 대기업에서 임원 자리 제시한다고 미팅 요청받던 날도 이런식으로 뻣뻣한 요청을 받은 적이 없다.

더 문제는, 저런 (거만함 가득찬) 개발자들 이메일받는게 한 두번이 아니라는거다. 심지어 찾아와서 면담하겠다고 약속도 없이 사무실에 들이닥치는 개발자들도 있었다.

개발자들이 잘 몰라서 저런 메일을 썼다고 변경하기에는, 정말 개발자 말고 다른 직군에서 저런 도전적인 메일을 받은 적이 거의 없다는 점을 강조하고 싶다. (보통 다른 직군분들께는 수업을 듣고 싶은데 수학 훈련이 덜 되어서 자신이 없다는 메일은 자주 받고, 블로그 글의 맥락을 이해라도 한 티를 낸다.)

개발자가 아닌 다른 집단에서 필자에게 개인 시간을 내달라고 “부탁”하는 메일을 받는 경우는 갑질하기로 유명한 A급 언론사에서도 차장급 기자, 머신러닝을 응용해야하는 프로젝트를 이끄는 대기업 부장급 고위직들이다. 이름 알려진 스타트업은 대표들이 직접 찾아오기도 한다. 대학 계시는 교수님들이 지인 통해서 질문하면서 시간을 더 뺏기 미안하니, 특정 부분 강의 노트 좀 공유해달라고 하는 경우도 있긴 했다. 필요하다면 돈을 충분히 낼테니 자기 논문에 공동 저자로 올라와 달라고 머리 숙여 부탁하는 분들도 있다. 한발자국 나아가 교수직에 계신 분들이 머리를 숙이고 Pabii 수업에 오시는 경우도 은근히 있다. 그동안 박사학위자들 모인 연구소나 관련 기관에서 강의한 경험을 미뤄볼 때, 공부를 어지간히 한 분이라도 수업에서 놀라고 가는 부분이 꽤나 될 것이다.

“업력 = 내공 = 나이”는 아니겠지만, Best proxy라고 했을 때, 필자보다 최소한 5-10년 정도는 윗 줄이신 분들도 그렇게 고개숙인 메일을 보내주신다. 그정도 되시는 분들도 남의 시간을 뺏는걸 미안해하는티가 나고, 어떻게 반대급부를 제시해야하는지 조심스레 타진을 하는데, 도대체 개발자들은 무슨 정신상태길래 저런 메일을 보내는 걸까?

내가 특별히 잘난 인간도 아니고, 사회적으로 성공하신 높은 직위에 앉으신 분한테 그런 공손함이 가득한 메일을 받으면 죄송스럽다. 그럼에도 회사 대표가 회사 이익에 도움이 되지 않는일을 하기가 어렵다고 거절을 하더라도 최대한 예의를 지키게 되는데, 저런 개발자들 메일 받고 예의를 지킬 수 있는 성인군자는 못 되는거 같다.

(Source: CommitStrip.com)

– 개발 방식의 If-Then으로 “인공지능”을 주장하는 허구에 대한 조롱

 

 

왜 그럴까? – 한국 IT업계의 수준이 낮아서?

건설현장의 노가다꾼이 설계도면 그리는 건축가한테 “설계도면 그리는 건축학 지식에 대한 올바른 인식이 필요해서 개인 인터뷰가 가능할지” 물어보면 건축가가 뭐라고 대답할까? 건축공학과 말고 건축학과 5년 학부 과정에서 배우는 내용이 물리학, 화학 같은 자연과학부터 미술, 조경같은 예술적인 내용까지 어마어마한 내용을 배우던데, 노가다 10년 출신이 벽지, 배관, 씽크대, 화장실 타일 공사 등등을 해 봤다면서 건축가랑 1-2시간 이야기하고나면 건축학에 대한 조예를 얻을 수 있을 것이라고 생각하면 뭐라고 해 줘야하나?

긴 고민 끝에 내린 결론이 나왔다. 우리나라 IT 회사들이 데이터 작업을 개발 경력과 동일시하는 멍청함을 보여주고 있기 때문이다. N모 게임 회사의 데이터 관련 부서는 부서장이 전직 개발자인데, 내세우는 경력이 어느 코딩 대회 우승이더라. 그리고 회사 안에서 “데이터 = 자신”이라는 명성을 긴 시간 쌓아올렸다고 하던데, 관계자들을 통해서 가만히 들어보면 여러방식으로 1차원적인 그래프 그려보고 고민하는 경영학과 애들 수준의 분석을 해 놓고는 그걸로 데이터에 대한 내공을 쌓아올렸다고 주장하고 있더라.

1차원에 살고 있다보니 2차원이나 3차원에서 일어나고 있는 일들을 전혀 이해 못하고, 그런 일을 시도할 수도 없는 문화가 조성된 상태가 계속되니 1차원 세계에서 간단하게 뚝딱뚝딱 코드쳐서 만들 수 있는 일들을 하는 개발자들에게 데이터 업무를 주고 있는 것이다. 그러니 1차원 사람들이 반응률 0.0x% 알고리즘에 머물고 있는 동안 3차원에 사는 사람들이 반응률이 1%가 넘는 알고리즘을 만들고 있는거다.

그런 프레임을 못 벗어나고 있으니 “Data Science라는 것도 코딩 들어가고 개발 비슷한 모양새인데, 저 사람이랑 1시간 정도 이야기해보면 쉽게 이해할 수 있는 거겠지”라는 사고에서 벗어나고 있질 못하는거 아닐까? 1시간 이야기할게 아니라 한 학기 동안 수학 + 통계학 고학년 전공 수업을 꽉꽉 채워서 듣고와도 힘들꺼라고 본다. Pabii의 데이터 사이언스 수업 수강생 분들은, (우리회사 직원들은 더더욱) 공감할 것이다.

좀 더 나아가면, 우리나라 IT업계 자체가 2000년대 초반에 컴퓨터 공학과 출신들이 간단한 아이디어를 “선점”하는 방식으로 사업 확장을 하는데서 한 발자국도 못 나가고 있다는 반증이라고도 볼 수 있다. 왜 실리콘 밸리와 큰 격차가 나고, 우리나라는 언제나 Follower 밖에 못하냐고? “연구”할 수 있는 능력, 기초 체력에 해당하는 자연과학 지식은 “이론적인 건 쓸데가 없다”는 식으로 철저하게 업무에서 배제하고, (베껴쓰기는 했지만) “하루만에 해냈다”고 칭찬하는 문화, 베껴쓰기 빨리하기를 권장하는 기업 문화가 그대로 유지되고 있기 때문이다. 구글이 2008년부터 도입했던 이미지 인식 기반의 검색기능을 2018년에 국내 최고 포털 서비스에서 겨우 시도하는게 딱 좋은 예시인 것 같다.

수업에 오는 IT업계 사람 비중, 개발자 비중이 대단히 낮은 이유도 마찬가지다. 코드 베끼기가 주 업무인 그 산업이 가장 지적인 도전의 수준이 낮기 때문이다. 정말 미안한 말이지만, 수업하고 난 다음에 받는 질문들을 보면 박사 학위자들 제외하고, 금융권에 계신 분들의 질문 수준이 제일 높다. 더 미안한 말인데, 컴공 출신들의 질문 수준보다 공대에서 경영학과라고 무시당하는 산공과, 문과라고 무시당하는 경제학과 출신들의 질문 수준이 훨씬 높고, 당연하겠지만 통계학과 출신들의 질문 수준이 더 높다. 가끔은 날카로워서 오싹했던 질문도 있었다. 지난 1년 반 동안 200명 정도의 학생을 최소 1달간 가르치면서 나온 stat이다. 수학 모르면 오지마라고 엄포를 놓았던 그 수업에서.

위의 설명이 틀렸다면 남는 답안은 한 가지 뿐이다. 사회성 결여 레벨 높다고 놀림 듣는 박사들보다 개발자들이 더 심하게 사회성이 결여된 집단이라는 답. 나는 잘났으니 니가 쓴 글 따위는 읽지 않고 니가 직접 시간을 내서 내 앞에서 설명해달라고 할 수 있다는 식의 갑질하는 메일 쓰고, 약속도 안 잡고 사무실에 무작정 쳐들어와서는 미팅을 요구하는 무례한 짓에 대한 다른 합리적인 설명이 있나?

 

나가며 – 적폐 Out

개발자들한테 정말 미안한데, 그냥 개발만 열심히 하셨으면 좋겠다. 코딩 실력만으로는 데이터 사이언스를 이해할 수 없다는 냉혹한 현실을 블로그 다른 글에서 여러번 목격할 수 있을 것이다. 한국의 강남, 판교의 현실이 미국의 실리콘 밸리나 영국의 City of London 수준으로 잘 훈련된 Data Scientist를 소화할 레벨이 아니라는건 알지만, 당신들이 Data Science 하겠다고 달려드는 걸 보면, 선형대수학 증명 하나 제대로 못하는 경영학과 친구들이 Finance 박사가겠다고 까불던 학부 4학년 시절이 오버랩된다. MIT 물리학 박사, 수학 박사 하고 난 다음에 Post-Doc 대신에 박사 하나 더 하겠다고 들어가야할만큼 수학적인 훈련에 대한 요구사항이 높던 Finance 박사에 경영학과 출신이고 증권사 2-3년 다녔다고, 수학은 몰라도 업계의 지식이 있다고 까불던 그 친구들 ㅋㅋㅋ

증권사가서 세일즈 or 주식 트레이딩이나 해라고 놀려줬던 그 경영학과 친구들이 증권사에서 이제 차장급, 팀장급 짬이 되어있는데, 한국 증권사들 수준이 10년전의 그것과 똑같음에 냉소를 짓고 있는 오늘의 내 모습이 10년 후에 한국의 IT업계를 바라보는 모습과 오버랩이 될지, 아니면 우리나라 IT업계가 정신을 차릴지는, 아이러니컬하게도 코더들이 Data Science 업계에서 얼마나 빨리 쫓겨나느냐에 달려있을 것 같다.

이걸 코딩이라고 생각하는 당신들, 미안하지만, 정말 미안하지만 당신들이 적폐다. 당신들이 쫓겨나야 한다.

앞으로 pabii 블로그 글 안 읽고 위의 저런 메일 쓰는 개발자들 있으면 RTFM과 이 글 링크만 보내준다.

 


우리회사 채용 공고는 항상 블로그 글을 읽고 감상 소감을 써 내라는 요구조건이 포함되어 있다. 당연하겠지만 감상 소감이 부실하면 면접 안 본다. 사람을 뽑겠다고 시간을 쓸 작정을 하고 있을 때도 블로그 글을 읽고, 회사의 성장 방향과 사업 내용, 회사 대표의 생각을 읽고 찾아오기를 요구하는데, 바쁜 사람한테 시간 내 달라고 요구하면서 정작 블로그 글 1-2개만 읽고 연락하는 무례한 분께 시간을 내 드릴 수 있을만큼 착한 사람은 못 되는 것 같다. 상대방에게 예의를 요구한다면 그만큼의 예의를 지켜주셨으면 한다.

몇 달전 어느 대기업 부장님께 회사 사업 모델을 설명 드리는 자리가 있었다.  Pabii 사업 모델에 주어진 도전을 크게 3가지로 구분할 수 있는데, 첫째는 스마트폰의 OS가 막아놓은 일부 정보를 불법적이지 않게 받아오는 개발자의 도전, 둘째는 그 데이터를 개인정보보호법에 저촉되지 않도록 가공처리한 후에도 타게팅 광고가 돌아가는 알고리즘에 대한 도전, 셋째는 우리 앱을 많이 설치하도록 유도하는 도전이다.

보통의 대기업 부장님과는 다르게 굉장히 뛰어난 직관으로 사업 모델을 빠르게 이해하셔서 참 반가웠는데, 앱 설치 유도하는 방법이 홈페이지에 올려놓은 “매달 5,000원 돌려준다”는 말이냐고 질문을 하시더라. 아무리 작은 스타트업이라도 관계자랑 만나는 자리니까 최대한 많은 정보를 습득하고 오신게 보여서 고마운 마음이 일었다. (하긴, 이렇게 작은 일에도 필요한 리서치를 다 하고 나타나는 비지니스 마인드를 갖춘 분이니까 대기업에서 부장까지 승진하실 수 있었을 것이다. 블로그 글 하나 대충 읽고 질문 메일이나 댓글 쓰는 사람들 피하고 이런 분과 사업 이야기만 하고 싶다.)

따라나오는 질문이, 그럼 혹시 코인으로 보상하는거냐고 질문하시던데, 기존의 포인트, 사이버 머니같은 방식으로 충분히 해결할 수 있는 문제를 굳이 코인으로 처리하려고 속도 & 확장성에 고민을 많이 담아야하는 블록체인에 의존할 필요가 없지않냐고 말씀드렸다.

재직하시는 대기업에서도 블록체인, 암호화폐에 대한 논의가 여러번 나왔는데, 굳이 블록체인이 아니더라도 대부분 구현이 가능한 사업 모델에 속도와 확장성, 장기간 관리에 이슈가 있는 블록체인을 강제로 도입할 필요가 있냐는 결론을 내리셨다는 말씀을 해 주시더라.

 

왜 블록체인이어야 하는가?

비트코인 가격 폭등 때문에 관심 집중의 대상이 되었다가, 버블 폭락 이후 코인 매니악들이 시장을 떠나면서 자연스레 Smart Contract로 관심이 이동하게 되었다. 더불어 블록체인으로 코인을 찍어내는데 초점을 맞출 것이 아니라, 블록체인이 뒤에서 작동하고 있는 사업모델이 나와야한다는 관점으로 시장 분위기가 바뀌고 있는 걸 감지할 수 있다.

요컨대, 블록체인”으로도” 할 수 있는 서비스가 아니라, 블록체인”이어야” 할 수 있는 서비스를 찾아내야 한다는게 요즘 트렌드라는데, 당장 눈에 띄는 사업은 2015년말에 필자가 처음 실리콘밸리에서 Job Interview를 다니던 무렵에 봤던 “은행 송금” 관련 서비스들이다.  다만 실물 화폐보다는 가상 화폐 송금쪽으로 서비스가 더 집중되어 있다. (ex. 비트베리) 더 나아가서 가상 화폐로 실물 상품을 결제할 수 있도록 해 주는 서비스도 나온다. (ex. 테라)

근데, 이런 서비스들은 지금까지 나와있는 “온라인 머니” or “포인트”들로도 다 할 수 있는 것들이었다. 도대체 블록체인으로 만들어놓은 플랫폼이라는 점을 제외하면 서비스 사용자 입장에서 뭐가 다를까? 실물 자산으로 결제할 수 있도록 해 주려면 실물 판매측에서는 현금으로 보상을 받기를 원할텐데, 또 거래량이 늘어나면 더 많은 코인을 찍어내야하고, 더더욱 실물 화폐로 된 준비금을 늘려야할텐데, 이런 간단한 경제학의 논리는 인지를 하고 있는걸까? 도대체 준비금은 어디서 더 채워넣을려고 하는거지? 더 코인을 발행해서 신규 자금을 모으겠다면, 발행 코인은 늘어나는데 준비금 관리에 쓰이는 인건비, 관리비 등의 현금 유출 때문에 준비금은 계속 감소하는 사태가 발생할 것이다. 정부 기관처럼 무슨 세금을 거둬들일 것도 아니고, 생태계를 구축하겠다는 사람들이 현금 유입될 구석은 다 마련해놓고 저런 서비스를 내놓는 걸까?

 

탈중앙화를 포기하는 블록체인 서비스들

카카오의 블록체인 연구개발 자회사인 그라운드X를 이끌고 있는 한재선 대표님이 카이스트에서 박사하시던 시절에 했던 프로젝트들을 보면 Byzantine Generals’ Problem (속칭 BGP)를 어떻게 풀어내는지에 대한 고민을 굉장히 많이 하신 분이라는 걸 알 수 있다. 다른 글에서 이미 언급했듯이, 블록체인이 탈중앙화를 선택한 탓에 검증이라는 걸 네트워크 구성원 모두에게 의지하는 방식으로 작동하는 구조다보니 BGP를 풀어내는 방식이 결국 블록체인의 검증 작업과 일치하는 측면이 있다. 고민하셨던 부분을 대단히 높게 평가하지만, (짝퉁) Game Theorist 입장에서 그 문제를 Incentive 문제로 풀려고하지않고, Mesh Network를 포기하는 형태로 접근하는게 너무 공학도스럽다고 슬쩍 어깃장을 놨던 기억이 난다.

스타트업들 투자하는 VC를 거쳐서, 국내 굴지의 IT회사 블록체인 팀 전체를 이끌고 계신 그 분의 요즘 언론 인터뷰를 보면, 코인 투기 이야기는 그만하고, 실제로 사람들이 쓸 수 있는 블록체인 앱이 나와야 한다는 사실을 인지하고 있는게 보인다. 참고로 블록체인을 활용한다는 앱들의 공식적인 명칭은 탈중앙화 앱 (Decentralized Application, DApp)이다.

카카오에서 내년에 출시한다는 블록체인 플랫폼 (클레이튼, Klaytn)을 보면, 속도를 위해서 탈중앙화 시스템, 즉 Mesh Network을 포기하겠다는게 확연히 드러난다.

한 대표는 현 시점에서 실사용되는 앱들이 나오기 위해서는 블록체인이 직면한 느린 처리 속도 문제를 해결해야 한다고 지적했다. 한 대표는 “파이널리티(최종완결성)가 부족하면 크리티컬한 서비스를 담기 힘들다”며 “클레이튼은 이를 1초 안팎으로 만들려 하고 있다”고 설명했다. 현재 비트코인 블록체인에서는 하나의 거래(transaction)이 성사되는데 10분이 걸리며, 거래 성사 이후에도 5개의 후속 블록생성 작업이 이뤄져야 되돌릴 수 없이 거래가 최종 완결된다. 하나의 거래가 최종완결 되려면 비트코인의 경우 1시간이 걸리는 셈인데, 클레이튼에서는 이를 1초 안팎으로 줄이겠다는 계획이다.

그는 이를 위해 클레이튼의 운영방식에서 탈중앙화라는 특징을 덜어내는 방식으로 속도를 강화하겠다는 구상을 밝혔다. 한 대표는 “노드를 하나 추가한다고 성능이 개선되지는 않고 가장 좋지 않은 노드에 성능이 고정되어버린다”라며 “클레이튼은 서로 다른 서비스를 일종의 샤딩인 서비스체인으로 분류해 병렬화하고 확장성을 높였다”고 말했다. 한 대표는 이런 맥락에서 “탈중앙화는 툴(tool)이지 목표가 아니다”라고 강조했다.  (서울경제, 2018년 9월 13일 기사)

구체적인 설계를 본 적이 없기 때문에 함부로 말할 단계는 아니지만, 아마도 Extended Star Network를 구성해서 결제 처리는 중앙화된 구조에서 진행하고, 사후에 정보만 중앙 밖에 있는 Node들에 전해주는 방식으로 블록체인 시스템을 운영할 것 같다. 서버간 정보 전송 속도라는 하드웨어적인 제한이 있는 상태에서 기술적으로 저 문제를 처리한다고 했을 때 다른 방법은 보이질 않는데, 나중에 시스템 설계가 공개되면 관심을 갖고 읽어보고 싶어지긴 한다.

만약 필자의 짐작이 맞다면, 블록체인 서비스, DApp이라고 이름은 달아놨지만 사실은 중앙집권화된 데이터 처리방식으로 앱을 만들고, 코인이라는 것도 중앙화된 구조를 유지하는데 필요한 블록 생성에 대한 대가로 지불될 것 같아 보인다.

결국, 이름만 바꾸고, 처리방식만 살짝 바꿨지, 사실은 예전의 포인트 시스템과 크게 다르지 않다는 뜻이다.

(추가: Pabii 수업을 몇번씩이나 듣고 가신 보안 전문가 분에 따르면, Private Blockchain이라고, 신뢰기관(Trust)를 여러개 두는 방식으로 해결한다는데, 결국은 “탈”중앙화를 포기하고 중앙을 여러개 두는 방식으로 실제 업무에 적용되는 타협점을 찾았다는 뜻이다. 암호처리하는 사람 입장에서 이러느니 차라리 “중앙화”된 시스템에서 암호 고도화를 시키는 쪽이 훨씬 더 나을 것 같단다. – 김승재님 감사드립니다)

 

포인트 시스템 vs. 블록체인 방식의 가상화폐 – 1.세금 & 2.거래소

Pabii앱을 설치해 Pabii에 더 많은 유저 데이터를 주는 분께 더 많은 보상을 돌려주는 보상형 광고 서비스를 설계하면서, 포인트 시스템을 운영할 때 사용자에게 돌려줄 수 있는 보상에 대한 여러가지 법적 제약들을 확인할 수 있었다. 당장 일정 금액 이상의 보상을 제공하면 소득세를 내야한다. 블록체인 기반의 “코인”으로 보상을 받으면, 그래서 그 코인으로 다른 실물 상품을 구매해도 현금 소득으로 잡히질 않았기 때문에 소득세를 내지 않아도 된다.

성인물 스타트업인 스팽크체인은 방송하는 BJ의 컨텐츠가 19금인 경우인데, 모델들이 스팽크체인에서 훨씬 더 고수익을 올리고 있다는 점을 들어 홍보를 한다. 다른 서비스들은 수수료를 30%, 40%씩 떼어가는데, 스팽크체인은 수수료가 5%란다. 거기다 수익을 전액 스팽크 코인으로 돌려주는데, 이 중 일부를 이용해 실물 상품을 구매하는데 활용한다는 내용을 볼 수 있었다. 저렇게 돈을 번 모델들은 그 코인으로 집세나 공과금을 낼 수 있으면 좋겠다는데, 만약 실물 화폐로 전환되는데 소득세를 걷게되면 과연 지금처럼 고수익을 올릴 수 있을까? 수수료를 5%만 떼어가도 회사가 유지될 수 있게 될까?

지금은 코인 구매하는 순간 모두 회사 수익으로 잡히고, 그 코인이 현금으로 환원될 때만 회사 지출로 잡는데 (보통은 안 해주지 않나…), 정부가 추적하고 세금을 매기려고하면 모델들에게 돌려주는 95%의 코인이 회사 지출로 잡혀야 한다. 최초 코인 판매할 때 거래 비용, 모델에게 지급하는 코인을 빼고나면 5% 수수료만 받다가는 적자가 생길게 뻔하다. (괜히 다른 서비스들이 수수료를 30%, ,40%씩 떼어가는게 아니다)

소득세를 비롯한 세제상의 제약, 법적인 제약과 더불어 포인트 시스템과 블록체인 방식의 가상화폐간 또 하나의 차이가 있다면 코인 거래소의 존재 유무다. 내가 번 코인을 실물 화폐로 바꾸기 위해서 거래소를 활용해야하기 때문이다. (발행한 회사들이 현금화 해주질 않으니까ㅋ) 근데, 거래소에서 코인 가격이 너무 많이 출렁거리는 탓에 얼마전 실리콘밸리에서는 StableCoin이라는, 일종의 헷지 상품 형태의 코인마저 출시되었다. 금융시장으로 치면 가치를 안전하게 보장해주는 금괴 같은 상품이라고 생각하면 이해하기 쉬울 것 같은데, 가치보장해주겠다던 StableCoin의 가격이 대폭락했던 탓에 큰 파장이 있었다.(The Economist지 기사 참조)

일반인이 주식거래로 번 소득에 바로 소득세를 적용하겠다고 말만 흘러나와도 주가는 대폭락하고, 거래량이 급감한다. 가상화폐 거래소들에도 분명히 같은 현상이 나타날 것이다.

회계사 분들께 질문한다. 사이버 머니나 블록체인 기반 가상화폐나 경제적 실체가 위와 같다면, 발행한 회사 입장에서는 부채 계정 중 하나인 이연 수익이나 무담보 채권 (Non-collateral debt)으로 보는게 맞지 않나? 일단 경제적 실체는 사이버 머니와 거의 같으니까 이연 수익이 맞을 것 같고, 회사가 당장 현금화 주질 않고 거래소가 존재하니까, 주식만 거래소 상장되는 것도 아니고, 어차피 채권도 거래소에서 거래되긴 되니까. (싱가폴 채권 거래소 참조. 물론 Off-the-run이면 거래하기 힘들긴 하겠지만)

근데 “블록체인 전문가”라는 사람들은 이걸 왜 주식발행처럼 자본금 계정에 포함시키려고 하는거지? 왜 암호화폐 발행해놓고 “자본금을 조달”했다고 하는거지? 그냥 채권발행 안 하고 돈 빌린거랑 똑같은거 아닌가?

 

(가상)화폐 생태계 조성

카카오의 클레이튼, 라인의 링크체인, 두나무의 루니버스 등 최근 디앱 개발에 필요한 네트워크 노드부터 코인발행까지 차근차근 메인넷 설계를 하고 있는 서비스들을 보면 우선 업무 협조를 할 회사들 리스트를 늘려서 내부적인 가상화폐 생태계를 조성하는데 힘을 기울이고 있다.

근데, 이걸 현금으로 바꿔서 결제할 수 있도록해주면 굳이 저런 가상화폐 생태계를 조성해야할 필요가 있을까?

현금은 정부가 보증하는 생태계, 모든 거래처에서 받아주는 생태계를 갖추고 있는데?

저런 가상화폐 생태계가 의미가 있을려면 그 코인이 정말 희귀해서 어마어마하게 큰 돈을 줘야하는 귀중품 자산이거나, 아니면 저 생태계 속에서는 세금이라는게 없어야한다.

얼마전 탈모로 고생하는 친구하나가 의사 처방없이도 치료약을 판매해주는 해외의 이더리움 결제 사이트를 썼던 이야기를 해 줬다. 그 웹사이트는 현금으로 결제가 이뤄졌을 때 기록이 남고, 법적 분쟁이 생기는 문제, 또 소득 신고 문제 및 소득세 회피 목적으로 가상화폐 결제를 유도했을 것이 틀림없다. 이런식의 불법 거래에 암호화폐가 얼마나 많이 쓰였으면, 일본 경찰청은 암호화폐 거래추적 프로그램을 개발하겠다고 나섰다.

카카오, 라인, 두나무 같은 업체가 발행하는 코인이 없어서 못 구하는 귀중품 자산도 아니고, 그런 대형 회사들이 기록이 남아 법적 분쟁이 생기는걸 회피하려는 이유도 없을테니, 남는 설명은 결국 소득세 회피다. 그 대형 IT회사들이 법인세를 내고 안 내고의 문제라기 보다는, 일반 서비스 이용자가 보상으로 받은 코인을 쓸 때 소득세를 회피할 수 있도록 해주는 구조가 바로 핵심이라는 뜻이다.

정부는 현금 화폐 경제에서 부가세들을 합산해 국가 GDP도 계산하고, 산업별 경제동향도 파악하고, 세금 정책, 지원 정책, 복지 정책들을 세운다. 근데 저런식의 가상화폐 생태계에서 부가세, 소득세도 제대로 추적하지 못하는 상황이 오면 정부는 손 놓고 가만히 있을까? 언제나 정부 무능론을 주장하는 시장주의자지만, 정부가 그정도로 멍청하지는 않다고 생각한다.

주식처럼 거래되지만 현실에서 상품 구매도 가능해서 실물화폐를 대체할 수 있는 화폐라고 암호화폐를 엄청 찍어놨는데, 국가 단위로 발행하는 화폐도 금본위 or 정부보증이 들어가는 판국에 보증하는 구석은 하나도 없이 “그냥 믿고 쓰시면 됩니다”는 공허한 메아리만으로 시스템이 돌아가도록 만들 수 있나? 이런거보면 블록체인에 매달리는 개발자들은 세상 돌아가는 이치를 모르는 철부지같다.

 

나가며 – 1인 미디어 시대의 명암

요즘 번화가를 가보면 카메라 하나를 들고 1인 미디어용 컨텐츠를 만드는, 이른바 “유투버”들을 흔히 볼 수 있다. 그들 중 일부는 월 수익이 수억이 넘는다고 하고, 자신만의 컨텐츠를 개발해 그런 방송을 찍는사람, 심지어는 그냥 잘생긴 얼굴만 보여주고 공부하는 모습만 보여줘서 스타덤에 오르는 사람들도 있다.

그런 사람들이 지금은 자기 컨텐츠를 제공한 대가로 수수료 일부를 플랫폼에 떼어주고 현금 수익을 얻고 있는데, 요즘 나오는 블록체인 쓴다는 사업 모델들이 딱 여기에 현금대신 코인을 준다는 사업 모델이다. (ex. 카카오의 클레이튼을 쓰는 COSMEE)

위에서 언급한대로, 그런 사업들에서 코인을 받는게 소득세 면세나 거래소 접근가능한 자산이라는 측면을 제외하고 도대체 무슨 이득이 있는지도 잘 모르겠고, 서비스 업체들이 블록체인 시스템 위에 저런 서비스를 구현하려고 고생하면서 내는 비용 대비 장점은 얼마나 되는지도 잘 모르겠다.

혹시 중앙서버 안 쓰고 저런 체인형 서버쓰면 보안상에 어마어마하게 큰 장점이 있나? 달리 뭔가 큰 장점이 있으면 좀 일침을 받고 싶다.

 

블록체인 시리즈

몇 달전 어느 대기업 부장님께 회사 사업 모델을 설명 드리는 자리가 있었다.  Pabii 사업 모델에 주어진 도전을 크게 3가지로 구분할 수 있는데, 첫째는 스마트폰의 OS가 막아놓은 일부 정보를 불법적이지 않게 받아오는 개발자의 도전, 둘째는 그 데이터를 개인정보보호법에 저촉되지 않도록 가공처리한 후에도 타게팅 광고가 돌아가는 알고리즘에 대한 도전, 셋째는 우리 앱을 많이 설치하도록 유도하는 도전이다.

그동안 만나뵈었던 대기업 부장님과는 다르게 굉장히 뛰어난 직관으로 사업 모델을 빠르게 이해하셔서 참 반가웠는데, 앱 설치 유도하는 방법이 Pabii 홈페이지에 올려놓은 “매달 5,000원 돌려준다”는 말이냐고 질문을 하시더라. 아무리 작은 스타트업이라도 관계자랑 만나는 자리니까 최대한 많은 정보를 습득하고 오신게 느껴져서 고마운 마음이 일었다. (하긴, 이렇게 작은 일에도 필요한 리서치를 다 하고 나타나는 비지니스 마인드를 갖춘 분이니까 대기업에서 부장까지 승진하실 수 있었을 것이다. 블로그 글 하나 대충 읽고 메일이나 댓글 쓰는 사람들과 참 대비되지 않나?)

따라나오는 질문이, 그럼 혹시 코인으로 보상하는거냐고 질문하시던데, 기존의 포인트, 사이버 머니같은 방식으로 충분히 해결할 수 있는 문제를 굳이 코인으로 처리하려고 속도 & 확장성에 고민을 많이 담아야하는 블록체인에 의존할 필요가 없지않냐고 말씀드렸다.

재직하시는 대기업에서도 블록체인, 암호화폐에 대한 논의가 여러번 나왔는데, 굳이 블록체인이 아니더라도 대부분 구현이 가능한 사업 모델에 속도와 확장성, 장기간 관리에 이슈가 있는 블록체인을 강제로 도입할 필요가 있냐는 결론을 내리셨다는 말씀을 해 주시더라.

 

굳이 블록체인이어야 할까?

비트코인 가격 폭등 때문에 관심 집중의 대상이 되었다가, 버블 폭락 이후 코인 매니악들이 시장을 떠나면서 자연스레 Smart Contract로 관심이 이동하게 되었다. 더불어 블록체인으로 코인을 찍어내는데 초점을 맞출 것이 아니라, 블록체인이 뒤에서 작동하고 있는 사업모델이 나와야한다는 관점으로 시장 분위기가 바뀌고 있는 걸 감지할 수 있다.

요컨대, 블록체인”으로도” 할 수 있는 서비스가 아니라, 블록체인”이어야” 할 수 있는 서비스를 찾아내야 한다는게 요즘 트렌드라는데, 당장 눈에 띄는 사업은 2015년말에 필자가 처음 실리콘밸리에서 Job Interview를 다니던 무렵에 봤던 “은행 송금” 관련 서비스들이다.  다만 실물 화폐보다는 가상 화폐 송금쪽으로 서비스가 더 집중되어 있다. (ex. 비트베리) 더 나아가서 가상 화폐로 실물 상품을 결제할 수 있도록 해 주는 서비스도 나온다. (ex. 테라)

근데, 이런 서비스들은 지금까지 나와있는 “온라인 머니” or “포인트”들로도 다 할 수 있는 것들이었다. 도대체 블록체인으로 만들어놓은 플랫폼이라는 점을 제외하면 서비스 사용자 입장에서 뭐가 다를까? 실물 자산으로 결제할 수 있도록 해 주려면 실물 판매측에서는 현금으로 보상을 받기를 원할텐데, 또 거래량이 늘어나면 더 많은 코인을 찍어내야하고, 더더욱 실물 화폐로 된 준비금을 늘려야할텐데, 이런 간단한 경제학의 논리는 인지를 하고 있는걸까? 도대체 준비금은 어디서 더 채워넣을려고 하는거지? 더 코인을 발행해서 신규 자금을 모으겠다면, 발행 코인은 늘어나는데 준비금 관리에 쓰이는 인건비, 관리비 등의 현금 유출 때문에 준비금은 계속 감소하는 사태가 발생할 것이다. 정부 기관처럼 무슨 세금을 거둬들일 것도 아니고, 생태계를 구축하겠다는 사람들이 현금 유입될 구석은 다 마련해놓고 저런 서비스를 내놓는 걸까?

 

탈중앙화를 포기하는 블록체인 서비스들

카카오의 블록체인 연구개발 자회사인 그라운드X를 이끌고 있는 한재선 대표님이 카이스트에서 박사하시던 시절에 했던 프로젝트들을 보면 Byzantine Generals’ Problem (속칭 BGP)를 어떻게 풀어내는지에 대한 고민을 굉장히 많이 하신 분이라는 걸 알 수 있다. 다른 글에서 이미 언급했듯이, 블록체인이 탈중앙화를 선택한 탓에 검증이라는 걸 네트워크 구성원 모두에게 의지하는 방식으로 작동하는 구조다보니 BGP를 풀어내는 방식이 결국 블록체인의 검증 작업과 일치하는 측면이 있다. 고민하셨던 부분을 대단히 높게 평가하지만, (짝퉁) Game Theorist 입장에서 그 문제를 Incentive 문제로 풀려고하지않고, Mesh Network를 포기하는 형태로 접근하는게 너무 공학도스럽다고 슬쩍 어깃장을 놨던 기억이 난다.

스타트업들 투자하는 VC를 거쳐서, 국내 굴지의 IT회사 블록체인 팀 전체를 이끌고 계신 그 분의 요즘 언론 인터뷰를 보면, 코인 투기 이야기는 그만하고, 실제로 사람들이 쓸 수 있는 블록체인 앱이 나와야 한다는 사실을 인지하고 있는게 보인다. 참고로 블록체인을 활용한다는 앱들의 공식적인 명칭은 탈중앙화 앱 (Decentralized Application, DApp)이다.

카카오에서 내년에 출시한다는 블록체인 플랫폼 (클레이튼, Klaytn)을 보면, 속도를 위해서 탈중앙화 시스템, 즉 Mesh Network을 포기하겠다는게 확연히 드러난다.

한 대표는 현 시점에서 실사용되는 앱들이 나오기 위해서는 블록체인이 직면한 느린 처리 속도 문제를 해결해야 한다고 지적했다. 한 대표는 “파이널리티(최종완결성)가 부족하면 크리티컬한 서비스를 담기 힘들다”며 “클레이튼은 이를 1초 안팎으로 만들려 하고 있다”고 설명했다. 현재 비트코인 블록체인에서는 하나의 거래(transaction)이 성사되는데 10분이 걸리며, 거래 성사 이후에도 5개의 후속 블록생성 작업이 이뤄져야 되돌릴 수 없이 거래가 최종 완결된다. 하나의 거래가 최종완결 되려면 비트코인의 경우 1시간이 걸리는 셈인데, 클레이튼에서는 이를 1초 안팎으로 줄이겠다는 계획이다.

그는 이를 위해 클레이튼의 운영방식에서 탈중앙화라는 특징을 덜어내는 방식으로 속도를 강화하겠다는 구상을 밝혔다. 한 대표는 “노드를 하나 추가한다고 성능이 개선되지는 않고 가장 좋지 않은 노드에 성능이 고정되어버린다”라며 “클레이튼은 서로 다른 서비스를 일종의 샤딩인 서비스체인으로 분류해 병렬화하고 확장성을 높였다”고 말했다. 한 대표는 이런 맥락에서 “탈중앙화는 툴(tool)이지 목표가 아니다”라고 강조했다.  (서울경제, 2018년 9월 13일 기사)

구체적인 설계를 본 적이 없기 때문에 함부로 말할 단계는 아니지만, 아마도 Extended Star Network를 구성해서 결제 처리는 중앙화된 구조에서 진행하고, 사후에 정보만 중앙 밖에 있는 Node들에 전해주는 방식으로 블록체인 시스템을 운영할 것 같다. 서버간 정보 전송 속도라는 하드웨어적인 제한이 있는 상태에서 기술적으로 저 문제를 처리한다고 했을 때 다른 방법은 보이질 않는데, 나중에 시스템 설계가 공개되면 관심을 갖고 읽어보고 싶어지긴 한다.

만약 필자의 짐작이 맞다면, 블록체인 서비스, DApp이라고 이름은 달아놨지만 사실은 중앙집권화된 데이터 처리방식으로 앱을 만들고, 코인이라는 것도 중앙화된 구조를 유지하는데 필요한 블록 생성에 대한 대가로 지불될 것 같아 보인다.

결국, 이름만 바꾸고, 처리방식만 살짝 바꿨지, 사실은 예전의 포인트 시스템과 크게 다르지 않다는 뜻이다.

(추가: Pabii 수업을 몇번씩이나 듣고 가신 보안 전문가 분에 따르면, Private Blockchain이라고, 신뢰기관(Trust)를 여러개 두는 방식으로 해결한다는데, 결국은 “탈”중앙화를 포기하고 중앙을 여러개 두는 방식으로 실제 업무에 적용되는 타협점을 찾았다는 뜻이다. 암호처리하는 사람 입장에서 이러느니 차라리 “중앙화”된 시스템에서 암호 고도화를 시키는 쪽이 훨씬 더 나을 것 같단다. – 김승재님 감사드립니다)

 

포인트 시스템 vs. 블록체인 방식의 가상화폐 – 1.세금 & 2.거래소

Pabii앱을 설치해 Pabii에 더 많은 유저 데이터를 주는 분께 더 많은 보상을 돌려주는 보상형 광고 서비스를 설계하면서, 포인트 시스템을 운영할 때 사용자에게 돌려줄 수 있는 보상에 대한 여러가지 법적 제약들을 확인할 수 있었다. 당장 일정 금액 이상의 보상을 제공하면 소득세를 내야한다. 블록체인 기반의 “코인”으로 보상을 받으면, 그래서 그 코인으로 다른 실물 상품을 구매해도 현금 소득으로 잡히질 않았기 때문에 소득세를 내지 않아도 된다.

성인물 스타트업인 스팽크체인은 방송하는 BJ의 컨텐츠가 19금인 경우인데, 모델들이 스팽크체인에서 훨씬 더 고수익을 올리고 있다는 점을 들어 홍보를 한다. 다른 서비스들은 수수료를 30%, 40%씩 떼어가는데, 스팽크체인은 수수료가 5%란다. 거기다 수익을 전액 스팽크 코인으로 돌려주는데, 이 중 일부를 이용해 실물 상품을 구매하는데 활용한다는 내용을 볼 수 있었다. 저렇게 돈을 번 모델들은 그 코인으로 집세나 공과금을 낼 수 있으면 좋겠다는데, 만약 실물 화폐로 전환되는데 소득세를 걷게되면 과연 지금처럼 고수익을 올릴 수 있을까? 수수료를 5%만 떼어가도 회사가 유지될 수 있게 될까?

지금은 코인 구매하는 순간 모두 회사 수익으로 잡히고, 그 코인이 현금으로 환원될 때만 회사 지출로 잡는데 (보통은 안 해주지 않나…), 정부가 추적하고 세금을 매기려고하면 모델들에게 돌려주는 95%의 코인이 회사 지출로 잡혀야 한다. 최초 코인 판매할 때 거래 비용, 모델에게 지급하는 코인을 빼고나면 5% 수수료만 받다가는 적자가 생길게 뻔하다. (괜히 다른 서비스들이 수수료를 30%, ,40%씩 떼어가는게 아니다)

소득세를 비롯한 세제상의 제약, 법적인 제약과 더불어 포인트 시스템과 블록체인 방식의 가상화폐간 또 하나의 차이가 있다면 코인 거래소의 존재 유무다. 내가 번 코인을 실물 화폐로 바꾸기 위해서 거래소를 활용해야하기 때문이다. (발행한 회사들이 현금화 해주질 않으니까ㅋ) 근데, 거래소에서 코인 가격이 너무 많이 출렁거리는 탓에 얼마전 실리콘밸리에서는 StableCoin이라는, 일종의 헷지 상품 형태의 코인마저 출시되었다. 금융시장으로 치면 가치를 안전하게 보장해주는 금괴 같은 상품이라고 생각하면 이해하기 쉬울 것 같은데, 가치보장해주겠다던 StableCoin의 가격이 대폭락했던 탓에 큰 파장이 있었다.(The Economist지 기사 참조)

일반인이 주식거래로 번 소득에 바로 소득세를 적용하겠다고 말만 흘러나와도 주가는 대폭락하고, 거래량이 급감한다. 가상화폐 거래소들에도 분명히 같은 현상이 나타날 것이다.

회계사 분들께 질문한다. 사이버 머니나 블록체인 기반 가상화폐나 경제적 실체가 위와 같다면, 발행한 회사 입장에서는 부채 계정 중 하나인 이연 수익이나 무담보 채권 (Non-collateral debt)으로 보는게 맞지 않나? 일단 경제적 실체는 사이버 머니와 거의 같으니까 이연 수익이 맞을 것 같고, 회사가 당장 현금화 주질 않고 거래소가 존재하니까, 주식만 거래소 상장되는 것도 아니고, 어차피 채권도 거래소에서 거래되긴 되니까. (싱가폴 채권 거래소 참조. 물론 Off-the-run이면 거래하기 힘들긴 하겠지만)

근데 “블록체인 전문가”라는 사람들은 이걸 왜 주식발행처럼 자본금 계정에 포함시키려고 하는거지? 왜 암호화폐 발행해놓고 “자본금을 조달”했다고 하는거지? 그냥 채권발행 안 하고 돈 빌린거랑 똑같은거 아닌가?

 

(가상)화폐 생태계 조성

카카오의 클레이튼, 라인의 링크체인, 두나무의 루니버스 등 최근 디앱 개발에 필요한 네트워크 노드부터 코인발행까지 차근차근 메인넷 설계를 하고 있는 서비스들을 보면 우선 업무 협조를 할 회사들 리스트를 늘려서 내부적인 가상화폐 생태계를 조성하는데 힘을 기울이고 있다.

근데, 이걸 현금으로 바꿔서 결제할 수 있도록해주면 굳이 저런 가상화폐 생태계를 조성해야할 필요가 있을까?

현금은 정부가 보증하는 생태계, 모든 거래처에서 받아주는 생태계를 갖추고 있는데?

저런 가상화폐 생태계가 의미가 있을려면 그 코인이 정말 희귀해서 어마어마하게 큰 돈을 줘야하는 귀중품 자산이거나, 아니면 저 생태계 속에서는 세금이라는게 없어야한다.

얼마전 탈모로 고생하는 친구하나가 의사 처방없이도 치료약을 판매해주는 해외의 이더리움 결제 사이트를 썼던 이야기를 해 줬다. 그 웹사이트는 현금으로 결제가 이뤄졌을 때 기록이 남고, 법적 분쟁이 생기는 문제, 또 소득 신고 문제 및 소득세 회피 목적으로 가상화폐 결제를 유도했을 것이 틀림없다. 이런식의 불법 거래에 암호화폐가 얼마나 많이 쓰였으면, 일본 경찰청은 암호화폐 거래추적 프로그램을 개발하겠다고 나섰다.

카카오, 라인, 두나무 같은 업체가 발행하는 코인이 없어서 못 구하는 귀중품 자산도 아니고, 그런 대형 회사들이 기록이 남아 법적 분쟁이 생기는걸 회피하려는 이유도 없을테니, 남는 설명은 결국 소득세 회피다. 그 대형 IT회사들이 법인세를 내고 안 내고의 문제라기 보다는, 일반 서비스 이용자가 보상으로 받은 코인을 쓸 때 소득세를 회피할 수 있도록 해주는 구조가 바로 핵심이라는 뜻이다.

정부는 현금 화폐 경제에서 부가세들을 합산해 국가 GDP도 계산하고, 산업별 경제동향도 파악하고, 세금 정책, 지원 정책, 복지 정책들을 세운다. 근데 저런식의 가상화폐 생태계에서 부가세, 소득세도 제대로 추적하지 못하는 상황이 오면 정부는 손 놓고 가만히 있을까? 언제나 정부 무능론을 주장하는 시장주의자지만, 정부가 그정도로 멍청하지는 않다고 생각한다.

주식처럼 거래되지만 현실에서 상품 구매도 가능해서 실물화폐를 대체할 수 있는 화폐라고 암호화폐를 엄청 찍어놨는데, 국가 단위로 발행하는 화폐도 금본위 or 정부보증이 들어가는 판국에 보증하는 구석은 하나도 없이 “그냥 믿고 쓰시면 됩니다”는 공허한 메아리만으로 시스템이 돌아가도록 만들 수 있나? 이런거보면 블록체인에 매달리는 개발자들은 세상 돌아가는 이치를 모르는 철부지같다.

 

나가며 – 1인 미디어 시대의 명암

요즘 번화가를 가보면 카메라 하나를 들고 1인 미디어용 컨텐츠를 만드는, 이른바 “유투버”들을 흔히 볼 수 있다. 그들 중 일부는 월 수익이 수억이 넘는다고 하고, 자신만의 컨텐츠를 개발해 그런 방송을 찍는사람, 심지어는 그냥 잘생긴 얼굴만 보여주고 공부하는 모습만 보여줘서 스타덤에 오르는 사람들도 있다.

그런 사람들이 지금은 자기 컨텐츠를 제공한 대가로 수수료 일부를 플랫폼에 떼어주고 현금 수익을 얻고 있는데, 요즘 나오는 블록체인 쓴다는 사업 모델들이 딱 여기에 현금대신 코인을 준다는 사업 모델이다. (ex. 카카오의 클레이튼을 쓰는 COSMEE)

위에서 언급한대로, 그런 사업들에서 코인을 받는게 소득세 면세나 거래소 접근가능한 자산이라는 측면을 제외하고 도대체 무슨 이득이 있는지도 잘 모르겠고, 서비스 업체들이 블록체인 시스템 위에 저런 서비스를 구현하려고 고생하면서 내는 비용 대비 장점은 얼마나 되는지도 잘 모르겠다.

혹시 중앙서버 안 쓰고 저런 체인형 서버쓰면 보안상에 어마어마하게 큰 장점이 있나? 달리 뭔가 큰 장점이 있으면 좀 일침을 받고 싶다.

 

블록체인 시리즈

비트코인 가격 (대)폭락으로 코인에 대한 일반 대중의 관심은 많이 시들해졌지만, 여전히 “차세대” 코인이라는 이더리움 (Ethereum) 류의 가상화폐에는 관심이 남아있는 걸 종종 보게 된다.

“앞으로 기술이 더 발전하면 나아지지 않을까?”

라는 뒷맛을 남기는 코멘트에는 언제나 이더리움이 등장하더라. 이더리움이 Smart Contract를 상징하는 대표 코인이라는 점을 미뤄볼 때, 슬슬 블록체인 Hype이 한풀 꺾이고, 요즘은 Smart Contract가 대세로 자리잡고 있는 것 같다.

(Source: SmartContract)

 

Smart Contract? 사실은 Dumb contract아닌가?

잠깐, 그전에 비트코인이 Smart Contract를 지원해주지 못하는 블록체인이었는지 확인하고 넘어가자. 아니 그 전에, Smart Contract라는게 뭔지, 정말로 Smart한 부분이 있어서 그런 표현을 쓰는건지 확인해보고 넘어가자.

Smart Contract란 블록체인 시리즈 초반부터 강조했던 “중간 매개체”가 없는 거래를 말한다. 엥? 그럼 비트코인도 같은 종류의 Smart Contract 지원하는거 아니냐고 반문할 수 있을 것이다. (실제로 Bitcoin의 Script는 Stacking 기반의 Smart contract 시스템 중의 초기 버젼이다.)

Bitcoin과 Ethereum의 가장 큰 차이점은 단순한 계약 (x원 송금, y 상품 수령)을 위한 Smart Contract인지, 좀 더 복잡한 계약을 위한 구성을 해 놨는지의 차이, 이걸 기록 & 처리하는 방식을 직선형 vs. 순환형으로 해 놓았는지다. 혹시나 Turing Complete이라는 표현을 들어봤는지 모르겠는데, 시스템의 계산이 자기 완결성을 갖는 구조 (고교 수학 개념을 빌리면 닫힌 집합)를 말하고, Ethereum의 순환형 기록 & 처리 방식이 처음과 끝을 연결하는 자기 완결성을 갖는 Turing Complete 구조를 갖는다.

(참고로 이미지 인식에 쓰는 CNN에서 GAN 시스템을 Turing Complete 구조를 갖는 시스템이라고 부르기도 한다.)

블록체인 작동 방식을 이해하고 보면 결국 어느 코인을 쓰건 Smart Contract를 지원하고 있고, Ethereum 같은 “차세대” 코인들은 거래를 기록 & 처리하는 구조가 약간 달라졌을 뿐, 본질적인 차이는 없다는 것을 알 수 있다.

왜 Dumb contract냐고? 단순한 계약밖에 못 처리하기 때문에? 복잡한 계약을 처리할 수 있다는 Ethereum은 진정한 “Smart” Contract 맞는거 아니냐고?

어떤 계약이 복잡하다는 것은 Uncertainty가 많다, 고려해야하는 경우의 수가 많다는 뜻이다. 금융시장에는 단순한 주식, 채권 거래 말고, 그런 기초 금융상품들이 특정 가격 조합일 때만 가치를 갖는 파생상품이라는 것들이 있고, 이런 파생 상품도 수많은 조합이 나오면서 거래 내용이 굉장히 복잡해질 수 있다. 비슷한 맥락의 복잡한 계약을 처리할 수 있다고 주장하는 것이 바로 Smart Contract의 핵심이다.

 

Smart Contract이 그렇게 어렵나?

세상의 어떤 실물 계산 시스템도 완벽하게 Turing Complete을 만족시키지 못한다. 단순 사칙 연산하는 계산기는 가능한거 아니냐고? 계산기의 메모리 사이즈를 넘어서는 숫자간 계산을 입력해보시라. 계산 결과에 에러가 나오면서 자기 완결성을 유지하는데 실패한다.

자, 이제 고려해야하는 경우의 수가 그렇게 많다는 Smart Contract들을 처리해준다는 Ethereum을 생각해보자. 단순 사칙연산도 10^n으로 큰 값이 되면 메모리가 작아서 문제가 되는 경우가 있는데, 복잡한 계약을 모두 Ethereum으로 처리할 수 있다고 확신하는건 도대체 무슨 근거에서일까? 예를 들어 Turing Complete으로 Smart Contract을 기록 & 처리하는 시스템을 카드 결제 승인 & 처리하는데 활용하겠다는 것은, 내가 짠 프로그램이 그 어떤 환경에서도 버그가 생기지 않고, 업데이트를 할 필요도 없고, 처리 속도도 굉장히 빠르다는 주장과 같다. (VISA 카드는 1,500만번 계산하는 동안 Ethereum은 15번…)

Ethereum의 (느린) 처리 속도에 대한 언급은 이전 글에서 했으니 패스하고, 복잡한 계약을 처리하는 프로그램이 bug-free라고 쉽게 단언할 수 있는 개발자 분 나와보시라. Bitcoin 방식의 단순 거래 기록 stack도, 소프트웨어적인 이슈가 아니더라도 하드웨어적으로 문제가 있을 가능성이 충분히 있는 판국인데, 더 복잡한 계약들을 처리하면서 Bug-free라고?

투자 건으로 변호사들을 만나보면, 경력, 실력, 내공에 따라 계약서의 급이 휙휙 달라지고, 완벽한 계약서 하나 쓰려면 오랜 세월의 내공이 필요한 걸 법알못인 필자도 느낄 수 있는데, 그런 복잡한 계약을 정리할 수 있다고 주장하는 컴퓨터 프로그램에 대한 신뢰도가 높아지려면 어떤 방식의 “머신러닝” or “인공지능”을 활용해야할까?

Bitcoin은 차라리 Turing Complete을 포기했기 때문에 쉽게 어떤 계약이었고, 어떤 문제가 있었는지 찾아볼 수 있다. 그러나 Ethereum은 외부인이 문제를 이해하고 조사할 수 있는 접근권이 Turing Complete 때문에 우선 배제된다. 하나하나 Stack 되어 있는 정보를 추적해서 누가 잘못된 정보를 입력했는지 볼 수 있도록 풀어놓은 시스템이 아니라, 처음과 끝이 일치하면 OK가 떨어지도록 해 놨기 때문에 외부인이 중간 확인을 하기가 어렵기 때문이다. 결국, Smart Contract을 쓰고 있는 당사자가 모든 위험 부담을 다 감수해야한다. 차라리 중간 매개체가 있어서 잘못될 가능성들을 잘 설명해주는 편이 더 좋지 않나?

(왠지 모든 보안 문제를 사용자에게 전가하는 한국의 금융기관들 같은 시스템이다….)

 

개발자들의 망상: 코드는 법이다 (Code is Law)

Ethereum의 Smart Contract 처리방식은 당사자가 모든 위험을 다 부담하는 방식이기 때문에, 제 3자가 절대 개입할 수 없다. 말을 바꾸면, 니가 코드 잘 못 쳤으면 다 니 책임이다는 뜻이다.

Decentralized Autonomous Organization (DAO)라는 Ethereum 투자 펀드가 만들어졌다. (이름에서 뽕맞고 헤롱헤롱하며 권위에 저항하는 집시 분위기의 캘리포니아와 자동화에 광적으로 집착하는 공학도의 만남이 느껴지지 않나? ㅋㅋ) 개인들에게서 Crowd funding으로 총 1억 5천만 달러에 육박하는 Ethereum 투자를 받은 DAO 펀드는 보안 미비와 해커들의 공격 때문에 결국 파산하게 된다. 근데, 처음에는 보안 설비 문제로 인한 해커들의 공격인줄 알았는데, 다시 보니 Smart Contract 기록 방식을 악용하는 사람들의 장난질 때문이었다.

결국 Ethereum은 “Code is Law” 정책을 포기하고 DAO 펀드를 청산하게 된다. 금융시장 용어로 정리하면, Smart Contract을 만들어내던 개발자가 시스템을 악용할 수 있는 여지를 남겨놓은 구조를 만들었고, DAO 펀드 투자자들이 내용도 이해못하고 묻지마 투자를 했기 때문에 대규모 손실이 발생했고, Ethereum이 직접 구제금융을 해 준 것과 같다.

(금융시장 개방할 수 있는 역량이 안 된다는 경고를 무시하고 WTO 가입을 위해서 억지로 시장 개방한 후, 외국의 투기 자금 때문에 자산 가격 일시 폭등이 일어나는 착시 효과에 속아서 저 이자율 단기채로 고 이자율 장기채를 갚고 Rolling 전략을 취했던 한국의 수준낮은 금융인력 덕분에 우리나라는 1997년 12월에 IMF에 구제금융을 신청하러 갔었다.)

이 사건 이후로 Ethereum 관련 개발자들은 Turing Complete에 대한 집착을 버렸다.  Turing Complete과 보안을 공존시키는 것이 매우 어렵다는 것을 깨달은 것이다.

(한국 금융시장도 1990년대 후반부터 복잡한 금융 상품을 이해하고 시스템 설계를 제대로 할 수 있는 인력을 뽑아야 한다는 사실을 인지하기 시작했다. 인지하고 실행으로 옮긴것같지는 않지만…)

 

Oracle Problem

별로 Smart 해 보이지는 않지만, 어쨌건 Smart Contract를 이용해서 단순한 100원짜리 상품말고 집 같은 대형 재산을 거래한다고 생각해보자. 비트코인 1,000개를 내고 강남에 있는 집을 한 채 구입했다고 하자. 보통은 집 판매자가 실제 집 소유주인지 확인하기 위해서 등기사항을 확인하고, 부동산 중개인이 여러가지 관련 서류들을 제공해주는 작업, 집 구매 후 신규 등기, 매각 후 양도소득세 신고, 거주지 이전 등등의 여러가지 작업을 다양한 종류의 “중간 매개체”와 진행하게 된다.

만약 이런 중간 매개체 없이 코인 1,000개로 집을 산다고 했을 때, 어떻게 계약의 확실성을 담보할 수 있을까? 코인 1,000개에 집의 로고를 그려놓은들 지금 거래되는 코인 1,000개가 집이라는 걸 확실하게 보증할 수 없다. 블록체인에서는 이런 문제를 Oracle problem이라고 부른다. 정말 그 코인이 집과 동등한 가치를 가진다는, 전자 상품에 대한 권리와 실제 상품에 대한 권리가 동등한 권리라는 담보가 없기 때문에, Oracle 이 아닌 이상 누가 알겠냐는 것이다.

이런 문제가 현실 집 거래에서도 나타나는 것 아니냐고? 사기꾼들이 돈 받고 도망가면 어떻게 잡냐, 중고나라 사기꾼들이 득시글한 것도 현실 화폐나 가상화폐가 모두 확증 담보가 불가능하다는 공통의 문제점 때문에 생기는 것 아니냐고 반문할 수 있다. 사소한 여러가지 차이가 있지만, 가장 큰 차이는 Central authority의 유무다. 정부, 경찰, 사법, 중간상인 등의 중간 매개체를 거칠 수 있고, 권리 침해에 대한 피해보상을 처리해주는 기관이 현실에는 엄연히 존재하지만, 가상화폐에는 존재하지 않는다. 애시당초 “Decentralized”가 핵심이었기 때문이다.

가상화폐 시장에서 사기꾼을 쫓아내기 위해서는 어쩔 수 없이 Central authority가 필요하다. 그런데, Central authority가 필요한 화폐는 이미 수백년, 수천년간 인류에게 잘 쓰이고 있다. Then, what good do you find in crypto currencies?

 

나가며 – 인지적 구두쇠 (Cognitive miser)

머신러닝 Hype, 딥러닝 Hype, 인공지능 Hype에 이어서, 블록체인 Hype, ICO Hype이 생기더니, 요즘은 Smart Contract Hype이 시장을 휩쓸고 있다. 그동안 데이터 사이언스는 통계학을 다른 방식으로 쓰는거라는 일관된 주장을 했던 것과 같은 맥락으로, Crypto currency는 결국 게임 머니에 불과하고, 블록체인은 Torrent 방식의 정보 저장 & 전달 체계에 지나지 않는다는 사실을 강조하고 싶다.

용어가 Hot하다는 이유로 잘 모르지만 입에 올리면서 자기가 Hip한 인간이라는 걸 강조하려는 사람도 많고, 잘 몰라서 괜히 움츠려들고 도망가는 사람도 많다. 또 버블을 만들어내서 “한탕”하자는 투기꾼들도 모여들고, 잘 모르지만 어쨌건 트렌드니까 이걸로 사업하겠다는 사람들도 부지기수다. 어떻게 하면 제대로 이해하고, 안 속으면서 살 수 있냐고? 묻기 전에 직접 공부하시는건 어떨까?

가능한 생각을 적게해서 신속하게 판단하려는 사람들을 ‘인지적 구두쇠’ (Cognitive miser)라고 한단다. 얼마나 게을렀으면 몸 움직이는 건 고사하고 생각도 안 하려고 하는 걸까? ICO하는 회사들의 백서 내용은 하나도 이해 못하고, 그냥 거기에 학벌 좋은 사람이 있다니까, 사람 얼굴 사진과 학벌만 믿고 투자하겠다는 ICO 매니악들 (or 벤쳐 캐피탈들)이 오버랩된다. 인지적 구두쇠의 투자는 도전도, 모험도 아니고 도박일 뿐이다. 뱅킹 시절, 사회 초년병이었던 필자의 눈에도 Super Mega Ultra 인지적 구두쇠로 보였던 이사님은 오래 못 버티고 쫓겨나시더라. ICO 매니악들이 판치는 한국 시장과 4차산업의 관계는 어떻게 될까?

루비니 NYU 교수가 이야기했듯이, 블록체인은 인류 역사에서 가장 과장된 쓸모없는 기술이었다.

 

블록체인 시리즈

언론사 기자 분이 취재 요청이 왔다. 요청 내용 중에 빅데이터 시대가 끝나고 스몰데이터 시대가 온다는 주장에 대한 코멘트를 해달라고 하시더라. 모르는건 모른다고 시원하게 지르고, 전화를 끊으면서 스몰데이터가 뭔지 구글링을 해 봤다. 이미 단순 대용량 데이터가 빅데이터가 아니라는 주장, 개인화 + 동적 데이터가 결합되어서 Multi-pattern을 추적할 수 있는 데이터일 때 “빅데이터”라는 Label을 붙일 수 있다는 주장을 했었던 만큼, 제대로 오지도 않았던 빅데이터 시대가 끝난다고 주장하는 건 또 무슨 소리일까, 이번엔 누가 스몰데이터라는 이름으로 대형 사기를 치고 있을까 궁금해졌다.

어느 백인 마케터 아저씨 한 분이 스몰데이터로 책을 냈는데, 레고가 망할뻔하다가 기사회생한 이유가, 레고 마니아 + 스케이트 보드 마니아인 소년이 가장 자랑하는 물건이 다 헤어진 신발이었다는 사실을 직접 미팅으로 알게 되었고, 덕분에 스케이트 보드 전문가가 되기 위해서 얼마나 노력을 많이 했는지 자랑할 수 있는 상징물을 찾아내는 관점으로 마케팅 전략을 변경했기 때문이라며 스몰데이터는 이런 데이터란다.

그 마케터 아저씨의 기준에 따르면, 빅데이터는 DB에 찍혀있고, 사무실에서 모니터 스크린으로만 보는 (별 쓸모없는) 데이터고, 스몰데이터는 직접 고객과 스킨쉽을 하면서 얻게되는 직감같은 (매우 중요한) 데이터일 것이다.

일단 빅데이터에 대한 정의를 제대로 모르니까, 반대 이름이라고 붙여놓은 스몰데이터에 대한 정의도 엉망으로 끼워넣어놨는데, 수학, 통계학은 커녕 IT의 기본도 모르는 전형적인 백인 마케터가 입으로 뭔가를 강조하려고 붙인 이름이라고 보면 된다. (이게 딱 경제학 하는 사람들이 사회학을 보는 관점이기도 하다.)

어그로성 Naming이 좀 불편하기는 하지만, 스몰데이터의 중요성을 주장하는 맥락들을 보면 왜 밖에 알려진 빅데이터라는 정의 (대용량, 빠른 속도…)가 잘못되었고, 필자가 정하는 정의 (Multi pattern, 개인화)가 좀 더 산업 연관도가 높은지 설명할 수 있을 것 같아 보인다.

 

1. Insight 가 풍부한 데이터

위의 레고 예제에서 다 헤어진 신발에 집착하는 어린 아이의 마음을 빅데이터에서는 찾을 수 없을 것이라고 하는게 스몰데이터의 논거일 것이다.

일단 여기서 2가지 포인트를 지적할 수 있는데, 1.정말 다 헤어진 신발에 집착하는 어린 아이의 마음을 DB에 기록된 데이터로 볼 수 없어서 직접 방문을 해야한다면, 그 방문 정보는 “데이터”인가? 그냥 인터뷰 정리자료 아닌가? 왜 “스몰”데이터라고 부르는거지?

2.빅데이터로 정말 그런 개인의 감정 정보를 찾는건 불가능할까? 빅데이터를 단순한 대용량 데이터, (단순 무식하게) 대형 Neural Net에 입력하면 뭔가 대단한 Insight가 툭 튀어나올 데이터라고만 생각했다면 불가능하게 보일 것이다.

근데, 그 어린아이가 다니는 (온라인) 쇼핑몰에서 모든 구매 데이터를 다 갖고 있으면 정말 그런 정보를 못 찾았을까? 스케이트 보드를 샀으면 신발을 교체하는 주기가 빨라질텐데, 안 빨라진 유저들 대부분은 스케이트 보드를 방치하는 사람들일 것이고, 그 소년처럼 스케이트 보드를 험하게 타고 있으면 유지 및 보수를 위한 여러 관리 제품을 사게 될 것이다. 그렇게 관리 제품을 계속 샀으면 분명히 신발을 교체해야할텐데, 왜 교체 안 하는걸까? 뭔가 이상하다고 판단할 수 있을만큼의 데이터가 쌓이지 않았을까?

물론 실생활에서는 구매하는 채널이 여러가지고, 소년의 부모님이 구매를 대신해주는 바람에 포괄적인 정보를 모으지 못할 수는 있다.

(같은 맥락으로 “스몰데이터”를 모으겠답시고 저런 방문 이벤트로 다 헤어진 신발을 애지중지하는 소년을 만날 수 있는 가능성은 얼마나 될까?)

요컨데, 데이터 베이스에 쌓여있는 빅데이터로는 못하는 작업이고, 실제 현장에서 고객의 소리를 들은 스몰데이터로는 얻을 수 있는 그런 정보는 아니라는 뜻이다. 굳이 따지자면 그런 Insight를 찾아내는 작업을 빅데이터로 훨씬 더 논리적으로 진행할 수 있다. 이전 글에 기업 강의 요청에서 겪는 답답한 점을 정리하면서 언급했던 온라인 쇼핑몰에서 빅데이터를 이용해 수요곡선을 정확하게 계산해낼 수 있는 예제가 딱 여기에 해당 될 수 있다.

본인이 실력이 없어서 빅데이터의 장점을 활용 못 해놓고, 모니터 속에서만  찾을 수 있는 데이터는 안 좋은 데이터라고 공격할 필요는 없지 않을까? 고객과의 만남 시간 잡고, 솔직한 이야기를 찾아 듣는게 얼마나 힘들고 돈이 많이 드는 일인지 겪어본 사업가라면 다 알꺼라고 생각한다.

 

2. 핵심적인 action을 찾아낼 수 있는 데이터

빅데이터가 쓸데없이 용량만 많고, 정작 중요한 정보는 거의 없다는 식의 폄하하는 발언도 봤었는데, 정말 그럴까?

빅데이터는 기본적으로 여러가지 행동 패턴 정보가 섞여있는 데이터 셋을 말한다. 스몰데이터가 어떤 데이터인지 모르겠지만, 정말 학교 교실에서나 만날 수 있는 그런 간단한 데이터라면, 그런 데이터를 다룰 수 있는 능력이 있어야 “빅”데이터도 다룰 수 있게 된다는 어느 통계 전문가의 이야기는 좋은 설명이라고 할 수 없다. 1개의 결과값에 이르는 K개의 다른 방식을 찾아내는 작업을 기존의 통계학에서 다루지 않기 때문이다.

통계학은 1개의 Action에 대한 설명에 초점이 맞춰져 있다. 그게 과거 데이터에서 R-squared 값을 구하는 작업이건, 미래에 대한 예측이건 상관없이.

빅데이터는 N개의 Action을 Chain으로 묶은 다음, 그 중 도달점이 같은 Chain들이 얼마나 자주 나타나는지를 쳐다보는 관점이다. 물론 데이터로 작업을 하고 있기 때문에 기본 통계학을 정확하게 알고 있어야하겠지만, 그와는 별개로 새로운 계산법을 새로운 철학으로 공부해야할 부분이 분명히 존재한다.

근데 빅데이터가 쓸모없다고 주장하려면, 그렇게 Chain으로 엮은 데이터가 아무런 쓸모가 없다는 결론이 났다고 주장해야지, 본인이 데이터 처리도 하지 않고 단순하게 아무 모델이나 넣어봤는데 잘 안 되더라는 이유를 들이대서는 안 되는거 아닐까? 애시당초 빅데이터의 정의를 제대로 알고 있었다면….

 

3. 기초 통계학이 중요하다는 데이터

위의 논리를 좀 더 확대해보자. 어느 블로그에서 만난 글인데, 미국내 대표적인 배달앱 면접 중에 그 회사 데이터를 받아서 이런저런 작업을 해 보는 경쟁을 붙었는데, 다른 면접자들은 별다른 생각없이 Random Forest 하나 돌려서 실패한 데이터 분석 작업에, 일부 지원자들은 Time Series decomposition을 해서 효과를 봤다는 이야기였다.

습관적으로 알고리즘을 대입하기만 하면 좋은 결과를 얻을 수 없다는 결론을 내면서 스몰데이터를 강조하던데, 필자의 관점으로는 스몰데이터를 이야기할게 아니라, 기초 통계학도 모르고, 데이터 전처리의 중요성도 모르고 Data Scientist 면접을 봤던 사람들을 놀리고 비웃고 무시하고 경멸해야되는 상황이 아닌가 싶다.

요즘이야 머신러닝 붐이 불어서 너도나도 (구시대적인 지식이라는) 통계학은 내팽겨치고 머신러닝 계산법(Random Forest도 그 중 하나)을 배우고 있지만, 필자처럼 통계학으로 첫 발을 뗀 사람 입장에서 Time Series decomposition은 꽤나 기초적인 영역에 속한다. 내 데이터가 Stationarity를 (최소한 Weakly Stationary를) 만족하는지 확인해보고, 그게 깨질 때 데이터를 필터링 해줘야한다는 건 시계열 수업 초반부에 만나는 지식이다. 필터링의 가장 기본이 Seasonal decomposition인데, 그걸 해볼 생각도 안 한 상태에서 바로 Random Forest를 쓸 생각을 했다는건 Data Scientist 자격이 없다고 봐야한다.

더 어이없는 사실은, Linear programming을 배우고 난 다음에 Non-linear programming을 배우는게 맞는 순서일텐데, Linear programming에서 좀 고급 지식에 해당하는 Time Series decomposition은 아예 모르는 상태에서 다음 레벨 지식인 Non-linear programming 중에서도 꽤나 높은 수준의 지식에 해당하는 Random Forest를 쓸 줄 안다(?)는 것이다. 머신러닝이라고 불리는 응용통계학 모델군은 모두 Non-linear programming 작업의 일환이라는 사실, 그런 작업에 적합한 데이터 그룹이 따로 정해져 있다는 사실, 그런 방법론을 이용하기 위해서는 통계학을 착실하게 다져야한다는 사실을 제대로 인지하지 못한채 80% 정확도, 90% 정확도, 95% 정확도 같은 숫자만 보는 아마추어이 회사 면접에 나타난다는 사실이 황당할 뿐이다.

사실 많은 (짝퉁) Data Scientist들, 특히 통계학 기초 실력 없이 그냥 Non-linear programming 모델들에 해당하는 머신러닝 테크닉 몇 개만 주워들은 수 많은 사람들이 위와 같은 문제점을 가진 채 일을 하고 있을 것이다. 글을 쓰던 중에 0~100 scale로 움직이는 종속변수(y)를 0~50으로 줄였더니 RMSE가 줄었다고 환호하는 대기업 Data Scientist의 질문도 받았다. y값 범위를 줄였으니 오차 크기도 당연히 줄어드는거 아닌가?? 그래도 지적해주니 바로 잘못을 인지하시는거보고 다행이라고 생각했었다. 경험상 그런걸 지적해줘도 모를 정도로 심각한 사람도 (대부분 “전산”직렬 사람들이다..) 국내 초일류 지식인 집단에서 Data Scientist 타이틀 달고 있는 경우가 널려있는 판국이니까….(Pabii 직원이었으면 그런 “아마추어” Data Scientist는 물론이고, 뽑은 부서장도 해고할꺼다.)

아마 제대로 훈련을 받은 Data Scientist에게는 “해보고 싶은게 너무 많아보이는” 데이터 셋을 들고 있는 많은 회사들이 “빅데이터 해봐야 소용없더라”는 이야기를 하는 가장 큰 이유는 그 회사에 재직 중인 Data Scientist들의 역량이 부족한 부분이 제일 클 것이다.

 

나가며 – 차라리 빅데이터를 제대로 정의하자

스몰데이터를 정의할 수 있는 여러가지 Context를 한번 정리해보자.

  • Insight 가득한 데이터,
  • 핵심적인 Action을 찾아낼 수 있다는 데이터,
  • 기초 통계학이 중요하다는 데이터

위에서 지적했듯이, 빅데이터에 대한 정의를 대용량에서 Multi-pattern을 담고 있는 개인 데이터의 집합으로 바꾸면 위의 맥락들은 모두 빅데이터에서 해결이 된다. 실제로 필자가 오랫동안 Pabii 블로그에서 주장해왔던 내용, 이런 데이터가 진짜 빅데이터라고 했던 그 내용이기 때문이다.

스몰데이터라는 새로운 컨셉이 나와서 그걸 또 배워야하는게 아니라, 기존의 빅데이터 활용한다는 Data Scientist들의 역량이 부족하기 때문에, 나아가 빅데이터라는 용어가 잘못 정의되어 있기 때문에 저런 비판이 나왔다고 생각된다. 데이터를 다루는데 통계학을 모른다는 것은 말이 안 되는 이야기인데도 불구하고 통계학은 구시대 기술이라고 폄하하면서 대충대충 배우는 사람들이 많지 않았다면 저런 이야기가 나올 이유가 없었을 것이다.

괜히 새로나온 컨셉이라고 쫄지말고, 지금처럼 통계학 공부만 착실하게 하시면 된다.