Disqus for rellat

릴랏 멘토링 가이드 2: 창의력의 원천



안녕하세요. 어제 첫 멘토링 가이드를 쓰고 나서 많은 분들이 신청을 해주셨어요. 지금까지 신청해 주신 분이 30분이 넘게 되었는데요. 감개가 무량하네요. 그래서 진도를 빨리 나갈 수 있도록 가이드 2편을 쓰게 되었어요. 이번 편에서는 과제의 예시를 보여드리고 어떻게 "테크 트리"를 타야 하는지를 설명해 드릴게요.



먼저 능력이라는 것이 뭔지 한 번 설명을 할게요. 프로그래머, 개발자에게 능력이란 무엇일까요? 그것은 바로 "상상한 것을 실천해서 현실로 만드는 것"이에요. 제가 지금까지 쓴 글에서 그걸 창의력이라고 설명을 했었죠. 개발자의 능력은 자기가 상상한 프로그램을 실제로 코딩을 해서 만들어 내는 능력이에요.


  1. 우리가 업무를 할 때 "와, 저 사람 능력있다."라고 말하는 능력은 창의력이다.
    1. 생산성, 실무력, 추진력, 업무역량 같은 말도 다 같은 뜻이다.
  2. 창의라는 말은 자기가 상상한 것을 실천해서 현실로 만든다는 뜻이다.


제가 멘토링 프로젝트를 만든 것도 님들에게 이 능력을 가르치려고 하는 것이겠죠? 과제를 내고, 리서치를 해보고, 코딩을 해보고 하면서 "내가 상상한 것을 실천해서 현실로 만드는 행위"를 하는 거죠. 그러면 한 번 저와 이기환님은 그렇게 했었는지 확인해 볼까요?


  1. 이기준은 2017년 1월 초에 릴랏 프로젝트를 기획했다.
    1. 사람들에게 프로그래밍과 관련된 조언을 이메일로 해주다가 공통되는 요청을 직접 프로그램을 개발하면서 보여주기로 했다.
    2. 공통되는 요청이란 "창의력을 실제로 실행하고 실천하는 것을 한 번 보고 싶다."는 것이었다.
  2. 이기준은 이기환과 토론을 해보고 "댓글을 달 수 있는 코딩 협업 프로그램"을 오픈소스로 만들어서 만드는 과정을 공개하면서 진행해 보기로 했다.
    1. 그렇게 해서 릴랏 프로젝트가 시작되었다.
  3. 이기준은 릴랏 코딩 협업 프로그램을 기획 단계에서부터 코딩을 하는 과정까지 공개하면서 진행했다.
  4. 개발 과정에서 코드를 실시간으로 공개하고 주석을 달았다. 어떤 과정을 거쳐서 코드를 개선했는지 기록을 남겼다.
  5. 이기준과 이기환은 2017년 1월 초에 기획을 시작해서 그들이 계획한 기한인 4월 말일에 첫 알파 버전을 내놓았다.
  6. 그들은 이 과정에서 처음 접하는 언어들을 배우고 다른 오픈소스 프로젝트의 "핵심 기여자"가 되어서 프로젝트 관리자로 추대받았다.
  7. 그들은 새로운 언어를 빠르게 배우는 방법으로 간단한 게임 프로그램을 직접 만들어 보았다.


어때요? 멋있어요? 이게 우리의 능력이에요. 증명할 수 있는, 증거가 있는 능력인거죠. 제가 "전세계에서 제일 똑똑한 천재 프로그래머" 이런 것은 아니에요. 그러나 제 능력이 이 정도라는 것은 이렇게 증명할 수 있어요. 그리고 이 능력을 갖춘 사람은 전세계에서 얼마 안되요. 상위 5% 이내라고 봐요. 님들은 살면서 프로그램을 기획 단계에서부터 공개하고 코드 개발 과정을 공개하고 연재식으로 다른 사람에게 가르치면서 빌드를 올리고 계획한 시간 내에 만들어 내는 사람을 본 적 있어요? 저는 없거든요. 그런 차이인 거죠.  


