Disqus for rellat

릴랏 개발 강의 1: 시나리오 정보처리



안녕하세요. 이기준입니다. 릴랏 프로젝트를 성공적으로 시작해서 기쁘게 생각해요. 릴랏 페이스북 그룹에 수백 명이나 되는 많은 분들이 가입을 해주셨어요. "물 들어왔을 때 노를 저어라."는 말처럼 열심히 노 저을게요. 물론 많은 분들이 가입해주셨다는 것 때문에 제가 직접적인 이득을 얻지는 않아요. 호응을 해주셔서 기쁜 거죠.



지금 보고 계시는 문서는 릴랏 강의 문서에요. 이 문서에는 릴랏 프로젝트들의 진행상황이 정리되어서 보여지구요. 진행상황에 대한 쉬운 해설과 강의가 들어 있어요. 저는 이런 릴랏 강의 문서를  48시간마다 한 번씩 포스트 할 거에요. 이틀에 한 번씩 올리는 거죠.


만약 릴랏 강의가 안 올라오면 제가 그 시간에 "이기준의 연역론" 관련 글을 쓴다고 보면 되요. 지금까지 꾸준히 제가 쓰는 글을 지켜보신 분은 알 수 있듯이 제가 쓰는 글들은 내용이 시리즈가 되어서 서로 연결되요. 그래서 제가 다른 글을 쓰더라도 릴랏 프로젝트를 미루어 놓고 완전히 다른 일을 하는 것은 아니에요. 예를 들어 연역론 블로그에서 이론적으로 설명하는 글을 먼저 쓰고 나서 구체적인 릴랏 강의를 해야겠다고 판단을 하면 그렇게 하는 거죠.


릴랏 프로젝트의 히스토리 맵

그러면 릴랏 프로젝트의 시간 순서를 정리해 볼게요. 이 단락은 릴랏 강의 시리즈를 쓸 때마다 계속 갱신하면서 덧붙일 거에요.


    1. 딥러닝 관련 글. 소프트웨어 연구 개발 방법론을 언급했다.
      1. 영어 버전
    1. 위 글의 쉬운 버전. 미국 생활을 언급했다.
    1. 사람들에게 질문 받은 것을 모아서 한 편의 글로 정리함. 여기서 처음 릴랏 프로젝트를 제안했다.
    2. 이 글을 읽고 많은 사람들이 릴랏 페이스북 그룹에 가입함.
    1. 릴랏을 정식으로 소개하는 글을 씀. 릴랏 스케치와 서비스 구상을 구체적으로 소개함.
      1. 영어 버전
    1. 취업자가 아니라 창업자의 입장에서 써봄. 릴랏 프로젝트를 창업 프로젝트의 예시로 듬.


이렇게 해서 이번 글에서는 실제로 릴랏 프로젝트가 어떻게 진행되었고 그 과정에서 어떻게 정보처리가 이루어졌는지 강의를 하도록 할게요.


페이스북 릴랏 영어 그룹

릴랏 영어 블로그에 포스트를 올리고 페이스북에 Rellat English group을 새로 만들었어요. 지금까지 운영하던 그룹은 이름을 Rellat Korean group으로 바꾸었어요.


앞으로 저는 시간 나는 대로 제가 쓰는 글들을 다른 외국어들로 번역할 생각이에요. 30개 언어로 런칭하는 것을 목표로 하고 있어요. 언어 사용자 목록 - 위키백과


깃허브 등록

릴랏 깃허브 저장소를 만들었어요. 이제 릴랏 프로젝트가 진행이 되어서 마일스톤이 만들어질 때마다 업로드 할 거에요.
마일스톤은 이정표라는 뜻이죠. 쉽게 말해서 우리가 개발을 하다가 "이 정도 개발했으니 업로드를 한 번 하는게 좋겠다." 싶을 때마다 할 거라는 뜻이에요.


주로 중요한 부분적인 작업을 끝마쳤을 때 업로드가 이루어지게 될 거에요. 그리고 실행이 가능한 버전이 생겼을 때에도 하구요. 제 예상에는 평균 일주일에 한 번씩 하게 될 것 같아요. 지금 현재는 릴랏 깃허브 저장소에 아무것도 안 올라가 있어요.


코딩 협업 프로그램 선정

협업 프로그램은 codeanywhere로 선정했어요. 가입은 페이스북, 구글, 깃허브 아이디 등으로 쉽게 할 수 있어요. codeanywhere를 사용해서 프로젝트의 진행상황을 실시간으로 들어와서 볼 수 있어요.


만약 링크를 타고 가서 페이지가 제대로 열리지 않으면 새로고침을 한두 번 해보세요. 그러면 잘 열려요.




우리는 시장에 출시되어 있는 몇 개의 코딩 협업 프로그램을 분석하는 과정을 가졌어요. 그렇게 해서 기능들을 비교한 다음 선택했어요. Rellat과 유사한 서비스 리서치


우리가 codeanywhere를 선택한 최종적인 판단 기준은 이랬어요.
  1. 무료다.
  2. 전체 평가 기준에서 상위에 해당한다.
  3. 페이스북, 구글, 깃허브 아이디로 가입이 가능하다.
  4. 아마존에 합병되어 있어서 앞으로 서비스가 망하고 갑자기 정지할 가능성이 낮다.


이렇게 해서 우리는 codeanywhere를 당분간 사용할 거에요. 그러다가 릴랏이 정식 출시되면 릴랏에서 프로젝트를 이어갈 거에요.


codeanywhere 사용 관련 공지 드릴게요.
제가 확인을 해보았더니 현재 codeanywhere에서 Rellat 프로젝트에 공유 상태가 "Anyone can see"로 되어 있는데 실제로는 제대로 작동이 안되는 문제가 있어요. codeanywhere 서비스의 자체적인 문제로 보여요.
대신 이메일 주소로 초대하면 문제 없이 접속이 되는 것으로 보여요. 접속을 원하시는 분들은 릴랏 페이스북 그룹에 오셔서 이메일 주소를 남겨 주세요. 초대해 드릴게요.


코딩 협업 프로그램 변경 안내 - 2017년 2월 7일
우리가 집에 24시간 돌아가는 서버를 한 개 열었어요. "Cloud9"이라는 오픈소스 서비스를 이용했어요. 여기로 접속하세요. ide.rellat.com




여기에 접속하면 코딩 동시 협업을 언제나 마음껏 할 수 있어요. 심지어 로그인도 필요 없죠. 제가 릴랏 시작하면서 한 번 겪어 보니까 이렇게 해보는 것이 낫다는 생각이 들었어요. 로그인과 권한 때문에 사람들이 불편해 하는 것을 보았거든요.
로그인 없이 열람 가능하고, 수정도 가능해요.


혹시나 완전개방으로 로그인 없이 수정을 할 수 있게 한 것에 대해서 걱정을 하실까봐 말씀드릴게요. 저는 님들에게 더 많은 자율권을 주고 신뢰하는 것이 우리가 진행하는 릴랏 프로젝트가 발전하는 방향이라고 생각해요.
이기환님이 "ide.rellat.com" 관리를 하니까요. 궁금한 것이 있으면 이기환님에게 메세지를 주세요. 그룹에서 글을 써서 물어보셔도 되구요.


깃허브와 코딩 협업 프로그램의 차이

쉽게 예를 들어서 설명을 해볼게요. 우리가 릴랏 프로젝트와 공개 스터디 프로젝트를 시작했어요. 이 프로젝트는 기차에요.


그리고 이 기차는 실시간으로 달려요. 이 기차가 달리는 기찻길이 있죠. 이 기찻길은 codeanywhere같은 코딩 협업 프로그램이에요. 여기서 작업을 한 만큼 기차가 앞으로 전진하는 거에요.




그렇게 해서 기차가 달리다 보면 한 번씩 기차역에 들러서 쉬어요. 이 기차역이 바로 깃허브에요. 기차가 여기에 잠시 멈춰 서서 그동한 작업한 소스코드를 저장하는 거죠.




어때요? 쉽게 이해가 되죠? 그래서 이 관계를 그림으로 그려서 나타낼 수 있어요.




그림을 보고 다시 한 번 정리해 보아요.
  1. 우리가 앞으로 진행할 릴랏 프로젝트, 그외 공개 스터디 프로젝트는 기차에 해당한다.
    1. 기차가 도달할 목적지는 프로젝트의 성공을 의미한다.
  2. codeanywhere같은 코딩 협업 프로그램은 기찻길에 해당한다. 실시간으로 기차가 달리는데 사용한다.
    1. 작업을 하는 만큼 기차가 앞으로 전진한다.
  3. 깃허브 저장소는 마일스톤(이정표), 정거장 역할을 한다. 한 번씩 그동안 작업한 것을 저장한다.


제가 이렇게 쉽게 설명을 하는 이유는 이제 초등학교 들어가는 제 딸들에게 이야기를 들려줄 때 이해를 잘할 수 있게 하려고 했기 때문이에요. 저는 그런 마음가짐으로 여러분들에게도 설명을 하고 있어요. 그리고 제가 그렇게 할 수 있다면 아마 다른 사람들이 이해하는 데에도 분명 도움이 되겠죠? 나름 수신제가 치국평천하 개념인거죠.


생산성의 개념

아래 내용을 더 설명하기 전에 제가 먼저 배경 개념을 강의하도록 할게요. 생산성은 무엇일까요? 어떻게 하면 생산성을 높일 수 있을까요? 님들이 알고 있는 생산성이란 무엇인가요?


흔히 이 세상 사람들은 생산성을 "노력을 많이 하는 것"이나 "결과가 양적으로 질적으로 잘나온 것"으로 생각해요. 그런데 과연 그럴까요? 한 번 예를 들어서 알아보아요.




자, 님이 군대를 육군으로 갔어요. 행보관이 시켜서 대대 병력 전체가 하루 종일 삽질을 했어요. 수백 명이 삽질을 해서 작은 언덕을 평평하게 만들고 참호 구덩이를 팠어요. 이것은 생산적인가요? 아직 긴가민가하죠? 그럼 이제 비교 예시를 한 개 만들어서 비교를 해볼게요.




님 부대 대대장이 파워가 좀 있어서 위에 처럼 생긴 미니 포크레인 한 대를 어디서 빌려왔어요. 저거를 이용해서 대대 전체가 하루 종일 삽질해서 처리할 일을 4시간 동안 해서 끝냈어요. 장병들은 그동안 족구도 하고 장기자랑도 하면서 널널하게 보냈어요.


