DIY : 비트코인, 만들면서 이해하자. (1) – Chullin – Medium

.

아직 뒤로 가기 버튼을 누르지 않고 제 글을 읽고 계신 분은 다음 중 하나일 거에요.

  • 위 강의 사이트를 들어가보고, 지름신과 접신하신 분.
  • 코인 하나 만들어서 시대적 흐름을 따라가보고 싶으신 개발자 분.
  • 코인을 만들 용기는 안나지만, 막연한 궁금증이 가시지 않는 분.
  • 떡상과 떡락이 휘몰아치는 폭풍 속에서, 코인과 지피지기를 하고 싶으신 분.

이분들을 어떻게 만족시킬 수 있을까 고민했어요…

특히, 연재작의 얼굴인 1부를 어떻게 써야할까 고민을 많이했어요. 저는 7부작을 기획 중이거든요.

.

고심 끝에 …

.

로드가 얼마나 되는지, 코딩은 얼마나 해야하는지, 얼마나 강의가 친절한지, 누가 들으면 좋을 것인지 간략히 써보기로 했어요. 여러 사람들이 알면 좋을 것 같아서요.

그러면, 듣고 싶은 분들의 마음 속에 뽐뿌를 좀 넣어볼 수도 있을 것 같고, 거기서 흥미를 느끼신 분은 제 2부도 확인하지 않을까 하는.. 막연한 기대감을 가지고 있었어요.

어쨌든! 이 정도면 연재작의 1부로써 적당하지 않을까요?

.

강의평가를 시작해보겠습니다.

.

저는 5가지 기준을 세워보았습니다.

.

  • (1) 강의자의 말을 알아듣기 쉬운지.
  • (2) 강의와 과제 코드의 싱크로율이 높아서 복습이 용이한지.
  • (3) 강의 로드는 적절한지.
  • (4) 퀴즈는 도움이 되는지.
  • (5) 암호화폐를 충분히 이해한 느낌이 드는지.

.

주관적인 평가입니다만, 최대한 저 뿐만 아니라 다른 분들도 고려해보고자 했습니다.

.

1. 알아듣기 쉬운 영어인가?

점수: ●●●●● => 100점!

.

영어권 선생님이라 영어를 쓰시는데, 단어도 쉽고, 잘 들립니다.

게다가 한국어 자막이 있습니다. 게다가 번역 어투가 구어체라 친근합니다. 사실 이 정도면 어지간한 한국인이 강의 듣는 데에 큰 문제가 없으리라 생각해요.

백문이 불여일견! 위 화면은 1 강(무료 공개 강의)의 스크린샷입니다.

다만, 번역자의 의역이 다소간 불편할 수도 있겠습니다. 하지만, 그래봤자 강의자분께서 “I think this is cool, Fucking cool, Yeah”를 “쩔어요”로 번역하는 정도? 저같은 경우는 이런 의역을 큰 불편함 없이 소화했는데요.

(사진: 하. 영어강의를 보면서 이렇게나 편안했던 적이 있는가…)

어짜피, 워낙 영어가 평이해서 의역은 큰 문제가 안될 거라고 생각해요.

.

2. 강의와 코드 자료 사이의 싱크로율이 높아서 복습이 용이한가?

점수: ●●●●○ => 80점

.

100% 같습니다. 강의 내용을 따라가도 코인을 코드로 짤 수 있습니다.

아, 물론 저도 그렇고 강의자도 그렇고 맥 유저라서 편했을 수도 있겠어요.

윈도우 유저는 고생할 수도 있겠습니다. 그래서 별 4개만 줬습니다. 하지만, 윈도우 유저도 PC에 리눅스를 깔거나, 리눅스 기반으로 구름ide 컨테이너를 하나 새로 파도 괜찮으니, 별은 한 개만 깎았습니다.

.

3. 강의 로드는 적절한가?

점수: ●●●●○ => 80점