제가 2017년 1월에 미국에서 개발자로 성공하는 방법, 능력을 쌓는 방법이라는 글을 썼어요. 이게 제가 지금까지 쓴 글 중에 제일 조회수가 많은 글인데요. 한 5만 뷰 정도? 다른 사이트에 퍼날라진 것까지 합치면 한 10만 뷰 정도 나올 것 같으네요. 제가 이 글을 쓰고 나서 사람들의 쏟아지는 프로그래밍 관련 질문에 대답을 하다가 릴랏 프로젝트를 구상하게 된 거죠.


제가 저 글에서도 간단하게 이렇게 말했거든요. 오픈소스 프로젝트에 참여해서 작은 문제부터 하나 하나 풀어 보라구요. 그러다가 핵심 문제에 관여할 수 있게 되면 핵심 기여자가 되고 그러면 능력을 인정받을 수 있다고 했어요. 그런데 제가 위에서 한 일을 적은 것을 보세요. 6번을 보면 우리가 딱 그렇게 했잖아요. 개발을 하는 과정에서 다른 오픈소스 프로젝트에 핵심 기여자가 되어서 프로젝트 관리자 권한까지 받았어요. 제가 한 말이 빈말이 아니었던 거죠.  


뭐 이런 느낌?


실제로 이기환님과 저는 시장에서도 능력을 인정받아요. 미국에서 우리가 취업을 하려고 하면 억대 연봉 협상을 해요. 최소 1억 얼마부터 시작하는 거죠. 만약 우리가 어떤 회사에 취직을 하려고 하는데 그 회사에서 주력으로 사용하는 오픈소스 기술이 우리가 핵심 기여자고 프로젝트 관리자면 어떻게 되겠어요? 그러면 연봉이 수억이 아니라 십몇억, 수십억대가 되는 거죠. 회사가 돈이 많이 없으면 돈 대신 스톡옵션으로 받을 수도 있구요.


이렇게 저는 제가 입으로 말한 것을 실제로 실천하고 증명해서 보여드렸구요. 저는 앞으로 이런 능력을 갖춘 사람들이 이 세상에 많아지기를 바래요. 꼭 돈으로 성공하는 것 뿐만 아니라 자기가 상상한 것을 실천해서 현실로 만들어 내는 것은 즐겁잖아요. 비교를 해보세요.


  1. 다른 사람, 사회가 만들어 놓은 일자리에서 톱니바퀴 부속품처럼 돌아가면서 시키는 일만 한다.
    1. 인생의 대부분을 다른 사람들이 원하는 스펙을 쌓는데 사용한다.
    2. 그러다 퇴직하면 치킨집
  2. 내가 상상한 것을 실천해서 현실로 만들고 그것으로 인정받고 돈도 벌고 잘먹고 산다.
    1. 능력이 되면 다른 사람을 도와준다.


님이 곰곰히 생각을 해보고 1번이 좋으면 1번으로 가도 되요. 그런데 2번이 좋다고 생각하면 2번을 하는 거에요. 이런 생각을 하는 경험이 중요하다는 거죠.


참고로 제가 해드리는 이런 멘토링은 전부 무료에요. 저는 사실 외부 강연 나가면 한 번에 100만 원대로 돈을 받아요. 하루에 두세 시간 강연하고 평균 100만 원 받는다고 보면 되구요. 학기를 정해서 강의를 하게 되면 한 시간에 10만 원대로 받아요. 하루 8시간 일하고 일당으로 계산하면 하루에 80만 원 이상, 이것도 100만 원대로 받는 거죠. 외주 개발 회사 할때도 그런 식으로 계산해서 받았어요.


그러니까 이런 기회를 허술하게 생각하지 마시구요. 특히 요즘 사람들은 의심이 많잖아요. "혹시 이거 나한테 나중에 돈을 달라고 하는 것이 아닌가?"하는 그런 의심이요. 사기 같은 것을 하도 많이 당하니까. 그런데 저는 님들한테 돈 안 받거든요. 그러니까 그런 문제가 생길 여지가 없어요.