비교를 해봐요.
  1. 대대 전체가 삽질을 한 경우
  2. 미니 포크레인을 사용해서 일을 처리한 경우


어느 쪽이 더 생산적이었나요? 답은 2번이죠. 군대 갔다 온 사람은 다 알고 있어요. 사람 수백 명이 삽질하는 것보다 저렇게 생긴 미니 포크레인 한 대가 더 일을 많이 한다는 것을요.


자 여기서 교훈은 뭘까요?
  1. 생산성의 개념은 상대적이다. 케이스, 경우를 비교해 보아야만 알 수 있다.
    1. 앞으로 님들이 배울 모든 개념이 이 상대성을 기반으로 하고 있다.
  2. 생산성은 개인이 느끼는 노력의 정도, 소모한 시간의 정도로 판단하는 것이 아니다. 즉 주관적인 느낌으로 판단하는 것이 아니다.
  3. 생산성은 같은 일을 얼마나 효과적으로, 효율적으로 처리했느냐 하는 정도를 표현하는 말이다.


자 그럼 다시 군대 얘기로 돌아가 볼게요. 군대를 가면 이상한 현상을 볼 때가 있어요. 땅을 파라고 해서 열심히 팠더니 며칠 후에 다시 그 판 곳을 도로 메우라는 일이 대표적이죠. 비슷한 사례로 잔디를 심으라고 해서 열심히 심었더니 며칠 후에 다시 그걸 다 갈아 엎으라고 하는 경우가 있어요.


"아니, 이런 의미 없는 헛짓거리를 왜 하는 걸까?" 그러게요. 왜 하는 걸까요? 그 이유는 군 간부의 업무 보고서에 쓸 실적 때문이에요. 실제 현실에서 일어난 일은 땅을 팠다가 도로 메운 병신짓인데 업무 보고서에는 총 길이 1천 미터짜리 참호를 파고, 작전에 방해되는 지형 1천 제곱미터를 관리했다고 기록하는 거죠. 쉽게 말해서 서류에다 구라를 까는 거에요.


이런 비슷한 일이 공산주의 체제의 소련에서도 일어났어요. 소련 시절 공장 책임자는 공산당에서 할당한 제품 생산량을 맞추려고 제품을 수백 개 조립해서 만들었다가, 그걸 다시 분해했다가, 다시 조립하는 이상한 짓을 반복했어요. 그렇게 헛짓거리를 해서 서류에는 생산 실적을 수천 개로 기입하는 거죠. 감독관이 와서 공장을 시찰할 때도 "음, 다들 열심히 하고 있구만."하고 흐뭇해(?)하면서 돌아가구요. 군대에서도 그렇게 하잖아요.




보니까 막 가슴이 답답해지죠? 이런 일이 회사에서는 안 일어날까요? 일어나요. 미국에서도 일어나고 한국에서도 일어나요. 차이점이 있다면 상대적으로 미국회사는 덜 일어나고, 한국회사는 더 많이 일어난다는 차이가 있죠.


회사에 들어가도 이 삽질은 계속 이어져요. 한국 회사에서는 파벌이 있어서 각 파벌에서 서로 자기편 기획안을 승인받으려고 밀고 당기기를 심하게 해요. 그렇게 해서 이긴 파벌의 기획안이 통과되면 이제 밑에서 일하는 사람들은 저 위에 군대 이야기처럼 열심히 파라면 파고, 메우라면 메워야 해요. 이 프로젝트를 왜 하는지, 어떻게 하면 더 좋을지 생각하면서 하는 일이 거의 없죠. 열심히 일하면 그 일의 성과는 파벌 상급자의 실적으로 기록되구요. 망하면 줄서기 잘못한 부장 과장 모가지만 날아가는 거죠.


그러면 군대와 회사의 차이점은 무엇일까요? 별 차이 없어요.
회사는 저렇게 병신짓을 계속하면 손해를 보고 부도가 나죠. 군대는 어떻게 될까요? 군대 부패로 유명한 것이 방산비리가 있죠. 군대는 정부에요. 정부가 부패하면 그 과정에서 적자가 누적되어서 나중에 정부가 부도나요. 우리는 이미 IMF로 겪어봤어요.




위에 얘기한 소련 역시 저런 부패한 짓을 하다가 경제 부담이 가중되어서 국가부도를 겪었어요. 이게 옛날 얘기만은 아니에요. 우리나라는 21세기 현재에도 4대강 사업 같은 삽질을 계속 하고 있어요. 그러면 재정적자가 누적되어서 국가 부도 위기가 와요. 그 피해를 다음 정부가 뒤집어 써요.


군대에는 삽질 말고도 다른 웃기는 얘기 하나가 전해 와요. 한 소대장이 장병들을 데리고 고지 탐색을 나갔는데요. 1시간 동안 숨을 헐떡이면서 정상에 도착했대요. 그런데 소대장이 지도를 살펴보고 망원경으로 두리번거리더니 이렇게 말했다고 하네요. "어.. 이 산이 아닌가벼?"




자, 그러면 우리는 어떻게 하면 이런 삽질을 상대적으로 조금이라도 줄일 수 있을까요? 어떻게 하면 미래의 위험을 대비할 수 있을까요? 어떻게 하면 적재적소에 필요한 만큼만 노력을 들여서 효과적인 일을 할 수 있을까요?


시나리오 정보처리

질문을 해볼게요. 내가 구상한 것은 현실인가요? 답은 쉬워요. 현실이 아니에요. 내가 생각한 것과 상상한 것은 현실이 아니에요. 여기에 대한 보충설명은 이기준 이기환의 딥러닝 연구 글에서 "인지, 기억, 상상에 대한 연역론의 견해" 단락을 읽어보세요.  




사업 뿐만 아니라 인간이 행하는 모든 일은 현실이 아닌 상상을 현실로 만들어 가는 작업이에요. 이것이 실천이고, 상상을 현실로 만들어 내는 능력이 실천능력이에요. 그리고 상상력과 실천능력을 통틀어서 "창의력과 창조력"이라고 하죠. 창의와 창조는 같은 뜻이에요.




일을 할 때 흐뭇한 마음에 도취되어서 장밋빛 구상을 한 다음 그것이 무조건 될 것이라고 맹목적으로 믿으면 안되요. 혹은 "무조건 하면 된다."는 생각으로 몰아붙이듯이 일을 하면 안되요. 그러면 나중에 많은 시간과 자원을 많이 낭비하고 나서 "이 산이 아닌가벼?" 하게 되요.


감정은 명상과 내면관찰을 해서 차분하고 평온하게 만든 다음 일에 대해서는 냉정한 평가를 해야 해요. 그렇다면 평가는 어떻게 해야 하는 것일까요? 이렇게 하면 되요. 일을 두 개 이상의 경우로 만들어 봐요.


  1. 성공하는 경우
  2. 망하는 경우
  3. 더 나은 경우
  4. 덜 나은 경우


이 경우들에는 구체적인 사건의 흐름이 과정으로 있어야 되요. 쉽게 말해서 이렇게 저렇게 해서 성공하는 경우, 이렇게 저렇게 해서 망하는 경우같이 사건의 흐름, 즉 스토리가 있어야 되요. 이렇게 내부에 스토리 과정을 가지고 있는 경우(case)를 시나리오라고 해요.


이 여러 가지 시나리오들을 놓고 비교를 해서 비슷한 점과 다른 점을 찾아내요. 왜, 어떻게 그렇게 되는지 영향을 미치는 점을 찾아 내야 해요. 그렇게 해서 알아낸 특징을 조립해서 더 성공하는 경우, 더 나은 경우로 가도록 정보처리를 해야 해요.


여러가지 시나리오들을 트리로 만들어서 가지를 쳐서 비교해 보아야 해요. 그렇게 해서 여러 개의 시나리오, 즉 다차원 시나리오를 비교 분석하는 거에요. 왜 다차원이라고 할까요? 한 개의 시나리오가 한 개의 시간 흐름을 가지고 있기 때문이에요. 그래서 여러 개의 시나리오를 비교하면 여러 개의 시간 차원, 즉 다차원 시나리오를 비교하게 되는 거죠.




아직 긴가민가 하시죠? 그래서 이번에는 구체적인 예를 들어볼게요. 릴랏을 예로 들어보죠.
제가 릴랏을 구상했어요. 이것은 상상이죠. 현실이 아니에요. 저는 이 상상을 절대적으로 믿지 않아요. 상상한 것을 절대적으로 믿고 바로 실행을 하면 삽질을 하게 될 확률이 커요. 그래서 저는 상상을 몇 개 더 해서 비교하는 시간을 가졌어요. 상상을 스토리 과정을 가진 시나리오로 만들어서 비슷한 점과 다른 점을 찾아내고 그것을 조립하는 시간을 가졌어요.


저는 처음에 이렇게 생각했어요. "아, 사람들이 프로그래밍을 잘하는 방법을 쉬운 말로 가르쳐 줘도 자꾸 물어보는구나. 그러면 내가 직접 코드를 쳐서 보여주면 좀 나으려나." 그래서 저는 맨 처음에는 동영상 강의를 하는 시나리오를 상상해 보았어요. 그런 다음 동영상 강의를 하는 시나리오와 비교할 다른 시나리오 한 개를 만들어 보았어요. 그것은 코딩 협업 프로그램에 사람들을 초대해서 코딩을 하는 것을 보여주고 어느 정도 이해가 된 사람에게는 참여하는 기회를 주는 것이었어요.


  1. 동영상 강의를 해서 코딩을 하는 것을 보여준다.
    1. 이것이 최초 아이디어다.
    2. 보여주는 효과가 있다.
  2. 코딩 협업 프로그램에 사람들을 초대해서 코딩하는 것을 보여주고 참여하게 해준다.
    1. 이것이 비교 아이디어다.
    2. 보여주는 효과가 있다.
    3. 참여를 하면 직접 체험을 하는 효과가 있다.


비교를 해서 무엇을 알아 냈을까요? 사람들에게 직접 참여할 수 있게 하는 것이 상대적으로 더 교육효과가 있다는 것을 알아내게 되었어요. 이것이 바로 두 개의 시나리오를 비교하면 알아낼 수 있는 차이점이에요. 비슷한 점은 무엇이었나요? 비슷한점은 두 가지 경우 모두 코딩을 하는 것을 보여주는 효과가 있다는 것이었어요.




