Disqus for rellat

오픈소스 공개 스터디 프로젝트 Rellat을 소개합니다



안녕하세요. 저는 이기준입니다. 저는 소프트웨어 분야에서 사업을 해요. 미국인 아내와 결혼해서 미국과 한국을 오가면서 살고 있습니다. 저는 자녀가 3명 있어요. 아래는 막내 아기 100일 때 사진이에요.




저는 소프트웨어 분야를 좋아합니다. 상상에 잠겨 있다가 그것을 타닥타닥 타자를 치고 코딩을 해서 구현해 내는 것은 무척 재미있어요. 저는 제 동생 이기환님과 함께 8년 전부터 소프트웨어 개발 일을 했어요.


어느날 이기환님이 저에게 물었어요. "만약 우리 자녀들이 컴퓨터 프로그래밍을 배우고 싶어하면 어떻게 가르치는 것이 좋을까?"라구요.
"그러게, 어떻게 하는 것이 좋을까?" 저도 생각을 해보게 되었습니다.

우리는 컴퓨터 프로그래밍을 이렇게 배웠어요.
  1. 잘 쓰여진 간단하고 작은 코드를 읽어보고 분석해 보아요.
    1. 그렇게 해서 내 입장에서 이해한 내용을 주석으로 달아 보아요. 주석이라는 것은 코드 밑에 댓글로 수다를 떠는 거에요.  
  1. 분석한 코드를 다른 프로그래밍 언어로 포팅해 보아요.
    1. 포팅은 번역 같은 것이에요. 그렇게 해서 내가 이해한 것이 제대로 맞았는지 확인해 보아요. 내가 이해한 것이 맞다면 다른 언어로 번역해도 그 코드가 동작할 거에요.
  2. 코드의 성능과 구조를 개선해 보아요.
  3. 그렇게 해서 내가 아는 것이 많아지고 나면 그것들을 조립해서 내가 만들고 싶은 프로그램을 만들어 보아요.
우리는 이것을 "좋은 프로그래밍 습관"이라고 불러요.


저는 우리가 해왔던 대로 대강 이렇게 하면 좋지 않을까 하고 얘기해 보았어요. 자녀들이 자라면 위에 말한 저 방식으로 게임이나 웹사이트, 스마트폰 앱 같은 것을 만들어 보도록 가르치는 거죠.

물론 저는 애들을 조기 교육 시키지는 않을 거에요. 아무리 우리 입장에서 재미있는 것이라도 아이들에게는 재미가 없을 수 있거든요. 나중에 애들이 관심을 보이고 하고 싶어하면 그때 가르칠 거에요.


그렇게 얘기를 해놓고 나서 몇달 뒤에 제가 인터넷 게시판에 칼럼을 쓰게 되었어요. 소프트웨어 관련 글이었는데 우연히 추천을 받으면서 수만 명의 사람들이 그 글을 읽게 되었죠.

그 후로 프로그래밍을 배우고 싶어하는 사람들이 저에게 이메일과 메세지를 보내서 물어보았어요. "어떻게 하면 프로그래밍을 잘할 수 있어요?" 이렇게요. 저는 위에 이기환님과 나눈 대화처럼 대답해주었죠. "잘 쓰여진 간단한 코드를 읽고, 분석해서 주석을 달고, 포팅을 해보세요. 그리고 아는 것이 많아지면 그것을 조립해서 새로운 프로그램을 만들어 보세요."하구요.

그런데 잉? 사람들이 계속 궁금해 하면서 물어보더라구요. 제 얘기의 컨셉은 이해가 되는데 그걸 실제로 어떻게 하는지 막막하대요.


그래서 제가 이기환님과 함께 토론을 해보았어요. "사람들이 좋은 프로그래밍 습관을 배우고 싶어 하는데 거기까지 어떻게 가는지 막막해 하는 것 같다. 어떻게 하는 것이 좋을까?"하구요.