또 반대로 공짜로 해준다니까 너무 안일하게 생각해서 열심히 안 하는 경우도 있거든요. 제가 말한 것처럼 저 원래는 돈 많이 받아요. 그러니까 무료라고 해서 하찮게 생각하지는 말아 주세요. 님들 이런 교육 기회 다른 데서 돈 수백만 원 주고도 못 받아요. 일단 저처럼 가르쳐 주는 사람 자체가 이 세상에 없어요.


저는 저처럼 생각하는 사람, 찌들어 살기보다는 더 나아지고 싶은 사람, 다른 사람들에게 저처럼 도움을 주고 싶은 사람, 이 세상을 더 나아지게 하고 싶은 사람들을 발굴하고 키워내고 싶어서 하는 것이거든요. 그게 제가 우리 어머니에게서 배운 것이고 우리 어머니와 한 약속이에요.


우리 어머니가 이렇게 얘기하셨어요. "내가 정신적으로 혼란스럽고 힘들 때, 그때 누가 나에게 할 수 있다고 말해 주고 어떻게 하는지 보여 주었다면 포기하지 않았을 텐데."라구요. 제가 하는 활동은 여기에 대답하는 활동이에요. 제 입장에서 최선을 다해 보고, 또 그걸 다른 사람들에게 보여 주어서 도움이 될 수 있다면 그걸 보람으로 여기는 거죠.


  1. 이기준 이기환은 말로만 가르치는 것이 아니라 자기들이 스스로 실천해서 능력을 증명했다.
    1. 실제로 가르칠 능력이 된다.
  2. 이기준 이기환은 다른 사람들에게 돈을 요구하지 않는다.
  3. 무료라고 해서 교육 내용이 하찮은 것은 아니다.
    1. 돈으로 환산하면 수강생당 월 수백만 원으로도 모자라다.
    2. 사실 이런식으로 가르쳐 줄 수 있는 사람 자체가 전세계에서 없다.
    3. 실제 이기준이 외부에 나가서 강연과 강의를 하면 돈을 많이 받는다.
  4. 이기준이 이런 교육 프로젝트를 진행하는 이유
    1. 흙수저 금수저 이런식으로 생각하고 포기하지 않고 더 나아지고 싶은 사람
    2. 자신의 능력을 키워서 다른 사람들에게 도움을 주고 싶은 사람
    3. 이 세상이 더 나아질 수 있다는 것을 증명해 보고 싶은 사람
    4. 이런 사람들을 발굴하고 키우고 싶어서다.
      1. "내가 정신적으로 혼란스럽고 힘들 때, 그때 누가 나에게 할 수 있다고 말해 주고 어떻게 하는지 보여 주었다면 포기하지 않았을 텐데."
      2. 이기준 이기환이 하는 활동은 여기에 대답하는 것이다.


그러면 열심히 해보자구요.


과제의 예시: 정진상님

이제 과제의 예시를 보여드릴게요. 멘토링 신청하신 분 중에 정진상님이 있는데요. 그분이 쓴 생활 일기를 볼게요. 일기에 제가 자기 소개를 쓰고 앞으로 무슨 프로그램을 만들어 보고 싶은지 써보라고 했거든요. 그 내용을 요약하면 이랬어요.


  1. 현직 피부과 전문의다. 개업해서 개인 병원에서 일하고 있다.
  2. 프로그래밍을 틈틈이 공부했다. 좋아한다.  
  3. 앞으로 만들어 보고 싶은 프로그램
    1. 자동 증권 트레이딩 프로그램을 만들어 보고 싶다.
    2. 의료 상담을 해주는 챗봇을 만들어 보고 싶다.


제가 저 두 개 분야 관련해서 이미 구상을 해놓은 것이 있었거든요. 그래서 메신저로 상담을 해드리니까 좋아하시더라구요.