그러나 코딩 협업 프로그램 시나리오는 단점도 있었어요. 그것은 제가 접속해서 작업을 할 때는 보여줄 수 있지만 제가 접속을 안 할 때는 보여줄 수 없다는 것이었어요. 라이브 생방송이 가진 특징과 같았어요. 그래서 저는 시나리오 두 개의 닮은 점과 다른 점을 조립해서 절충안을 만들었어요.


  1. 코딩 협업 프로그램에 사람들을 초대해서 코딩하는 것을 보여주고 참여하게 해준다.
    1. 실시간 관람과 참여를 못한 사람들을 위해서 동영상 강의를 만들어서 유튜브에 올려서 보여준다.


어때요? 위에 시나리오 둘 중에 한 개만 택해서 하는 것과 비교하면 단점이 보강되어서 더 탄탄한 시나리오가 되었죠? 이제 저는 이 시나리오를 진행하려고 리서치를 좀 했어요. 코딩 협업 프로그램을 알아보았어요. 그러면서 질문을 해서 이런 비교를 해보게 되었어요. "코딩 협업 프로그램에 위키백과같은 기능이 있으면 도움이 될까?"






  1. 코딩 협업 프로그램에 위키백과 기능이 없는 경우
    1. 현재 업계 상황이 그렇다.
    2. 프로젝트를 열어 놓는 동안은 협업이 가능한데 프로젝트를 종료하고 나면 사람들이 더 이상 실시간으로 참여하지 못한다.
    3. 불특정 다수의 사람들에게 더 나은 코드에 대한 제안을 받을 수 없다. 서로 아는 사람들끼리만 협업을 한다.
  2. 코딩 협업 프로그램에 위키백과 기능이 있는 경우
    1. 위키백과처럼 운영하면 프로젝트가 끝나도 그 프로젝트가 계속 보강되어서 이어진다.
    2. 불특정 다수의 사람들이 접속해서 더 나은 코드를 제안하고 다수의 선택을 받는 과정을 가질 수 있다. 서로 모르는 사람들끼리도 도움을 주고 받을 수 있다.


이렇게 비교를 해서 저는 위키백과 기능을 제가 구상한 서비스에 넣기로 했어요. 그리고 나서 저는 또다른 질문도 해보았어요. "코딩 협업 프로그램에 SNS 기능이 들어가면 도움이 될까?"


  1. 코딩 협업 프로그램에 SNS 기능이 없는 경우
    1. 현재 업계 상황이 그렇다.
    2. 코드와 주석에 직접적인 댓글을 달 수 없다. 제3자가 보면 주석을 누가 썼는지, 어떤 토론 과정이 있었는지 알 수 없다.
  2. 코딩 협업 프로그램에 SNS 기능이 있는 경우
    1. 코드와 주석에 직접적인 댓글을 달 수 있다.
    2. 그러면 사람들이 코딩을 좀 더 즐겁게 여기고 적극적으로 참여할 수 있을 것이다. 제3자가 와서 보더라도 댓글을 읽어 보면 토론 과정을 알 수 있다.


이렇게 비교를 해서 저는 SNS 기능을 넣기로 했어요. 그렇게 해서 릴랏의 스케치가 만들어지게 된 거죠.




그리고 나서 저는 또다른 질문을 해보았어요. "나는 릴랏에 참여 하는 사람들이 보람을 느낄 수 있게 보상을 주고 싶다. 보상을 주는 것이 좋을까?"


  1. 보상을 안 주는 경우
    1. 노잼
  2. 보상을 주는 경우
    1. 꿀잼?
    2. 만약 보상으로 치킨을 사먹을 수 있게 된다면?
      1. 꾸우르잼!!




그래서 저는 크던 적던 보상을 주기로 마음먹었어요. 그랬더니 무슨 돈으로 보상을 줄지 막막하더군요. 그래서 시나리오 비교를 해보기로 했어요.


  1. 현금으로 보상을 주는 경우
    1. 나는 거기에 쓸 돈이 없다.
    2. 남의 돈을 투자받아서 주어야 하나?
  2. 현금이 아닌 무엇으로 보상을 주는 경우
    1. 돈이 안되면 몸으로라도.. 날 가져요 엉엉
      1. 아.. 그만두자. 미친생각이구나.
    2. 음.. 가상화폐?
      1. 가상화폐를 발행해서 주면 내 돈이 안 들어간다.
      2. 남의 돈을 투자받아서 줄 필요도 없다.


오, 이렇게 해서 저는 가상화폐를 발행해서 보상을 주기로 했어요. 어때요? 이런 과정이 바로 시나리오 정보처리를 하는 것이에요. 저는 릴랏을 구상하고 여기까지 오면서 이 시나리오 정보처리를 약 2백 건 정도 했어요. 님들에게는 중요한 굵직굵직한 부분만 보여드린 거에요. 저는 앞으로 일을 진행하면서 이런 시나리오 정보처리를 계속 할거에요. 프로젝트가 성공해서 끝날 때 쯤에는 그동안 했던 시나리오 정보처리가 수만 건 정도 쌓이게 되요.


자, 한 번 생각을 해봐요.
  1. 반짝하고 떠오른 아이디어를 맹목적으로 믿고 밀어붙이기식으로 진행한다.
    1. "이 길이 맞는 길이라고 믿습니다!"
    2. "돌격, 앞으로!"
    3. "사나이가 까라면 까야지!”
    4. 결과는 개삽질, 개고생, "이 산이 아니었는개벼."로 끝난다.
  2. 반짝하고 떠오른 아이디어를 다른 아이디어와 시나리오 정보처리 방식으로 비교하고, 또 비교하고, 또 비교해서 계속 더 나은 모양으로 다듬으면서 실천한다.


어느 쪽이 더 삽질을 많이 할까요? 어느 쪽이 나중에 예기치 않은 손실을 크게 겪게 될까요? 어느 쪽이 생산성이 높을까요? 어느 쪽이 위기관리가 더 잘될까요? 이제 이해가 좀 되시죠?




스티브 잡스가 다큐멘터리에서 이런 말을 한 적이 있어요.
"사람들은 나와 애플이라는 회사가 번뜩이는 천재적인 아이디어로 한 번에 제품을 만들어 내는 것으로 생각하는데 그렇지 않다. 우리에게 번뜩이는 창의적인 아이디어가 있는 것은 사실이다. 그러나 우리는 그 아이디어를 제품으로 만들기까지 수만 번의 깎아 내고 다듬는 작업을 거친다. 대부분의 사람들은 이 과정을 인지하지 못한다. 그래서 대부분의 사람들은 창의적인 아이디어를 생각하더라도 그것을 실현하지 못한다."


어때요? 제가 지금까지 가르친 것과 맥락이 같죠? 스티브 잡스가 비유로 한 말을 저는 논리학과 과학으로 정리해서 시나리오 정보처리라고 불러요. 제가 이 개념을 쉬운 말로 설명하는 것으로는 최초인 것 같아요. 논리적인 증명도 아마 최초일 거에요. 제가 지금까지 경영, 혁신, 기술 관련 책을 많이 봤지만 저처럼 이렇게 설명하는 사람을 본 적이 없거든요.


시나리오 목업

그러면 이제 한 번 시나리오 목업에 대해서 이야기를 해볼게요. 목업(mock-up)이란 시제품 전 단계인 껍데기만 있는 시험 제품을 의미해요. 그러면 목업은 알겠는데 시나리오 목업은 또 뭐에요? 이 말은 제가 만들어 낸 말이에요.




자, 보세요. 목업은 실사용이 가능할까요, 못할까요? 못해요. 껍데기만 흉내낸 것이거든요. 그래서 겉으로 보이는 디자인은 목업으로 평가할 수 있는데 실제 사용을 했을 때 어떤지는 평가를 할 수 없어요. 그래서 시나리오 목업을 만들어야 해요. 시나리오 목업은 실제 사람이 사용하는 과정을 흉내낸 목업이에요. 사람이 제품을 사용하는 시나리오 과정을 목업을 사용해서 구현하는 거죠.


  1. 목업은 껍데기만 있는 시험 제품이다.
    1. 이것으로 디자인은 평가 가능하다.
    2. 그러나 실제 사용을 했을 때 어떤지는 평가가 불가능하다.
  2. 시나리오 목업은 가짜 시험 제품인데 실제 사용한 것과 같은 평가가 가능하다.
    1. 어떻게?
      1. 목업으로 실제 제품을 사용하는 것처럼 스토리 과정을 가진 시나리오를 만들어서 구현한다. 목업에 딱 그만큼의 기능이 있어야 한다.




그러면 시나리오 목업은 어떻게 만드나요? 시나리오 목업은 크게 두 가지 방식으로 만들어요.
  1. 부분 시뮬레이션
  2. 애니메이션


시나리오 목업은 완전 텅텅 빈 껍데기가 아니라 애니메이션으로 동작을 하던지 부분 시뮬레이션으로 동작을 해야 되요. 이제 실제 예를 들어 볼게요. 릴랏은 현재 시나리오 목업 단계로 들어갔어요. 릴랏에서 구현할 목업 시나리오는 이래요.


  1. 첫 화면에 들어가서 친구의 초대를 받아서 프로젝트 화면으로 들어간다.
    1. 친구의 초대가 상단 오른쪽에 알림으로 뜬다.
    2. 유저가 그것을 누른다.
    3. 친구의 초대임을 확인하고 클릭한다.
    4. 프로젝트 화면이 로딩된다.
    5. 친구가 코딩을 하고 있다.
    6. 유저가 코딩 밑에 댓글을 입력한다.
      1. 입력 버튼을 눌렀다.
      2. 입력 란이 생겼다.
      3. 댓글을 입력했다.
      4. 엔터를 눌러서 댓글이 입력되었다.
    7. 잠시후 친구가 그 댓글에 좋아요를 누른다.
  2. 유저가 코딩을 하고 있었는데 제3의 인물이 코드 내용을 개선하는 제안을 한다.
    1. 제안 말풍선이 뜬다.
    2. 유저가 그 말풍선을 눌러서 제안이 가르키는 내용으로 이동한다.
  3. 유저가 다른 사람의 코딩에 개선 제안을 넣고 승인을 받는다.
  4. 유저가 참여하고 기여한 프로젝트에서 보상이 생성되어서 유저에게 주어진다.
  5. 기타 등등..


이것을 부분 시뮬레이션, 애니메이션으로 구현하는 거에요. 저는 이런 시나리오 목업을 20개 정도 기획했어요. 그리고 그 중에서 5개 정도를 엄선해서 릴랏 홍보 동영상으로 만들 거에요.