강의는 4~7분짜리 영상클립 120개로 구성되어 있습니다. 각 강의 별로 함수 1~ 2 개를 만듭니다. 타원곡선 알고리즘을 제외한 나머지 코드 스니펫의 경우 복잡한 알고리즘이 아니라서 4 ~ 7 분이면 함수 한 두개 설명하기에 충분한 시간입니다. 한 강의에 함수 하나씩, 코인을 만들기 위한 벽돌을 하나씩 쌓아나갈 수 있습니다.

강의 동영상 갯수에 너무 압도되지 마시고 한번 따라 해볼 것을 강력하게 추천하고 싶네요. 압도될 이유는 전혀 없습니다.

100점이 아닌 80점을 준 이유는 간간히 죽음의 협곡같은 강의들이 있었기 때문입니다. 급작스레 난이도가 확 올라가는 지점들이 있었습니다. 이런 점들에 대해서 설명을 조금만 더 붙여주었더라면 더 좋았겠다… 하는 생각을 하면서, 별은 4개만 주었습니다.

강의는 BASIC[4강], 1부[83강], 2부[12강], 3부[16강]로 구성되어 있습니다. 이 중, 특히 난이도가 어려웠던 파트는 [12강 ~ 24강] Decentralization and p2p server implementation 이었습니다. 비트코인의 탈중앙화 개념은 어렵지 않습니다. 말 그대로, 중앙집중식 관리에서 탈피한다는 뜻이니까요. 말은 쉽습니다.

하지만, 구현하기 참 어려웠습니다. 특히, 웹소켓에 대해서 잘 몰랐던 터라, 저 같은 경우 더욱 어렵게 받아들였던 것이 아닐까 싶어요. 모르는 웹소켓에 대해 찾아보는 과정에서 나름 웹소켓에 대해 정리해 보았는데요. 필요하신 분은 참고해보셔도 좋겠습니다. 웹소켓이 등장하기까지의 역사. 역사를 안다고 웹소켓을 알게 되었던 것은 아닙니다만, 그래도 감을 잡는 데에는 유용하지 않을까 싶습니다.

.

4. 퀴즈는 도움이 되었는가?

점수: ●●●○○ => 60점

15개 ~20개 강의에 한 번씩 퀴즈가 있습니다. 어려운 개념을 하나씩 해결할 때마다 퀴즈를 풀면 됩니다. 사실 어려운 내용을 이해하는 데에는 퀴즈가 그다지 효과적인 효력을 발휘하지는 않았습니다.

다만, 복습하는 데에는 용이하더군요. 그래서 별 3개를 주었습니다.

5. 코인을 이해한 느낌이 드는가?

점수: ●●●●○ => 80점

앞서서 설명드린대로 죽음의 협곡만 잘 지나가고 나면, 아 코인이 어떤 기반으로 돌아가는구나~ 하는 이해가 가능해집니다.

마치 p2p 동영상 공유 사이트 하나 만드는 것이랑 비슷하게, 여러 컴퓨터 서버들 사이에 코인을 주고받는 기본적인 방식을 이해할 수 있습니다.

물론, 이 강의를 다 들었다고 해서 코인 하나를 새로 만들어낼 수 있는 것은 아닙니다. 왜냐하면, 사실 실제 서비스로 만들어내야 하는 코인을 만들어내기 위해서는 이 강의에서 대충대충 설명하고 지나간 몇몇 중요한 함수들에 대해 옵티마이제이션을 엄청 해줘야 하거든요.

시간이 너무 오래걸리는 문제라든가, 보안 이슈라든가, 코인에 담긴 거래 내역을 어떻게 해야 빠르게 주고 받을 수 있는지라든가, 엄청나게 많은 거래 내역(100기가바이트 단위)을 어떻게 저장해야 효율적인 분산 시스템이 될 수 있는지라든가 등등요.

하지만, 그럼에도 불구하고, 코인을 이해하고 싶으신 분은 2달 정도 차분하게 이 코드를 따라서 배워보시면 무엇이 코인의 핵심인지 확인할 수 있지 않을까 싶습니다.

LEAVE A REPLY

Please enter your comment!
Please enter your name here