눈에 하트가 뿅뿅?


이렇게 평소에 자기 생각을 잘 정리해 놓은 사람은 과제를 진행할 때 상대적으로 수월해요. 그래서 제가 생활 일기에 앞으로 무엇을 해볼지 써보라고 한 것이구요. 이것을 한 번만 생각해 보는 것이 아니라 매일 꾸준히 생각해 보고, 메모를 하고 아이디어를 가다듬어야 해요. 그러니까 생활 일기를 매일 쓰세요. 사람들이 대부분 높임말로 쓰셨는데요. 낮춤말로 쓰셔도 되요. 일기니까요.


그러면 어떻게 과제를 진행할지 계획을 제시해 볼게요.


  1. 자동 증권 트레이딩 시스템
    1. 우리의 목적은 시장에서 지속해서 이득을 얻는 자동화 트레이딩 프로그램을 만들어 내는 것이다.
    2. 오픈소스로 공개되어 있는 자동 증권 트레이딩 프로그램을 검색해서 정리한다.
    3. 자동 증권 트레이딩 소스들을 비교해서 무엇이 비슷하고 무엇이 다른지 정리한다.
      1. 스펙
      2. 기능
      3. 퍼포먼스
      4. 기타 비슷한 점과 다른 점
    4. 자동 증권 트레이딩 소스들을 분석한다.
      1. 소스에 주석을 달아 본다.
      2. 더 퍼포먼스가 좋은 언어로 포팅한다.
      3. 더 생산성이 높은 언어로 포팅한다.
    5. 내가 추구하는 기능을 구상해서 프로그램을 개선한다.  
    6. 비트코인 알고리즘 트레이딩 프로그램을 만들어 본다.
      1. 자동 트레이딩이 알고리즘 트레이딩과 같은 개념이다.
    7. 비트코인 알고리즘 트레이딩 프로그램으로 시장에서 테스트를 해본다.
      1. 만족스러운 성과가 나오는지 평가를 해본다.
      2. 개선할 점을 찾아내서 개선한다.
    8. 주식시장 알고리즘 트레이딩 프로그램을 만든다.
    9. 선물 옵션 외환 등 기타 파생시장 알고리즘 트레이딩 프로그램을 만든다.  


이것이 대략의 계획, "빅 픽쳐"에요. 중간에 보니까 "비트코인 알고리즘 트레이딩 프로그램"을 만들어 보자는 것이 있네요. 이것은 주식시장에서 사용하는 프로그램을 만들기 전에 좀 더 작은 규모와 적은 수수료로 작동하는 프로그램을 만들어 보자는 것이에요.


제가 정진상님에게 배경 이론 지식으로 읽어보라고 한 글이 있어요.


우리가 앞으로 만들 자동 증권 프로그램은 쉽게 말해서 시장이라는 경제 생태계를 관찰하고 거기서 정보 동조관계와 비대칭성을 추론해서 이득을 얻는 프로그램이 될 거에요.