이 활동을 왜 할까요? 삽질과 재작업을 줄이기 위해서죠. 이걸 안 하고 스케치만 한 다음에 실제 본작업 개발에 들어갔다고 생각을 해보세요. 나중에 "이 산이 아닌가벼.”되면 어떻게 되겠어요? 그동안 작성한 코드는 다 어떻게 되는거죠? 그러면 빠꾸(go back)를 엄청나게 해야 하지 않겠어요?




만약 제가 한 이 강의를 보면서 "후아, 힘들다. 굳이 저렇게까지 할 필요가 있을까?"하는 사람이 있다면 한 번 곰곰히 생각해 보세요. 그렇게 안일한 자세로 일을 하면 오히려 나중에 더 크게 힘들어질 거에요. 옛말에 호미로 막을 것을 가래로도 못 막게 된다는 말이 있죠.




UX라는 개념이 있어요. 이게 뭘까요? 이것은 User Experience의 약자인데요. 이 개념이 나온 이유는 경험, 즉 행위 때문이에요. 요즘 나오는 기계와 소프트웨어들은 화면만 봐서는 어디서 무슨 기능이 어떻게 작동하는지 알 수가 없어요. 유저가 특정한 행위를 해야만 인터페이스를 작동시킬 수 있기 때문이에요.


이 행위 경험, UX 개념 없이 제품과 서비스를 만들면 어떻게 될까요? 그러면 만든 사람인 기술자는 분명 스펙 조건을 다 충족했다고 하는데 실제 사용자 입장에서 사용을 해보니 개떡같은 제품이 나오게 되요. 왜냐하면 기능을 개발할 때 실제 사용을 하는 상황을 시나리오로 만들어서 행위 경험으로 테스트를 안 해보았기 때문이죠. 아니면 아예 개발 구상 단계부터 행위 경험에 대해서 배려를 하지 않았거나 말이에요.




한 때 잘나가던 소니가 힘들어진 이유 중에 하나가 제품에서 너무 많은 기능을 구현하려고 하고, 사용하는 사람이 편리하지 못한 사용감 때문이었어요. "기술의 소니"라는 슬로건으로 기술을 앞세우는 사이에 사람들이 점점 소니 제품을 어렵게 생각하고 멀리하기 시작한거죠. 뭘 좀 구체적으로 하나 해보려면 메뉴얼을 보면서 해야하고 이놈에 버튼은 왜 이렇게 많은지.. 그래서 스티브 잡스는 쓸데없는 버튼을 다 없애버리기로 했어요.




참고로 아이폰이 처음 출시할 때 프레젠테이션장에서 잡스가 들고 있었던 아이폰은 시나리오 목업 상태였어요. 실제 사용가능한 제품이 아니고 특정 기능만 부분 시뮬레이션과 애니메이션으로 동작하도록 만들어진 기계였다는 말이죠. 잡스는 태연하게 시연했지만 그것을 지켜보던 직원들은 식은땀을 흘리면서 덜덜 떨었다고 하네요. 혹시나 뻗어서 멈출까 봐서요.


왜 시나리오 정보처리가 중요할까?

복습을 한 번 해볼게요. 시나리오 정보처리는 왜 중요할까요? 그 이유는 시나리오 정보처리를 안 하면 맨땅에 박치기 방식으로 수많은 시행착오를 하고 돈과 시간을 쏟아부으면서 일을 해야 하기 때문이에요.




이공계에서 하는 우스개소리로 "공돌이를 갈아 넣었다."라는 말이 있어요. 이 말은 회사가 수많은 시행착오를 하면서 직원들을 야근시키고 삽질시켜서 결과물을 얻었다는 말이에요. 시나리오 정보처리를 고난이도로 수준 높게 하면 공돌이를 안 갈아 넣어도 충분히 프로젝트를 잘할 수 있어요. 삽질을 줄이고 재작업을 줄이면서 일을 할 수 있는 거죠.




국가 통계를 보면 한국 근로자는 근로시간에 비해서 생산성이 떨어진다고 해요. 그런데 그게 과연 근로자들의 문제일까요? 한 번 질문을 해보세요. 소대가 삽질을 하면 그게 장병들 잘못이에요, 아니면 소대장이 "이 산이 아니었는개벼?"했기 때문이에요? 바로 답 나오잖아요. 한국 근로자의 생산성이 떨어지는 이유는 회사와 정부의 지도자들이 삽질과 재작업을 많이 시키기 때문이죠. 쉽게 말해서 윗대가리 문제라는 말이에요.


벤처기업은 돈도 없고 시간도 없어요. 갈아 넣을 사람도 없어요. 그래서 벤처기업은 대기업들이 하는 맨땅에 박치기 방식으로 일을 하면 버티지 못해요. 제가 설명해드린 이 시나리오 정보처리는 "린 스타트업" 방식에서 소개하는 것과 맥락에서 비슷한 점이 있어요. 린 스타트업에서는 본제품을 출시하기 전에 MVP라는 이름의 시제품을 만들어 보라고 해요. 저도 릴랏을 출시하기 전에 그렇게 할거에요. 제가 설명해드린 시나리오 목업은 시제품 전 단계에서 하는 거죠.




위에 저 책을 읽어 보신 분은 제가 설명한 것이 어떤 개념인지 잘 이해되었을 거에요. 안 읽어 보신 분은 나중에 기회가 되시면 실제로 책을 읽고 비교해 보세요. 그럼 제가 지금까지 설렁설렁 쉽게 설명한 것이 다른 책과 비교해서 어떻게 다른지 알게 될거에요.


제가 지금까지 설명한 것은 미래의 불확실성을 줄이는 방법이었어요. 일을 구상할 때 최악의 상황을 예상해 보세요. 모든 최악의 상황을 상상해 본 다음 그것을 감당할 방법을 만들어 내고 대비해서 하세요. 그러면 실제 위기가 오더라도 무너지지 않고 버틸 수 있어요.


시나리오 목업의 코드 예시

시나리오 목업에 사용하는 코드는 현재 rellat - codeanywhere에 prototype_demo_sketch 폴더에 있어요. 자바스크립트로 만들고 있어요. 페이스북과 유사한 형태로 댓글란을 구현하고 있어요. 이 작업이 끝나면 시나리오 목업 애니메이션 작업으로 들어갈 거에요. 코드를 읽어 보고 궁금한 것이 있거나 제안하고 싶은 것이 있으면 릴랏 페이스북 그룹에서 해주세요. 만약 그룹에 글을 썼는데 다른 글들에 밀려서 제가 읽어보지 못하고 대답을 못해주면 메세지로 한 번 더 해주세요. 제가 그룹에 자주 들어가기 때문에 아마 누락되지는 않을 거에요.


코딩 협업 프로그램 변경 안내 - 2017년 2월 7일
2월 7일부터 codeanywhere을 사용하지 않고 자체 협업 프로그램을 사용하기로 했어요. 여기로 접속하세요. ide.rellat.com


이기환님이 "ide.rellat.com" 관리를 하니까요. 궁금한 것이 있으면 이기환님에게 메세지를 주세요. 그룹에서 글을 써서 물어보셔도 되구요.


릴랏 서비스의 기술적인 구조

릴랏 서비스는 다른 오픈소스 기술을 몇 개 차용해서 진행할 거에요. 기술 검토는 지난주에 마쳤어요.


  1. doc: 공동문서, 계획을 작성하는 창
    1. 오픈소스 문서 에디터 참고: CodeMirror, medium-editor clone
  2. board: Kanban 스타일 애자일 보드를 작성하는 창
    1. 오픈소스 kanban 보드 참고: wekan
  3. code: 코드를 작성하는 창
    1. 오픈소스 Web IDE 참고: Cloud9
  4. log: 코드 수정사항이 기록되는 창.
  5. branch: git 방식 가지치기를 관리하는 창
  6. chat: gitter와 유사한 개발자 채팅을 하는 창
  7. terminal: 가상환경의 터미널을 사용하는 창
    1. 오픈소스 Web IDE 참고: Cloud9


위의 오픈소스 기술 리스트는 프로젝트를 진행하면서 바뀔 수도 있어요. 프로젝트 전체에서 사용할 언어는 자바스크립트구요. Node.js를 사용하게 될 가능성이 높아요. 우리가 자바스크립트를 릴랏 프로젝트의 주 개발 언어로 사용하는 이유는 위에 설명한 오픈소스 기술들과 연결하기에 편리하다고 판단했기 때문이에요. 개발 속도를 최대한 빨리 당기려고 선택한 거에요.


릴랏의 진가

릴랏 그룹에 김동호님이 쓴 글과 댓글을 봐요. 김동호님은 릴랏이 어떤 모양이 될 것인지 혼자서 상상을 해보신 것 같더라구요.




IDE는 프로그래밍을 작성할 때 사용하는 도구에요. 여기에 코드를 써넣고 실행을 해보고 수정하고 하는 거에요.
릴랏은 IDE의 미래가 될거에요. 기존 IDE들이 릴랏으로 대체되어서 역사 속으로 사라지거나, 살아남은 서비스들은 릴랏을 흉내내려고 하게 될거에요. 이것이 릴랏 속에 숨겨져 있는 가치에요.


SNS 방식으로 사람들이 보다 쉽게 코딩을 배워요.




위키백과 방식으로 토론을 해서 더 나은 제안을 해요.


사람들이 코딩에 기여한 만큼 가상화폐로 보상을 받아요.




나중에는 딥러닝 릴랏 봇이 사람들의 친구가 되어서 사람이 하는 코딩을 도와주어요.




위에 저 릴랏 봇이 뭔가요? 개발자들 사이에서 전설로만 전해져 오던 코딩 요정이에요. 릴랏 봇이 코딩 요정이 되는 거죠. 릴랏은 미래에 기술적인 비경쟁 서비스가 될 거에요. 시장에서 기술적 비경쟁 게임을 하게 될 거에요. 이 말이 무슨 뜻인지는 기술적 비경쟁 게임, 우위모델의 메커니즘 글을 참고해 보세요.


딥러닝 활용 계획

제가 릴랏에서 빅데이터, 머신러닝, 딥러닝을 사용할 것이라고 했는데요. 줄여서 딥러닝을 쓴다고 하고요. 어떻게 사용할지 구체적으로 이야기 해보아요.


먼저 딥러닝을 사용해서 유저들의 기여도 판정을 할거에요. 기여도라는 말은 유저들이 실시간으로 한 행위에 대해서 그것이 다른 사람에게 얼마나 이로웠는지를 수치로 평가하는 거에요. 그리고 그 수치에 비례해서 가상화폐를 보상으로 주는 거죠.