그래서 우리는 Rellat 프로젝트를 만들었어요. Rellat이란 이야기해주다, 연결해주다라는 뜻의 Relate에서 따온 말이에요.

우리는 이 Rellat 프로젝트를 하면서 사람들에게 좋은 프로그래밍 습관이 무엇인지 이야기를 들려줄 거에요. 그리고 사람들을 그곳까지 데려가서 연결해 줄 거에요.


Rellat 프로젝트는 이렇게 이루어져요.
  1. 우리가 코딩 동시 협업 서비스를 사용해서 사람들에게 실시간으로 코드를 어떻게 치고 주석을 어떻게 다는지 보여주어요.
    1. 주석을 달 때는 코드에서 무슨 일이 일어나는지 이야기로 풀어서 설명을 해주어요.
    2. 동시 협업 프로그램은 구글문서 같은 것이에요.
  2. 우리가 코드와 주석을 쓰는 것을 보면서 힌트를 얻은 사람들이 코드와 주석을 같이 써보아요.
    1. 인터넷 게시판, SNS처럼 코드와 주석에 댓글을 달고 의견을 교환해 보아요.
    2. 더 나은 코드를 생각해 내면 제안을 하고 등록을 해보아요. 위키백과처럼요!
  3. 그렇게 해서 사람들이 똑똑해지고 관심이 생기면 좀 더 복잡한 오픈소스 프로젝트를 함께 해보아요.
    1. 다른 사람들을 많이 가르쳐주고 프로젝트에 많이 기여하는 사람에게는 보상과 혜택을 주어요!
      1. 아마도 치킨?
    2. 사람들 각자 능력에 맞는 프로젝트를 추천해 주어요.

이렇게 Rellat 프로젝트에서 할 일을 정하고 나서 우리는 이 프로젝트에 사용할 서비스를 검색해 보았어요. 그랬더니 1번에 해당하는 코딩 동시 협업 서비스는 있었는데요. 2번과 3번에 해당하는 서비스 기능은 이 세상에 없었어요.

그래서 우리는 일단 기존에 이미 만들어져 있는 서비스를 이용해서 Rellat 프로젝트를 시작하고 동시에 우리가 스스로 1, 2, 3번 기능을 전부 구현하는 서비스를 만들어 내기로 했어요. 두 사람으로 그걸 개발하는 것이 가능하냐구요? 네, 우리는 잘하거든요. 제작 기간으로 3개월 정도 예상하고 있어요. 그리고 Rellat 서비스는 무료입니다!

이 프로젝트는 오픈소스구요. 우리는 Rellat 서비스 제작 과정도 공개할거에요. 사람들은 그 과정을 구경하고, 또 참여하면서 배우는 거죠. 그러면 관심있는 분들은 릴랏 블로그에 오시고 릴랏 페이스북 그룹에 가입해 주세요. 고맙습니다.

Rellat 릴랏
“We will tell you a story about the good programming habit, and help you to get there.”
“좋은 프로그래밍 습관에 대해서 이야기 해주고 거기까지 갈 수 있게 도와주어요.”
Rellat은 오픈소스이고 미국 회사인 Deduction Theory, LLC 소유의 기술 서비스입니다.



QnA

릴랏은 어린이와 학생만을 위한 교육 프로그램인가요?

어린이, 학생, 어른 모두를 위한 프로그램이죠. 아마 아이들에게 교육적인 효과가 있을거에요.
릴랏은 코딩 협업 + SNS + 위키백과와 비슷한 개념이에요.

릴랏의 SNS, 위키 기능은 어떻게 이루어지나요?

제가 만든 스케치를 보여 드릴게요.