자, 그러면 정진상님이 해야 할 첫 번째 과제를 내어 보아요. 정진상님은 "오픈소스로 공개되어 있는 자동 증권 트레이딩 프로그램을 검색해서 정리한다."를 할 거에요. 일을 시작하는 시각부터 48시간 단위로 일정관리를 해보세요.


  1. 오픈소스로 공개되어 있는 자동 증권 트레이딩 프로그램을 검색해서 정리한다.
    1. 비트코인 트레이딩 프로그램 뿐만 아니라 모든 자동 증권 트레이딩 프로그램을 다 알아본다.
    2. 예시
      1. 비트코인과 알트코인 간의 차익거래 프로그램
      2. 추세추종 알고리즘 프로그램
  2. 구글 영문 검색을 한다.
    1. 한글 검색을 해도 되기는 되는데 검색 결과가 적게 나온다.
    2. 한글 검색만 하고 포기하지 않는다. 반드시 영문 검색을 한다.
    3. 검색어를 조금씩 추가하거나 세밀하게 조정해서 결과를 좁혀 나간다.
    4. 구글 검색 팁을 읽고 사이트내 검색, 검색어 연산자 등을 활용한다.  
  3. 검색한 내용을 과제 일지에 정리한다.
    1. 링크를 건다. 링크를 할 때는 웹 주소를 그대로 복사하지 말고 웹문서 제목을 쓰고 거기에다 링크를 삽입하는 방식으로 한다. 웹 주소를 그대로 복사해서 붙여넣기 하면 읽기 불편하다.
        1. 이런 식으로 하지 말라는 뜻
        1. 이런 식으로 하라는 뜻
    2. 스펙, 기능, 퍼포먼스, 기타 비슷한 점과 다른 점들을 알아내서 적어 둔다. 그래서 앞으로 무엇을 더 심층적으로 분석해서 조립할 것인지 생각한다.


이 과제를 48시간 한 번에 다 할수도 있구요. 48시간 두 번에 걸쳐서 할 수도 있어요. 그건 본인 능력에 맞게 조절해서 해보세요. 이번에는 "의료 챗봇 서비스" 프로젝트를 볼게요.


  1. 의료 챗봇 서비스
    1. 우리의 목적은 우리 서비스가 유저를 가상으로 문진해 주고 의료 서비스를 추천해 주도록 하는 것이다.
    2. 오픈소스로 공개되어 있는 챗봇 프로그램을 검색해서 정리한다.
    3. 의사가 문진하는 정보처리 과정을 패턴으로 정리한다.
      1. 의학 통계 편람 자료에 대해서 조사한다.
      2. 의사의 논리적인 문진과 판단 과정을 구현한다.
    4. 의사의 문진 활동을 챗봇으로 구현한다.
      1. 스무고개 문답 형식으로 문진을 구체화 해나간다.
        1. 어디가 아파요?
        2. 눈이요.
        3. 어떻게 아파요?
        4. 왼쪽 눈이 충혈되고 따가워요.
        5. 언제부터 아팠어요?
        6. 엊그저께부터요.
        7. 무슨 일이 있었어요?
        8. 갑자기 가려운 것 같아서 손으로 비볐는데 그때부터 아팠어요.
        9. (예시 사진을 2개 보여주며) 눈의 상태가 사진 둘 중 어느쪽과 더 비슷한가요?
        10. 오른쪽이요.
        11. 진물이 나오나요?
        12. 네, 끈적한 물이 나와요.
        13. 뭐 이런 식이다.
    5. 전국의 의료 기관 데이터를 모은다.
      1. 의료 기관 위치
      2. 제공하는 서비스 내역
      3. 제공하는 서비스의 통계적인 퀄리티 순위
      4. 고객 만족도
      5. 의료사고 여부
    6. 챗봇이 문진한 내용을 토대로 가장 적합한 의료 기관을 추천해서 연결해 준다.
      1. 고객이 원하는 바에 따라서 추천의 종류가 달라진다.
        1. 상대적으로 가까운 곳 기준
        2. 상대적으로 여유로운 곳 기준
          1. 기다리지 않고 진료받을 수 있는지 여부
        3. 상대적으로 진료를 잘하는 곳 기준
          1. 진료를 받아 본 고객의 만족도 여부
            1. 진료를 받아 본 고객이 후기를 작성하면 혜택을 준다.
            2. 그 후기를 모아서 의료 기관에 대한 신뢰성을 높인다.  
          2. 의료 사고 여부
            1. 병원 전체
            2. 개별 의사
        4. 상대적으로 진료비가 낮은 곳 기준
        5. 위의 기준을 두 개 이상 조합한 기준
          1. 유저가 기준을 두 개 이상 조합해서 선택할 수 있게 한다.
    7. 챗봇은 문진하는 행위에 대해서 유저에게는 댓가를 받지 않지만 대신 의료 기관과 서비스를 추천해는 댓가로 의료 기관으로부터 수수료를 받는다. 이것이 비지니스 모델의 핵심이다.
    8. 의료 기관, 약국, 더 나아가서 보험 회사와 연계해서 수익을 확대해 나갈 수 있다.
    9. 한국 뿐만 아니라 전세계를 대상으로 할 수 있다.