질문이 한 개 나오네요. 그러면 만약 그 기여라는 것이 나중에 시간이 지나고 나서야 도움이 되었다고 판단되면 어떻게 되나요? 그러면 나중에 도움이 된다고 판단되고 나서 보상을 또 받는 거죠. 유저의 기여가 한 번 하고 나서 끝나는게 아니라 다른 사람들이 거기에서 도움을 얻을 때마다 계속 발생하는 거에요. 한 번 기여를 했는데 그 업적이 와드처럼 박혀서 사부작사부작 보상을 끝없이 발생시키는 거죠. *사부작사부작은 "별로 힘들이지 않고 계속 가볍게 행동하는 모양"을 일컫는 순우리말이에요.




이렇게 서로 많이 연결되어 있는 행위에서 더 나은 행위, 더 이로운 행위, 더 적합하고 효율있는 행위를 찾아내는 활동을 사람이 하기에는 무리에요. 일이 너무 많거든요. 제가 일일이 지켜볼 수가 없죠. 그리고 사람이 그걸 판단하면 관리자에게 너무 많은 권한이 주어져서 사람들 간에 파벌과 다툼이 생길 수가 있어요. 유저들이 권한이 있는 사람을 바라보고 기대를 가지거나 불만을 가지게 되요. 특히 보상과 관련이 되면 더 그렇죠. 그래서 이 부분을 딥러닝이 도와줄 거에요.


자, 이제 그 다음 단계를 생각해 보아요. 딥러닝이 보상 판정을 하느라고 사람들의 행위를 계속 관찰했어요. 그렇게 했더니 무슨 행동이 더 나았는지, 무슨 행동이 더 이로웠는지 판단을 하는데 사용할 많은 지식을 습득하게 되었어요. 그러면 이것으로 무엇을 할 수 있을까요? 띠링~ 바로 코딩 도우미 역할을 할 수 있어요. 코딩 도우미는 제가 아까 릴랏 봇을 예시로 설명해 드렸죠? 전설로만 전해 오던 코딩 요정을 만들어 내는 거죠. 이것으로 사람이 작업을 할 때 옆에서 보조를 해줄 수 있어요.




릴랏 봇이 디버깅도 도와주고요. 더 나은 코드도 제시해주고요. 사소한 오타나 실수도 찾아내서 도와준다고 생각해 보세요. 물론 이렇게 되려면 많은 행위 데이터를 모아서 비교하는 과정을 가져야 되요. 학습을 많이 해야 한다는 거에요. 그래서 당장 릴랏 런칭 시점부터 이게 되는 것은 아니구요. 앞으로 한 2년 후에 그렇게 되게 할 것으로 계획을 하고 있어요.  


이렇게 하면 코딩 생산성 향상이 되겠어요, 안되겠어요? 된다고 봐야겠죠? 여러 사람들이 위키백과 방식으로 서로 도와주고 또 그것을 지켜보면서 배운 딥러닝 봇이 사람들을 도와주는 거에요.


이제 그 다음 단계는 무엇이 있는지 생각해 보아요. 릴랏 봇이 사람들이 하는 상상을 현실로 만드는 것을 도와주는 거에요. 그러니까 유저가 "나는 이러이러한 프로그램을 만들고 싶다."하고 상상만 구체적으로 하면 코딩을 릴랏 봇이 도맡아서 하는 거에요. 이 개념을 “컴퓨터 프로그래밍을 자기 스스로 해내는 AI”라고 불러요.


이것이 "튜링 테스트" 이후 AI 업계의 가장 큰 과제에요. 튜링 테스트란 봇이 하는 활동이 사람과 비슷해서 그걸 지켜보는 사람이 봇인지 사람인지 분간을 못하게 되면 성공하는 테스트에요. 지금까지 개발한 AI가 이 튜링 테스트는 통과했어요. 봇과 사람이 채팅을 했더니 사람이 채팅 상대가 봇이라는 것을 눈치채지 못하게 되었거든요. 이제 그 다음 단계가 “컴퓨터 프로그래밍을 자기 스스로 해내는 AI”인데요.




이것은 프로그램이 자기 스스로 창조자가 되어서 다른 프로그램을 만들어 내도록 만드는 것이에요. 원대한 꿈이죠? 처음에는 사람들에게 코딩을 좀 쉽게 가르쳐 주어야 겠다는 생각에서 시작한 프로젝트가 이제는 진짜 우주를 뚫고 나갈 기세로 쭉쭉 뻗어 나가네요. 게임을 하는 사람들 사이에서 하는 말로 "켠김에 왕까지"라는 말이 있어요. 사고방식을 개발하고 창의력의 한계를 열면 이렇게 대담하게 쭉쭉 뻗어 나가는 생각을 할 수 있어요. 저는 여러분에게 단지 코딩 기술을 좀 가르치고 끝내는 것이 아니라 이 사고방식을 가르쳐 주고 싶어요. 우리가 살아가는 사회가 다방면에서 발전할 수 있게요. 이것이 릴랏의 장기 계획이에요.


딥러닝 코드 분석, 포팅, 실험

위에서 설명한 것처럼 우리는 딥러닝을 어떻게 응용할 것인지 자세한 계획을 만들었어요. 이제 여기에 사용할 기술을 테스트하고 개발해야 해요. 우리는 어떤 기술을 어떻게 조립해서 사용할지 계획을 만들었어요.


현재 딥러닝 업계에서는 딥러닝이 어떻게 해서 작동하느냐에 대해서 "블랙박스 가설"이 있어요. 이걸 쉽게 말하면 무슨 일이 일어나는지 딥러닝 본인만 알고 밖에 있는 사람들은 모른다는 말이에요. 딥러닝 - 위키백과




그러나 우리의 입장은 달라요. 저는 이기준 이기환의 딥러닝 연구 글에서 딥러닝의 내부적인 작동방식을 논리로 설명했어요. 그리고 앞으로 어떻게 하면 우리가 하는 프로젝트에 딥러닝을 응용할 수 있는지 방법론을 만들었어요. 앞으로 연구를 계속하면서 딥러닝 관련 글도 시리즈로 쓸 거에요.




그렇게 방법론을 만들고 나면 이제 실제 작동하는 프로그램을 만들어야 겠죠? 거기에 대한 계획은 위에 릴랏 설명하면서 했어요. 차근차근 해보자구요.


게임 개발 프로젝트

우리는 오픈소스 게임엔진을 사용해서 마인크래프트와 유사한 복셀 게임월드를 만들 거에요. 복셀이라는 것은 레고처럼 보이는 그래픽을 말하는 것이에요.




앞으로 이 월드에서 다른 게임들을 파생해서 만들어 낼거에요. 게임월드와 파생게임의 관계는 스타크래프트 게임과 스타크래프트에서 파생한 유즈맵 게임과 비슷해요. 참고로 LOL이 워크래프트3에서 파생한 유즈맵 게임인 도타, 카오스를 모방해서 만든 게임이에요.


금융투자 프로젝트

저는 지난 몇 년 동안 연역론을 연구하면서 금융투자 방법에 대해서도 생각을 해보게 되었어요. 제가 쓴 연역론 금융투자 글 시리즈를  링크할게요. 연역론 금융투자1   연역론 금융투자2




제가 연구하는 연역론에서는 정보의 동조관계와 비대칭성을 구해서 문제를 해결하는 방법을 만들어 내요. 이 방법론을 금융투자 분야에서도 사용하는 거죠. 저는 이 아이디어를 위에서 개발하고 있는 딥러닝 기술과 조립해서 진행을 해볼 거에요. 구상을 할 때는 제가 위에 설명해드린 시나리오 정보처리 방법을 사용할 거에요. 이렇게 서로 다른 프로젝트에서 개발한 것들이 시너지 효과를 내면서 더 큰 프로젝트로 발전해 나가요.


작게 시작해서 크게 키워라

자, 여기까지 릴랏 오픈소스 공개 스터디에 대해서 보고를 하고 강의도 했어요. 무슨 생각을 하던지 시나리오 정보처리를 계속 반복해서 키워 나가세요. 그러면 실수와 삽질을 줄이면서 일을 진행할 수 있어요.


작게 시작해서 계속 크게 키워 나가세요. 크게 키우라는 말은 허황된 생각을 하라는 말이 아니에요. 시나리오 정보처리를 많이 하라는 말이죠. 그러면 정보처리를 한 만큼 프로젝트가 정교해지고, 현실에 부합하는 모양으로 발전해 나가요. 그걸 비유하는 말이 키운다는 말이에요. “커져라, 커져라” 하고 바램을 가져서 커진게 아니라요.




일이라는 것은 내 마음대로 스케일을 키우고 싶다고 해서 “펑”하고 커지지가 않아요. 그런데 오히려 역설적으로 나는 그저 시나리오 정보처리를 하면서 프로젝트의 내적인 정보처리 수준을 높였더니 프로젝트가 자연스럽게 스케일이 커져요. 저는 릴랏을 구상하면서 "어떻게 하면 사람들에게 코딩을 쉽게 가르쳐 주고 더 나아지게 할 수 있을까?"하는 생각을 기준으로 시나리오 정보처리를 계속 해나갔어요. 그랬더니 아이디어의 스케일이 계속 커진 거죠.


창의력의 원천

저는 살면서 "님 좀 천재인듯?", "님 좀 짱인듯?"하는 말을 자주 들었어요. 저는 예를 들어서 미국에서 대학다닐 때 수업을 들었는데 숙제로 페이퍼를 제출했더니 교수님이 그 다음 시간에 저를 불러내서 제 페이퍼를 발표하고 수업을 제가 대신 진행하라고 시킨 적이 있어요.




한국에서도 그랬어요. 그런데 한국에서는 그렇게 인정을 받으면 그걸 기분 나쁘게 생각하는 사람들이 생겼어요. 나중에 같이 수업 들었던 사람들이 사소한 것을 꼬투리 잡아서 저를 괴롭히더라구요. "네가 그렇게 잘났냐? 너만 수업 듣냐? 나는 이거 재수강이라서 학점 진짜 중요한데 너 때문에 수업 내용이 다 바뀌어서 망쳤잖아!" 이러면서 때렸어요. 대학교에서는 그럴 일이 없을 줄 알았는데 맞으니까 참 허탈하더라구요. 다행히 미국에서는 다들 저를 좋게 생각해 주었어요.  