어때요? 위 화면을 보면 세 개의 탭을 볼 수 있죠.
  1. 문서 탭 Rellat Doc
    1. 오픈소스 프로젝트에서 구현할 기획 내용을 SNS 방식으로 쓴다.
    2. 위키백과 방식으로 제안을 하고 수정을 할 수 있다.
  2. 애자일 계획표 탭 Rellat Board
    1. 애자일 계획표 탭이라는 것은 기획을 애자일 계획표로 만들어서 사용하는 탭이다. Trello가 애자일 계획표로 유명한 서비스다.
    2. SNS 방식으로 쓰고, 위키백과 방식으로 제안을 하고 수정을 할 수 있다.
  3. 코딩 탭 Rellat Code
    1. 실제 코딩이 이루어지는 탭이다. 실시간으로 접속한 사람에게 누가 무슨 코드를 치는지가 보인다.
    2. 코드에 주석을 SNS 방식으로 달 수 있다.
    3. 위키백과 방식으로 코드 수정, 주석 수정 제안을 하고 수정을 할 수 있다.

스케치는 위에처럼 대강 이렇게 했어요. 2017년 1월 23일 기준으로 작업은 기술 검토 작업에 들어갔구요. 우리가 가진 능력으로 구현이 가능하다는 판단을 내렸어요.

스케치에 페이스북 디자인이 많이 보이죠? 이 부분은 빠른 스케치를 하려고 페이스북에서 캡쳐해서 붙여넣기를 해서 그래요. 실제 작업을 하면 디자인을 전부 오리지널로 만들어서 바꿔 넣을 거에요.

지금은 릴랏 서비스를 이용할 수 없나요?

네, 지금은 릴랏 서비스를 이용할 수 없어요. 제작하는 중이거든요.
3개월 뒤에 런칭을 할 계획인데요. 2017년 4월이 되겠네요.
3개월 안에 개발이 가능하냐구요? 네, 처음에는 1개월 작업으로 생각했었는데요. 우리가 릴랏 서비스 개발 뿐만 아니라 딥러닝 연구도 해야 해서 좀 시간을 넉넉하게 배분했어요.

이 릴랏 서비스를 개발하는 동안 누구나 실시간으로 개발과정을 볼 수 있게 할거에요. 오픈소스로 깃허브에 올리구요. 동영상 강의로 만들어서 유튜브에도 올릴게요. 원하시는 분은 코드 개발에 실시간으로 참여하게 해드릴거에요.

릴랏 서비스를 만드는 것 외에 다른 프로젝트는 없나요?

있어요. 릴랏 서비스를 만들면서 동시에 몇 가지 릴랏 방식의 오픈소스 공개 스터디 프로젝트를 더 할 것인데요. 이 오픈소스 공개 스터디 프로젝트를 약자로 줄여서 OSOS라고 부를 수 있을 것 같아요. Open Source and Open Study의 약자인거죠.

  1. 릴랏 서비스 제작
    1. 방금 위에 설명한 것
  2. 딥러닝 연구
    1. 딥러닝 코드를 분석, 포팅, 개선하는 활동
  3. 게임 제작
    1. 오픈소스를 활용해서 스마트폰에서 작동하는 게임을 만들어 보는 활동
  4. 그외 기타 릴랏 페이스북 그룹 회원들의 추천을 받아서 활동을 계속 더 추가한다.

며칠 내로 릴랏 페이스북 그룹에서 공개 스터디 추천 토론을 할게요. 제가 의견을 들어보고 검토를 해서 발표를 해드릴게요.

공개 스터디 개념은 뭐죠?

위에 설명해드린 것처럼 지금 릴랏 서비스는 만들고 있는 중이에요. 그런데 딥러닝이나 게임이나 기타 오폰소스 프로젝트를 최대한 릴랏 개념을 사용해서 실시간으로 공개하면서 진행한다는 거에요.

  1. 현재 릴랏 서비스는 만드는 중이다. 그러나 다른 프로젝트를 릴랏 개념을 사용해서 최대한 공개된 형태로 진행한다.
  2. 실시간 코딩 협업 프로그램으로 생중계한다. 실시간 참여가 가능하다.
  3. 생중계를 못본 사람은 나중에 유튜브에서 동영상 다시보기를 할 수 있게 해준다. 온라인 동영상 강의처럼 만든다.
  4. SNS기능, 토론 제안 기능은 릴랏 페이스북 그룹에서 진행한다.
  5. 진행 상황을 블로그에 정리해서 연재한다.