음, 그럴싸하죠? 저는 이런식의 사업 기획을 자주 하거든요. 글 쓰면 쭉쭉 나와요. 자, 이제 정진상님이 처리해야 하는 과제를 내어 드릴게요.


  1. 오픈소스로 공개되어 있는 챗봇 프로그램을 검색해서 정리한다.
    1. 각 프로그램의 비슷한점과 다른점을 문서로 정리한다.
  2. 구글 영문 검색을 한다.
    1. 이하 내용은 언제나 동일하다.


이것 역시 48시간 한 번에 하시구요. 한 번에 안되면 두 번에 나누어서 하세요.


코드에 주석 달기, 포팅, 재조립

구글 검색 리서치를 하고 나면 코드 분석에 들어가는데요. 코드 분석은 이렇게 이루어져요.


  1. 코드에 주석 달기
  2. 다른 언어로 포팅
  3. 재조립해서 내가 목표로 하는 프로그램 만들기


꼼수는 없어요. 이게 정공법이에요. 작업을 하면서 저와 이기환님이 지도를 해드릴 거에요. 코드 협업 프로그램을 이용해서 실시간으로 할 거구요. 잘 모르는 것이 있으면 메신저로 물어보면서 할 수 있어요.


테크 트리 조합



스타크래프트를 할 때 캐리어 어떻게 뽑아요? 게임 시작하자마자 바로 스타게이트(공항) 지으면 뽑을 수 있나요? 아니죠. 다른 건물을 지어서 조합을 맞추어 주어야 하죠. 이것저것 다른 건물을 몇 개 더 지어야 캐리어 아이콘에 불 들어 오잖아요. 그걸 게임에서는 테크 트리라고 부르는데요. 그런것처럼 개발 일을 할 때도 내가 가고 싶은 방향은 있는데 바로 거기로 못가는 경우가 있어요.


위에 정진상님의 예를 들어서 내가 트레이딩 프로그램을 만들고 싶은데 해당 프로그램에 사용된 기술이 이해가 안되서 바로 분석과 포팅을 못하게 되었어요. 그러면 어떻게 해야 할까요? 그럴 때는 그 기술을 배우는 과정으로 작은 다른 프로그램을 만들어 보면 되요. 주로 게임을 만들면 좋아요.


잘 모르겠으면 작은 프로그램을 만들어 보자

제가 게임을 만들어 보라고 하는 이유는 게임이 규모가 작으면서도 눈으로 보이는 인터랙티브 결과물이 나오기 때문이에요. 예를 들어서 내가 목적지까지 가야하는데 자바스크립트를 좀 배워야 되요. 그러면 자바스크립트로 게임을 만드는 거죠. 게임 소스는 구글 검색하면 오픈소스로 공개된 것들이 많이 있거든요.


  1. 내가 배워야 하는 기술로 만들어진 가벼운 게임을 분석해 본다.
    1. 구글 영문 검색을 해서 오픈소스로 공개된 작은 게임을 찾아낸다.
    2. 주석을 단다.
    3. 포팅을 한다.
    4. 재조립을 해서 조금 다른 게임으로 만들어 본다.
  2. 내가 이 기술(언어)에서 배워야 하는 부분을 게임으로 구현해 본다.
  3. 충분히 이해가 되면 다시 내가 목표로 했던 프로그램 개발에 복귀해서 진행한다.


우리는 릴랏을 개발하면서 Node.js를 배워야 했어요. 그래서 우리는 정석대로 게임을 한 개 만들어 보았죠. 그게 딱 48시간 걸렸어요. Flappy Connection
게임을 만들어 보라는 것은 빈말이 아니에요. 님들 앞으로 과제 하는 동안 게임을 최소한 대여섯 개는 만들어 보게 될거에요.