창의력의 원천은 무엇일까요? 제가 위에서 시나리오 정보처리로 예를 든 것처럼 저는 제가 구상한 것을 바로 절대적으로 믿지 않아요. 수많은 시나리오 비교 작업을 해서 더 나은 모양을 만들어 나가요. 저는 제 상상이 현실이 아니라는 것을 잘 알아요. 그리고 저는 제 상상을 실천해서 현실로 만들어요.


  1. 현실과 상상이 어떻게 다른지 이해하는 것, 이것이 깨달음이다.
  2. 상상을 어떻게 하면 현실로 만들 수 있는지 경험을 해보고, 실험을 해보고, 실천을 해보는 것, 이것이 실천능력이다.
  3. 시나리오 정보처리는 어떻게 하면 상상을 실천할 수 있을지 비교를 해서 시나리오들 간의 닮은 점과 다른 점을 찾아내고 그것들을 목적을 달성할 수 있게 조립하는 것이다.


실천도 안 하면서 상상만 하면 헛된 꿈을 꾸는 것이에요. 창의력이란 상상과 현실의 차이점을 이해하고 내가 하고 싶은 일을 정하고, 그것을 달성할 수 있는 방법을 시나리오 정보처리로 만들어 내고, 그 방법을 실천하는 거에요.


재능기부의 강요, 노력봉사의 강요는 없다

혹시 제가 오픈소스 프로젝트에 참여하라고 독려하는 것을 재능기부의 강요, 노력봉사의 강요라고 의심할 사람들이 있을까봐 제 입장을 미리 정리해서 밝힐게요. 제가 지금까지 글 쓰면서 별 희한한 비방과 욕설 댓글(메세지)을 받아 보았거든요.


일단 제가 지금까지 소개한 이 릴랏 프로젝트 전 과정을 저와 이기환님 둘이서만 해도 3개월이면 만들 수 있어요. 누구 도움을 받으려고 이 프로젝트를 공개한 것 아니에요. 저는 여러분을 부려먹지 않아요.




또 반대로 제 글을 보고 이거 안 하면 남들보다 뒤쳐질 것 같아서 억지로 참여하려고 한다면 제가 정중히 말하는데 참여 안 해도 되요. 그냥 구경만 해도 되요. 억지로 하지 마세요.


본인이 좋아서 하는 사람만 하세요. 님들이 즐거워야 뭐든지 잘되요. 그런 사람에게는 참여하고 실천하는 과정에서 배우는 것이 있을 거에요. 구경만 한 사람에게도 구경한 만큼 뭔가 눈에 보이고 배워지는 것이 있을 것이고 참여한 사람에게는 참여한 만큼 눈에 보이고 배워지는 것이 있을 거에요.


저는 도움을 받으려고 이 프로젝트를 만든 것이 아니에요. 반대로 도움을 주고 싶어서 이 프로젝트를 만든 것이에요. 제가 이 프로젝트에서 가르치려고 하는 것은 오픈소스를 아무 것도 없는 무(無)의 상태에서 계획을 하고 런칭을 하고 진행을 해서 아웃풋까지 만들어서 보여주는 것이에요. 그렇게 해서 그것을 보고 참여해 본 사람들에게 “나도 할 수 있다.”는 자신감을 주려고 한 것이에요. 열려 있는 기술들을 조립해서 새로운 기술과 서비스를 만들어 내는 것을 가르쳐요. 이것이 오픈소스 사고방식이에요.


  1. 나도 할 수 있다는 자신감
    1. 직접 하는 과정을 보여준다.
  2. 시나리오 정보처리
  3. 오픈소스 사고방식
  4. 애자일 사고방식
  5. 린 사고방식
  6. 위의 모든 개념들을 쉽게 설명하는 이기준의 연역론 사고방식


어디를 가더라도 왜곡하는 사람은 있다

제 블로그를 보니 미국에서 개발자로 성공하는 방법, 능력을 쌓는 방법 글에서 오픈소스 참여가 능력 개발에 도움이 안된다는 댓글이 달렸어요.




거기에 대한 답변은 제가 대댓글로 단 내용 그대로에요. 저 사람은 오픈소스 기여 활동을 커뮤니티 친목 활동으로 왜곡한 거죠. 제가 쓴 다른 글에 달린 댓글은 심지어 주석달기, 리팩토링, 포팅을 훈련하는 것이 프로그래밍 능력 개발에 도움이 안된다는 주장도 있었어요. 사람들이 막 모여서 저에게 다구리를 놓더라구요.






저는 다른 사람들이 무슨 주장을 하던지 그걸 다 반박해서 이기려고 하지는 않아요. 다들 각자 자기 생각을 가질 자유가 있어요. 그 사람들이 무슨 생각을 하고 살던지 내 인생은 아니니까요. 그러나 인신 공격을 하거나, 제가 쓴 글을 왜곡해서 하지도 않은 말을 한 것처럼 속여서 비방을 하면 바로 소송이에요. 그건 개인의 자유가 아니거든요. 다른 사람의 자유를 침해하는 행동이에요.


님들도 자유의 범위를 벗어나서 왜곡을 하는 사람을 만나면 적극적으로 반박을 하세요. 그래야 잘못을 깨닫고 그만둬요. 관용은 관용에 대해서만 해주는 거에요. 불관용에 대해서는 불관용하면 되요. 배려는 다른 사람을 배려하는 사람에게만 해주면 되는 거죠.  


아이디어 공개는 위험한가

그러면 이런 질문이 나올 수 있겠어요. 이기준 이기환님은 둘이서만 할 수 있는데도 왜 프로젝트를 굳이 공개해서 진행할까요? 도움도 필요 없다면서요. 오히려 프로젝트를 초반부터 공개해서 진행하면 아이디어가 유출되어서 도용될 위험이 있지 않을까요? 제가 여기에 대해서 한 번 대답해 볼게요.


프로 게이머와 프로 요리사가 있어요. 이 사람들이 자기 기술을 생방송으로 공개하고 강좌를 열었어요. 그러면 이 사람들의 기술은 유출되었으니까 쓸모가 없어지나요? 그렇지 않죠. 만약 그 기술에서 로열티를 받고 이득을 얻고 있으면 공개하게 되었을 때 손해가 생기겠지만 그 기술에서 요금을 받는 것이 아니면 그런 위험이 없어요.




릴랏 프로젝트는 어떤가요? 릴랏 프로젝트는 무료에요. 그래서 기술이 공개되어도 누가 저의 이득을 빼앗아가지 못해요. 그리고 제가 가진 능력은 어디로 도망가는 것이 아니구요. 그래서 공개해도 누가 훔쳐가지 못하는 것은 그냥 공개하는 것이 더 나아요. 공개되면서 널리 알려지는 효과가 있으니까요.


오히려 공개를 했기 때문에 누가 먼저 시작했고, 누가 오리지널인지가 분명해져요. 공개를 했기 때문에 공식적인 기록이 되니까요. 이것이 아이디어를 솔직히 공개하는 것의 장점이에요.  


우리가 인생을 살면서 남는 것은 무엇일까

오픈소스 프로젝트를 열심히 진행하고 나서 우리에게 남는 것은 무엇일까요? 한 번 생각해 보아요. 제가 시나리오 정보처리를 할 때 최악의 경우를 한 번 상상해 보라고 했죠. 그렇게 해봐요.


  1. 오픈소스 소프트웨어 개발에 열심히 참여했는데 막상 좋은 곳에 취직이 안되면 어떻게 될까?
  2. 오픈소스를 활용해서 사업을 시작했는데 잘 안되면 어떻게 될까?
  3. 결과적으로 실패하면 내 인생은 아무 의미 없게 되는 걸까?


위에 저렇게 결과에 대해서 걱정하는 생각을 연역론에서는 결과에 대한 집착이라고 해요. 소탐대실(小貪大失)이라는 말이 있어요. 작은 것을 쫓다가 큰 것을 잃는다는 말이죠. 그 반대말로 사소취대(捨小取大)라는 말이 있어요. 이 말은 작은 것을 버리고 큰 것을 가진다는 말이에요.  




저는 능력이 되니까 작은 것을 다 내려놓기로 마음먹었어요. 그리고 저는 능력이 없을 때부터도 그렇게 했어요. 그렇게 했더니 그 과정에서 능력을 쌓게 되었어요. 님들도 작은 욕심을 버리고 오히려 큰 것을 얻으세요. 마음을 비우고 온세상을 다 가지세요


제가 한국에서 일한 것을 기록한 포트폴리오는 100페이지 짜리 PDF파일로 되어 있어요. 40여 개의 크고 작은 프로젝트가 기록되어 있어요. 어떤 기술은 급하게 사용해야 해서 겉핥기 식으로 매뉴얼만 읽어보고 한 것도 있고 어떤 기술은 코어까지 만들고 재조립한 것이 있어요. 그러나 저는 한국에서 한 일에 미련을 버리기로 마음먹었어요. 제가 어떻게 미국으로 오기로 결심했는지는 성공적인 소프트웨어 벤처기업을 만드는 방법 글에 적어 놓았어요.


미국에서는 한국에서 진행한 프로젝트가 다 소용 없어요. 저는 제 과거 경험에 집착하지 않아요. 저는 역사를 새롭게 쓰려고 해요. 전세계에서 통하는 프로젝트를 공식적인 기록으로 만들어 나가고 있어요. 지금 이 글을 읽는 님들이 제가 새롭게 쓰는 역사를 보고 있어요.  


릴랏 프로젝트에서 일어날 수 있는 최악의 경우들을 가정해 보아요.
릴랏 프로젝트가 수익화를 못하는 무료 소프트웨어만으로 남게 된다고 가정해 보아요.
그러나 릴랏 프로젝트가 수익 없는 무료 서비스로 남게 된다고 해도 저의 능력은 어디로 도망가지 않아요. 제가 이 프로젝트를 다 마치고 나면 시장에서 저에게 부르는 몸값이 얼마가 될까요? 성공한 벤처기업의 CEO, CTO의 평균 연봉을 생각해 보아요. 아마 큰 금액이 될 거에요.


반대로 릴랏 프로젝트가 성공적인 플러스 캐시플로우 시스템이 되었다고 가정해 보아요. 제가 기업공개하거나 매각할 때 얼마 정도 금액을 제시받을 것 같아요? 제대로 성공하면 아마 큰 금액이 될 거에요.


또 다른 가정으로 릴랏 프로젝트가 수익화도 못하고, 기업공개와 매각도 못하고, 제가 다른데 취직도 못한다고 가정해 보아요. 상대적으로 더 나쁜 경우네요. 그러면 제 인생은 끝인가요? 저에게는 아무것도 남는게 없나요?