릴랏을 하면 코딩을 잘하게 되나요?

릴랏을 하면 이런 이점이 있을거에요.
  1. 다른 사람이 코딩을 하는 것을 처음부터 지켜본다.
  2. 다른 사람이 주석을 다는 것을 본다. "아, 다른 사람은 코드를 저렇게 해석하는구나."하고 지켜본다.
  3. 더 나은 코드를 제안한다. 더 나은 코드란 성능이 더 좋거나 더 논리적으로 간결한 코드를 말한다. 즉 코드 리팩토링에 참여한다. 다른 사람이 코드를 제안하고 리팩토링을 하는 것을 지켜본다.
  4. 코딩에 대한 서로 다른 의견이 생기면 생기면 트리를 만들어서 버전을 분화한다.
    1. 깃허브로 파생 버전들을 관리한다.
  5. 더 나은 주석을 제안한다.
  6. 주석의 다른 언어 버전을 만들어 본다.
    1. 예를 들어 영어 버전
    2. 일본어, 중국어 등

이 활동을 꾸준히 반복하면 코딩이 늘 확률이 높죠. 그런데 제가 거짓말은 할 수 없잖아요. 본인이 실천 안 하면 아무 일도 안 이루어집니다. 실천하면 분명히 실력이 늘 거에요.

릴랏에 보상 기능이 있다고 했는데요. 어떻게 이루어지나요?

비트코인 아시죠? 제가 나중에 비트코인을 흉내낸 가상화폐를 만들거에요.
릴랏 서비스를 런칭하고 나면 사람들이 거기서 코딩도 하고 주석도 달고 많은 활동을 하게 될 것인데요. 활동을 열심히 한 사람, 기여를 많이 한 사람에게 가상화폐를 비례해서 줄 생각이에요. 이건 제가 결정해서 주는 것이 아니라 서비스 자체에 빅데이터, 머신러닝, 딥러닝으로 기여도를 평가하는 기능을 넣어서 할 생각이에요.

누가 더 의미 있는 작업을 했는지, 누가 더 퍼포먼스를 높이는 작업을 했는지, 누가 더 에러를 줄이는데 기여를 했는지 빅데이터, 머신러닝, 딥러닝이 심판이 되어서 판정을 해주는 거죠. 그러면 열심히 오픈소스 활동에 기여하는 사람에게 보람찬 일이 되겠죠?

나아가서 그렇게 모은 가상화폐로 개발자들이 치킨을 사먹을 수 있게 하는 것이 궁극적인 목표입니다. 치킨! 치킨! 치킨업체랑 제휴를 맺어서 가상화폐로 치킨을 결제할 수 있게 하는거죠. 흐흐흐흐


릴랏과 깃허브는 어떻게 다른가요?

릴랏에서 프로젝트 개발과 코딩을 진행하면 깃허브에 자동으로 올라가는 방식으로 할 거에요. 나중에 릴랏에 프로젝트들이 많이 쌓이면 릴랏도 깃허브같은 오픈소스 프로젝트 저장소 기능을 할 수도 있구요.


릴랏의 개발 과정에 어떻게 참여할 수 있나요?

일단 릴랏 페이스북 그룹에 가입을 해주세요. 거기에 최신 소식을 올려드릴게요.
코딩 협업 서비스에서 생중계가 이루어질 거에요. 참여를 원하는 분은 들어와서 같이 코딩을 하는 것이 가능하구요.
기록을 남겨 놓기 위해서 동영상으로 스크린캡쳐를 해서 인터넷 동영상 강의, MOOC로 만들 거에요. 그러나 모두 무료에요. 유튜브에 올릴거에요.
그리고 진행된 상황을 릴랏 블로그에서 연재할 거에요.  

그럼 시작해 봅시다. Let’s party!



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




Facebook Comments

Disqus Comments

About Author

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

Popular Posts

Visitor Map

Flag Counter