과제의 예시: 이휘연님

이휘연님은 4월 말부터 저에게 멘토링을 받았어요. 이휘연님은 음악을 공부하는 학생인데요. 멘토링을 받기 전에는 연습곡을 만드는 데에 3주에서 4주 정도 시간이 걸렸대요. 그런데 멘토링을 받고 나서는 연습곡 한 개를 만드는 데에 1주일 걸리게 되었어요. 업무 처리 속도가 3배에서 4배 더 빨라지게 된 거죠. 우리는 이 시간을 더욱 단축해서 최종적으로 3일에 한 곡씩 쓸 수 있게 해보기로 했어요.


이휘연님이 그렇게 하게 된 데에는 차분하게 자신의 내면을 관찰하고 자기가 실제로 뭘 하면서 시간을 쓰는지를 관찰한 것이 중요했어요. 이휘연님 일기를 보면 그 내용이 나와요.


이 글을 읽는 님들도 이렇게 해야 되요. 차분하게 자신을 관찰해서 내가 무슨 생각을 하는지 글로 쓰고, 내가 실제로 무슨 행동을 하는지를 관찰해서 개선할 부분을 찾아내고 개선하는 과정을 가지세요. 이 활동을 꾸준히 하면 내가 좋아하는 일을 더 잘하게 되요.


그런 이휘연님이 이번에는 음악 작곡 뿐만 아니라 프로그래밍도 배우고 싶다고 했는데요. 이휘연님은 음악 사운드 관련 프로그램을 만들고 싶대요. 그래서 계획을 한 번 준비해 보았어요.


  1. 음악 사운드 관련 프로그램을 만들자.
    1. 우리의 목적은 음악 사운드 관련 프로그램을 만드는 것이다.
      1. 예를 들어 딥러닝 AI를 사용해서 음악을 만드는 것을 도와주는 프로그램을 만들자.
      2. 종이 악보를 스마트폰으로 사진 찍으면 작곡 프로그램 악보 파일로 변환해 주는 프로그램을 만들자.
    2. 음악 사운드 관련 오픈소스 프로그램을 검색해서 정리한다.
      1. 악보 인식 관련 오픈소스 프로그램을 검색해서 정리한다.
    3. 정리한 내용을 보고 어떻게 하면 프로그램을 만들 수 있겠는지 더 깊이 기획을 해본다.


이휘연님도 저도 아직 음악 사운드 관련으로는 어떤 프로그램을 구체적으로 만들지 생각을 해보지 않았기 때문에 위에 정진상님처럼 계획의 뒷부분까지 깔끔하게 나오지는 않았어요. 그런데 초반부는 만들었죠. 이 부분은 개념이 동일하네요. 그러면 이 내용으로 이휘연님에게 과제를 내어 줄게요.


  1. 음악 사운드 관련 오픈소스 프로그램을 검색해서 정리한다.
  2. 구글 영문 검색을 한다.
    1. 한글 검색을 해도 되기는 되는데 검색 결과가 적게 나온다.
    2. 한글 검색만 하고 포기하지 않는다. 반드시 영문 검색을 한다.
    3. 검색어를 조금씩 추가하거나 세밀하게 조정해서 결과를 좁혀 나간다.
    4. 구글 검색 팁을 읽고 사이트내 검색, 검색어 연산자 등을 활용한다.  
  3. 검색한 내용을 과제 일지에 정리한다.
    1. 링크를 건다. 링크를 할 때는 웹 주소를 그대로 복사하지 말고 웹문서 제목을 쓰고 거기에다 링크를 삽입하는 방식으로 한다. 웹 주소를 그대로 복사해서 붙여넣기 하면 읽기 불편하다.
        1. 이런 식으로 하지 말라는 뜻
        1. 이런 식으로 하라는 뜻
    2. 스펙, 기능, 퍼포먼스, 기타 비슷한 점과 다른 점들을 알아내서 적어 둔다. 그래서 앞으로 무엇을 더 심층적으로 분석해서 조립할 것인지 생각한다.