저의 능력과 그것을 기록한 것이 남아요.
공식적인 이 기록을 업계의 모든 사람들이 들여다 보려고 하면 누구나 확인을 할 수 있게 될 거에요. 객관적인 증명이 될 거에요. 사람들이 제 능력이 어느 정도인지 알게 될 거에요.
그러면 제가 앞으로 할 다음 프로젝트의 성공확률은 높아질까요, 낮아질까요?


물론 저는 돈을 준다고 해서 섣불리 다른 회사에 취직하지 않고 매각도 안 할거에요. 왜냐하면 저는 무한대로 버틸 수 있기 때문이죠. 저는 그런 욕심을 버렸기 때문에 오히려 대담하게 프로젝트를 진행할 수 있어요.




우리가 인생을 살면서 우리의 몫으로 남는 것은 무엇일까요?
우리의 사고방식이 남아요. 우리의 실천능력이 남아요.
그것들이 우리가 가질 수 있는 전부에요. 그것이 전부인 이유는 부와 성공 그외 기타 잡다한 것들은 우리가 가진 사고방식과 실천능력에서 만들어진 부산물이기 때문이에요.


역사가 만들어지는 순간

역사는 우리가 스스로 만들어 가는 것이에요. 역사는 지금 이 순간에도 만들어지고 있어요. 우리의 사고방식과 실천으로 만들어지고 있어요. 실천을 안 하는 사람에게는 시간이 멈추어 있어요. 아래는 제가 예전에 쓴 창작 글들인데 한 번 읽어 보세요.




외국어 사용자 모집

릴랏 강의와 연역론 블로그 글이 좋아서 팬심으로 번역을 할 사람을 모집할게요. 이 작업이 노동이라고 생각하면 하지 마세요. 저는 지금 italki같은 언어 교환 사이트에서 도움을 받을 사람들을 모집하고 있어요.




위 사진은 아랍어 번역을 하는 모양이에요. 이렇게 진행을 하면 올해 안에 목표로 한 30개 언어 런칭을 다 할 수 있을 것 같아요. 번역은 모든 언어를 환영해요. 비인기 언어도 환영해요. 왜냐하면 릴랏은 나중에 세계 곳곳에서 저소득층을 대상으로 코딩을 가르쳐 주는 사업을 할 계획이 있기 때문이에요. 언어 사용자 목록 - 위키백과


번역 작업의 과정은 대강 이래요.
  1. 구글번역 교차 사용
  2. 원어민에게 첨삭 받아서 문법 에러 교정
  3. 원어민에게 첨삭 받아서 뜻이 잘 전달되도록 문맥과 표현 가다듬기


보셨다시피 제가 이미 저렇게 작업을 하고 있어요. 그러나 제가 몸이 한 개라서 도움이 필요해요. 제가 코딩도 하고, 동영상도 만들어야 하거든요. 지금 보고 계시는 이 강의 글도 쓰구요. 그러면 도움을 주실 분은 언제든지 메세지 주세요.


실명공개 정책 공지

제가 며칠 전에 썼던 성공적인 소프트웨어 벤처기업을 만드는 방법 글에서 질문을 하셨던 분이 마음을 바꾸어서 이런 피드백을 주었어요.




저는 바로 요청대로 처리해 주었구요. 그리고 제가 대댓글에 쓴 것처럼 저는 이메일 내용을 글로 쓰는 것에 대해서는 물어보는 절차를 가졌어요. 제가 곰곰이 생각해 보니까 앞으로는 실명공개를 정책으로 해야겠어요. 왜냐하면 제가 질문이 들어올 때마다 "이 질문을 공개해도 괜찮을까요?"하고 확인하고 허락을 받는 것이 번거롭거든요. 일일이 다 물어보고 일을 진행하기엔 제가 요즘에 너무 바빠요. 앞으로 저에게 뭘 물어보시는 분들은 공개하는 것이 기본이라는 것을 알아주세요. 만약 “부탁드려요. 외부에는 공개하지 말아주세요."라고 생각하시면 미리 질문을 시작하는 처음부터 그렇게 얘기를 해주세요. 그러면 제가 감안해 드릴게요.


  1. 이제 앞으로 기본 정책은 실명공개, 내용공개임
  2. 질문하는 사람이 특별히 부탁을 하면 감안해줌
  3. 그러나 왠만하면 공개하세요. 비슷한 처지의 다른 사람들에게 도움이 되니까요.


그리고 처음 질문을 주신 분에게 제가 드리고 싶은 말씀은 "뭘 그렇게 무서워하세요?"에요. 그렇게 무서운데 창업은 어떻게 해요? 창업은 이 세상에 내가 만든 것을 있는 그대로 표현하는 활동이거든요. 그렇게 움츠려서 숨는 태도로는 아마 성공하기 어려울 거에요.


오픈소스 프로젝트 제안을 하세요

새로운 제안을 해서 저를 설득하세요. 차근차근 설명을 해서 다른 사람들에게 이해를 시켜 보세요. 그게 능력이에요. 저는 솔선수범해서 지금 이렇게 글을 꾸준히 쓰고 있어요. 저는 제 아이디어가 공개되어도 무서울 것이 없어요. 제가 제일 잘하기 때문이죠. 저는 자신이 있어요. 보여주면서 해도 누가 제 아이디어를 훔쳐갈 수 없어요. 제 아이디어는 배경적인 이론에서부터 탄탄한 뿌리가 있고 그것을 전부 제가 가지고 있기 때문이에요.


"저는 코딩을 잘 못하는데요." 괜찮아요. 코딩 못해도 되요. 우리가 잘 해요. 님이 코딩 못한다고 해서 이 세상에 도움이 될 수 있는 좋은 아이디어를 썩히지 마세요. 중요한 것은 상상을 현실로 만들어 가는 실천능력이에요. 이것이 제일 중요하고, 이것이 본질이에요.




오픈소스 프로젝트 제안을 하라는 것이 님 아이디어 빼먹으려고 하는 것 아니에요. 오픈소스는 모든 사람이 보고 활용할 수 있게 공개를 한다는 거에요. 욕심을 버려요. 욕심이 나고 본전심리가 발동하면 님 혼자 하세요. "내 소중한 아이디어 누가 뺏어가면 어떡하지?" 이러면 혼자 하는게 맞아요. 님 혼자 하면 모든게 님 개인 능력 문제가 되지요. 님 인생이니까 알아서 하면 되요.


반대로 오픈소스로 아이디어를 내놓으면 집단지성이 되요. 저는 제가 이미 똑똑하지만 위에 아랍어 번역을 예로 든 것처럼 다른 사람에게 도움을 받아요. 저는 번역을 요청할 때 저 사람에게 이렇게 말했어요. "제가 어린이, 학생, 어른들에게 코딩을 쉽게 가르칠 방법을 생각해 냈어요. 저는 아랍 세계에서도 이 방법이 도움이 될 거라고 생각해요. 읽어보시고 님도 그리 생각하시면 저를 도와주세요."




그랬더니 "저도 우리나라에 이런게 있었으면 좋겠어요."하고 도와 주더라구요. 이것이 집단지성이 움직이는 현장이에요. 사람들의 마음이 움직이고 서로 도울 수 있는 부분을 찾아서 협력하는 거죠.


골때리는 경우는 자기 능력은 없으면서 남이 하는 것을 보고 흉내내서 이득만 얻으려고 하는 경우에요. 그걸 "이리 재고 저리 잰다. 간을 본다."고 해요. 간을 보면서 살지 마세요. 한 번 간을 보기 시작하면 평생 간만 보다가 인생이 끝나게 되요. 자신의 사고방식에서 실천능력을 개발하지 못하고 눈치보고 간만 보도록 습관이 들기 때문이에요.




욕심을 버리고 장기적으로 크게 성공하고 싶다면 본질에만 집중하세요. 그러면 역설적으로 빨리 이루어지고, 크게 성공해요. 다른 사람들에게 도움이 될 아이디어를 생각해내고 그것만을 사심없이 꾸준히 실천했더니 나중에 유명해지고, 성공하고, 부자가 된 자신을 보게 될 거에요.


저같은 경우는 유명해지고 싶지 않고, 성공하고 싶지 않고, 부자가 되고 싶지도 않아요. 왜냐하면 저는 이미 제가 추구하던 자유를 이루었고, 제가 추구하던 능력을 이루었기 때문이에요. 저는 님들도 그렇게 되기를 바래요. 그러나 저는 이 세상이 어떻게 움직이는지 알아요. 역설적으로 아마 저는 미래에 크게 성공하고 부자가 될 거에요. 제가 원하지 않아도 말이에요. 저는 님들도 그렇게 되기를 바래요.


질문을 많이 하세요

릴랏 페이스북 그룹 회원인 조대연님이 메세지로 이런 말을 했어요.




저는 저 말을 읽어 보고 눈물이 핑 돌았어요.
사람이 체벌을 당하면, 두드려 맞으면 정신이 마비되요. 또한 반복해서 야단을 맞고 언어폭력을 받아도 똑같은 상처가 생겨요. 트라우마가 남아요. 무의식에 두려움이 각인되어서 창의적인 생각을 못하는 방향으로 성격이 만들어져요.
그렇게 해서 우리나라가 지금 골병이 들었어요. 국민들이 어릴 때부터 야단 맞고 두드려 맞아서 자유롭고 창의적인 생각을 못하게 되었어요. 마음에 병이 생겼어요.




서커스 코끼리 이야기가 있어요. 서커스단에서 새끼 코끼리를 데려오면 쇠로 된 말뚝에 매어 놓아요. 말뚝에서 도망가려고 하면 죽도록 매를 때려요. 몇 년이 지나서 나중에는 코끼리가 말뚝을 벗어나는 것을 포기하게 되요. 그래서 단단한 쇠말뚝이 아니라 허술한 나무 작대기에 묶어 놓아도 도망가지 않아요. 코끼리의 내면에 두려움과 체념이 각인되었기 때문이에요. 우리나라 사람들도 코끼리 신세가 되었어요. 그렇게 맞고 부려먹히면서 체념하고 도망도 못가요. 불쌍해요.




이 굴레를 벗어나요. 자유로워지세요. 이 세상의 노예가 아니라 주인이 되세요.
아래는 제가 조대연님에게 대답으로 해준 말이에요.




질문하고 탐구하는 것을 주저하지 마세요. 멈추지 마세요.
저는 누가 저와 다른 의견을 가졌다고 해서 간섭하지 않아요. 좀 엉뚱해도 상관없어요.
아래는 연역론 페이스북 그룹에 강동현님이 쓴 글이에요.


문장들 간의 논리가 연결이 안되었어요. 엉뚱해요. 그러나 그게 잘못인가요? 잘못 아니에요. 그렇게 해도 되요. 쫄지 말고 자기 생각을 적극적으로 표현하세요. 저는 야단 안 쳐요.
제가 해줄 말은 저것을 읽어 보았더니 제 입장에서는 잘 이해가 안된다는 말 뿐이에요. 강동현님의 주장이 이번에는 저를 논리적으로 설득하는 데에 실패한 것이죠. 그게 다에요. 우리는 다 각자 상대적으로 다른 생각을 할 수 있어요.
강동현님이 저를 설득하고 싶다면 다음 번에 더 노력해서 자기 생각이 논리적으로 연결이 잘되게 만들면 되요. 그게 전부에요. 그리고 강동현님이 절대적으로 저를 설득 안 해도 되요. 단지 강동현님이 저와 소통을 하고 싶으면 잘 설명을 해서 저를 이해시켜 주면 좋은 것이에요. 이게 자유고, 이게 민주주의에요.


이 세상에 글을 쓰고 표현을 하면 그렇게 하면 안된다느니, 다수 의견이 아니라느니, 망상이라느니, 개인 생각은 혼자 일기에나 쓰라느니 하면서 괴롭히는 사람들이 있는데 그건 그 사람들이 잘못하는 거에요. 그 사람들은 현대 사회의 기본원리인 자유와 민주주의 개념도 모르면서 남의 소중한 자유에 함부러 간섭하는 거에요.


질문을 하세요. 질문하는 만큼 발전해요. 표현을 하세요. 표현하는 만큼 발전해요. 제가 쉽게 풀어서 쓴 명상하는 방법 2 글에서 쓴 내면관찰 일기와 맥락이 같아요. 나는 잘 모르니까 조용히 배워야지, 이렇게 생각하면 평생 나 자신의 생각 없이 조용히 남이 만들어 놓은 것을 외우기만 해야 되요. "카피 앤 페이스트 인생", "앵무새 인생"을 살아야 해요. 그렇게 살지 마세요. 님들의 소중한 인생을 그렇게 내버리고 포기하지 마세요. 잘 몰라도 되니까 표현하고, 실험하고, 그러면서 고치고 더 나아지세요.




저는 위에 시나리오 정보처리에서 예를 든 것처럼 매일 저 스스로 질문하고 저 스스로 대답하는 과정을 가져요. 저는 사업에 대해서도 그렇게 하고 공부하고 연구하는 주제에 대해서도 그렇게 해요. 저는 수십 년 동안 저 혼자서 그렇게 해왔어요. 그래서 저는 질문을 했을 때 받아주는 사람이 있고 토론을 할 수 있다는 것이 얼마나 소중한지 잘 알고 있어요. 님들도 물 들어왔을 때 노를 저으세요. 제가 평생 이렇게 강의 해주면서 질문 받아줄 것 같아요? 제가 나중에 사업이 번창해서 바빠지면 어떻게 되겠어요?


은근하게 존댓말로 포장하고, 전문가인 척 포장하면서 다른 사람을 무시하고 찍어 누르는 말을 하는 사람들에게 굴하지 마세요. 그 사람들은 졸업장이나 학위 증명서는 있지만 실력이 없어요. 실력이 있는 사람은 자기가 아는 것을 그저 솔직하게 말하고 토론에 참여해요. 진짜 배운 것이 있고 아는 것이 있는 사람은 아는 척하면서 남을 괴롭히지 않아요. 남을 찍어 누르는 말을 하는 사람은 자기 내면이 불안정한 사람이에요. 자기가 아는 것이 없고 평생 남의 것을 외우면서 살아왔기 때문에 마음 속에 억울함과 분노가 가득 차서 그걸 다른 만만해 보이는 사람들에게 분출하고 화풀이하는 것이에요.


자기 딴에는 열심히 외우면서 "카피 앤 페이스트"하면 성공하고 인정받을 수 있을 줄 알았는데 한참 시간 지나고 나서 "이 산이 아닌가벼?”되니까 화가 나고 자괴감 드는 거에요. 그래서 그들은 주변의 다른 사람들을 옭아매서 전부 자기와 같은 벙어리 노예신세로 만들려고 해요. 그런 사람들은 무시하세요. 욕설과 비방으로 도를 넘은 범죄행위를 하면서 덤벼들면 법으로 처벌하세요. 아무도 우리를 막을 수 없어요. 나는 세뇌당한 코끼리가 아니에요.




한국의 체벌 문화에 시범 케이스로, 본보기로 때린다는 말이 있어요. 여럿이 보는 앞에서 한 사람을 처절하게 때려서 그걸 지켜보는 사람들에게 겁을 주고 세뇌를 시킨다는 뜻이에요. 저는 엉뚱한 질문을 하고 대세를 따르지 않다가 본보기로 많이 맞았어요.


그 후로 수십 년이 지나서 저는 돌아왔어요. 이제 반대로 제가 본보기가 되어서 사람들에게 다른 것을 보여 줄게요.
제가 모범이 되어서 보여 줄게요. 우리는 굴레를 벗어날 수 있어요. 더 나아질 수 있어요. 트라우마를 치유할 수 있어요. 의미 없는 삽질을 줄이고 더 창의적으로 살아갈 수 있어요. 제가 실천을 해서 보여 줄게요. 제가 가진 것을 있는 그대로 보여주고 어떻게 하는지 보여 줄게요. 그렇게 해서 매를 때리던 사람들이 틀렸다는 것을 보여 줄게요.


아래 사진은 우리 집에 사는 Jigglypuff(한국명 푸린)이에요. 제 막내딸이죠. 저는 일하면서 틈틈이 아이들이랑 놀아 주어요. 아이들을 보면 힘이 나요. 이 세상을 더 나아지도록 바꾸어 보아요. 우리 아가들이 앞으로 살아갈 세상을 위하여!




의견, 피드백은 여기로 주세요.





후원 안내

글이 마음에 들고 저희를 후원하고 싶으시다면 아래 모네로 마이닝을 해주세요. 밑에 링크한 주소로 들어가서 START MINING 버튼을 누르면 님들의 컴퓨터가 일을 해서 저희에게 가상화폐 후원을 해줍니다. 하루종일 하면 백원 정도로요. 참고로 SPEED를 100%로 하지 말고 한 80%로 내리면 컴퓨터가 버벅거리지 않아서 좋습니다.

저는 후원을 받아서 제 개인 용도로 사용하지 않습니다. 저는 개인적으로는 이미 부족함 없이 잘살고 있습니다. 저는 앞으로 부모 없는 아동과 청소년을 돌보는 그룹홈(보육원)을 만들어서 후원할 생각입니다. 그리고 저는 컴퓨터 프로그래머인데 릴랏이라는 무료 코딩 교육 활동을 2016년부터 하고 있습니다. 후원해주신 것은 여기에 전부 사용할 것입니다.


이미 가상화폐를 갖고 계신 분은 저희에게 송금을 해서 후원을 해주실 수 있습니다.

Bitcoin: 1Jocrm8iKUtw4h19JttGLjj9ouQnDHrmpB
Monero: 45sQXZzqtFAKgJJgtQh3MuGYwUHHTb5bEZzvfdw3QhvSKpb1KMJmgnSQCVkWGcmL1PVzqVfV4bZH5D2C5uRfeWHLUf5pMkw

그외 기타 다른 방식으로 후원을 해주실 분은 저에게 메세지를 주십시오. 감사합니다.

Facebook Comments

Disqus Comments

글쓴이 소개

안녕하세요. 제 이름은 이기준이에요. 저는 Deduction Theory, LLC라는 소프트웨어 회사에서 CEO로 일하고 있어요.
저는 최근 오픈소스 공개 스터디 릴랏 프로젝트의 내용을 번역해 주실 자원봉사자를 모집하고 있어요. 제 생각에는 이 프로젝트가 전세계에 사는 어린이, 학생, 어른에게 도움이 될 거에요. 특히 저소득층에게요. 이 프로젝트는 무료에요. 사람들에게 도움을 주려고 기획했어요. 저는 나중에 저소득 국가에 학교와 고아원을 짓고 사람들에게 이 프로젝트 방식으로 컴퓨터 프로그래밍을 가르쳐 주고 싶어요. 그렇게 해서 나중에 그 사람들이 더 나은 직업을 가질 수 있게 돕고 싶어요.
아래에 링크한 릴랏 소개 페이지를 읽어 본 다음 이것이 도울 만한 가치가 있다고 생각되시면 저에게 말해주세요.
오픈소스 공개 스터디 프로젝트 Rellat을 소개합니다
원문 컨텐츠는 한글로 전부 제가 쓴 것이에요. 우리는 세계 모든 언어로 번역할 계획을 가지고 있어요. 감사합니다.
안녕하세요. 이기준님과 함께 Rellat 프로젝트를 진행하고 있는 이기환입니다.
제가 프로그래밍을 처음 시작한 것은 어린 시절 어도비 플래시 프로그램에서 애니메이션을 만들다가 게임을 만들고 싶어서 액션스크립트를 사용한 것입니다.
연역론의 방법론은 제가 평소에 일을 하는 방법과 같습니다.
저는 사실 500줄 이상 넘어가는 코드를 보면 정신이 없고 잘 기억도 안됩니다. 지금도 간단한 코드 문법이 기억이 안나서 구글을 뒤지는 경우가 허다합니다.
대신 저는 이 코드가 어떤 사고방식을 사용해서 만들어졌는지, 어떤 관계정보를 사용했는지를 추적합니다. 이것이 연역론의 코딩 방법론, 코딩 스타일, 컴퓨팅 세계관입니다.
이 사고방식을 갖추면 더 나은 정보처리 방식이 무엇인지 비교할 수가 있습니다. 이것이 프로그래밍의 본질이고, 가장 중요한 것입니다.
나머지 프로그램의 빈공간은 구글과 스택오버플로우의 힘을 빌려서 채워넣습니다.
저는 여러분도 그렇게 하면 끊임없이 만들어지는 새로운 기술, 수만 줄의 코드 속에서 허우적거리지 않으면서 대규모의 질 높은 정보처리를 더 효과적으로 할 수 있다고 생각합니다.

Popular Posts

Visitor Map

Flag Counter