이휘연님도 이 검색을 48시간 한 번 만에 해보거나 두 번에 걸쳐서 해보세요. 어디서부터 어디까지 할지를 정해서 달성하도록 노력해 보아요.


가르침에는 반복되는 패턴이 있다

보세요. 제가 정진상님과 이휘연님을 예로 들어서 과제를 내어 주었잖아요. 그런데 여기에는 반복되는 패턴이 있었어요. 이것을 각자 자기 입장에서 응용해 보세요.


제가 차근차근 다른 분들에게도 맞춤 과제를 만들어서 드릴 것인데요. 제가 몸이 한 개잖아요. 분신술을 쓸 수도 없고. 그래서 제가 차근차근 하는 동안 이것을 보고 배우신 분들은 자기 입장에서 과제를 스스로 만들어 보세요.


마음 같아서는 전부 내가 다 하고 싶지만.. 물리적인 한계?


과제 일지에다 제가 쓴 것같이 계획을 흉내내서 써보세요. 그러면 제가 수시로 들어가서 봐드리고 첨삭을 해드리고 상담을 해드릴게요. 알겠죠? 제가 수시로 들어가서 보거든요. 열심히 안 하고 썰렁하면 자꾸 처지게 될거에요. 안 하면 안 할수록 배움의 기회도 멀어지게 되요. 적극적으로 해보아요.


생활 일기와 과제 일지를 매일 쓰자

일기와 일지는 낮춤말로 써도 되요. 제가 본다고 해서 높임말로 너무 예의 차리실 필요 없구요. 편하게 쓰세요. 그리고 일기와 일지는 꾸준히 매일 써야되요. 처리할 과제가 없으면 생활 일기를 꾸준히 쓰면 되요. 과제가 없으면 제가 위에 말한 것처럼 과제를 스스로 만들어서 해보세요.


내가 앞으로 살고 싶은 방향, 내가 앞으로 하고 싶은 일, 내가 앞으로 만들고 싶은 프로그램에 대해서 자주 생각해 보고 그것을 쓰자

한 번 자기 소개 하고 대충 앞으로 하고 싶은 일에 대해서 썼다고 해서 그게 끝이 아니라요. 날마다 조금씩 생각하고, 정리해서 추가하고 해보세요. 오늘 생각이 안 났지만 내일은 생각이 날 수도 있잖아요.


잘 모르면 메신저로 물어봐도 되요?

당연하죠. 잘 모르겠으면 물어 보세요. 혹시 제가 실수로 못 보고 넘어가서 저의 지도를 못 받으신 분은 나중에라도 언제든지 메신저로 다시 물어볼 수 있어요.  


시간이 나면 이기준이 과거에 쓴 글을 읽어 보자

릴랏 블로그연역론 블로그를 자주 읽어 보세요. 그러면 저의 지도를 받을 때 이해가 더 잘될거에요. 저는 거의 제가 글로 쓴 내용 내에서 가르치거든요. 그래서 제가 과거에 써놓은 글을 읽어 보면 도움이 될거에요.


운동을 하자

산책, 조깅, 자전거 등을 꾸준히 하세요. 저는 집에서 실내 자전거 타요. 맨손 체조와 코어 강화 운동 하구요. 체력이 좋아야 컨디션이 좋아서 일을 꾸준히 잘할 수 있어요.


늦었는데 저도 참여할 수 있을까요?

네, 누구나 참여할 수 있어요. 멘토링 가이드 1을 읽어 보시구요. 그대로 따라 하면 되요.


릴랏 멘토링 시리즈


후원 안내

글이 마음에 들고 저희를 후원하고 싶으시다면 아래 모네로 마이닝을 해주세요. 밑에 링크한 주소로 들어가서 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